bug fixing session, no exciting updates, the more i think im coming close oto finishing it, more the work remains.
bug fixing session, no exciting updates, the more i think im coming close oto finishing it, more the work remains.
The project is almost finished, but i’m not happy with the accuracy, so ill work on making it better. As good as it can be.
#Code is not working. After the last post, I made some changes, and maybe messed up. Now something is wrong and im not able to figure it out. Since no AI is used in this project, this is becoming really hard.
#Progress so far
I’m working on a very janky Switch 2 cloudplay setup:
AYN Thor → Windows → XInput → C# → UART → Raspberry Pi Pico → fake Switch Pro Controller → Switch 2
After around 3 days of work the Switch 2 could;
But it would never actually connect with the Switch 2, I kept messing with the code, debugging, changing bytes I even asked AI but I never got the answer.
What if all this time my code was working just fine and I wasn’t testing it correctly, so I sent a singular button press with right_buttons |= (1 << 3); and suddenly. It connected. Apparently, the Switch was waiting for an actual input report before considering the controller fully connected.
All that work and time just to mess up my entire codebase. At least I learned a little more about C and hexes 😓😓
I think the project is close for a v0.1 release, I’ll need to;
In the future I want to build a special application instead of relying on OBS, reduce latency and add rumble + gyro support.
Yea….. This is the only thing done in past 10 hours of work, but lemme explain how hard it is.
This will be a weird analogy but hear me out.
Meanwhile a simple tracker using wheel can tell you change in location. But you can’t get information about surroundings.
So they both are merged so that the drifting of sonar is stopped.
Yea….. This is the only thing done in past 10 hours of work, but lemme explain how hard it is.
This will be a weird analogy but hear me out.
Meanwhile a simple tracker using wheel can tell you change in location. But you can’t get information about surroundings.
So they both are merged so that the drifting of sonar is stopped.
Heres another fun photo actually
ive been testing with sounds all this time. But i didnt realise that different laptops have different sound systems. Like downwards firing speakers and upwards firing speakers.
So i have decided that this wont be able to be made for all laptops. So i definitely will have to create a video for this. lol.
Im on fire!
I have nothing new to show, since im still working on the same thing for 2 devposts now. So heres a cool photo
im actually tired of failing and trying some solution without using AI.
It would have made it a lot easier but, I’m kinda stupid and egoistic ig?
I’m maybe 1/3rd the way to implement FFT ig?
This is getting pretty hard.
I’m spending most of the time just writing, running and testing the code of this implementation.
The picture attached is just when there is forward or backward movement of hand, it glows brighter. Cus I tested with doppler shift a little.
So, I learnt a few more concepts required to make this.
Applied FFT a bit more nicely and neatly.
ALSO I LEARNT COMPLEX FFT WHICH IS AMAZING TBH.
Yea, so far its just applying what I’m learning.
Not easy for a 16 year old to do college shit.
Went through multiple iterations.
Since I was new to 3d printing, my design initally was VERY VERY BULKY, which turned out to cost a lot.
Then went through two more iterations and cut down the need for supports and designed a really light and minimal structure.
For the data collection part, well, we have successfully collected enough data to actually predict in real time what future voltage is.
Will take one more month for this to be completed.
Tbh all these difficult concepts, you understand them, do their maths, and then boom, you just implement it using a library. WHY DID I SPEND SO MUCH TIME UNDERSTANDING THEM IN THE FIRST PLACE. I AM A 16 YEAR OLD, ITS REALLY HARD FOR ME TO UNDERSTAND COLLEGE LEVEL SIGNAL PROCESSING, I STILL HAVE FFT AND TO UNDERSTAND!!!! anyway
I’ve been working on a project that basically sees without seeing. So far, i’ve understood concepts like convolution, sampling rate, correlation, stuff to basically find a sound we want from a sample.
I then wrote a code to send out a linear increasing list of frequencies from 10000 to 15000. Then do a convolution of the recieved sound with the target sample to detect where in the recieved sound lies the target sample.
Yea, I updated some minor things, nothing big
https://cirqatha.github.io/AtomSim/
So for the V1, I made an Atom simulator out of pure curiosity from my 11th grade chemistry concept called VSEPR theory.
I was told that the website didnt have any controlls, or any interaction, which made it kinda plain. But I stll managed to get high ratings.
So I decided to improve it, but I wrote the previous simulation using VPython, which tbh is the grandfather level compared to three.js which is actively used in websites.
So I learnt three.js and wrote the code. And here is the working of the code if anybody’s interested in it.
PROBLEMS I FACED = yea I did not use AI to write code, but the problem is I was learning a new language and three.js. AND I RAW DOGGED DOCUMENTATIONS, i’ve never in my life coded in a more primitive way. I also had to understand the way three.js works, its actual way of doing things.
You can only imagine how legendary I felt when the project was over.
The “magic numbers” = I’ve recieved question from my previous ship about seemingly random values set for variables in the simulation. Remember, this is a very simplified simulation, a simulation with 99.99% accuracy requires a lot of factors, making this complex. The second reason is simply because that the numbers are set to make the motion of particles and visibility of particles visually pleasing while still keeping the structures mostly correct. Hence the “magic numbers”. Like I cannot set distance between atoms super low to simulate reality, thats why you would see the force constant super bumped up.
The UI = I’ve added a box to change the number of particles and simulate them, along with a “render End Frame” checkbox which as the name suggests, only calculates stuff till the end frame, without simultaneously updating positions, rather updating at last. There is also a guide for how many particles it can handle safely, I’ve also shown a orbit control guide there which tells you how to rotate and zoom into the simulation.
Updating objects = When you enter the number of particles, it first clears all the particles rom previous simulation, along with arrays and stuff.
Then it adds particles, initialises velocites, and positions.
Calculation Forces = In the beginning of each simulation, the arrays is first cleared to clear the forces from previous simulation. Now, For each particle, force from every other particle is calculated, then added together to give a final force vector for that particle.
Calculating Velocities = Same clearing up loop with this.Also, This one’s really simple, its just a simple v = u + at formula. Every calculation is followed by a 0.9 factor scaling which dampens the velocity every frame.
Calculating Positions = For this one we first store the previous position in a temp variable before clearing it. We then calculate the distance travelled using the formula s = ut + (1/2)at^2. This is followed by a little normalisation, which is basically like if you are spinning a ball with a string, normalisation factor decides how much stretchy the string is. 100% normalisation means the ball travells on the edge of a perfect sphere, a 10% normalisation means it can sometimes go away from that edge, but will not drift away because an additional force is attracting it to the edge.
That distance travelled is added to the previous position stored in temp and that gives the position for that frame.
Calculating Cylinders = For each particle, if it moves less than 0.1 distance between two frames, its considered stable then and it is connected to its nearest surrounding particles using cylinders.
Render End Frame = Theres a feature which lets you to only render final frame of a 20 second simulation, which probably saves your system some resource usage. Though all the major stuff like calculation has to happen to calculate it.