|
1751
|
AttendTrack by @Turaab | Stardance
|
Turaab
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: AttendTrack by @Turaab | Stardance
|
1792673281.4383657
|
1793278081.4383657
|
|
1752
|
My first slack bot! by @Yummi | Stardance
|
Yummi
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @Yummi | Stardance
|
1792547551.1632442
|
1793152351.1632442
|
|
1753
|
My first slack bot! by @Nat | Stardance
|
Nat
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @Nat | Stardance
|
1792511344.124602
|
1793116144.124602
|
|
1754
|
My awesome macropad! by @ashleen | Stardance
|
ashleen
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @ashleen | Stardanc Title: My awesome macropad! by @ashleen | Stardance...
|
1792749065.160309
|
1793353865.160309
|
|
1755
|
Making ASTRA Website by @hacker2_0indiaofficial | Making ASTRA Website by @hacker2_0indiaofficial | Stardance...
|
hacker2_0indiaofficial
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Making ASTRA Website by @hacker2_0indiaoffi Title: Making ASTRA Website by @hacker2_0indiaofficial | Stardance...
|
1792597849.380078
|
1793202649.380078
|
|
1756
|
Untitled by @jordan | Stardance
|
jordan
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled by @jordan | Stardance
|
1792796073.7743008
|
1793400873.7743008
|
|
1757
|
prosthetic hand by @baoxkhanh781 | Stardance
|
baoxkhanh781
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: prosthetic hand by @baoxkhanh781 | Stardanc Title: prosthetic hand by @baoxkhanh781 | Stardance...
|
1792738082.1928055
|
1793342882.1928055
|
|
1758
|
Treaded rover by @Headless48 | Stardance
|
Headless48
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Treaded rover by @Headless48 | Stardance
|
1792662862.3471544
|
1793267662.3471544
|
|
1759
|
My awesome macropad! by @tarik_16 | Stardance
|
tarik_16
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @tarik_16 | Stardan Title: My awesome macropad! by @tarik_16 | Stardance...
|
1792698709.3715107
|
1793303509.3715107
|
|
1760
|
My awesome macropad! by @GARY | Stardance
|
GARY
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @GARY | Stardance
|
1792680843.3631747
|
1793285643.3631747
|
|
1761
|
Kinetic AHRS by @someonelse | Stardance
|
someonelse
|
1
|
71.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-29T16:08:31Z", "hours": 71.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "This is an algorithm to get orientation (roll, pitch and yaw) from raw sensor data. The underlying math was pretty difficult but I’m proud that I got it at least mostly working. Since this is very low level and hardware heavy it was hard to make a demo website for it. But if you have a spare mpu6050 or something give it a try!", "repo": "https://github.com/someonelse20/kinetic", "demo": "https://kinetic.someonelse.net"}]...
|
[{"post_id": 75197, "ts": "202 [{"post_id": 75197, "ts": "2026-09-29T13:44:03Z", "hours": 2.9275, "text": "Finishing up project info To complete the project I started with filling out a readme. I then got my website up and running at kinetic.someonelse.net. I still plan to work on this after I submit it but for now I just want to submit my work."}, {"post_id": 74132, "ts": "2026-09-26T18:47:23Z", "hours": 1.8086, "text": "Added docs I looked into ways of adding documentation for this project and found that doxygen was exactly what I wanted. I went through the quick start and got it running a bit. Then I used my ai to write inline comments for all the functions. I went through all of them and fixed any errors that it made. Then when generating the config with doxygen I ran into the problem where it only made docs for structs and not for functions. After tweaking everything it now works. I changed so much I don’t really know what individual tweak actually fixed it."}, {"post_id": 73110, "ts": "2026-09-24T12:38:09Z", "hours": 8.0983, "text": "Started demo website Since the due date for stardance it coming up quick I shifted to finishing the project and making a demo website for Kinetic. I tried having my ai just try to do it all from scratch but it fell flat on its face. It made a website where the buttons didn’t work and after looking at the source code it merely tried to rewrite the EKF code rather that run the actual library. So I then went to create a python wrapper with pybind11 myself. After reading the docs and fixing countless compiler errors I got it to compile correctly. I then asked my ai to create it from the c++ python wrapper file which it also failed at. I took the bad code it wrote and modified it myself to use the actual python wrapper so it could have a pure python reference. It was finally able to successfully make a website from that. There was a few errors which I then fixed to create a working website. I haven’t started hosting it yet though."}, {"post_id": 68320, "ts": "2026-09-14T22:44:36Z", "hours": 4.2158, "text": "Wrote calibration suite I went to make a calibration python script. I tried using ai pretty heavily for this. At first I directed it to fill out stub files first to get structure and go step by step. Since I’m using dumb self-hosted models it got confused when I asked it to do all of it at once. I got it to write the helper scripts pretty well but it fell flat on its face with the main executable. I copied it over and rewrote pretty much everything except the parsing logic. Even then some of the flags are unused. After writing the core logic myself the script works with a static reference I recorded a bit back. To use it point it at a directory with recording files and it will calibrate as much as it can with the data it gets. I’m using jsonl for the recording format and a ai generated script that reads serial data or just a file and converts it over to the jsonl format. I noticed that comparing with old sensor recordings some of the raw sensor values have changed so I will go through getting all the calibration data next."}, {"post_id": 63579, "ts": "2026-09-07T14:30:04Z", "hours": 0.6919, "text": "Tested against actual implementation I tested the real data I recorded with an actual working implementation of an extended kalman filter , the one I’m roughly following as a guide for my own. I used ai a lot which worked pretty well, the code is very ugly but its just for testing so it doesn’t really matter. After my ai had got it working I went in and tuned the parameters for my dataset and it actually performed kinda worse than my own code! This really encouraged me because it means that my core code works and the errors are with the data processing. Next I think I’ll go through the gauntlet of calibrating my IMU which shouldn’t be too hard because I already did for a very similar project a while ago."}, {"post_id": 62391, "ts": "2026-09-05T18:43:14Z", "hours": 7.2383, "text": "Improved performance with real data Overall most of what I did here was bang my head against a wall trying to make it work. I made a lot of small changes but as you can see with the video still a lot to go. The biggest change I made was originally I used a NED or north east down corresponding to x y z and I switched over for ENU or east north up. I though originally I could just choose at a whim which one to use but different sensors use different reference frames and converting it over is more trouble than its worth. Now the output is a good bit better and I think I can improve it a lot by calibrating the sensor, currently the gyro outputs 3 deg/s when stationary. Next I will also be comparing against a much better kalman filter implementation in python to see how much of it is processing the raw data or the core algorithm."}, {"post_id": 53438, "ts": "2026-08-23T23:55:30Z", "hours": 2.4714, "text": "Finally fixed all memory leaks After running on the rp2040 again after I thought I fixed the memory leaks it still panicked with an out of memory error. So I went to take another look. The main problem is that all the basic matrix math functions allocated a new matrix for their returns. I had an idea of restructuring them to instead input another matrix to store the result and only return an error code. In practice this didn’t do much since I needed to allocate memory most of the time anyway. This did help a little bit but was probably more trouble than it was worth. Along the way of doing this I noticed a few more memory leaks and fixed them as I went. When I was done I got compile error after compile error but I eventually worked through all of them. But once the compiler errors went away it gave an output that was just slightly off. I narrowed it down to being in the math file and I sent my ai of to find the bug. After a long wait the error was simply that I forgot to uncomment some code when I was debugging the compiler errors. After poking around at a few more memory leaks it now gives the same output without losing any memory at all!"}, {"post_id": 51367, "ts": "2026-08-21T00:19:35Z", "hours": 1.3608, "text": "Tested with recorded data Since the hardware I setup spat out gibberish when I first tried running kinetic on it I thought to record the raw imu output and test that on my computer instead. To do this I modified my rp2040 script to print the data to a serial output with a 10ms delay. I then asked my ai to make a script to record the data and save it to a csv file which it was able to do pretty well. On the kinetic side I made a new file that opens a csv file and pipes the data into kinetic which a little more help from ai. I ran it and to my surprise it actually outputted what I would expect. The picture below is the kinetic output from when the imu was sitting on my desk. I did run it again with a few different datasets I recorded and for some reason the angle never went above 1 deg which is a little weird and still wrong but definitely not the erratic output I first saw."}, {"post_id": 49303, "ts": "2026-08-18T01:22:37Z", "hours": 2.9925, "text": "Fixed memory leaks (mostly) This is a bit of a tangent from running on my rp2040 but it’s important. When I did run it on my board it threw an out of memory panic so I began to look for ways to fix that. I found valgrind which is a tool to check for memory leaks in c/c++ programs which was exactly what I need. Running it revealed that my test suite alone ate up ~600 kilobytes of extra memory which is very not good. I began to go through all the errors valgrind gave me and finding ways to free memory. I created a few functions to help with this, mainly for the core functions such as add/sub_matrix and mul_matrix, that run the base function but then free the first argument to make the code a little cleaner. In the end I was able to solve all but two memory leaks in the kinetic code. One I think is a false positive where the error is when the kalman filter state is updated. There were a few more in the simulation code. I tried to fix some but gave up since it doesn’t really mater if that leaks memory."}, {"post_id": 48551, "ts": "2026-08-17T00:09:31Z", "hours": 2.0058, "text": "Got running on real hardware After getting the IMU up and running I went and grabbed an oled display I had kicking around and plugged the whole thing into a breadboard. There is example oled driver code in the pico sdk so I took that and modified it to work for this. I then copied in my kinetic project and had to mess around a lot with cmake to get it to import right. I ended up making a new cmake file to help with this. But when it actually started running the output was nowhere near to correct and had an out of memory panic. I’ll probably figure out how to run it though a linter or something next."}, {"post_id": 48497, "ts": "2026-08-16T21:21:48Z", "hours": 2.6944, "text": "Setting up to test on real hardware So far the project looks good in my simulations, but now I want to move on to testing in real applications on real hardware. To this I grabbed some parts I had laying around including a custom devboard I made for a previous hackclub project. I am using the LSM9DS1 because it has a gyroscope, accelerometer, and a magnetometer in one chip and I happen to have one. I created a new git repo called imu-prototype to store all the files in. In there I set up a raspberry pi pico project and coded a very simple driver for the IMU."}, {"post_id": 46624, "ts": "2026-08-14T00:30:19Z", "hours": 1.1403, "text": "Fixed Initial State Bug As soon as I plugged the kalman filter to the new sin wave tests I noticed that the output was way off. I put off fixing it until first fixing the error function first. To find the bug I first tried asking my ai and it halucinated something that had nothing to do with the problem. I started to look for the bug myself and noticed that for the initial state the y axis had the wrong sign. When it should have had about 57 degrees it had -57 ish. So I went to the code that calculates that and couldn’t find an obvious bug. Since I couldn’t fix the existing code I replaced it with a different method to do the same thing. The old code calculated a rotation matrix with the accelerometer and magnetometer and the new code calculates the euler angles. I’m hoping that because it starts with a static state I won’t run into gimble lock but that’s a future me problem."}, {"post_id": 46567, "ts": "2026-08-13T21:46:57Z", "hours": 1.4194, "text": "Improved error calculation I noticed the error calculation didn’t seem to behave as expected so I did a little research and found an equation to find the angle between two quaternions and I’m using that angle as an error. I had to write two new functions, one to get the conjugate of a quaternion which was pretty simple and one to get the inverse of a quaternion which wasn’t to hard either."}, {"post_id": 45446, "ts": "2026-08-11T22:05:12Z", "hours": 1.2792, "text": "Added new tests Previously I only had one test that linearly integrates between two orientations. Now there are two more, one that’s x axis is a sin wave, and another where all axes are sin waves with an offset."}, {"post_id": 44960, "ts": "2026-08-11T02:09:38Z", "hours": 4.8144, "text": "Put a lot of work into improving tests and simulations I probably put too much effort into the simulations and tests and should work more on the actual code but having good tests is pretty nice. I added some simple alternate orientation algorithms, one that simply inegrates the gyro measurement and another that it a complementary filter. I revamped the simulation code to work with any number of algorithms as long as they have the same format. I then spent a while making a nice error sort of tui that changes based on how many algorithms are being used."}, {"post_id": 44746, "ts": "2026-08-10T18:27:34Z", "hours": 1.3661, "text": "Found bug in simulation, now results are a lot better After a little debugging I noticed a bug in the function in the simulation that calculates the rate of change between orientations used to simulate gyro measurements. After fixing that the kalman filter works almost perfectly from the graph!"}, {"post_id": 44690, "ts": "2026-08-10T16:55:09Z", "hours": 4.4683, "text": "ITS ALMOST WORKING! So much better that before. After I wrote the code to abstract the kalman filter logic, there was still the rest of the algorithm to reimplement. I copied over what I could and for some of the functions I changed the way they worked. The guide I am following went through most of the calculations with the general matrix math and then at the end gave the full calculations to get the final matrix with single numbers. Following the spirit of my rewrite I decided to instead use the matrix math where I could. After this I hoked it up to my graphing program and it almost sorta kinda works! I have no idea what changed that makes it work but I’m not complaining."}, {"post_id": 43294, "ts": "2026-08-08T14:01:56Z", "hours": 3.2003, "text": "Abstracted Kalman filter logic I decided that since the code I already wrote wasn’t working, why not just try again? In all seriousness there was a few reasons for the rewrite, that other parts of the program might need their own kalman filter and it would be easier to understand and maintain but mostly I was sick of the code not working and not knowing why. So I found the basic equations for the extended kalman filter and went to implement that. At first I was using a struct of function pointers to get the input for the ekf (extended kalman filter) but was able to rewrite it to input static matrices instead which was way less clunky."}, {"post_id": 39655, "ts": "2026-08-02T19:38:25Z", "hours": 3.1517, "text": "Still debugging but at least there’s a pretty graph I hooked the kinetic output up to the graph program which only showed that the kinetic part doesn’t work."}, {"post_id": 36767, "ts": "2026-07-29T01:08:26Z", "hours": 2.3639, "text": "Ditched ai code and wrote a better plotting script and a few bug fixes After my ai couldn’t create the graph program I wanted and with calling python from c being so hard I went looking for alternatives. I found gnuplot which isn’t a c library but can be called fairly easily from c using pipes which I still don’t understand completely. I did find some code though that already works so I was able to modify it to what I wanted."}, {"post_id": 35408, "ts": "2026-07-26T19:49:48Z", "hours": 3.9044, "text": "Used Hermes agent to write gnuplot program which still doesn’t work. I’m going back an editing all my devlogs to more than just one line from this devlog to the one titled “Improved error calculation”. I wanted to create a way to visualize what was going on. I initially tried to go with using matplotlib and calling the python from c. I thought this was something my ai could handle. It couldn’t. I don’t think it could make anything that could even compile. To the ai’s credit I was running it myself on my computer so it’s a lot dumber than most but it turned out to be harder than I thought."}, {"post_id": 29227, "ts": "2026-07-16T00:25:01Z", "hours": 0.5828, "text": "Found out my inverse function works, the matrix I’m putting in is invalid"}, {"post_id": 27306, "ts": "2026-07-12T19:25:48Z", "hours": 7.2469, "text": "Getting Kalman Implementation Working Project Overview I’ve done a lot of work here on spare time and I got really behind on making journals so sorry for that. Since this is my first devlog I’ll start with an overview of this project. This is a sensor fusion algorithm (and a full flight controller if I have time) to obtain orientation, speed, direction, and position from raw sensor data. What I Worked On The bulk of the work here was getting the extended kalman filter for the imu working (which it still doesn’t) . I had a lot of trouble getting the initialization function working and after banging my head against a wall most of the problems were in the underlying matrix math functions and the weirdness of the matrix library I’m using. I also had a little side tangent of getting the initial orientation through an easier method but I eventually got it to work. To test all of this I wrote some code to generate fake gyrometer, accelerometer, and magnetometer data with some random rotations. Somewhere here I also decided to convert all doubles to floats and all size_t to uint_8 because this will be running on very minimal hardware. Once I got the init function working I then went on to the main loop function where I realized I did not know matrix math. A lot of my math functions were completely wrong or not the right ones. After fixing this I also did some restructuring to make the code flow better and I got the first half of the kalman filter mostly working. I then stumbled onto my atrocious matrix inversion function where I was just dividing all the elements under 1 which is definitely not how that works and after some research I added a few helper functions and that’s about the point I stopped, with the full inversion function still not working of course."}]...
|
Title: Kinetic AHRS by @someonelse | Stardance
De Title: Kinetic AHRS by @someonelse | Stardance
Devlogs:
Getting Kalman Implementation Working Project Overview I’ve done a lot of work here on spare time and I got really behind on making journals so sorry for that. Since this is my first devlog I’ll start with an overview of this project. This is a sensor fusion algorithm (and a full flight controller if I have time) to obtain orientation, speed, direction, and position from raw sensor data. What I Worked On The bulk of the work here was getting the extended kalman filter for the imu working (which it still doesn’t) . I had a lot of trouble getting the initialization function working and after banging my head against a wall most of the problems were in the underlying matrix math functions and the weirdness of the matrix library I’m using. I also had a little side tangent of getting the initial orientation through an easier method but I eventually got it to work. To test all of this I wrote some code to generate fake gyrometer, accelerometer, and magnetometer data with some random rotations. Somewhere here I also decided to convert all doubles to floats and all size_t to uint_8 because this will be running on very minimal hardware. Once I got the init function working I then went on to the main loop function where I realized I did not know matrix math. A lot of my math functions were completely wrong or not the right ones. After fixing this I also did some restructuring to make the code flow better and I got the first half of the kalman filter mostly working. I then stumbled onto my atrocious matrix inversion function where I was just dividing all the elements under 1 which is definitely not how that works and after some research I added a few helper functions and that’s about the point I stopped, with the full inversion function still not working of course.
Found out my inverse function works, the matrix I’m putting in is invalid
Used Hermes agent to write gnuplot program which still doesn’t work. I’m going back an editing all my devlogs to more than just one line from this devlog to the one titled “Improved error calculation”. I wanted to create a way to visualize what was going on. I initially tried to go with using matplotlib and calling the python from c. I thought this was something my ai could handle. It couldn’t. I don’t think it could make anything that could even compile. To the ai’s credit I was running it myself on my computer so it’s a lot dumber than most but it turned out to be harder than I thought.
Ditched ai code and wrote a better plotting script and a few bug fixes After my ai couldn’t create the graph program I wanted and with calling python from c being so hard I went looking for alternatives. I found gnuplot which isn’t a c library but can be called fairly easily from c using pipes which I still don’t understand completely. I did find some code though that already works so I was able to modify it to what I wanted.
Still debugging but at least there’s a pretty graph I hooked the kinetic output up to the graph program which only showed that the kinetic part doesn’t work.
Abstracted Kalman filter logic I decided that since the code I already wrote wasn’t working, why not just try again? In all seriousness there was a few reasons for the rewrite, that other parts of the program might need their own kalman filter and it would be easier to understand and maintain but mostly I was sick of the code not working and not knowing why. So I found the basic equations for the extended kalman filter and went to implement that. At first I was using a struct of function pointers to get the input for the ekf (extended kalman filter) but was able to rewrite it to input static matrices instead which was way less clunky.
ITS ALMOST WORKING! So much better that before. After I wrote the code to abstract the kalman filter logic, there was still the rest of the algorithm to reimplement. I copied over what I could and for some of the functions I changed the way they worked. The guide I am following went through most of the calculations with the general matrix math and then at the end gave the full calculations to get the final matrix with single numbers. Following the spirit of my rewrite I decided to instead use the matrix math where I could. After this I hoked it up to my graphing program and it almost sorta kinda works! I have no idea what changed that makes it work but I’m not complaining.
Found bug in simulation, now results are a lot better After a little debugging I noticed a bug in the function in the simulation that calculates the rate of change between orientations used to simulate gyro measurements. After fixing that the kalman filter works almost perfectly from the graph!
Put a lot of work into improving tests and simulations I probably put too much effort into the simulations and tests and should work more on the actual code but having good tests is pretty nice. I added some simple alternate orientation algorithms, one that simply inegrates the gyro measurement and another that it a complementary filter. I revamped the simulation code to work with any number of algorithms as long as they have the same format. I then spent a while making a nice error sort of tui that changes based on how many algorithms are being used.
Added new tests Previously I only had one test that linearly integrates between two orientations. Now there are two more, one that’s x axis is a sin wave, and another where all axes are sin waves with an offset.
Improved error calculation I noticed the error calculation didn’t seem to behave as expected so I did a little research and found an equation to find the angle between two quaternions and I’m using that angle as an error. I had to write two new functions, one to get the conjugate of a quaternion which was pretty simple and one to get the inverse of a quaternion which wasn’t to hard either.
Fixed Initial State Bug As soon as I plugged the kalman filter to the new sin wave tests I noticed that the output was way off. I put off fixing it until first fixing the error function first. To find the bug I first tried asking my ai and it halucinated something that had nothing to do with the problem. I started to look for the bug myself and noticed that for the initial state the y axis had the wrong sign. When it should have had about 57 degrees it had -57 ish. So I went to the code that calculates that and couldn’t find an obvious bug. Since I couldn’t fix the existing code I replaced it with a different method to do the same thing. The old code calculated a rotation matrix with the accelerometer and magnetometer and the new code calculates the euler angles. I’m hoping that because it starts with a static state I won’t run into gimble lock but that’s a future me problem.
Setting up to test on real hardware So far the project looks good in my simulations, but now I want to move on to testing in real applications on real hardware. To this I grabbed some parts I had laying around including a custom devboard I made for a previous hackclub project. I am using the LSM9DS1 because it has a gyroscope, accelerometer, and a magnetometer in one chip and I happen to have one. I created a new git repo called imu-prototype to store all the files in. In there I set up a raspberry pi pico project and coded a very simple driver for the IMU.
Got running on real hardware After getting the IMU up and running I went and grabbed an oled display I had kicking around and plugged the whole thing into a breadboard. There is example oled driver code in the pico sdk so I took that and modified it to work for this. I then copied in my kinetic project and had to mess around a lot with cmake to get it to import right. I ended up making a new cmake file to help with this. But when it actually started running the output was nowhere near to correct and had an out of memory panic. I’ll probably figure out how to run it though a linter or something next.
Fixed memory leaks (mostly) This is a bit of a tangent from running on my rp2040 but it’s important. When I did run it on my board it threw an out of memory panic so I began to look for ways to fix that. I found valgrind which is a tool to check for memory leaks in c/c++ programs which was exactly what I need. Running it revealed that my test suite alone ate up ~600 kilobytes of extra memory which is very not good. I began to go through all the errors valgrind gave me and finding ways to free memory. I created a few functions to help with this, mainly for the core functions such as add/sub_matrix and mul_matrix, that run the base function but then free the first argument to make the code a little cleaner. In the end I was able to solve all but two memory leaks in the kinetic code. One I think is a false positive where the error is when the kalman filter state is updated. There were a few more in the simulation code. I tried to fix some but gave up since it doesn’t really mater if that leaks memory.
Tested with recorded data Since the hardware I setup spat out gibberish when I first tried running kinetic on it I thought to record the raw imu output and test that on my computer instead. To do this I modified my rp2040 script to print the data to a serial output with a 10ms delay. I then asked my ai to make a script to record the data and save it to a csv file which it was able to do pretty well. On the kinetic side I made a new file that opens a csv file and pipes the data into kinetic which a little more help from ai. I ran it and to my surprise it actually outputted what I would expect. The picture below is the kinetic output from when the imu was sitting on my desk. I did run it again with a few different datasets I recorded and for some reason the angle never went above 1 deg which is a little weird and still wrong but definitely not the erratic output I first saw.
Finally fixed all memory leaks After running on the rp2040 again after I thought I fixed the memory leaks it still panicked with an out of memory error. So I went to take another look. The main problem is that all the basic matrix math functions allocated a new matrix for their returns. I had an idea of restructuring them to instead input another matrix to store the result and only return an error code. In practice this didn’t do much since I needed to allocate memory most of the time anyway. This did help a little bit but was probably more trouble than it was worth. Along the way of doing this I noticed a few more memory leaks and fixed them as I went. When I was done I got compile error after compile error but I eventually worked through all of them. But once the compiler errors went away it gave an output that was just slightly off. I narrowed it down to being in the math file and I sent my ai of to find the bug. After a long wait the error was simply that I forgot to uncomment some code when I was debugging the compiler errors. After poking around at a few more memory leaks it now gives the same output without losing any memory at all!
Improved performance with real data Overall most of what I did here was bang my head against a wall trying to make it work. I made a lot of small changes but as you can see with the video still a lot to go. The biggest change I made was originally I used a NED or north east down corresponding to x y z and I switched over for ENU or east north up. I though originally I could just choose at a whim which one to use but different sensors use different reference frames and converting it over is more trouble than its worth. Now the output is a good bit better and I think I can improve it a lot by calibrating the sensor, currently the gyro outputs 3 deg/s when stationary. Next I will also be comparing against a much better kalman filter implementation in python to see how much of it is processing the raw data or the core algorithm.
Tested against actual implementation I tested the real data I recorded with an actual working implementation of an extended kalman filter , the one I’m roughly following as a guide for my own. I used ai a lot which worked pretty well, the code is very ugly but its just for testing so it doesn’t really matter. After my ai had got it working I went in and tuned the parameters for my dataset and it actually performed kinda worse than my own code! This really encouraged me because it means that my core code works and the errors are with the data processing. Next I think I’ll go through the gauntlet of calibrating my IMU which shouldn’t be too hard because I already did for a very similar project a while ago.
Wrote calibration suite I went to make a calibration python script. I tried using ai pretty heavily for this. At first I directed it to fill out stub files first to get structure and go step by step. Since I’m using dumb self-hosted models it got confused when I asked it to do all of it at once. I got it to write the helper scripts pretty well but it fell flat on its face with the main executable. I copied it over and rewrote pretty much everything except the parsing logic. Even then some of the flags are unused. After writing the core logic myself the script works with a static reference I recorded a bit back. To use it point it at a directory with recording files and it will calibrate as much as it can with the data it gets. I’m using jsonl for the recording format and a ai generated script that reads serial data or just a file and converts it over to the jsonl format. I noticed that comparing with old sensor recordings some of the raw sensor values have changed so I will go through getting all the calibration data next.
Started demo website Since the due date for stardance it coming up quick I shifted to finishing the project and making a demo website for Kinetic. I tried having my ai just try to do it all from scratch but it fell flat on its face. It made a website where the buttons didn’t work and after looking at the source code it merely tried to rewrite the EKF code rather that run the actual library. So I then went to create a python wrapper with pybind11 myself. After reading the docs and fixing countless compiler errors I got it to compile correctly. I then asked my ai to create it from the c++ python wrapper file which it also failed at. I took the bad code it wrote and modified it myself to use the actual python wrapper so it could have a pure python reference. It was finally able to successfully make a website from that. There was a few errors which I then fixed to create a working website. I haven’t started hosting it yet though.
Added docs I looked into ways of adding documentation for this project and found that doxygen was exactly what I wanted. I went through the quick start and got it running a bit. Then I used my ai to write inline comments for all the functions. I went through all of them and fixed any errors that it made. Then when generating the config with doxygen I ran into the problem where it only made docs for structs and not for functions. After tweaking everything it now works. I changed so much I don’t really know what individual tweak actually fixed it.
Finishing up project info To complete the project I started with filling out a readme. I then got my website up and running at kinetic.someonelse.net. I still plan to work on this after I submit it but for now I just want to submit my work.
Ships:
This is an algorithm to get orientation (roll, pitch and yaw) from raw sensor data. The underlying math was pretty difficult but I’m proud that I got it at least mostly working. Since this is very low level and hardware heavy it was hard to make a demo website for it. But if you have a spare mpu6050 or something give it a try!...
|
1792853252.2664604
|
1792939652.2664604
|
|
1762
|
RPG Habit Tracker by @Hari | Stardance
|
Hari
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: RPG Habit Tracker by @Hari | Stardance
|
1792572496.0160837
|
1793177296.0160837
|
|
1763
|
My first slack bot! by @sharpjohnathan | Stardance
|
sharpjohnathan
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @sharpjohnathan | St Title: My first slack bot! by @sharpjohnathan | Stardance...
|
1792507670.3721402
|
1793112470.3721402
|
|
1764
|
My awesome macropad! by @atef | Stardance
|
atef
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @atef | Stardance
|
1792504525.8801205
|
1793109325.8801205
|
|
1765
|
My first slack bot! by @GARY | Stardance
|
GARY
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @GARY | Stardance
|
1792774235.466411
|
1793379035.466411
|
|
1766
|
My awesome macropad! by @JacobNavaratne | Stardanc My awesome macropad! by @JacobNavaratne | Stardance...
|
JacobNavaratne
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @JacobNavaratne | S Title: My awesome macropad! by @JacobNavaratne | Stardance...
|
1792720066.7151682
|
1793324866.7151682
|
|
1767
|
My first slack bot! by @ngvu0509 | Stardance
|
ngvu0509
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @ngvu0509 | Stardanc Title: My first slack bot! by @ngvu0509 | Stardance...
|
1792705800.1900098
|
1793310600.1900098
|
|
1768
|
My awesome macropad! by @Aarjith | Stardance
|
Aarjith
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @Aarjith | Stardanc Title: My awesome macropad! by @Aarjith | Stardance...
|
1792774184.3249278
|
1793378984.3249278
|
|
1769
|
My awesome macropad! by @Frenkiyus1 | Stardance
|
Frenkiyus1
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @Frenkiyus1 | Stard Title: My awesome macropad! by @Frenkiyus1 | Stardance...
|
1792540090.9527147
|
1793144890.9527147
|
|
1770
|
brAiny tutor by @PeterChi | Stardance
|
PeterChi
|
0
|
54.47
|
0
|
[]
|
[{"post_id": 25156, "ts": "202 [{"post_id": 25156, "ts": "2026-07-09T06:07:59Z", "hours": 21.9114, "text": "working on a new interface"}, {"post_id": 16908, "ts": "2026-06-27T13:41:01Z", "hours": 27.9633, "text": "After weeks of building, debugging, and going through App Store review, brAiny is officially live on the App Store. It’s an AI tutor that personalizes explanations to each student instead of giving everyone the same lesson. Biggest things I learned is that shipping is way harder than coding. App Store review taught me how important privacy policies and authentication are. Getting it to work is better than perfect Next goal: talk to real users, collect feedback, and keep improving."}, {"post_id": 948, "ts": "2026-06-02T18:28:51Z", "hours": 4.5994, "text": "Hi everyone! I’m Peter, a high school student and co-founder of brAiny, an AI-powered learning platform that helps students understand concepts through personalized explanations, quizzes, flashcards, and interactive learning tools. For the NASA challenge, I’m exploring ways to combine AI education with space science and NASA data to make STEM learning more engaging and accessible for students. I’m excited to learn from everyone here, build something cool, and see what the community creates over the next few weeks!"}]...
|
Title: brAiny tutor by @PeterChi | Stardance
Devl Title: brAiny tutor by @PeterChi | Stardance
Devlogs:
Hi everyone! I’m Peter, a high school student and co-founder of brAiny, an AI-powered learning platform that helps students understand concepts through personalized explanations, quizzes, flashcards, and interactive learning tools. For the NASA challenge, I’m exploring ways to combine AI education with space science and NASA data to make STEM learning more engaging and accessible for students. I’m excited to learn from everyone here, build something cool, and see what the community creates over the next few weeks!
After weeks of building, debugging, and going through App Store review, brAiny is officially live on the App Store. It’s an AI tutor that personalizes explanations to each student instead of giving everyone the same lesson. Biggest things I learned is that shipping is way harder than coding. App Store review taught me how important privacy policies and authentication are. Getting it to work is better than perfect Next goal: talk to real users, collect feedback, and keep improving.
working on a new interface...
|
1792489709.6270192
|
1793094509.6270192
|
|
1771
|
My awesome macropad! by @Sohrab | Stardance
|
Sohrab
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @Sohrab | Stardance
|
1792745385.1192737
|
1793350185.1192737
|
|
1772
|
My first slack bot! by @SukhreetKaur | Stardance
|
SukhreetKaur
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @SukhreetKaur | Star Title: My first slack bot! by @SukhreetKaur | Stardance...
|
1792777871.3082497
|
1793382671.3082497
|
|
1773
|
Making macropad as beginner! by @blueberry142387 | Making macropad as beginner! by @blueberry142387 | Stardance...
|
blueberry142387
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Making macropad as beginner! by @blueberry1 Title: Making macropad as beginner! by @blueberry142387 | Stardance...
|
1792648253.1042066
|
1793253053.1042066
|
|
1774
|
Untitled by @Kishore | Stardance
|
Kishore
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled by @Kishore | Stardance
|
1792615890.7005703
|
1793220690.7005703
|
|
1775
|
My awesome macropad! by @atharva | Stardance
|
atharva
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @atharva | Stardanc Title: My awesome macropad! by @atharva | Stardance...
|
1792658856.589148
|
1793263656.589148
|
|
1776
|
A cool portfolio by @lithishr18 | Stardance
|
lithishr18
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: A cool portfolio by @lithishr18 | Stardance
|
1792543817.5478907
|
1793148617.5478907
|
|
1777
|
A drone by @Barit | Stardance
|
Barit
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: A drone by @Barit | Stardance
|
1792695153.715163
|
1793299953.715163
|
|
1778
|
My awesome macropad! by @iamgauravchhajer | Starda My awesome macropad! by @iamgauravchhajer | Stardance...
|
iamgauravchhajer
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @iamgauravchhajer | Title: My awesome macropad! by @iamgauravchhajer | Stardance...
|
1792662484.305994
|
1793267284.305994
|
|
1779
|
AeroAstro-VoidEnd ᛗ ᚛ ᛖ by @Artick | Stardance
|
Artick
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: AeroAstro-VoidEnd ᛗ ᚛ ᛖ by @Artick | Starda Title: AeroAstro-VoidEnd ᛗ ᚛ ᛖ by @Artick | Stardance...
|
1792554512.6262414
|
1793159312.6262414
|
|
1780
|
My first slack bot! by @carolineford960 | Stardanc My first slack bot! by @carolineford960 | Stardance...
|
carolineford960
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @carolineford960 | S Title: My first slack bot! by @carolineford960 | Stardance...
|
1792759666.404273
|
1793364466.404273
|
|
1781
|
My awesome macropad! by @kevin222890 | Stardance
|
kevin222890
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @kevin222890 | Star Title: My awesome macropad! by @kevin222890 | Stardance...
|
1792749296.5561626
|
1793354096.5561626
|
|
1782
|
Vase Creator by @chriveloper | Stardance
|
chriveloper
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Vase Creator by @chriveloper | Stardance
|
1792705853.8272862
|
1793310653.8272862
|
|
1783
|
My awesome macropad! by @blackschyte | Stardance
|
blackschyte
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @blackschyte | Star Title: My awesome macropad! by @blackschyte | Stardance...
|
1792572707.398082
|
1793177507.398082
|
|
1784
|
Stitching Robot by @eamonn | Stardance
|
eamonn
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Stitching Robot by @eamonn | Stardance
|
1792695257.574942
|
1793300057.574942
|
|
1785
|
Untitled project by @hamza_mohamed9025 | Stardance
|
hamza_mohamed9025
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled project by @hamza_mohamed9025 | St Title: Untitled project by @hamza_mohamed9025 | Stardance...
|
1792691520.4007678
|
1793296320.4007678
|
|
1786
|
1lb 3d Printed Battle bot by @Ryver | Stardance
|
Ryver
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: 1lb 3d Printed Battle bot by @Ryver | Stard Title: 1lb 3d Printed Battle bot by @Ryver | Stardance...
|
1792554487.9753454
|
1793159287.9753454
|
|
1787
|
Untitled project by @Yameton | Stardance
|
Yameton
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled project by @Yameton | Stardance
|
1792695025.2682798
|
1793299825.2682798
|
|
1788
|
My first slack bot! by @sunilsujith1816a | Stardan My first slack bot! by @sunilsujith1816a | Stardance...
|
sunilsujith1816a
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @sunilsujith1816a | Title: My first slack bot! by @sunilsujith1816a | Stardance...
|
1792508097.3176727
|
1793112897.3176727
|
|
1789
|
My awesome macropad! by @kushh | Stardance
|
kushh
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @kushh | Stardance
|
1792792383.2642903
|
1793397183.2642903
|
|
1790
|
My awesome macropad! by @roshni | Stardance
|
roshni
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @roshni | Stardance
|
1792702219.715046
|
1793307019.715046
|
|
1791
|
My first slack bot! by @gayatrijadhav9990 | Starda My first slack bot! by @gayatrijadhav9990 | Stardance...
|
gayatrijadhav9990
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My first slack bot! by @gayatrijadhav9990 | Title: My first slack bot! by @gayatrijadhav9990 | Stardance...
|
1792605013.8165698
|
1793209813.8165698
|
|
1792
|
The Agastya ADVANCED Wheelchair by @Krishiv | Star The Agastya ADVANCED Wheelchair by @Krishiv | Stardance...
|
Krishiv
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: The Agastya ADVANCED Wheelchair by @Krishiv Title: The Agastya ADVANCED Wheelchair by @Krishiv | Stardance...
|
1792781289.216717
|
1793386089.216717
|
|
1793
|
GetToSpace - A new Beginning by @theskriptkid | St GetToSpace - A new Beginning by @theskriptkid | Stardance...
|
theskriptkid
|
1
|
22.61
|
161
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-02T22:05:02Z", "hours": 20.0, "multiplier": 8.7, "payout": 161, "blessing": "neutral", "text": "This was an cool Projekt, I had really fun working on it and Im proud of what this became! I didnt thought I would invest so many houres into it, but now, as the foundation lays, I can easily add more levels, bosses and more fun! I already have plans for it like more and new levels! These 5 Levels are more of an introduktion to the mechanics, so the next levels will get bigger and more challenging, dont worry! Also cool was that this is my first real projekt with an Game engine!", "repo": "https://github.com/TherealONE12/GetToSpace-NewBeginning", "demo": "https://therealallinone.itch.io/gettospace-remake"}]...
|
[{"post_id": 52614, "ts": "202 [{"post_id": 52614, "ts": "2026-08-22T20:32:26Z", "hours": 1.395, "text": "Hey There! I added finally afther a way too long pause a new level, introduced in stage 2 a completly new camerasystem/worlddesign, and tried new graphics, though rn they look completly dead. But will fix them tomorrow in the morning."}, {"post_id": 43521, "ts": "2026-08-08T20:49:57Z", "hours": 1.2111, "text": "Added Settings screen and a Useless test setting, modified a Level for bug remving and added missing textures"}, {"post_id": 39738, "ts": "2026-08-02T21:58:43Z", "hours": 3.6292, "text": "Finally finished everything, im Proud how It turned out! Hope you will have fun and please report bugs/ Tell me what you want improved. I added Music, SFX, Animations (sadly no secrets, yet) Lets see where this goes…"}, {"post_id": 31980, "ts": "2026-07-20T20:18:46Z", "hours": 2.4208, "text": "Did some work oday and yesterday, really happy how it turned out :) On the 2. Picture you see my Animation chart for the 2cnd phase of the 1. boss"}, {"post_id": 30094, "ts": "2026-07-17T12:23:26Z", "hours": 1.6667, "text": "I have worked a bit and managed to get back to the Version bevore the mayor Code refactoring. However, now still a few stuf f is needed like SFX (Very important!), Music (also important) And Animations for the boss/Level transfer (Nice to have). Oh, and also I need a banner… But I cant draw… well, how bad can it be, right???"}, {"post_id": 19509, "ts": "2026-06-30T20:41:25Z", "hours": 1.3411, "text": "I made an new base_level_komplex wich is able to add buttons/change animations/stuff while only editing 1 fle instead of many. This change adds way easier of adding an back button, reset button or/and home button (and maybe even more!) Also all variables can be overridden with just $path/to/node.myvariable = 0 The Nect tim I need still to add the Boss 1 level the Signals back and then I will ad an Back button to stop a level! (without the need of relaunching the game)"}, {"post_id": 13736, "ts": "2026-06-22T15:00:26Z", "hours": 6.5106, "text": "I have made mayor Progress on the Bossfight and added some more phases. On the 1. Picture, you see how the fun looks for me on the dev side. On the 2. Picture, It is the current Boss-level. I have added some Boster Pads, wich boosts you up a bit, and the Holes the boss is making (Once the animation is done) I still have to do the Following: A) Make the holes dissapear if they are not there B) Add the Boss in an Spaceship spritesheet and when he is hurt (last phase) C) Make animations for the phases and when he is spawning/ Defeated etc. But thats for the next Time ;) Until then!"}, {"post_id": 5845, "ts": "2026-06-09T19:50:31Z", "hours": 1.7231, "text": "Added some new Leves and a Level Selector :)"}, {"post_id": 2218, "ts": "2026-06-04T16:29:28Z", "hours": 2.7411, "text": "I made the first level of my Game GetToSpace, wich I started in Flavortown in pure C but couldn’t finish. So im remaking it now “professionally” with Godot!"}]...
|
Title: GetToSpace - A new Beginning by @theskriptk Title: GetToSpace - A new Beginning by @theskriptkid | Stardance
Devlogs:
I made the first level of my Game GetToSpace, wich I started in Flavortown in pure C but couldn’t finish. So im remaking it now “professionally” with Godot!
Added some new Leves and a Level Selector :)
I have made mayor Progress on the Bossfight and added some more phases. On the 1. Picture, you see how the fun looks for me on the dev side. On the 2. Picture, It is the current Boss-level. I have added some Boster Pads, wich boosts you up a bit, and the Holes the boss is making (Once the animation is done) I still have to do the Following: A) Make the holes dissapear if they are not there B) Add the Boss in an Spaceship spritesheet and when he is hurt (last phase) C) Make animations for the phases and when he is spawning/ Defeated etc. But thats for the next Time ;) Until then!
I made an new base_level_komplex wich is able to add buttons/change animations/stuff while only editing 1 fle instead of many. This change adds way easier of adding an back button, reset button or/and home button (and maybe even more!) Also all variables can be overridden with just $path/to/node.myvariable = 0 The Nect tim I need still to add the Boss 1 level the Signals back and then I will ad an Back button to stop a level! (without the need of relaunching the game)
I have worked a bit and managed to get back to the Version bevore the mayor Code refactoring. However, now still a few stuf f is needed like SFX (Very important!), Music (also important) And Animations for the boss/Level transfer (Nice to have). Oh, and also I need a banner… But I cant draw… well, how bad can it be, right???
Did some work oday and yesterday, really happy how it turned out :) On the 2. Picture you see my Animation chart for the 2cnd phase of the 1. boss
Finally finished everything, im Proud how It turned out! Hope you will have fun and please report bugs/ Tell me what you want improved. I added Music, SFX, Animations (sadly no secrets, yet) Lets see where this goes…
Added Settings screen and a Useless test setting, modified a Level for bug remving and added missing textures
Hey There! I added finally afther a way too long pause a new level, introduced in stage 2 a completly new camerasystem/worlddesign, and tried new graphics, though rn they look completly dead. But will fix them tomorrow in the morning.
Ships:
This was an cool Projekt, I had really fun working on it and Im proud of what this became! I didnt thought I would invest so many houres into it, but now, as the foundation lays, I can easily add more levels, bosses and more fun! I already have plans for it like more and new levels! These 5 Levels are more of an introduktion to the mechanics, so the next levels will get bigger and more challenging, dont worry! Also cool was that this is my first real projekt with an Game engine!...
|
1792986938.8482716
|
1793073338.8482716
|
|
1794
|
My awesome macropad! by @yellowphoenix | Stardance
|
yellowphoenix
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @yellowphoenix | St Title: My awesome macropad! by @yellowphoenix | Stardance...
|
1792561864.422974
|
1793166664.422974
|
|
1795
|
My awesome macropad! by @shookjohnj | Stardance
|
shookjohnj
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @shookjohnj | Stard Title: My awesome macropad! by @shookjohnj | Stardance...
|
1792695180.4864192
|
1793299980.4864192
|
|
1796
|
NULL
|
NULL
|
0
|
0.0
|
0
|
[]
|
[]
|
|
1792925671.6750267
|
1793789671.6750267
|
|
1797
|
Untitled project by @yellowphoenix | Stardance
|
yellowphoenix
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled project by @yellowphoenix | Starda Title: Untitled project by @yellowphoenix | Stardance...
|
1792677148.7157896
|
1793281948.7157896
|
|
1798
|
My awesome macropad! by @BAM | Stardance
|
BAM
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @BAM | Stardance
|
1792662794.194103
|
1793267594.194103
|
|
1799
|
Untitled project by @Raj_Kapoor_Gautam | Stardance
|
Raj_Kapoor_Gautam
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled project by @Raj_Kapoor_Gautam | St Title: Untitled project by @Raj_Kapoor_Gautam | Stardance...
|
1792490086.396623
|
1793094886.396623
|
|
1800
|
My awesome macropad! by @Pianocraft1YT | Stardance
|
Pianocraft1YT
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @Pianocraft1YT | St Title: My awesome macropad! by @Pianocraft1YT | Stardance...
|
1792731280.1901577
|
1793336080.1901577
|