|
56504
|
LucidOS by @Snetch | Stardance
|
Snetch
|
1
|
17.81
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-10T13:10:54Z", "hours": 13.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "i made an online desktop OS called LucidOS , the first idea was to make it a creepy OS that evolves over time but i changed the idea to make it so people can create small apps/games in it with the custom Lucid script , it was made to look easy and beginer freindly , people can publish those apps , i review the apps and if accepted the app will be shown in lucid store where other users can try your app ! , there are also cool built in apps such as lucid media and Lucid paint , you can create musics , and make simple cool animations , the LucidOS+ is working but the payment method isnt , since i am a minor i made the payment method only in test mode , DONT PUT YOUR CARD INFOS , there is the terminal with cool commands , and custom wallpaper for the OS , i struggled with the project since i have a lot of studies for bachelor but AI helped me complete the project , i am proud of making my first functional project since all the projects before failed , contact me at my email [email protected] for bugs or cool features and enjoy !", "repo": "https://github.com/Snetchy09/LucidOS/", "demo": "https://snetchy09.github.io/LucidOS/"}]...
|
[{"post_id": 73069, "ts": "202 [{"post_id": 73069, "ts": "2026-09-24T09:54:43Z", "hours": 1.8347, "text": "buku buku! added themes , rewrote some scripts , optimized and the orb eye follow the cursor now !"}, {"post_id": 69290, "ts": "2026-09-16T19:03:58Z", "hours": 2.9706, "text": "added intro for the OS and some simple musics i found , so you dont get bored , well typically OSs dont have music in them but whatever"}, {"post_id": 65342, "ts": "2026-09-10T12:57:46Z", "hours": 4.9172, "text": "finished working on the OS !!!! you can try it out now , hope you like it , and also report any bugs and dont buy the LucidOS+ since it is in test mode"}, {"post_id": 60292, "ts": "2026-09-02T15:48:38Z", "hours": 2.5389, "text": "#Devlog 3 , i tried to add a whole lucid programing lang wich i named lucidscript , nothing fance but i keep getting a lot of errors , at the current time , i added lucid studio where users create simple apps that run in the OS and get submited to me and review them before adding them to lucid store where other useres can try community made apps !, that it for now"}, {"post_id": 59414, "ts": "2026-09-01T07:17:47Z", "hours": 0.765, "text": "#Devlog 2 , i made the animation smoother and now the windows appear on top icons and the orb , that it for now"}, {"post_id": 59198, "ts": "2026-08-31T21:07:39Z", "hours": 4.9867, "text": "#devlog 1 , here is the test page https://snetchy09.github.io/LucidOS/ i made an OS based on hallucinations , it wont be creepy like those games and it will remain functional , that part still wasnt implemented as i am trying to make the full OS with the apps and stuff , current working apps are : browser(only weki works) , notes , media , calculator , terminal , lucid store ( it only shows apps but won’t download apps at this moment ) , settings , text editor/files , some apps are unfinished and there are some bugs , yall can comment if you find any and thank you!"}]...
|
Title: LucidOS by @Snetch | Stardance
Devlogs:
#d Title: LucidOS by @Snetch | Stardance
Devlogs:
#devlog 1 , here is the test page https://snetchy09.github.io/LucidOS/ i made an OS based on hallucinations , it wont be creepy like those games and it will remain functional , that part still wasnt implemented as i am trying to make the full OS with the apps and stuff , current working apps are : browser(only weki works) , notes , media , calculator , terminal , lucid store ( it only shows apps but won’t download apps at this moment ) , settings , text editor/files , some apps are unfinished and there are some bugs , yall can comment if you find any and thank you!
#Devlog 2 , i made the animation smoother and now the windows appear on top icons and the orb , that it for now
#Devlog 3 , i tried to add a whole lucid programing lang wich i named lucidscript , nothing fance but i keep getting a lot of errors , at the current time , i added lucid studio where users create simple apps that run in the OS and get submited to me and review them before adding them to lucid store where other useres can try community made apps !, that it for now
finished working on the OS !!!! you can try it out now , hope you like it , and also report any bugs and dont buy the LucidOS+ since it is in test mode
added intro for the OS and some simple musics i found , so you dont get bored , well typically OSs dont have music in them but whatever
buku buku! added themes , rewrote some scripts , optimized and the orb eye follow the cursor now !
Ships:
i made an online desktop OS called LucidOS , the first idea was to make it a creepy OS that evolves over time but i changed the idea to make it so people can create small apps/games in it with the custom Lucid script , it was made to look easy and beginer freindly , people can publish those apps , i review the apps and if accepted the app will be shown in lucid store where other users can try your app ! , there are also cool built in apps such as lucid media and Lucid paint , you can create musics , and make simple cool animations , the LucidOS+ is working but the payment method isnt , since i am a minor i made the payment method only in test mode , DONT PUT YOUR CARD INFOS , there is the terminal with cool commands , and custom wallpaper for the OS , i struggled with the project since i have a lot of studies for bachelor but AI helped me complete the project , i am proud of making my first functional project since all the projects before failed , contact me at my email [email protected] for bugs or cool features and enjoy !...
|
1793346853.8856683
|
1793433253.8856683
|
|
16960
|
Frictionless by @Alberto4944 | Stardance
|
Alberto4944
|
0
|
0.31
|
0
|
[]
|
[{"post_id": 7307, "ts": "2026 [{"post_id": 7307, "ts": "2026-06-12T05:26:30Z", "hours": 0.3094, "text": "Working on the coding part, also the title is wrong. This is my computer vision x table tennis coaching project."}]...
|
Title: Frictionless by @Alberto4944 | Stardance
D Title: Frictionless by @Alberto4944 | Stardance
Devlogs:
Working on the coding part, also the title is wrong. This is my computer vision x table tennis coaching project....
|
1792799339.006091
|
1793404139.006091
|
|
61619
|
hackth pad by @hann | Stardance
|
hann
|
0
|
2.22
|
0
|
[]
|
[{"post_id": 73079, "ts": "202 [{"post_id": 73079, "ts": "2026-09-24T10:28:42Z", "hours": 0.5333, "text": "the extruding thing didnt work so i cried"}, {"post_id": 72673, "ts": "2026-09-23T13:51:16Z", "hours": 0.9731, "text": "i designed the outercase before it crashed (mylaptop)"}, {"post_id": 71828, "ts": "2026-09-21T16:49:07Z", "hours": 0.3, "text": "i had to redo the pcb cus it was bad :/"}, {"post_id": 67109, "ts": "2026-09-13T05:18:13Z", "hours": 0.4167, "text": "i made a schematic and the pcb and then my pc died :D"}]...
|
Title: hackth pad by @hann | Stardance
Devlogs:
i Title: hackth pad by @hann | Stardance
Devlogs:
i made a schematic and the pcb and then my pc died :D
i had to redo the pcb cus it was bad :/
i designed the outercase before it crashed (mylaptop)
the extruding thing didnt work so i cried...
|
1793040732.6797614
|
1793645532.6797614
|
|
65362
|
MCQ MASTER by @Obito | Stardance
|
Obito
|
1
|
1.0
|
1
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-24T18:35:54Z", "hours": 1.0, "multiplier": 1.26, "payout": 1, "blessing": "neutral", "text": "i know my project is still on the beginning stage but the reason i ship this one is to communicate with the authorities that i am a 17 years old from south India i just heard about this event 3 days ago as i started lately i can’t use my full potential in less time. I’m now very frustrated that why projects get Ai flagged i just you Ai to final optimization to make the code looks clean. but the review simply says that your project contains heavy Ai code usage i don’t know how they even say this and my only goal is to get my dream keyboard AULA F75 which is very useful for me as my laptop keys are not working properly(chunky and sticky) i have 110 stardust now and i want 290 more so is this any other ways to get the stardust rather than shipping project. and any other ways to get that keyboard (Due to my financial conditions ) i can’t able to afford for a keyboard I don’t even have a proper internet connection I’m just using the mobile hotspot for the internet connection. so I Kindly request your team to give me a proper reply through this ship reply. I’m really frustrated and mentally become sick like i hit the peak level of the depression. The Only reason i accepts this stress and pain is to get that AULA F75 keyboard if i can’t able to get that or lost my chance i will definitely gets scattered and broken. so please give me a proper reply for my all questions and i know its not a proper way but please help me get that keyboard", "repo": "https://github.com/tharunkumarCYSEC/MCQ-MASTER", "demo": "https://mcq-master-sigma.vercel.app/"}]...
|
[{"post_id": 73082, "ts": "202 [{"post_id": 73082, "ts": "2026-09-24T10:44:25Z", "hours": 0.3561, "text": "im finally completed the coding part im very excited to deploy my project"}, {"post_id": 73077, "ts": "2026-09-24T10:20:37Z", "hours": 0.2856, "text": "hey there im OBITO my project is a MCQ generator name MCQ MASTER its a kind of tool for the students who want to examine thier self my monk exam. now i completed the python codes for it."}]...
|
Title: MCQ MASTER by @Obito | Stardance
Devlogs:
Title: MCQ MASTER by @Obito | Stardance
Devlogs:
hey there im OBITO my project is a MCQ generator name MCQ MASTER its a kind of tool for the students who want to examine thier self my monk exam. now i completed the python codes for it.
im finally completed the coding part im very excited to deploy my project
Ships:
i know my project is still on the beginning stage but the reason i ship this one is to communicate with the authorities that i am a 17 years old from south India i just heard about this event 3 days ago as i started lately i can’t use my full potential in less time. I’m now very frustrated that why projects get Ai flagged i just you Ai to final optimization to make the code looks clean. but the review simply says that your project contains heavy Ai code usage i don’t know how they even say this and my only goal is to get my dream keyboard AULA F75 which is very useful for me as my laptop keys are not working properly(chunky and sticky) i have 110 stardust now and i want 290 more so is this any other ways to get the stardust rather than shipping project. and any other ways to get that keyboard (Due to my financial conditions ) i can’t able to afford for a keyboard I don’t even have a proper internet connection I’m just using the mobile hotspot for the internet connection. so I Kindly request your team to give me a proper reply through this ship reply. I’m really frustrated and mentally become sick like i hit the peak level of the depression. The Only reason i accepts this stress and pain is to get that AULA F75 keyboard if i can’t able to get that or lost my chance i will definitely gets scattered and broken. so please give me a proper reply for my all questions and i know its not a proper way but please help me get that keyboard...
|
1793213748.231008
|
1793300148.231008
|
|
62294
|
first python project by @manayp | Stardance
|
manayp
|
1
|
4.36
|
7
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-16T22:43:58Z", "hours": 4.0, "multiplier": 1.97, "payout": 7, "blessing": "neutral", "text": "This is my first Python project EVER. And first of all I would like to thank Mosh from Youtube for teaching me Python. He helped me learn about loops and variables in a very easy method. Wordy is a terminal based guessing game that is inspired by Wordle. And the main goal is to figure out the 5 letter word in 6 or less tries. This recieves its data from Datamuses Api which gets English words that match the requirements and it matches and validates your answers each time you write in that terminal. I am proud of this because I honesty thought python was too hard for some reason (like the more complex stuff), and don’t get me wrong…it was… but I got the hang of it. I just gotta work on the loops and where to use them in the script. I HOPEEE YOU LIKE IT. I MADE IT IN MY SCHOOL BUS. LOL»>", "repo": "https://github.com/manayparikh1/Wordy", "demo": "https://github.com/manayparikh1/Wordy/releases/tag/v1.2.0"}]...
|
[{"post_id": 73090, "ts": "202 [{"post_id": 73090, "ts": "2026-09-24T11:23:03Z", "hours": 0.3553, "text": "The dictionary was broken according to the reviewers and I believe it was taking such a long time to load because it was pulling data from the apidictionary link so I changed it to the datamuse. This is what I think that happened. SO using claude for help I connected datamuse back to it and at first it did not work until I fixed another error (which was just spacing) and then I validated that the datamuse will work. And yes according to google it works and will continue to work. BElow is the exact code that was added"}, {"post_id": 69370, "ts": "2026-09-16T22:19:18Z", "hours": 0.6717, "text": "In the last 40 minutes I just created the readme and I had a huge problem with github until I realized that I just have not pushed it lol. So in my readme I included minor things like how much this means to me because this was my first py project ever and it worked out pretty well. I also talked about the dictionary/datamuse thing I used which was honestly very surprising to use because of how good it functioned. Lastly I mostly gave credits to everyone who helped me in the journey of this and yeah I had a great time, except for the fact that it felt harder than Html lol. Anyways adioss ill see u again in my next project. BTW i also leaerned how to create a release."}, {"post_id": 69349, "ts": "2026-09-16T21:12:20Z", "hours": 1.1739, "text": "I did not think Python was this hard to start off with…especially with html and css I can write a bunch of lines like 10x faster. It took me SOO long to write these python lines. Anyway I connected it to a dictionary with datamuse and now it should work much more efficiently because theres more word options. Because before I had to manually type them and I was too lazy to type a 3000+ word dataset. So yeah I did whatever I could do. With many youtube tutorials and a lot of failures I did it. But I could make it better. I am trying to test it right now but theres like 2 errors because i forget an import and A LOT OF PROBLEM WITH SPACING . But I am almost done I think. Anyway lets seee how it goes adioss."}, {"post_id": 68808, "ts": "2026-09-15T19:40:39Z", "hours": 1.8297, "text": "This is my first python project that I am making on stardance. I am a beginner in python and I am currently learning while coding from someone named Mosh on youtube. I decided to create a wordle sort of game but with twists (which I will think of). So right now already I finished 150 lines of code and was going to make the whole dictionary BUT…I realized it will take WAYY too long so why not connect the dictionary straight away instead of writing the whole dictionary out. So in these 150 lines of code it was honestly a bit hard to start off with but it reminded me kinda about typescript and html for some reason in the logic aspect but its not that much like them. I had problems with making functions and connecting pages but then I realized its like Scratch lol so it got kinda easier. So overall I need to change a lot including the code. Adios for now."}]...
|
Title: first python project by @manayp | Stardance Title: first python project by @manayp | Stardance
Devlogs:
This is my first python project that I am making on stardance. I am a beginner in python and I am currently learning while coding from someone named Mosh on youtube. I decided to create a wordle sort of game but with twists (which I will think of). So right now already I finished 150 lines of code and was going to make the whole dictionary BUT…I realized it will take WAYY too long so why not connect the dictionary straight away instead of writing the whole dictionary out. So in these 150 lines of code it was honestly a bit hard to start off with but it reminded me kinda about typescript and html for some reason in the logic aspect but its not that much like them. I had problems with making functions and connecting pages but then I realized its like Scratch lol so it got kinda easier. So overall I need to change a lot including the code. Adios for now.
I did not think Python was this hard to start off with…especially with html and css I can write a bunch of lines like 10x faster. It took me SOO long to write these python lines. Anyway I connected it to a dictionary with datamuse and now it should work much more efficiently because theres more word options. Because before I had to manually type them and I was too lazy to type a 3000+ word dataset. So yeah I did whatever I could do. With many youtube tutorials and a lot of failures I did it. But I could make it better. I am trying to test it right now but theres like 2 errors because i forget an import and A LOT OF PROBLEM WITH SPACING . But I am almost done I think. Anyway lets seee how it goes adioss.
In the last 40 minutes I just created the readme and I had a huge problem with github until I realized that I just have not pushed it lol. So in my readme I included minor things like how much this means to me because this was my first py project ever and it worked out pretty well. I also talked about the dictionary/datamuse thing I used which was honestly very surprising to use because of how good it functioned. Lastly I mostly gave credits to everyone who helped me in the journey of this and yeah I had a great time, except for the fact that it felt harder than Html lol. Anyways adioss ill see u again in my next project. BTW i also leaerned how to create a release.
The dictionary was broken according to the reviewers and I believe it was taking such a long time to load because it was pulling data from the apidictionary link so I changed it to the datamuse. This is what I think that happened. SO using claude for help I connected datamuse back to it and at first it did not work until I fixed another error (which was just spacing) and then I validated that the datamuse will work. And yes according to google it works and will continue to work. BElow is the exact code that was added
Ships:
This is my first Python project EVER. And first of all I would like to thank Mosh from Youtube for teaching me Python. He helped me learn about loops and variables in a very easy method. Wordy is a terminal based guessing game that is inspired by Wordle. And the main goal is to figure out the 5 letter word in 6 or less tries. This recieves its data from Datamuses Api which gets English words that match the requirements and it matches and validates your answers each time you write in that terminal. I am proud of this because I honesty thought python was too hard for some reason (like the more complex stuff), and don’t get me wrong…it was… but I got the hang of it. I just gotta work on the loops and where to use them in the script. I HOPEEE YOU LIKE IT. I MADE IT IN MY SCHOOL BUS. LOL»>...
|
1793209961.4423382
|
1793296361.4423382
|
|
38432
|
Servo Utility Platform by @Kacenta | Stardance
|
Kacenta
|
1
|
74.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-24T14:18:05Z", "hours": 74.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Devlog #8 - Actually Finished S.U.P. - v1.0 Okay, NOW it’s finished. GO HERE TO SEE VIDEO Last time I said we were getting close. Now I can finally confirm it! S.U.P. is finished. There was still a surprising amount of work left after v0.9.1, especially around handling different servo types. I ended up reworking a lot of the servo logic to make everything work together properly. Important Features Added Full support for different servo types , including 90° , 180° positional , and 360° continuous-rotation servos Added working pulse-width calibration for servo control Added working servo sweeps for testing positional servos Finished the servo type handling system Improved calibration logic so it works correctly with the selected servo type Finished saved profile handling , including persistent storage across resets Finished the joystick calibration system Completed the C.E.A. Laser Calibration system Finished the Settings , Debug , Calibration , Manual Control , and other menu systems Added and tested the final error handling and debugging tools Final Testing I tested the main workflows with real hardware instead of relying on a simulation (as I always have). The Demo Video The final demo video is finished and uploaded here: https://www.youtube.com/watch?v=IzWqsmjGq4U I tried to show the project itself rather than only talking about the code and development process. One thing I did not manage to include properly was footage of the full physical servo calibration process. The only calibration footage I kept was the joystick calibration. Everything works though :D. Sorry about that. The actual calibration system and everything else was still tested and works. I explain the missing footage in the video. Final Result S.U.P. started as a small ESP32 servo tester and grew into a much larger system than I originally expected. TODO There are still ideas I might work on in the future, but they are no longer required for the first release: Custom PCB Custom 3D Case Advanced diagnostics (I’ll have to open up the servo) General code cleanup and optimization For now, though: S.U.P. v1.0 is done.", "repo": "https://github.com/Denkata7622/Servo-Utility-Platform", "demo": ""}]...
|
[{"post_id": 73094, "ts": "202 [{"post_id": 73094, "ts": "2026-09-24T11:30:47Z", "hours": 7.7653, "text": "Devlog #8 - Actually Finished S.U.P. - v1.0 Okay, NOW it’s finished. (GO HERE TO SEE VIDEO: https://www.youtube.com/watch?v=IzWqsmjGq4U ) Last time I said we were getting close. Now I can finally confirm it! S.U.P. is finished. There was still a surprising amount of work left after v0.9.1, especially around handling different servo types. I ended up reworking a lot of the servo logic to make everything work together properly. Important Features Added Full support for different servo types , including 90° , 180° positional, and 360° continuous-rotation servos Added working pulse-width calibration for servo control Added working servo sweeps for testing positional servos Finished the servo type handling system Improved calibration logic so it works correctly with the selected servo type Finished saved profile handling , including persistent storage across resets Finished the joystick calibration system Completed the C.E.A. Laser Calibration system Finished the Settings , Debug , Calibration , Manual Control , and other menu systems Added and tested the final error handling and debugging tools Final Testing I tested the main workflows with real hardware instead of relying on a simulation (as I always have). The Demo Video The final demo video is finished and uploaded here: https://www.youtube.com/watch?v=IzWqsmjGq4U I tried to show the project itself rather than only talking about the code and development process. One thing I did not manage to include properly was footage of the full physical servo calibration process. The only calibration footage I kept was the joystick calibration. Everything works though :D. Sorry about that. The actual calibration system and everything else was still tested and works. I explain the missing footage in the video. Final Result S.U.P. started as a small ESP32 servo tester and grew into a much larger system than I originally expected. TODO There are still ideas I might work on in the future, but they are no longer required for the first release: Custom PCB Custom 3D Case Advanced diagnostics (I’ll have to open up the servo) General code cleanup and optimization For now, though: S.U.P. v1.0 is done."}, {"post_id": 69646, "ts": "2026-09-17T14:15:59Z", "hours": 7.7436, "text": "Devlog #7 - Getting Closer S.U.P. - v0.9.1 To be honest, i kinda lied last time… There is still a lot of work to do, espesially about the servoType handling Important Features Added Added WORKING Joystick Calibration + integrated additional calibration logic directly in joystick movement (toggable, of course) You can finally use the manualControl() with a fully calibrated custom profile . Changing the selected profile now updates automatically . Huge improvements to Selecting Servo Type. Now calibration works for both 90° and 180° servos. Added Servo Test Sweep ! Added a custom option in the main menu to change profiles Wrote the About me Section (Finally) Less Important Features Added Isolated updateSelectedProfile() in its own function so i can reuse it (like 100+ lines of code saved there…) Added debugger function (in “Debug” menu) for testing the joystick calibration Added a global int - actionDelay = 300ms. I have always added a delay(300) before changing display screens, starting/ending actions, ect.. to keep the app posished and remove the irritation of “fake”/“accidental” double, triple and spam clicks Fixed a bug in the normal joystick debugger function TODO [ ] Add support for 360 deg servos basically writing a custom new version of each function but for rotating servos because they are fundamentally different then positional servos (such as 90° and 180°) and don’t integrate well into the current ecosystem. [ ] Show which saved profile is for which servo type [ ] Film the video for the v1.0 release (we are really getting closer :D)."}, {"post_id": 65921, "ts": "2026-09-11T11:51:55Z", "hours": 10.3236, "text": "Devlog #6 - THE “ALMOST FINISHED” [Some original greeting here]! Time goes by, so does progress on this calibrator tool. I really started to like it to be honest. It has been really fun making all the additional systems around the calibration, such as the “Debug”, “Settings”, (soon “About” too), all the UI polish and case handling. Even the NVS storage setup (basically the real ESP32 storage instead of the RAM-like one it usually uses) teached me a lot and I’m proud of how far this project has come. But enough yapping. I FINALLY Taped the Laser module to the servo bracket! Also, I put it in a box of TicTac (image below XD) so it doesnt fall and give wrong reading. Then I filled the box with COINS so it doesn’t wiggle during servo movement. Just WILD XD So, what did i update in this 1 week? - Well… A LOT. If i had to list it: Made the settings finally work! Fixed a bug where option scroll started when there was no need at all Saved all settings, preferences and user profiles to permament NVS storage Changed ALL delay() instances with millis() (Where possible/wanted). Just this took like 4 hours :I (Like I said before) - FINALLY Taped the Laser module to the servo bracket! Also, I put it in a box of TicTac (image below XD) so it doesnt fall and give wrong reading. Then I filled the box with coins so it gets heavy enough to not wiggle during joystick movement :D Changed a breadboard because for some reason my jumper wires started losing lots of voltage and the connectors were really loose for some reason Polished the UI, A LOT. I probably plan to change from normal lists to Flipper Zero-style menu soon. Added a “Simulate Errors” feature in the “Debug” menu to test if my error and case handling works well Fixed multiple smaller bugs… I think that’s pretty much it, there could be more smaller things I don’t remember rn (sorry about that). Notes Sadly went a little above 10 hours this time D; - I sill have lots of things to do - mainly polish messages, small inconsistensies, ect. I kinda gave up on adding a keyboard - it is pretty unnecessary and will add a lot more cases to handle for almost no benefit. These days I will be filming the final video for the v1.0 release! I accept any ideas from you for future features and filming advice."}, {"post_id": 61815, "ts": "2026-09-04T22:00:19Z", "hours": 9.6508, "text": "Devlog #5 - Settings & Profile Storage ## Unknown - 5th September 2026 ### Version: v0.4.0-settinger Hello again! Yeah… I kinda forgot the journal existed again XD A LOT has changed since the last devlog, especially internally. The project is starting to feel less like a giant prototype held together by hopes and prayers and more like an actual tool. ### Main events - Finally started working properly on the Settings menu ! - Added persistent settings using the ESP32’s Preferences storage - Basically all the important environment variables are now stored, including: - - Servo / joystick pins - - Axis inversion and swapping - - Speed settings and multipliers - - Calibration parameters - - Joystick deadzones and offsets - - Debug mode - - Display and scrolling settings - - Calibration list information - - Various delays and timing values - Added saveSettings() and loadSettings() functions so I don’t have to hardcode everything every single time the board boots - Settings also have default values, so if there is no saved value yet, the program still has a working configuration - Started separating the stored data into different Preferences namespaces , so Settings and Servo Profiles don’t all get thrown into one giant storage section - Calibration Lists got actual persistent storage, meaning the calibration data doesn’t disappear every time the ESP32 restarts - Added more profile-related error handling - Continued expanding the 3-digit error code system , which is starting to look suspiciously like I accidentally created my own mini error protocol XD - Did a LOT more bug hunting and general code cleanup - Also spent way too much time making tiny UI things work properly because apparently I have decided that a 128x64 OLED deserves the same amount of attention as a full desktop application :I ### Some of the more important stuff The biggest thing here is probably the storage system. Before, most of the variables were basically just sitting in the code waiting for me to change them manually. Now I can save them to the ESP32 and load them again later. For example: settings . putDouble ( \"speedMultiplier\" , speedMultiplier ); and later: speedMultiplier = settings . getDouble ( \"speedMultiplier\" , 1 ); So if I change a setting, restart the board, and come back later, it stays changed. This also means I finally don’t have to keep scrolling to the top of a 1500+ line sketch every time I want to change something XD ### What’s next? - [ ] Actually TEST the full calibration workflow with a real servo - [ ] Add an X-axis animation to the Settings menu when changing variables - [ ] Add a way to name calibration list slots - [ ] Make the amount of list slots dynamically generated instead of hardcoded - - [ ] Add an “Add New Slot” option - [ ] Add an on-screen keyboard or find a decent library for one - [ ] Add a way to connect to the ESP32-S3’s second USB port and extract saved servo profiles as files - [ ] Keep murdering bugs until the project stops finding new ones ### Notes I’m starting to realize that the actual servo movement part was probably the easy bit. The annoying part is everything around it. Menus, storage, scrolling, profile management, error handling, input validation… At least it makes the project way more interesting :D"}, {"post_id": 53899, "ts": "2026-08-24T16:29:53Z", "hours": 7.9342, "text": "Devlog #4 - UI Polish Hello! Probably not one of the most impressive things, but a good UI is something people always respect (just subcounciously… ). Added prettyPrint() funtion, which essentially gives me the ability to parse any long message into separate pages with skippable delays. All you need to do is just click once you finished reading the page. For now I’m experimenting with the delay but 7.5 seconds feels natural for 64x128 display (probably around ~40 words). Sadly, I need to rework some of the functions for the calibration picker because there is just no way to go back to the main menu at this point.. Added some Display Error Function, which pretty much relies on prettyPrint(). Added some helper functions for things i consistently call to lower the ammount of same-purpose code and managed to bring the sketch down to ~1500 lines! The attached image is the skippable delay I kinda invented because I didn’t want to use milis() XD."}, {"post_id": 48030, "ts": "2026-08-16T10:02:26Z", "hours": 9.9022, "text": "Devlog #3 - Servo Profiles Hello everyone, We just hit a new milestone in the development of this project: Laser Calibration Profiles How do They Work? Right now we have a menu where you can choose between 3 calibration profiles each having a different ammount of samples ( the more, the better, but slower due to the higher ammount of measurements) Basic ( 5 samples ) [0, 45, 90, 135, 180] Accurate ( 9 samples ) [0, 22.5, 45, 67.5, 90, 112.5, 135, 157.5, 180] Servophile ( 17 samples ) [0, 11.25, 22.5, 33.75, 45, 56.25, 67.5, 78.75, 90, 101.25, 112.5, 123.75, 135, 146.25, 157.5, 168.75, 180] (I plan on adding a Super Servophile profile with 33 samples soon!) After choosing the profile (and - in the future - one of the 3 slots each list has), the user will go through with recording distances for each angle using a marking on the wall (use a pencil or just tape a paper and draw on it) That’s it! (At least for the manual input XD) Then the list with colleced measurements gets put in a script and thrown out as a list of angles. Now that’s it! Next Features I plan on adding an expected measurement section in the UI so the user has a better idea what the expected output should be during calibration (also helps with debugging ;) ) Turning the List of angles into a complex map that can directly transform digital angles to calibrated ones Actually using the calilbration profiles when moving servos Adding all environment variables to settings so you can change them during runtime!"}, {"post_id": 39364, "ts": "2026-08-02T09:24:02Z", "hours": 13.0031, "text": "Devlog #2 - The OLED Age SUP! It has been like a week since the last devlog… and a lot happened to be honest. (If you don’t wanna read, just go down to see the SUPER cinematic demo I made for you <3 ) If you read the first devlog, you might remember that the plan was basically: “Make the Servo move” “Then add a Joystick” and then: “Make an OLED Menu” Well, I just finished the OLED Menu! THE CODE This time I spent a LOT more time on the actual code structure (+4 hours wondering why jumper wires (the bare ones with no heads) drop so much voltage, but we don’t talk about that). The sketch has grown up to like ~700 lines, but more importantly, I started optimising it and making the code reusable instead of just putting everything into loop() . I have broken the code down into independent functions like: calculateOffCenter() offCenterToDirection() buildMenu() callMenuOption() drawScrollbar() ... So now everything is more optimised and easier to expand and debug! THE MENU Our menu now consists of: - \"Manual Control\" - \"Calibration\" - \"Debug\" - \"Settings\" I made buildMenu() take an array of options and their length, so I can reuse the same function for all menus. I also added a scrollbar (cause apparently four lines of text just wasn’t enough). Calibration Time This is where things got interesting. I started working on the Calibration menu. Right now it has: - Simple Calibr. - Pulse Width Calibr. - C.E.A. LASER Calibr. - 360deg Servo - 180deg Servo - Go Back Some of these are still placeholders, but LASER Calibration is halfway done. C.E.A. LASER CALIBRATION Yes. I finally found a purpose to my year old laser module :D The idea is pretty simple. Tape a laser to the servo head. Put a piece of paper on a wall. Point the laser at it. Move it a certain ammount of degrees (e.g. 5deg) Then use the distance between the 2 points to figure out how much degrees the servo ACTUALLY moved. And this is where the math comes in. If the servo is L centimeters away from the wall, and the laser spot moves X centimeters, we can calculate the angle with: θ = arctan(X / L) So instead of trusting the servo when sayin’: “Yeah, that’s 90° bro” S.U.P. is able to measure where the servo is actually located. And the best part is that the user doesn’t need to buy some expensive angle sensor (which is the whole idea of the project btw). You need: A laser A ruler A piece of paper A pencil A wall (I hope you have one C: ) That’s it. And I think that’s pretty damn cool. The current prototype goes through: 0° 45° 90° 135° 180° and lets me enter the measured distance (in cm ofc, no freedom units… ) with the joystick. It isn’t finished yet, but the basic system is working. What’s Next? Finish C.E.A. Laser Calibration Make the angle calculation automatic Add proper servo calibration profiles Work on Pulse Width Calibration Figure out 180° vs 360° servos Add joystick calibration Keep improving the OLED interface And hopefully make S.U.P. look less like a breadboard project and more like an actual tool."}, {"post_id": 35165, "ts": "2026-07-26T12:42:25Z", "hours": 7.8275, "text": "Devlog #1 - The Rise of S.U.P. Hello everyone, Welcome to the first ever Devlog of the Servo Utility Platform (aka. S.U.P.) This is the project I decided to make for Stardance , and the first ever solely non-AI-dependent one :D Overview So what even is S.U.P.? [ Demo can be found at the Bottom if you don’t like reading explanations :D] The Servo Utility Platform is, I won’t lie, nothing super wow . The idea is that instead of making a random test circuit every time I wanna test a new servo, I can use S.U.P. to quickly test it, calibrate it, and see if something is wrong with it. At least that’s the plan cuz right now it’s still a bunch of wires on a breadboard :D Hardware Used Currently, S.U.P. uses: ESP-WROOM-32 x1 Small I2C OLED 128x64 Display x1 Joystick Module x1 MG90S Servo Module x1 830-point Breadboard x1 A suspicious amount of jumper wires… The Beginning The first version was… really simple XD. It was literally an ESP32 shooting electricity through a wire and nothing more. [Check out the “Fancy This” picture at the bottom] The goal wasn’t to make something impressive. It was just to make sure I can do the simplest thing imaginable: “Can I make the servo move?” The answer was yes (thankfully XD). After that I added a Volume Knob ( potentiometer ). [Check the Picture that features it (it’s really sad that I can’t put the pictures in-between text)] This helped me control the servo angle , which made it more satisfying to play around with, but felt too weird. It felt like giving a static position to the servo, not making it move . The knob might work for a real 10$ servo tester but it’s just not my style . MEET: The Joystick So I replaced the potentiometer with his cooler Oklahoma bro: The Joystick . [A video of me “casually” testing the hardware can be found down below] And this is where it started feeling like the gadget of my dreams . Instead of: Pot position → Static Servo angle I first changed it to: Joystick Pot position → Static Servo angle wow! amazing! So I had to do a lil more work than changing one wire… The redesigned system was way better: Joystick x-axis position (still a pot just a fancy one ) → offCenter from 0 (we actaully use the middle of the pot as 0 and the ends as -1 and 1) → Velocity → Servo Speed Now moving the joystick slightly makes super small adjustments, while pushing it further makes the servo go wayy faster. To make this feel better, I made my own acceleration function instead of just using a simple linear movement. The final result feels surprisingly nice . Current Prototype Right now S.U.P. has: A working joystick-controlled servo system Acceleration-based movement Speed settings Adjustable servo limits Joystick deadzones A debugging system because manually adding and removing Serial.println() gets old really quickly :I [Now look at the Super Cinematic picture of that MG90S Servo] Things I Learned A few things I learned while making this: Joysticks are basically just two pots and a button The ESP32 ADC reads voltage , not “positions” Tuning acceleration functions is really worth it for making the movement feel good What’s Next? The next steps are: Add joystick calibration Find servo minimum and maximum angles (if even possible idk) Figure out how to detect 180° vs 360° servos Start building the OLED menu system (tbh sounds like the most interesting and hard part at the same time 🙏)"}]...
|
Title: Servo Utility Platform by @Kacenta | Starda Title: Servo Utility Platform by @Kacenta | Stardance
Devlogs:
Devlog #1 - The Rise of S.U.P. Hello everyone, Welcome to the first ever Devlog of the Servo Utility Platform (aka. S.U.P.) This is the project I decided to make for Stardance , and the first ever solely non-AI-dependent one :D Overview So what even is S.U.P.? [ Demo can be found at the Bottom if you don’t like reading explanations :D] The Servo Utility Platform is, I won’t lie, nothing super wow . The idea is that instead of making a random test circuit every time I wanna test a new servo, I can use S.U.P. to quickly test it, calibrate it, and see if something is wrong with it. At least that’s the plan cuz right now it’s still a bunch of wires on a breadboard :D Hardware Used Currently, S.U.P. uses: ESP-WROOM-32 x1 Small I2C OLED 128x64 Display x1 Joystick Module x1 MG90S Servo Module x1 830-point Breadboard x1 A suspicious amount of jumper wires… The Beginning The first version was… really simple XD. It was literally an ESP32 shooting electricity through a wire and nothing more. [Check out the “Fancy This” picture at the bottom] The goal wasn’t to make something impressive. It was just to make sure I can do the simplest thing imaginable: “Can I make the servo move?” The answer was yes (thankfully XD). After that I added a Volume Knob ( potentiometer ). [Check the Picture that features it (it’s really sad that I can’t put the pictures in-between text)] This helped me control the servo angle , which made it more satisfying to play around with, but felt too weird. It felt like giving a static position to the servo, not making it move . The knob might work for a real 10$ servo tester but it’s just not my style . MEET: The Joystick So I replaced the potentiometer with his cooler Oklahoma bro: The Joystick . [A video of me “casually” testing the hardware can be found down below] And this is where it started feeling like the gadget of my dreams . Instead of: Pot position → Static Servo angle I first changed it to: Joystick Pot position → Static Servo angle wow! amazing! So I had to do a lil more work than changing one wire… The redesigned system was way better: Joystick x-axis position (still a pot just a fancy one ) → offCenter from 0 (we actaully use the middle of the pot as 0 and the ends as -1 and 1) → Velocity → Servo Speed Now moving the joystick slightly makes super small adjustments, while pushing it further makes the servo go wayy faster. To make this feel better, I made my own acceleration function instead of just using a simple linear movement. The final result feels surprisingly nice . Current Prototype Right now S.U.P. has: A working joystick-controlled servo system Acceleration-based movement Speed settings Adjustable servo limits Joystick deadzones A debugging system because manually adding and removing Serial.println() gets old really quickly :I [Now look at the Super Cinematic picture of that MG90S Servo] Things I Learned A few things I learned while making this: Joysticks are basically just two pots and a button The ESP32 ADC reads voltage , not “positions” Tuning acceleration functions is really worth it for making the movement feel good What’s Next? The next steps are: Add joystick calibration Find servo minimum and maximum angles (if even possible idk) Figure out how to detect 180° vs 360° servos Start building the OLED menu system (tbh sounds like the most interesting and hard part at the same time 🙏)
Devlog #2 - The OLED Age SUP! It has been like a week since the last devlog… and a lot happened to be honest. (If you don’t wanna read, just go down to see the SUPER cinematic demo I made for you <3 ) If you read the first devlog, you might remember that the plan was basically: “Make the Servo move” “Then add a Joystick” and then: “Make an OLED Menu” Well, I just finished the OLED Menu! THE CODE This time I spent a LOT more time on the actual code structure (+4 hours wondering why jumper wires (the bare ones with no heads) drop so much voltage, but we don’t talk about that). The sketch has grown up to like ~700 lines, but more importantly, I started optimising it and making the code reusable instead of just putting everything into loop() . I have broken the code down into independent functions like: calculateOffCenter() offCenterToDirection() buildMenu() callMenuOption() drawScrollbar() ... So now everything is more optimised and easier to expand and debug! THE MENU Our menu now consists of: - "Manual Control" - "Calibration" - "Debug" - "Settings" I made buildMenu() take an array of options and their length, so I can reuse the same function for all menus. I also added a scrollbar (cause apparently four lines of text just wasn’t enough). Calibration Time This is where things got interesting. I started working on the Calibration menu. Right now it has: - Simple Calibr. - Pulse Width Calibr. - C.E.A. LASER Calibr. - 360deg Servo - 180deg Servo - Go Back Some of these are still placeholders, but LASER Calibration is halfway done. C.E.A. LASER CALIBRATION Yes. I finally found a purpose to my year old laser module :D The idea is pretty simple. Tape a laser to the servo head. Put a piece of paper on a wall. Point the laser at it. Move it a certain ammount of degrees (e.g. 5deg) Then use the distance between the 2 points to figure out how much degrees the servo ACTUALLY moved. And this is where the math comes in. If the servo is L centimeters away from the wall, and the laser spot moves X centimeters, we can calculate the angle with: θ = arctan(X / L) So instead of trusting the servo when sayin’: “Yeah, that’s 90° bro” S.U.P. is able to measure where the servo is actually located. And the best part is that the user doesn’t need to buy some expensive angle sensor (which is the whole idea of the project btw). You need: A laser A ruler A piece of paper A pencil A wall (I hope you have one C: ) That’s it. And I think that’s pretty damn cool. The current prototype goes through: 0° 45° 90° 135° 180° and lets me enter the measured distance (in cm ofc, no freedom units… ) with the joystick. It isn’t finished yet, but the basic system is working. What’s Next? Finish C.E.A. Laser Calibration Make the angle calculation automatic Add proper servo calibration profiles Work on Pulse Width Calibration Figure out 180° vs 360° servos Add joystick calibration Keep improving the OLED interface And hopefully make S.U.P. look less like a breadboard project and more like an actual tool.
Devlog #3 - Servo Profiles Hello everyone, We just hit a new milestone in the development of this project: Laser Calibration Profiles How do They Work? Right now we have a menu where you can choose between 3 calibration profiles each having a different ammount of samples ( the more, the better, but slower due to the higher ammount of measurements) Basic ( 5 samples ) [0, 45, 90, 135, 180] Accurate ( 9 samples ) [0, 22.5, 45, 67.5, 90, 112.5, 135, 157.5, 180] Servophile ( 17 samples ) [0, 11.25, 22.5, 33.75, 45, 56.25, 67.5, 78.75, 90, 101.25, 112.5, 123.75, 135, 146.25, 157.5, 168.75, 180] (I plan on adding a Super Servophile profile with 33 samples soon!) After choosing the profile (and - in the future - one of the 3 slots each list has), the user will go through with recording distances for each angle using a marking on the wall (use a pencil or just tape a paper and draw on it) That’s it! (At least for the manual input XD) Then the list with colleced measurements gets put in a script and thrown out as a list of angles. Now that’s it! Next Features I plan on adding an expected measurement section in the UI so the user has a better idea what the expected output should be during calibration (also helps with debugging ;) ) Turning the List of angles into a complex map that can directly transform digital angles to calibrated ones Actually using the calilbration profiles when moving servos Adding all environment variables to settings so you can change them during runtime!
Devlog #4 - UI Polish Hello! Probably not one of the most impressive things, but a good UI is something people always respect (just subcounciously… ). Added prettyPrint() funtion, which essentially gives me the ability to parse any long message into separate pages with skippable delays. All you need to do is just click once you finished reading the page. For now I’m experimenting with the delay but 7.5 seconds feels natural for 64x128 display (probably around ~40 words). Sadly, I need to rework some of the functions for the calibration picker because there is just no way to go back to the main menu at this point.. Added some Display Error Function, which pretty much relies on prettyPrint(). Added some helper functions for things i consistently call to lower the ammount of same-purpose code and managed to bring the sketch down to ~1500 lines! The attached image is the skippable delay I kinda invented because I didn’t want to use milis() XD.
Devlog #5 - Settings & Profile Storage ## Unknown - 5th September 2026 ### Version: v0.4.0-settinger Hello again! Yeah… I kinda forgot the journal existed again XD A LOT has changed since the last devlog, especially internally. The project is starting to feel less like a giant prototype held together by hopes and prayers and more like an actual tool. ### Main events - Finally started working properly on the Settings menu ! - Added persistent settings using the ESP32’s Preferences storage - Basically all the important environment variables are now stored, including: - - Servo / joystick pins - - Axis inversion and swapping - - Speed settings and multipliers - - Calibration parameters - - Joystick deadzones and offsets - - Debug mode - - Display and scrolling settings - - Calibration list information - - Various delays and timing values - Added saveSettings() and loadSettings() functions so I don’t have to hardcode everything every single time the board boots - Settings also have default values, so if there is no saved value yet, the program still has a working configuration - Started separating the stored data into different Preferences namespaces , so Settings and Servo Profiles don’t all get thrown into one giant storage section - Calibration Lists got actual persistent storage, meaning the calibration data doesn’t disappear every time the ESP32 restarts - Added more profile-related error handling - Continued expanding the 3-digit error code system , which is starting to look suspiciously like I accidentally created my own mini error protocol XD - Did a LOT more bug hunting and general code cleanup - Also spent way too much time making tiny UI things work properly because apparently I have decided that a 128x64 OLED deserves the same amount of attention as a full desktop application :I ### Some of the more important stuff The biggest thing here is probably the storage system. Before, most of the variables were basically just sitting in the code waiting for me to change them manually. Now I can save them to the ESP32 and load them again later. For example: settings . putDouble ( "speedMultiplier" , speedMultiplier ); and later: speedMultiplier = settings . getDouble ( "speedMultiplier" , 1 ); So if I change a setting, restart the board, and come back later, it stays changed. This also means I finally don’t have to keep scrolling to the top of a 1500+ line sketch every time I want to change something XD ### What’s next? - [ ] Actually TEST the full calibration workflow with a real servo - [ ] Add an X-axis animation to the Settings menu when changing variables - [ ] Add a way to name calibration list slots - [ ] Make the amount of list slots dynamically generated instead of hardcoded - - [ ] Add an “Add New Slot” option - [ ] Add an on-screen keyboard or find a decent library for one - [ ] Add a way to connect to the ESP32-S3’s second USB port and extract saved servo profiles as files - [ ] Keep murdering bugs until the project stops finding new ones ### Notes I’m starting to realize that the actual servo movement part was probably the easy bit. The annoying part is everything around it. Menus, storage, scrolling, profile management, error handling, input validation… At least it makes the project way more interesting :D
Devlog #6 - THE “ALMOST FINISHED” [Some original greeting here]! Time goes by, so does progress on this calibrator tool. I really started to like it to be honest. It has been really fun making all the additional systems around the calibration, such as the “Debug”, “Settings”, (soon “About” too), all the UI polish and case handling. Even the NVS storage setup (basically the real ESP32 storage instead of the RAM-like one it usually uses) teached me a lot and I’m proud of how far this project has come. But enough yapping. I FINALLY Taped the Laser module to the servo bracket! Also, I put it in a box of TicTac (image below XD) so it doesnt fall and give wrong reading. Then I filled the box with COINS so it doesn’t wiggle during servo movement. Just WILD XD So, what did i update in this 1 week? - Well… A LOT. If i had to list it: Made the settings finally work! Fixed a bug where option scroll started when there was no need at all Saved all settings, preferences and user profiles to permament NVS storage Changed ALL delay() instances with millis() (Where possible/wanted). Just this took like 4 hours :I (Like I said before) - FINALLY Taped the Laser module to the servo bracket! Also, I put it in a box of TicTac (image below XD) so it doesnt fall and give wrong reading. Then I filled the box with coins so it gets heavy enough to not wiggle during joystick movement :D Changed a breadboard because for some reason my jumper wires started losing lots of voltage and the connectors were really loose for some reason Polished the UI, A LOT. I probably plan to change from normal lists to Flipper Zero-style menu soon. Added a “Simulate Errors” feature in the “Debug” menu to test if my error and case handling works well Fixed multiple smaller bugs… I think that’s pretty much it, there could be more smaller things I don’t remember rn (sorry about that). Notes Sadly went a little above 10 hours this time D; - I sill have lots of things to do - mainly polish messages, small inconsistensies, ect. I kinda gave up on adding a keyboard - it is pretty unnecessary and will add a lot more cases to handle for almost no benefit. These days I will be filming the final video for the v1.0 release! I accept any ideas from you for future features and filming advice.
Devlog #7 - Getting Closer S.U.P. - v0.9.1 To be honest, i kinda lied last time… There is still a lot of work to do, espesially about the servoType handling Important Features Added Added WORKING Joystick Calibration + integrated additional calibration logic directly in joystick movement (toggable, of course) You can finally use the manualControl() with a fully calibrated custom profile . Changing the selected profile now updates automatically . Huge improvements to Selecting Servo Type. Now calibration works for both 90° and 180° servos. Added Servo Test Sweep ! Added a custom option in the main menu to change profiles Wrote the About me Section (Finally) Less Important Features Added Isolated updateSelectedProfile() in its own function so i can reuse it (like 100+ lines of code saved there…) Added debugger function (in “Debug” menu) for testing the joystick calibration Added a global int - actionDelay = 300ms. I have always added a delay(300) before changing display screens, starting/ending actions, ect.. to keep the app posished and remove the irritation of “fake”/“accidental” double, triple and spam clicks Fixed a bug in the normal joystick debugger function TODO [ ] Add support for 360 deg servos basically writing a custom new version of each function but for rotating servos because they are fundamentally different then positional servos (such as 90° and 180°) and don’t integrate well into the current ecosystem. [ ] Show which saved profile is for which servo type [ ] Film the video for the v1.0 release (we are really getting closer :D).
Devlog #8 - Actually Finished S.U.P. - v1.0 Okay, NOW it’s finished. (GO HERE TO SEE VIDEO: https://www.youtube.com/watch?v=IzWqsmjGq4U ) Last time I said we were getting close. Now I can finally confirm it! S.U.P. is finished. There was still a surprising amount of work left after v0.9.1, especially around handling different servo types. I ended up reworking a lot of the servo logic to make everything work together properly. Important Features Added Full support for different servo types , including 90° , 180° positional, and 360° continuous-rotation servos Added working pulse-width calibration for servo control Added working servo sweeps for testing positional servos Finished the servo type handling system Improved calibration logic so it works correctly with the selected servo type Finished saved profile handling , including persistent storage across resets Finished the joystick calibration system Completed the C.E.A. Laser Calibration system Finished the Settings , Debug , Calibration , Manual Control , and other menu systems Added and tested the final error handling and debugging tools Final Testing I tested the main workflows with real hardware instead of relying on a simulation (as I always have). The Demo Video The final demo video is finished and uploaded here: https://www.youtube.com/watch?v=IzWqsmjGq4U I tried to show the project itself rather than only talking about the code and development process. One thing I did not manage to include properly was footage of the full physical servo calibration process. The only calibration footage I kept was the joystick calibration. Everything works though :D. Sorry about that. The actual calibration system and everything else was still tested and works. I explain the missing footage in the video. Final Result S.U.P. started as a small ESP32 servo tester and grew into a much larger system than I originally expected. TODO There are still ideas I might work on in the future, but they are no longer required for the first release: Custom PCB Custom 3D Case Advanced diagnostics (I’ll have to open up the servo) General code cleanup and optimization For now, though: S.U.P. v1.0 is done.
Ships:
Devlog #8 - Actually Finished S.U.P. - v1.0 Okay, NOW it’s finished. GO HERE TO SEE VIDEO Last time I said we were getting close. Now I can finally confirm it! S.U.P. is finished. There was still a surprising amount of work left after v0.9.1, especially around handling different servo types. I ended up reworking a lot of the servo logic to make everything work together properly. Important Features Added Full support for different servo types , including 90° , 180° positional , and 360° continuous-rotation servos Added working pulse-width calibration for servo control Added working servo sweeps for testing positional servos Finished the servo type handling system Improved calibration logic so it works correctly with the selected servo type Finished saved profile handling , including persistent storage across resets Finished the joystick calibration system Completed the C.E.A. Laser Calibration system Finished the Settings , Debug , Calibration , Manual Control , and other menu systems Added and tested the final error handling and debugging tools Final Testing I tested the main workflows with real hardware instead of relying on a simulation (as I always have). The Demo Video The final demo video is finished and uploaded here: https://www.youtube.com/watch?v=IzWqsmjGq4U I tried to show the project itself rather than only talking about the code and development process. One thing I did not manage to include properly was footage of the full physical servo calibration process. The only calibration footage I kept was the joystick calibration. Everything works though :D. Sorry about that. The actual calibration system and everything else was still tested and works. I explain the missing footage in the video. Final Result S.U.P. started as a small ESP32 servo tester and grew into a much larger system than I originally expected. TODO There are still ideas I might work on in the future, but they are no longer required for the first release: Custom PCB Custom 3D Case Advanced diagnostics (I’ll have to open up the servo) General code cleanup and optimization For now, though: S.U.P. v1.0 is done....
|
1793335968.7757978
|
1793422368.7757978
|
|
46314
|
WayneWebOS by @wayne14 | Stardance
|
wayne14
|
1
|
23.68
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-23T06:42:22Z", "hours": 22.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I build WayneWebOS! It’s a webos with 8 apps, toolbar, time & date UI, battery, and security indicators. There is a menu app where u can open all otehr apps: To Do Settings (customization) Notepad Gallery Calculator Console Clock Browser All apps are working and feature basic functionality. The most challenging part was making a Notepad and Clock app. I used Quill library for formatting in notepad and both timer and countdown took more several hours to make each. I rewrote the logic manu times, used Qwen for helping me find the right methods, then coded everything myself. I’m proud of building such a huge functionable webos myself in pure HTML/CSS/JS. I really leveled up my JavaScript skills thanks to this project. I want people to test every app and its basic functionality, click every button. Test layout. Important note: the webos is not meant to be responsive, so test it only on desktop devices! Enjoy! :]", "repo": "https://github.com/wayne-14e/WebOS", "demo": "https://wayne-14e.github.io/WebOS/"}]...
|
[{"post_id": 73099, "ts": "202 [{"post_id": 73099, "ts": "2026-09-24T11:43:25Z", "hours": 0.7064, "text": "Improved performance After I ran the Lighthouse analytics, I realized that my webOS loaded too slowly, so I decided to fix it: removed the font awesome script and instead used svg tags for icons, compressed all teh big images, used defer on heavy scripts, removed teh custom cursor since the diamond sword was too heavy for a cursor."}, {"post_id": 72660, "ts": "2026-09-23T13:12:12Z", "hours": 0.9714, "text": "I improved my WebOS: I had to improve the CSS and replace all the images since they were AI-generated. Now, the website loads much faster and the code is cleaner."}, {"post_id": 72550, "ts": "2026-09-23T05:57:17Z", "hours": 9.5225, "text": "I finished my WebOS! The latest apps I added were Console, Calculator, and Gallery. Also, I had to compress the images, because they slowed down the website too much. Now it’s a fully functional webos with 8 apps, plus I added Settings for customization, there are 3 themes and u can change layout. Enjoy! ;]"}, {"post_id": 71353, "ts": "2026-09-20T17:56:37Z", "hours": 6.52, "text": "Browser, Settings, and Notepad! my webOS is expanding with new features: browser uses Programmable Searcj Engine by Goggle, which is simple and effective and I can choose which sources it can display. Settings allows cutomization - 3 themes & colors and 2 layouts. Notepad uses Quill for formatting. also, u can now try the webOS live: https://wayne-14e.github.io/WebOS/ to be continued…"}, {"post_id": 66300, "ts": "2026-09-12T01:56:55Z", "hours": 6.305, "text": "I’ve started building my webOS! I wanted to make look like an actual OS, so I added a date and clock + battery and safety indicator at the top. The battery will have a lightning emoji (⚡) when it’s charging and if it’s below 40% it will change to 🪫. So far only TO DO app is working. It’s draggable, you can add as many tasks as you wish and mark them complete or delete them. Next up: browser, terminal, and so fourth!"}]...
|
Title: WayneWebOS by @wayne14 | Stardance
Devlogs Title: WayneWebOS by @wayne14 | Stardance
Devlogs:
I’ve started building my webOS! I wanted to make look like an actual OS, so I added a date and clock + battery and safety indicator at the top. The battery will have a lightning emoji (⚡) when it’s charging and if it’s below 40% it will change to 🪫. So far only TO DO app is working. It’s draggable, you can add as many tasks as you wish and mark them complete or delete them. Next up: browser, terminal, and so fourth!
Browser, Settings, and Notepad! my webOS is expanding with new features: browser uses Programmable Searcj Engine by Goggle, which is simple and effective and I can choose which sources it can display. Settings allows cutomization - 3 themes & colors and 2 layouts. Notepad uses Quill for formatting. also, u can now try the webOS live: https://wayne-14e.github.io/WebOS/ to be continued…
I finished my WebOS! The latest apps I added were Console, Calculator, and Gallery. Also, I had to compress the images, because they slowed down the website too much. Now it’s a fully functional webos with 8 apps, plus I added Settings for customization, there are 3 themes and u can change layout. Enjoy! ;]
I improved my WebOS: I had to improve the CSS and replace all the images since they were AI-generated. Now, the website loads much faster and the code is cleaner.
Improved performance After I ran the Lighthouse analytics, I realized that my webOS loaded too slowly, so I decided to fix it: removed the font awesome script and instead used svg tags for icons, compressed all teh big images, used defer on heavy scripts, removed teh custom cursor since the diamond sword was too heavy for a cursor.
Ships:
I build WayneWebOS! It’s a webos with 8 apps, toolbar, time & date UI, battery, and security indicators. There is a menu app where u can open all otehr apps: To Do Settings (customization) Notepad Gallery Calculator Console Clock Browser All apps are working and feature basic functionality. The most challenging part was making a Notepad and Clock app. I used Quill library for formatting in notepad and both timer and countdown took more several hours to make each. I rewrote the logic manu times, used Qwen for helping me find the right methods, then coded everything myself. I’m proud of building such a huge functionable webos myself in pure HTML/CSS/JS. I really leveled up my JavaScript skills thanks to this project. I want people to test every app and its basic functionality, click every button. Test layout. Important note: the webos is not meant to be responsive, so test it only on desktop devices! Enjoy! :]...
|
1793346784.8997626
|
1793433184.8997626
|
|
54297
|
Zolt by @perr | Stardance
|
perr
|
1
|
25.99
|
118
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-28T17:45:21Z", "hours": 9.0, "multiplier": 12.82, "payout": 118, "blessing": "neutral", "text": "a tiny zig web server that speaks luau. when user request the server run the lua code and return them. kinda like php but with lua.", "repo": "https://github.com/iluvicecream/zolt", "demo": "https://zolt-doc.perr.dev/"}]...
|
[{"post_id": 73102, "ts": "202 [{"post_id": 73102, "ts": "2026-09-24T11:53:37Z", "hours": 2.3825, "text": "Template I guess so before all zolt app are written using .lua file and write to the response using echo which led to kind of bad dx so after the last ship there were some review on some kind of tsx like language so i been working on that and here zolt template build on top of go html/template with a lua block it will become a default way of writing app using zolt while .lua will be use for shared module and library"}, {"post_id": 72608, "ts": "2026-09-23T10:30:13Z", "hours": 3.2419, "text": "Documentation! just deploy a new version of documentation site and the go rewrite is complete! from the last update i also added http_request.header[“string”] let you get the header value http_request.query[“string”] let you get the parameters from request query http_request.method get the request method allow you to support POST and others turbokit module allow you to quickly create turbo-frame after this i will be working on form support so you can really build a web app with it"}, {"post_id": 71241, "ts": "2026-09-20T14:49:47Z", "hours": 1.5731, "text": "Merge!! no more experimental-go branch the go rewrite has been merge to the master branch along with the new releases 0.4.0 with support for windows too!. the documentation is currently wip so no doc yet sadd T_T but that the next thing am working on"}, {"post_id": 70774, "ts": "2026-09-19T18:57:20Z", "hours": 1.3961, "text": "Core Function is here after the go rewrite i have now implement 3 core function back but with some changes from zig version so when the go merge it will be a breaking changes http_set_status(status: int) let you set http response code such as 404 500 403 http_content_type(type: string) let you set content type header for usecase like json api http_header_add(key: string,value: string) let you add to the headers i also implement require for loading module and bring back hol now as htmlkit so yea looking forward to merge the go branch into main in a few days but it will 100% be a breaking changes not that who cared anyways except me cuz am the only one using it and now i have to fix my code"}, {"post_id": 68687, "ts": "2026-09-15T15:23:34Z", "hours": 5.3967, "text": "Sadly, There is such thing as a wrong decision when i first set out to make zolt i figure it will be a good place to learn zig i mean it such a small project just a simple http server that execute lua. but then i started using it myself and kept needing more feature but sadly even tho this project started as a way to learn zig. i just didn’t really click with it thus when implementing feature i kept having to relies a lot on codex. So what? so i started a new branch call experimental-go that contain a go rewrite of zoltd plan to be as much backward compatible as possible but not fully as zig zoltd use luau while go zoltd use gopher lua but otherwise i will try and implement all function in zig Naming even tho the project is being rewritten in go. the name will still remain zolt cuz golt sound worse What zolt go version like right now i just implement a lua runtime based on gopher-lua and implement 2 function echo() and print()"}, {"post_id": 64828, "ts": "2026-09-09T14:43:40Z", "hours": 1.845, "text": "HOL (Html On Lua) so from the last ship someone suggest that there should be a tsx like syntax that allow you to write html easier and i agree with that writing the whole layout in echo is a pain so i make hol a pretty simple html builder that ship with zolt so you can just import it anywhere without having to download it and am looking forward to add more feature such as native support for each element instead of H(“h1”) you can just do h1(“Header”) something like that"}, {"post_id": 60425, "ts": "2026-09-02T18:48:14Z", "hours": 1.1506, "text": "Query ! i added new api to the lua vm call request.query it accept 1 parameters field: string and return a string so if your url is host/?field1=value running request.query(“field1”) will return “value”"}, {"post_id": 56766, "ts": "2026-08-28T17:34:39Z", "hours": 0.9775, "text": "Quick Start i have added new entry to documentation such as installation using the new install script and your first zolt web guide along with lua api reference. for the zolt i have move status() and header() api into response.status() and response.header() to align more with request.path() and change webroot from current working dir to config parent dir."}, {"post_id": 55590, "ts": "2026-08-27T15:20:23Z", "hours": 2.4436, "text": "Documentation!! so i been working on a documentation for zolt with guess what zolt well the doc right now is pretty barebone with just intro and install for now but it is made with zolt,html,css,js i also use hotwire turbo and stimulus, and it also use this cute font by creators of grug. ( https://handdrawn.software/grug/ ) you can access the doc page here https://zolt-doc.perr.dev"}, {"post_id": 55153, "ts": "2026-08-26T17:01:52Z", "hours": 3.0167, "text": "Devlog 2 so from the last time i added new api such as require allow you to load other luau file and use them as a module header add header to the response status set http status code for the response with require you can now create function that help you build, for example i created a render module that help me to render html easier without having to deal with writing html tags manually apart from new api there has been a lot of changes behind the scene such as concurrency and performance improvements for the next devlog i will be working on adding api support for query params , form data , json body , and cookies so that you can build more complex web app with zolt! not only that am working on a documentation site that will also serve as an example on how to build web app using zolt"}, {"post_id": 54679, "ts": "2026-08-25T18:50:55Z", "hours": 2.7939, "text": "Zolt so this is php but with lua instead. well i wanted to learn zig and lately i been working on php project, and i just really love how stuff seem so simple but i kinda hate php syntax and the server around it. so yea here zolt it a zig web server that read the lua file you are requesting via query path then use luau to run it and give you the response. right now it just a plain text response but more coming!"}]...
|
Title: Zolt by @perr | Stardance
Devlogs:
Zolt so Title: Zolt by @perr | Stardance
Devlogs:
Zolt so this is php but with lua instead. well i wanted to learn zig and lately i been working on php project, and i just really love how stuff seem so simple but i kinda hate php syntax and the server around it. so yea here zolt it a zig web server that read the lua file you are requesting via query path then use luau to run it and give you the response. right now it just a plain text response but more coming!
Devlog 2 so from the last time i added new api such as require allow you to load other luau file and use them as a module header add header to the response status set http status code for the response with require you can now create function that help you build, for example i created a render module that help me to render html easier without having to deal with writing html tags manually apart from new api there has been a lot of changes behind the scene such as concurrency and performance improvements for the next devlog i will be working on adding api support for query params , form data , json body , and cookies so that you can build more complex web app with zolt! not only that am working on a documentation site that will also serve as an example on how to build web app using zolt
Documentation!! so i been working on a documentation for zolt with guess what zolt well the doc right now is pretty barebone with just intro and install for now but it is made with zolt,html,css,js i also use hotwire turbo and stimulus, and it also use this cute font by creators of grug. ( https://handdrawn.software/grug/ ) you can access the doc page here https://zolt-doc.perr.dev
Quick Start i have added new entry to documentation such as installation using the new install script and your first zolt web guide along with lua api reference. for the zolt i have move status() and header() api into response.status() and response.header() to align more with request.path() and change webroot from current working dir to config parent dir.
Query ! i added new api to the lua vm call request.query it accept 1 parameters field: string and return a string so if your url is host/?field1=value running request.query(“field1”) will return “value”
HOL (Html On Lua) so from the last ship someone suggest that there should be a tsx like syntax that allow you to write html easier and i agree with that writing the whole layout in echo is a pain so i make hol a pretty simple html builder that ship with zolt so you can just import it anywhere without having to download it and am looking forward to add more feature such as native support for each element instead of H(“h1”) you can just do h1(“Header”) something like that
Sadly, There is such thing as a wrong decision when i first set out to make zolt i figure it will be a good place to learn zig i mean it such a small project just a simple http server that execute lua. but then i started using it myself and kept needing more feature but sadly even tho this project started as a way to learn zig. i just didn’t really click with it thus when implementing feature i kept having to relies a lot on codex. So what? so i started a new branch call experimental-go that contain a go rewrite of zoltd plan to be as much backward compatible as possible but not fully as zig zoltd use luau while go zoltd use gopher lua but otherwise i will try and implement all function in zig Naming even tho the project is being rewritten in go. the name will still remain zolt cuz golt sound worse What zolt go version like right now i just implement a lua runtime based on gopher-lua and implement 2 function echo() and print()
Core Function is here after the go rewrite i have now implement 3 core function back but with some changes from zig version so when the go merge it will be a breaking changes http_set_status(status: int) let you set http response code such as 404 500 403 http_content_type(type: string) let you set content type header for usecase like json api http_header_add(key: string,value: string) let you add to the headers i also implement require for loading module and bring back hol now as htmlkit so yea looking forward to merge the go branch into main in a few days but it will 100% be a breaking changes not that who cared anyways except me cuz am the only one using it and now i have to fix my code
Merge!! no more experimental-go branch the go rewrite has been merge to the master branch along with the new releases 0.4.0 with support for windows too!. the documentation is currently wip so no doc yet sadd T_T but that the next thing am working on
Documentation! just deploy a new version of documentation site and the go rewrite is complete! from the last update i also added http_request.header[“string”] let you get the header value http_request.query[“string”] let you get the parameters from request query http_request.method get the request method allow you to support POST and others turbokit module allow you to quickly create turbo-frame after this i will be working on form support so you can really build a web app with it
Template I guess so before all zolt app are written using .lua file and write to the response using echo which led to kind of bad dx so after the last ship there were some review on some kind of tsx like language so i been working on that and here zolt template build on top of go html/template with a lua block it will become a default way of writing app using zolt while .lua will be use for shared module and library
Ships:
a tiny zig web server that speaks luau. when user request the server run the lua code and return them. kinda like php but with lua....
|
1793202963.4956632
|
1793289363.4956632
|
|
52694
|
The Burrow by @prathameshpvp | Stardance
|
prathameshpvp
|
0
|
14.43
|
0
|
[]
|
[{"post_id": 73109, "ts": "202 [{"post_id": 73109, "ts": "2026-09-24T12:34:18Z", "hours": 10.2231, "text": ":Built out modular project routing across stardance.html, blog.html, and common-ground.html. Implemented a custom 3D perspective tilt engine for DOM elements using event-driven mouse coordinate mapping. Handled dynamic bounding rect recalculations (getBoundingClientRect()) to compute normalized hover offsets and apply real-time rotateX/rotateY CSS transforms. Added clean event cleanup via mouseleave listeners to instantly purge inline transform styles on blur."}, {"post_id": 53740, "ts": "2026-08-24T12:30:23Z", "hours": 2.5067, "text": "Architecture & Layout Progress:Retro-Futuristic Visual Engine: Engineered a dark-mode cyberpunk aesthetic using custom pixel typography (THOUGHTS. STORIES. REAL LIFE.), neon pink accent palettes, and a faint background grid overlay. Interactive Game Boy Graphic Component: Rendered a high-fidelity vector hand-held console displaying a pixel art night skyline, complete with dynamic control buttons and custom branding (PRATHAMESH.EXE). Modular Navigation Infrastructure: Built top-level routing for main sections: HOME, BLOG, PROJECTS, ABOUT, and CONTACT."}, {"post_id": 53009, "ts": "2026-08-23T12:10:33Z", "hours": 1.6989, "text": "Completed Base HTML"}]...
|
Title: The Burrow by @prathameshpvp | Stardance
D Title: The Burrow by @prathameshpvp | Stardance
Devlogs:
Completed Base HTML
Architecture & Layout Progress:Retro-Futuristic Visual Engine: Engineered a dark-mode cyberpunk aesthetic using custom pixel typography (THOUGHTS. STORIES. REAL LIFE.), neon pink accent palettes, and a faint background grid overlay. Interactive Game Boy Graphic Component: Rendered a high-fidelity vector hand-held console displaying a pixel art night skyline, complete with dynamic control buttons and custom branding (PRATHAMESH.EXE). Modular Navigation Infrastructure: Built top-level routing for main sections: HOME, BLOG, PROJECTS, ABOUT, and CONTACT.
:Built out modular project routing across stardance.html, blog.html, and common-ground.html. Implemented a custom 3D perspective tilt engine for DOM elements using event-driven mouse coordinate mapping. Handled dynamic bounding rect recalculations (getBoundingClientRect()) to compute normalized hover offsets and apply real-time rotateX/rotateY CSS transforms. Added clean event cleanup via mouseleave listeners to instantly purge inline transform styles on blur....
|
1792716765.3408089
|
1793321565.3408089
|
|
33322
|
My own keyboard! by @J1NX3D | Stardance
|
J1NX3D
|
1
|
23.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-27T20:37:50Z", "hours": 23.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a keyboard to learn pcb making skills. The most challenging part was the firmware which I ended up using an open source program for the keyboard. This was fun to learn since I refinded my onshape skills and made my first pcb!!", "repo": "https://github.com/robogirl11/Custom-keyboard-", "demo": ""}]...
|
[{"post_id": 73112, "ts": "202 [{"post_id": 73112, "ts": "2026-09-24T12:38:42Z", "hours": 3.6833, "text": "I tried learning the firmware but it was confusing so I took a break for a while thats why this is so late"}, {"post_id": 40229, "ts": "2026-08-03T17:06:57Z", "hours": 6.6775, "text": "Finished the case for the keyboard and now have to figure out how to do the cutouts for stabilizers and how to make the keyboard unique."}, {"post_id": 38441, "ts": "2026-07-31T20:11:47Z", "hours": 5.7008, "text": "I started and finished working on the final draft of the pcb. Since this is part of my first project on Kicad I wanted everything perfect which lead me to start over a lot. But after this I feel that this will be my final attempt since it has everything I want. Next I will be uploading to onshape so I can build the case. I also have to update my progress on github and upload everything."}, {"post_id": 29840, "ts": "2026-07-16T23:59:10Z", "hours": 0.5833, "text": "Started the onshape!!"}, {"post_id": 28465, "ts": "2026-07-14T18:33:57Z", "hours": 1.5167, "text": "I worked on and finished the pcb board. Since I was new to the program it took a while for me to finish and I hade a lot of problems like wiring wrong but in the end IT WORKED!!!"}, {"post_id": 28111, "ts": "2026-07-14T05:30:48Z", "hours": 8.7675, "text": "For my keyboard I started going over what I wanted in a keyboard. I decided against extra number buttons and started designing the pcb. Using kicad I went over the wiring and connections and since this was my first time working on kicad I did have to use the guide and look up some things. Also did have to restart a lot but so far it is worth it."}]...
|
Title: My own keyboard! by @J1NX3D | Stardance
De Title: My own keyboard! by @J1NX3D | Stardance
Devlogs:
For my keyboard I started going over what I wanted in a keyboard. I decided against extra number buttons and started designing the pcb. Using kicad I went over the wiring and connections and since this was my first time working on kicad I did have to use the guide and look up some things. Also did have to restart a lot but so far it is worth it.
I worked on and finished the pcb board. Since I was new to the program it took a while for me to finish and I hade a lot of problems like wiring wrong but in the end IT WORKED!!!
Started the onshape!!
I started and finished working on the final draft of the pcb. Since this is part of my first project on Kicad I wanted everything perfect which lead me to start over a lot. But after this I feel that this will be my final attempt since it has everything I want. Next I will be uploading to onshape so I can build the case. I also have to update my progress on github and upload everything.
Finished the case for the keyboard and now have to figure out how to do the cutouts for stabilizers and how to make the keyboard unique.
I tried learning the firmware but it was confusing so I took a break for a while thats why this is so late
Ships:
I made a keyboard to learn pcb making skills. The most challenging part was the firmware which I ended up using an open source program for the keyboard. This was fun to learn since I refinded my onshape skills and made my first pcb!!...
|
1793350228.5314434
|
1793436628.5314434
|
|
64617
|
InfraRed-Pulse by @Mk1A | Stardance
|
Mk1A
|
0
|
0.56
|
0
|
[]
|
[{"post_id": 73114, "ts": "202 [{"post_id": 73114, "ts": "2026-09-24T12:40:34Z", "hours": 0.5619, "text": "Devlog 1 Well not much to log I guess, followed the tutorial for the repo. setup and vite setup, EXACTLY (not taking chances this time ) Still made an error cause I published the repo from git bash which named the main branch as “master” instead of main. Lesson Learnt: Follown’t not the tutorial Setup Completed Api key setup + created .env.example Cleared external assets(placeholders) Beginning work on UI and actual JS work now!"}]...
|
Title: InfraRed-Pulse by @Mk1A | Stardance
Devlog Title: InfraRed-Pulse by @Mk1A | Stardance
Devlogs:
Devlog 1 Well not much to log I guess, followed the tutorial for the repo. setup and vite setup, EXACTLY (not taking chances this time ) Still made an error cause I published the repo from git bash which named the main branch as “master” instead of main. Lesson Learnt: Follown’t not the tutorial Setup Completed Api key setup + created .env.example Cleared external assets(placeholders) Beginning work on UI and actual JS work now!...
|
1793065815.851232
|
1793670615.851232
|
|
64922
|
my personal site !!! by @matteoduda | Stardance
|
matteoduda
|
1
|
7.12
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-23T11:29:45Z", "hours": 4.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I’m really proud of how the whole site turned out, and I will be adding and changing much more in the future. The masonry grid on /tools was a real pain in the ass though :/", "repo": "https://github.com/gtx-lover-69/gtx-lover-69.github.io/", "demo": "https://gtx-lover-69.github.io/"}]...
|
[{"post_id": 73115, "ts": "202 [{"post_id": 73115, "ts": "2026-09-24T12:46:28Z", "hours": 3.1194, "text": "Added a hackclub page and tonnesss of animations - although i need to make it prettier anyways :/ i also added a navigation bar and commit checker (bottom)"}, {"post_id": 72619, "ts": "2026-09-23T11:17:41Z", "hours": 4.3442, "text": "I started by choosing a fat font and sketching out the basic shape of the site (commit 50cc204) I then started adding pages like aboutme and tools. I recently updated and improved consistency in the aforementioned pages."}]...
|
Title: my personal site !!! by @matteoduda | Stard Title: my personal site !!! by @matteoduda | Stardance
Devlogs:
I started by choosing a fat font and sketching out the basic shape of the site (commit 50cc204) I then started adding pages like aboutme and tools. I recently updated and improved consistency in the aforementioned pages.
Added a hackclub page and tonnesss of animations - although i need to make it prettier anyways :/ i also added a navigation bar and commit checker (bottom)
Ships:
I’m really proud of how the whole site turned out, and I will be adding and changing much more in the future. The masonry grid on /tools was a real pain in the ass though :/...
|
1793213665.8921614
|
1793300065.8921614
|
|
54716
|
easySinth by @Max_ | Stardance
|
Max_
|
0
|
19.58
|
0
|
[]
|
[{"post_id": 73126, "ts": "202 [{"post_id": 73126, "ts": "2026-09-24T13:20:29Z", "hours": 9.6842, "text": "Hey people! Today I added tempo feature to my synthesizer☺️"}, {"post_id": 69813, "ts": "2026-09-17T20:34:24Z", "hours": 9.9003, "text": "made basic layout of easysinth"}]...
|
Title: easySinth by @Max_ | Stardance
Devlogs:
ma Title: easySinth by @Max_ | Stardance
Devlogs:
made basic layout of easysinth
Hey people! Today I added tempo feature to my synthesizer☺️...
|
1792802961.2525234
|
1793407761.2525234
|
|
65421
|
hermes-agent by @Blazinkiller_0981 | Stardance
|
Blazinkiller_0981
|
0
|
3.1
|
0
|
[]
|
[{"post_id": 73131, "ts": "202 [{"post_id": 73131, "ts": "2026-09-24T13:31:02Z", "hours": 3.1022, "text": "I learn a lot of C++ and Python and a lot of hermes agent later i have a mildly functioning version of HELIX. It is a Jarvis style personal assistant with a dev loop which creates tools and capabilities on the fly depending on user input and has the hermes agents self correction loop."}]...
|
Title: hermes-agent by @Blazinkiller_0981 | Starda Title: hermes-agent by @Blazinkiller_0981 | Stardance
Devlogs:
I learn a lot of C++ and Python and a lot of hermes agent later i have a mildly functioning version of HELIX. It is a Jarvis style personal assistant with a dev loop which creates tools and capabilities on the fly depending on user input and has the hermes agents self correction loop....
|
1793087444.4639173
|
1793692244.4639173
|
|
57864
|
My awesome macropad! by @Pranav_Duggirala | Starda My awesome macropad! by @Pranav_Duggirala | Stardance...
|
Pranav_Duggirala
|
0
|
1.42
|
0
|
[]
|
[{"post_id": 73136, "ts": "202 [{"post_id": 73136, "ts": "2026-09-24T13:40:30Z", "hours": 0.5281, "text": "My submission for “Write a sketch that draws itself.”"}, {"post_id": 72262, "ts": "2026-09-22T15:26:26Z", "hours": 0.3514, "text": "Started my case design using fusion in just 8min"}, {"post_id": 71202, "ts": "2026-09-20T13:11:25Z", "hours": 0.5406, "text": "Took my first steps in building my awesome hackpad completed till building the case stuck on building case as i dont have autodesk fusion"}]...
|
Title: My awesome macropad! by @Pranav_Duggirala | Title: My awesome macropad! by @Pranav_Duggirala | Stardance
Devlogs:
Took my first steps in building my awesome hackpad completed till building the case stuck on building case as i dont have autodesk fusion
Started my case design using fusion in just 8min
My submission for “Write a sketch that draws itself.”...
|
1792727558.193377
|
1793332358.193377
|
|
62575
|
Sea OS by @barseghian_daniel | Stardance
|
barseghian_daniel
|
1
|
6.57
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-23T19:26:08Z", "hours": 6.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made my own WebOS called SeaOS! At first i didn’t like making the website i always got distracted, but today i started enjoying coding it and finished it, i learned my lession, never make a project you dont enjoy or you wont be working on it as productivly. The Readme has all the information to test the website (run locally ect…), it was tested in firefox! Hope you enjoy!", "repo": "https://github.com/danielbarseghian/webos/", "demo": "https://danielbarseghian.github.io/webos/"}]...
|
[{"post_id": 73139, "ts": "202 [{"post_id": 73139, "ts": "2026-09-24T13:57:59Z", "hours": 0.5653, "text": "Added Quote apps its low-key real. I also fixed the sidebar size."}, {"post_id": 72795, "ts": "2026-09-23T19:08:19Z", "hours": 0.2983, "text": "well the final app has been finished i was really starting to enjoy this but now it ends :("}, {"post_id": 72776, "ts": "2026-09-23T18:42:40Z", "hours": 0.8692, "text": "finished the tutorial well now im on my own, lonely…"}, {"post_id": 72356, "ts": "2026-09-22T18:58:11Z", "hours": 1.8164, "text": "finish part 4 i restarted it so many times since i was lost, but hey now its completed!"}, {"post_id": 71452, "ts": "2026-09-20T21:11:14Z", "hours": 1.0636, "text": "Actually shitting myself idk why but i cant do a tutorial normally (i did a file compressor in C btw), i think im loosing braincells."}, {"post_id": 70272, "ts": "2026-09-18T20:59:41Z", "hours": 0.6686, "text": "DAMN IT LOOKS CLEAN now the two windows are movable and closable i didnt made them reopenable because there are intro windows!"}, {"post_id": 69078, "ts": "2026-09-16T10:34:07Z", "hours": 0.3667, "text": "added top-bar with clock this clock is really nice"}, {"post_id": 68820, "ts": "2026-09-15T20:10:45Z", "hours": 0.8525, "text": "oooo shi liquide glass so i started working on the website, i found code for liquide glass and implemented for my code, its made this cool effect!"}]...
|
Title: Sea OS by @barseghian_daniel | Stardance
D Title: Sea OS by @barseghian_daniel | Stardance
Devlogs:
oooo shi liquide glass so i started working on the website, i found code for liquide glass and implemented for my code, its made this cool effect!
added top-bar with clock this clock is really nice
DAMN IT LOOKS CLEAN now the two windows are movable and closable i didnt made them reopenable because there are intro windows!
Actually shitting myself idk why but i cant do a tutorial normally (i did a file compressor in C btw), i think im loosing braincells.
finish part 4 i restarted it so many times since i was lost, but hey now its completed!
finished the tutorial well now im on my own, lonely…
well the final app has been finished i was really starting to enjoy this but now it ends :(
Added Quote apps its low-key real. I also fixed the sidebar size.
Ships:
I made my own WebOS called SeaOS! At first i didn’t like making the website i always got distracted, but today i started enjoying coding it and finished it, i learned my lession, never make a project you dont enjoy or you wont be working on it as productivly. The Readme has all the information to test the website (run locally ect…), it was tested in firefox! Hope you enjoy!...
|
1793210053.421341
|
1793296453.421341
|
|
55433
|
FCAC by @Grodzia91 | Stardance
|
Grodzia91
|
0
|
4.86
|
0
|
[]
|
[{"post_id": 73141, "ts": "202 [{"post_id": 73141, "ts": "2026-09-24T14:07:56Z", "hours": 0.2761, "text": "DEVLOG 3: I suck at coding"}, {"post_id": 72708, "ts": "2026-09-23T15:38:28Z", "hours": 2.0836, "text": "DEVLOG 2: Finished up the case. I am trying to make the firmware now, but it is hard and it sucks so much."}, {"post_id": 68389, "ts": "2026-09-15T01:34:50Z", "hours": 2.5044, "text": "DEVLOG 1: I finished the PCB deign and started working on the case for my alarm clock"}]...
|
Title: FCAC by @Grodzia91 | Stardance
Devlogs:
DE Title: FCAC by @Grodzia91 | Stardance
Devlogs:
DEVLOG 1: I finished the PCB deign and started working on the case for my alarm clock
DEVLOG 2: Finished up the case. I am trying to make the firmware now, but it is hard and it sucks so much.
DEVLOG 3: I suck at coding...
|
1793162959.4657638
|
1793767759.4657638
|
|
44016
|
Hackpad by @LeonOMO | Stardance
|
LeonOMO
|
0
|
13.64
|
0
|
[]
|
[{"post_id": 73142, "ts": "202 [{"post_id": 73142, "ts": "2026-09-24T14:12:19Z", "hours": 2.4081, "text": "After trying the seed xiao rp2040 it turned out to be defect and wont start this will be the enf of the hackpad than. It was a fun project but i wont buy another seeed xiao rp2040 as its shipping is 20,00€ (It took 1 month to get to me). So im giving up on this project as i dont have any money to buy it nor time"}, {"post_id": 43376, "ts": "2026-08-08T16:04:35Z", "hours": 1.6781, "text": "I Finished the Firmware and now i am done with the Hackpad Project it was really fun, as a beginner, and i recommend it to everyone! Only annyoing part (in my opinion) was creating the Firmware."}, {"post_id": 42591, "ts": "2026-08-07T12:36:38Z", "hours": 2.1667, "text": "Ive (probably) finished the 3D model for my custom controller! Designing the caseand engraving the Omori light bulb onto the top plate was an absolute blast to put together. Next up: Building/Making/Doing? the firmware"}, {"post_id": 42167, "ts": "2026-08-06T19:33:15Z", "hours": 1.1969, "text": "Finished the Onshape case layout. Everything is mapped out for the switches, OLED, and encoder. Next up: Engraving details, and idk yet"}, {"post_id": 41897, "ts": "2026-08-06T12:11:03Z", "hours": 0.5833, "text": "PCB is done!! I was so incompitent to get here even though it’s a pretty simple board. Clearance errors, shorts, deleting and re-routing things more than once. Next up: case design in Onshape"}, {"post_id": 41650, "ts": "2026-08-06T00:33:54Z", "hours": 5.6081, "text": "First time using KiCad just finished my Hackpad schematic. Xiao RP2040, 3 buttons for OLED screens, rotary encoder for volume. Fought through a few errors but got there. Open to any tips, this is all new to me Next up: PCB layout"}]...
|
Title: Hackpad by @LeonOMO | Stardance
Devlogs:
F Title: Hackpad by @LeonOMO | Stardance
Devlogs:
First time using KiCad just finished my Hackpad schematic. Xiao RP2040, 3 buttons for OLED screens, rotary encoder for volume. Fought through a few errors but got there. Open to any tips, this is all new to me Next up: PCB layout
PCB is done!! I was so incompitent to get here even though it’s a pretty simple board. Clearance errors, shorts, deleting and re-routing things more than once. Next up: case design in Onshape
Finished the Onshape case layout. Everything is mapped out for the switches, OLED, and encoder. Next up: Engraving details, and idk yet
Ive (probably) finished the 3D model for my custom controller! Designing the caseand engraving the Omori light bulb onto the top plate was an absolute blast to put together. Next up: Building/Making/Doing? the firmware
I Finished the Firmware and now i am done with the Hackpad Project it was really fun, as a beginner, and i recommend it to everyone! Only annyoing part (in my opinion) was creating the Firmware.
After trying the seed xiao rp2040 it turned out to be defect and wont start this will be the enf of the hackpad than. It was a fun project but i wont buy another seeed xiao rp2040 as its shipping is 20,00€ (It took 1 month to get to me). So im giving up on this project as i dont have any money to buy it nor time...
|
1793249611.7672477
|
1793854411.7672477
|
|
63865
|
Discord Bot by @inatlusnamor | Stardance
|
inatlusnamor
|
1
|
6.0
|
74
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-24T15:41:55Z", "hours": 6.0, "multiplier": 10.91, "payout": 74, "blessing": "neutral", "text": "I made a discord bot that is integrated into my website. The discord bot starts up with a slash command such as /add-gallery then it takes the parameters then it takes the current cards and appends it onto the end of it and adds the json to the github repo. After that the website adds the card without me or my members having to touch the website. What challenged me was making the pipeline from discord to github seamless and without errors but I did it. I am proud of making something that I have never seen online or anywhere. You can see the results of it in the website! I don’t really have the picture here But you can see it in the devlogs because I’m at school lol!", "repo": "https://github.com/Romanhery/hackclub-discord-bot", "demo": "https://discord.gg/8ZpQntd3Y"}]...
|
[{"post_id": 73146, "ts": "202 [{"post_id": 73146, "ts": "2026-09-24T14:13:54Z", "hours": 0.67, "text": "Devlog #4 *So previously I was struggling to get my embeds and my guides command to work but now I have officially made these work and they work! Updated List of Features /add-gallery to add a project to the gallery page /add-guide to add a new guide card After the slash commands an embed is sent and it looks very good!"}, {"post_id": 72866, "ts": "2026-09-23T21:53:10Z", "hours": 0.2892, "text": "I made IT WORK now I officially made the embed work for the addition to the gallery Im in school so I dont have access to discord to show it but once i go home Im gonna add a screenshot! But here is the code for it"}, {"post_id": 72531, "ts": "2026-09-23T04:44:25Z", "hours": 0.6836, "text": "I am still working on getting the embed to show up after the command has happened still working to fix it ! I tried some things that I think will work wish me luck! (PS) Still testing these are new pictures"}, {"post_id": 72521, "ts": "2026-09-23T03:55:40Z", "hours": 0.5669, "text": "So Right now I am stuck trying to make it so that after I uplaod my project to the discord bot then it sends to my websites gallery AND and it sends an embed so that it looks cool and it is a gallery inside of the discord server. (PS) These pictures are just me testing embed none of them have worked lol! Still tryna figure it out maybe it might because it takes too much time and its disconnecting?"}, {"post_id": 72450, "ts": "2026-09-23T00:25:25Z", "hours": 3.4286, "text": "Adding new feature on my discord bot! This is just a post to log the past hours I forgot to log but I am ready to add a new feature to my discord bot!"}]...
|
Title: Discord Bot by @inatlusnamor | Stardance
D Title: Discord Bot by @inatlusnamor | Stardance
Devlogs:
Adding new feature on my discord bot! This is just a post to log the past hours I forgot to log but I am ready to add a new feature to my discord bot!
So Right now I am stuck trying to make it so that after I uplaod my project to the discord bot then it sends to my websites gallery AND and it sends an embed so that it looks cool and it is a gallery inside of the discord server. (PS) These pictures are just me testing embed none of them have worked lol! Still tryna figure it out maybe it might because it takes too much time and its disconnecting?
I am still working on getting the embed to show up after the command has happened still working to fix it ! I tried some things that I think will work wish me luck! (PS) Still testing these are new pictures
I made IT WORK now I officially made the embed work for the addition to the gallery Im in school so I dont have access to discord to show it but once i go home Im gonna add a screenshot! But here is the code for it
Devlog #4 *So previously I was struggling to get my embeds and my guides command to work but now I have officially made these work and they work! Updated List of Features /add-gallery to add a project to the gallery page /add-guide to add a new guide card After the slash commands an embed is sent and it looks very good!
Ships:
I made a discord bot that is integrated into my website. The discord bot starts up with a slash command such as /add-gallery then it takes the parameters then it takes the current cards and appends it onto the end of it and adds the json to the github repo. After that the website adds the card without me or my members having to touch the website. What challenged me was making the pipeline from discord to github seamless and without errors but I did it. I am proud of making something that I have never seen online or anywhere. You can see the results of it in the website! I don’t really have the picture here But you can see it in the devlogs because I’m at school lol!...
|
1793213432.0254798
|
1793299832.0254798
|
|
62253
|
GingGong OS by @Tanojimo | Stardance
|
Tanojimo
|
1
|
5.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-24T14:52:55Z", "hours": 5.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "GingGong OS, A really weird name I must admit. This is a WebOS that I build to learn about HTML, CSS and JS. It has been great building this thing. I got to learn All the basics. I had fun seeing my idea coming to life after around a 5 hour grind. I think I’ll continue to work on this project and make it even more polished.", "repo": "https://github.com/boomertanjim/GingGongOS", "demo": "https://boomertanjim.github.io/GingGongOS/"}]...
|
[{"post_id": 73159, "ts": "202 [{"post_id": 73159, "ts": "2026-09-24T14:44:30Z", "hours": 0.2908, "text": "Did some final tweaks here: Added a hover effect in the taskbar apps Added the feature to resize Windows Added Storage, so your todo’s don’t get lost when you reload the page"}, {"post_id": 73121, "ts": "2026-09-24T13:09:42Z", "hours": 4.0661, "text": "Kind of did almost everything in this build: Added movable Windows Added Three new apps, To-do App, Notepad app and Image Viewer App Added a cool looking clock in the middle"}, {"post_id": 68228, "ts": "2026-09-14T18:56:06Z", "hours": 0.5389, "text": "Devlog #1 Today I worked out the basics. Setting up the project actually took a while as I am new to this. Then I placed a Background, Added a taskbar with placeholder logo (Yes, I love godot) for the windows button. Future plans: adding movable windows"}]...
|
Title: GingGong OS by @Tanojimo | Stardance
Devlo Title: GingGong OS by @Tanojimo | Stardance
Devlogs:
Devlog #1 Today I worked out the basics. Setting up the project actually took a while as I am new to this. Then I placed a Background, Added a taskbar with placeholder logo (Yes, I love godot) for the windows button. Future plans: adding movable windows
Kind of did almost everything in this build: Added movable Windows Added Three new apps, To-do App, Notepad app and Image Viewer App Added a cool looking clock in the middle
Did some final tweaks here: Added a hover effect in the taskbar apps Added the feature to resize Windows Added Storage, so your todo’s don’t get lost when you reload the page
Ships:
GingGong OS, A really weird name I must admit. This is a WebOS that I build to learn about HTML, CSS and JS. It has been great building this thing. I got to learn All the basics. I had fun seeing my idea coming to life after around a 5 hour grind. I think I’ll continue to work on this project and make it even more polished....
|
1793209945.956889
|
1793296345.956889
|
|
63084
|
My own site! by @Nivedh_Govil | Stardance
|
Nivedh_Govil
|
1
|
5.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-24T16:46:02Z", "hours": 5.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I have made my own personal website, and I’m really happy that I made one because I have been wanting this for a really long time. Now that I have learned the basics of web development, I got to see my dream come true. Something challenging was the CSS and the JavaScript so I used a bit of AI for help on that.", "repo": "https://github.com/NivedhGovil/nivedh-website", "demo": "https://nivedhgovil.github.io/nivedh-website/"}]...
|
[{"post_id": 73160, "ts": "202 [{"post_id": 73160, "ts": "2026-09-24T14:49:02Z", "hours": 2.5636, "text": "Completed my personal website! After several hours of coding in VSCode, I am joyful to say that it’s ready. The only thing that’s left is for you to see it! Features: Home: About the website and the main nav bar. Engineering: My circuits, hardware projects, PCBs, CAD drawings. Art: Some of my drawings. Literary: My essays, stories, articles and write-ups published About: About me"}, {"post_id": 72261, "ts": "2026-09-22T15:26:22Z", "hours": 0.6508, "text": "Making one of the final changes to my website! Most of the work is done, yet some key points are left. Today I worked on linking the tabs better, improving the individual webpages, and fixing the navigation bar. Learnt about the meta property tag! :D"}, {"post_id": 71778, "ts": "2026-09-21T15:07:48Z", "hours": 0.6833, "text": "Right now I’m making my page about a current project I’m working on. It’s about making a robot. I’m planning to make two robots: one is the leader and the other is the follower. Whatever movement the leader does, the follower will also do. I’m still currently making the robot so as I make it I will also update the page about the robot on my website. I’m thinking about including a description of the robot, a few photos, a video of it in action, some code snippets, and a link to its GitHub repository. Learning how to make buttons in HTML for this webpage. If I can, I’ll also add a photo of my entire team who is building the robots."}, {"post_id": 71307, "ts": "2026-09-20T16:35:50Z", "hours": 0.8908, "text": "Making the About Me section. Will have my skills, achievements, personality, and a brief introduction to my website. I experimented with various HTML and CSS tags, like & and . Trying to make a menu/ mind map of my personality and skills. I think we use frames for that… Once it’s done, I will move on to making my individual skill pages. Stay tuned for more devlogs! :D"}, {"post_id": 70059, "ts": "2026-09-18T11:24:18Z", "hours": 0.4542, "text": "A website showing my hobbies, personality, skills and more fun things. :D"}]...
|
Title: My own site! by @Nivedh_Govil | Stardance
Title: My own site! by @Nivedh_Govil | Stardance
Devlogs:
A website showing my hobbies, personality, skills and more fun things. :D
Making the About Me section. Will have my skills, achievements, personality, and a brief introduction to my website. I experimented with various HTML and CSS tags, like & and . Trying to make a menu/ mind map of my personality and skills. I think we use frames for that… Once it’s done, I will move on to making my individual skill pages. Stay tuned for more devlogs! :D
Right now I’m making my page about a current project I’m working on. It’s about making a robot. I’m planning to make two robots: one is the leader and the other is the follower. Whatever movement the leader does, the follower will also do. I’m still currently making the robot so as I make it I will also update the page about the robot on my website. I’m thinking about including a description of the robot, a few photos, a video of it in action, some code snippets, and a link to its GitHub repository. Learning how to make buttons in HTML for this webpage. If I can, I’ll also add a photo of my entire team who is building the robots.
Making one of the final changes to my website! Most of the work is done, yet some key points are left. Today I worked on linking the tabs better, improving the individual webpages, and fixing the navigation bar. Learnt about the meta property tag! :D
Completed my personal website! After several hours of coding in VSCode, I am joyful to say that it’s ready. The only thing that’s left is for you to see it! Features: Home: About the website and the main nav bar. Engineering: My circuits, hardware projects, PCBs, CAD drawings. Art: Some of my drawings. Literary: My essays, stories, articles and write-ups published About: About me
Ships:
I have made my own personal website, and I’m really happy that I made one because I have been wanting this for a really long time. Now that I have learned the basics of web development, I got to see my dream come true. Something challenging was the CSS and the JavaScript so I used a bit of AI for help on that....
|
1793210199.589867
|
1793296599.589867
|
|
46712
|
robotic arm by @thomas_thomas | Stardance
|
thomas_thomas
|
1
|
27.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-24T16:39:00Z", "hours": 27.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "It’s a completely costum 3 degrees of freedom robotic arm. It is based on an Arduino and can be controlled from your PC. I designed every single part of it myself, even designing the cycloidal drives myself. Especially the electronics were hard and often made me lose motivation (and money). But the cycloidal drive design wasnt easy as well at first. I learned many crucial skills (with this being my first electronics project): -Soldering -Proper 3d Printing and assembly oriented CAD design -How Stepper motors, Electrical circuits and many tools actually work -Documenting your work -Intuition as to what might work and what wont So may more things! This was my entry project into the world of engineering and I have so many more prejcts in mind that I would like to build someday.", "repo": "https://github.com/pommjes/robotic-arm", "demo": ""}]...
|
[{"post_id": 73168, "ts": "202 [{"post_id": 73168, "ts": "2026-09-24T15:01:07Z", "hours": 0.6667, "text": "Working on the finishing touches rn. Just made this baseplate, which I dont have myself since I made mine out of a piece of wood. Its much easier that way but in case anyone doesnt have any wood or no tools for drilling etc I made this baseplate for them."}, {"post_id": 70714, "ts": "2026-09-19T17:15:57Z", "hours": 2.9667, "text": "This is getting pretty hard now… After basically finishing the rough hardware I started finishing the software. Added a zero function which I have to use for now since the homing isnt accurate at all yet and you basically always have to home it manually (using a level lol). But the main issue is the target point function since the arm seems to make up some random data and drifts like 20(!!) cm from the target point while being spot on on the other axis. But I’ll get there in the next few days… And guess what youre getting another screenshot bcs the real arm still looks like shit:"}, {"post_id": 69718, "ts": "2026-09-17T17:17:54Z", "hours": 1.5664, "text": "Finally installed a Nema 17 as the base motor for the arm. The old Nema 14 often struggled to move the correct number of steps due to too much load. The old one had 12Ncm while the new one has 45Ncm :D. I obviously dont have anymore problems with the base motor missing steps… Also the new base with the integrated magnet holder and bearing ring is way more practical than the old design. You wont notice a difference visually and its ugly af with all the cables so yall are getting another rendering:"}, {"post_id": 66780, "ts": "2026-09-12T17:45:13Z", "hours": 1.0597, "text": "Put all the mounts for the magnets and hall effect sensors on the main parts so less printing and no glueing is needed. Posting devlogs more frequently now"}, {"post_id": 66514, "ts": "2026-09-12T11:04:53Z", "hours": 2.0667, "text": "Im going to upgrade the stepper of joint 1 from a nema14 to a nema17. The nema14 just didnt have enough torque to spin the arm without shaking a lot and skipping like half of the steps… This is the new motor case for mounting it. It will now have the lower bearing cap attached to it for easyer printing and assembly. Also finished installing and connecting all the hall effect sensors to the arm and every joint is homeable now! Next will be installing the new motor and then calibrating the software and if everything goes according to plan (it wont) i’ll be done!!"}, {"post_id": 66030, "ts": "2026-09-11T15:56:14Z", "hours": 0.7333, "text": "Did a cfd analysis of the housing for my arduino and the cnc shield. It was pretty hard to figure out but also very fun and most of all a valuable skill to learn. This might be a bit overkill but it actually helped me improve the case for better airflow over the heatsinks of the motor drivers to ensure keeping them cool for when the arm will be working for longer periods of time and under higher loads. For anyone interested I did this in Simscale its very easy to use and you get 10 free simulations!"}, {"post_id": 65026, "ts": "2026-09-09T20:36:09Z", "hours": 10.3181, "text": "Worked a lot on the homing of my arm. Did a lot of software first off. Adding the homing buttons to the GUI, adding the commands which will be send to the arduino and adding the homing feature on the arduino itself were a lot of work but we got there in the end! Also added a section for error messages and stuff at the bottom. For the hardware side I glued all the hall effect sensor in place along with the magnets needed for the sensors. I glued them on but i plan on putting designated spots on the arm for the magnets and sensors so you wont have to glue them on if you decide to build the arm yourself. I then had to build a small board to allow all the sensors to recieve power from the cnc shield. I now also started connecting all the sensors to the arduino which takes a lot longer than expected actually. But ive been successful so far and both of the connected joints work as intended right now. Next up i have to finish connecting everything and then finish so software side so the arms get to the correct position once they’re homed. This is a lot for one devlog but its hard to define clear borders in this project since everything is connected with everything else so you are never “done” with one subproject because its only a small part and wont work without me working on the next thing. Also didnt add any pics of the arm with the sensors since you cant really notice a difference compared to the older photo on here except a few more wires…"}, {"post_id": 53970, "ts": "2026-08-24T17:58:02Z", "hours": 1.8, "text": "I cant belive I’m typing this, but it works. After intensively working on the software side the last few days while waiting for the last hardware pieces needed I assembled everything today. I put on the jumper caps to enable microstepping and installed the new cables for joint 3. When everything was done i just had to do a tiny bit of troubleshooting but after that it just worked! I can control all the joints and the software also doesnt really have any issues. The only thing that doesn’t fully work yet is the target point feature, since i cant home the arm yet. Some magnets will arrive in a few days and i’ll use them with hall effect sensors to home the arm. Then it’ll hopfuly work just as it should and i can get to documenting this whole thing for you guys!"}, {"post_id": 52250, "ts": "2026-08-22T10:52:49Z", "hours": 6.0089, "text": "Advanced the software side quite a bit. Waiting for some new parts rn so I used the time to finish the gui for now and calculate everything i need to to send to the arduino! You can now input the three values making up the target point and hit calculate. Then the angles of the three joints relative to their home position as well as the delta of the angles, which is the value which the joints need to move in order to reach the target position, are displayed below. These are the values which are going to be send to the arduino. I also added the function to ignore physically impossible positions of the arm and only show the possible ones. In theory I only have to add some kind of interface to send data to the arduino and the software would be done!"}, {"post_id": 45313, "ts": "2026-08-11T17:59:37Z", "hours": 1.41, "text": "Wrote the code to controll all 3 joints.did this to prepare and pass time while i wait for my cnc shield. once it arrives ill hopefully be able to fully control my arm for the first time ever! No new features (apart from the 3rd joint) where added, but i cleaned up the code from the last version a bit and removed some unused sections. I also added lots of comments to make editing and extending the code easier in the future."}, {"post_id": 45139, "ts": "2026-08-11T13:14:44Z", "hours": 0.3, "text": "New Joint 1 -> Base interface without wobbling like the one before."}]...
|
Title: robotic arm by @thomas_thomas | Stardance
Title: robotic arm by @thomas_thomas | Stardance
Devlogs:
New Joint 1 -> Base interface without wobbling like the one before.
Wrote the code to controll all 3 joints.did this to prepare and pass time while i wait for my cnc shield. once it arrives ill hopefully be able to fully control my arm for the first time ever! No new features (apart from the 3rd joint) where added, but i cleaned up the code from the last version a bit and removed some unused sections. I also added lots of comments to make editing and extending the code easier in the future.
Advanced the software side quite a bit. Waiting for some new parts rn so I used the time to finish the gui for now and calculate everything i need to to send to the arduino! You can now input the three values making up the target point and hit calculate. Then the angles of the three joints relative to their home position as well as the delta of the angles, which is the value which the joints need to move in order to reach the target position, are displayed below. These are the values which are going to be send to the arduino. I also added the function to ignore physically impossible positions of the arm and only show the possible ones. In theory I only have to add some kind of interface to send data to the arduino and the software would be done!
I cant belive I’m typing this, but it works. After intensively working on the software side the last few days while waiting for the last hardware pieces needed I assembled everything today. I put on the jumper caps to enable microstepping and installed the new cables for joint 3. When everything was done i just had to do a tiny bit of troubleshooting but after that it just worked! I can control all the joints and the software also doesnt really have any issues. The only thing that doesn’t fully work yet is the target point feature, since i cant home the arm yet. Some magnets will arrive in a few days and i’ll use them with hall effect sensors to home the arm. Then it’ll hopfuly work just as it should and i can get to documenting this whole thing for you guys!
Worked a lot on the homing of my arm. Did a lot of software first off. Adding the homing buttons to the GUI, adding the commands which will be send to the arduino and adding the homing feature on the arduino itself were a lot of work but we got there in the end! Also added a section for error messages and stuff at the bottom. For the hardware side I glued all the hall effect sensor in place along with the magnets needed for the sensors. I glued them on but i plan on putting designated spots on the arm for the magnets and sensors so you wont have to glue them on if you decide to build the arm yourself. I then had to build a small board to allow all the sensors to recieve power from the cnc shield. I now also started connecting all the sensors to the arduino which takes a lot longer than expected actually. But ive been successful so far and both of the connected joints work as intended right now. Next up i have to finish connecting everything and then finish so software side so the arms get to the correct position once they’re homed. This is a lot for one devlog but its hard to define clear borders in this project since everything is connected with everything else so you are never “done” with one subproject because its only a small part and wont work without me working on the next thing. Also didnt add any pics of the arm with the sensors since you cant really notice a difference compared to the older photo on here except a few more wires…
Did a cfd analysis of the housing for my arduino and the cnc shield. It was pretty hard to figure out but also very fun and most of all a valuable skill to learn. This might be a bit overkill but it actually helped me improve the case for better airflow over the heatsinks of the motor drivers to ensure keeping them cool for when the arm will be working for longer periods of time and under higher loads. For anyone interested I did this in Simscale its very easy to use and you get 10 free simulations!
Im going to upgrade the stepper of joint 1 from a nema14 to a nema17. The nema14 just didnt have enough torque to spin the arm without shaking a lot and skipping like half of the steps… This is the new motor case for mounting it. It will now have the lower bearing cap attached to it for easyer printing and assembly. Also finished installing and connecting all the hall effect sensors to the arm and every joint is homeable now! Next will be installing the new motor and then calibrating the software and if everything goes according to plan (it wont) i’ll be done!!
Put all the mounts for the magnets and hall effect sensors on the main parts so less printing and no glueing is needed. Posting devlogs more frequently now
Finally installed a Nema 17 as the base motor for the arm. The old Nema 14 often struggled to move the correct number of steps due to too much load. The old one had 12Ncm while the new one has 45Ncm :D. I obviously dont have anymore problems with the base motor missing steps… Also the new base with the integrated magnet holder and bearing ring is way more practical than the old design. You wont notice a difference visually and its ugly af with all the cables so yall are getting another rendering:
This is getting pretty hard now… After basically finishing the rough hardware I started finishing the software. Added a zero function which I have to use for now since the homing isnt accurate at all yet and you basically always have to home it manually (using a level lol). But the main issue is the target point function since the arm seems to make up some random data and drifts like 20(!!) cm from the target point while being spot on on the other axis. But I’ll get there in the next few days… And guess what youre getting another screenshot bcs the real arm still looks like shit:
Working on the finishing touches rn. Just made this baseplate, which I dont have myself since I made mine out of a piece of wood. Its much easier that way but in case anyone doesnt have any wood or no tools for drilling etc I made this baseplate for them.
Ships:
It’s a completely costum 3 degrees of freedom robotic arm. It is based on an Arduino and can be controlled from your PC. I designed every single part of it myself, even designing the cycloidal drives myself. Especially the electronics were hard and often made me lose motivation (and money). But the cycloidal drive design wasnt easy as well at first. I learned many crucial skills (with this being my first electronics project): -Soldering -Proper 3d Printing and assembly oriented CAD design -How Stepper motors, Electrical circuits and many tools actually work -Documenting your work -Intuition as to what might work and what wont So may more things! This was my entry project into the world of engineering and I have so many more prejcts in mind that I would like to build someday....
|
1793335963.2577379
|
1793422363.2577379
|
|
65435
|
We miss stardance by @MAyaanBaig2013 | Stardance
|
MAyaanBaig2013
|
1
|
2.0
|
3
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-24T15:13:52Z", "hours": 2.0, "multiplier": 1.52, "payout": 3, "blessing": "neutral", "text": "I made an memoriable website for starda since stardane will be closing in 5 days!", "repo": "https://github.com/DevAyaan123/we-miss-stardance", "demo": "https://devayaan123.github.io/we-miss-stardance/"}]...
|
[{"post_id": 73171, "ts": "202 [{"post_id": 73171, "ts": "2026-09-24T15:08:34Z", "hours": 1.95, "text": "So guys, since stardance will be closing in 5 days we all will leave a memorial website for it !"}]...
|
Title: We miss stardance by @MAyaanBaig2013 | Star Title: We miss stardance by @MAyaanBaig2013 | Stardance
Devlogs:
So guys, since stardance will be closing in 5 days we all will leave a memorial website for it !
Ships:
I made an memoriable website for starda since stardane will be closing in 5 days!...
|
1793213765.805416
|
1793300165.805416
|
|
65251
|
Arzox OS by @NIKE15 | Stardance
|
NIKE15
|
0
|
0.84
|
0
|
[]
|
[{"post_id": 73172, "ts": "202 [{"post_id": 73172, "ts": "2026-09-24T15:08:35Z", "hours": 0.2689, "text": "finished with the very very long css and javascript it took me a hell lot of brain to get this run smooth"}, {"post_id": 73158, "ts": "2026-09-24T14:37:47Z", "hours": 0.5686, "text": "I mad this website tried using youtube and reddit for refrnces. done with the html part"}]...
|
Title: Arzox OS by @NIKE15 | Stardance
Devlogs:
I Title: Arzox OS by @NIKE15 | Stardance
Devlogs:
I mad this website tried using youtube and reddit for refrnces. done with the html part
finished with the very very long css and javascript it took me a hell lot of brain to get this run smooth...
|
1793084177.5136652
|
1793688977.5136652
|
|
40974
|
Clueless by @Natt | Stardance
|
Natt
|
0
|
14.77
|
0
|
[]
|
[{"post_id": 73174, "ts": "202 [{"post_id": 73174, "ts": "2026-09-24T15:10:01Z", "hours": 4.7022, "text": "Lads, sorry I have been gone for a while, mostly just school-related stuff like exams and classes and all that. My new school is really tough, ngl, but here I am, lmao, so what i basically did was, first, I figured out how to make the overlay see-through. Now, I can’t really say I figured it out, and I wish I could go into more technical details, but I really can’t since I just mess around in the codebase, tweaking this and that, and I’m not sure what did the job; only God knows now, lol. The second thing was coding more essential stuff to make the app or overlay more polished, just like “Cluely,” a shitty version of it, at least (that’s what I’m aiming for). Okay, let’s get back to the point. So for the UI, I added a prompt/input bar, a live button (for the interview, you know), and a send button, but it isn’t finished. The live listening or the interview function isn’t working properly, actually, it isn’t finished at all, but the app is starting to look like a product now. I’ll have to keep at it; it’s still far from finished, but yeah."}, {"post_id": 39524, "ts": "2026-08-02T15:14:26Z", "hours": 6.5942, "text": "Okay… this might be disappointing, but despite the hours that will be logged in this devlog, the majority of it was trying to make the Clueless invisible/semi transparent or translucent, like what Cluely or an overlay in general should be, which, despite the painful amount of hours spent on just THIS… ladies and gentlemen…. it won’t even work… so I lowk gave up… I went on to make the UI look a bit better and polish it, which was pretty simple compared to the pain I’ve been so wrongly focused on. I’ll come back to this later tho. I figured that I should focus on the features, the overall app, and end-to-end prototype first; I feel like that is more important. Currently, the project is using gemma3:4b as an LLM. I’m not sure if I’ve mentioned it, but I’m pretty sure I was using llava before and then switched to gemma3:4b due to it being superior in general, maybe almost every way. However, I planned to include an option for changing/using you prefered LLM, but not right now; that’s for the future Here’s how it looks now"}, {"post_id": 36524, "ts": "2026-07-28T18:08:11Z", "hours": 3.4717, "text": "This is a quick rough sketch of the core idea and implementation. So I did some research on how Cluely actually operates and also found out there are quite a few already existing projects and repos, so I studied them and every resource I could find. As you can probably guess by the picture attached, the thing is working probably because I cannot screenshot my screen and have to go out of my way to get my phone and take a picture, which is great because, after all, that means the main selling point of Cluely, which is the undetectability, has been implemented and is working properly. To be more technical about the current version, Clueless connects directly to Ollama, running the LLava model. In TypeScript (main.ts), I coded a stream buffer to handle split TCP chunks, stitching partial JSON responses back together on the fly so tokens render line-by-line. To make the overlay invisible to screen shares (Zoom, Discord, Teams, OBS), I hooked into the Windows Win32 API in Rust and told the Windows Desktop Manager to render the window locally on my monitor, but return a pitch-black box to any capture software trying to record the screen. You might be wondering why I use Rust… because I’m a nerd…, just kidding…, but to be fair, I’m not even sure…. Tauri + Rust MIGHT be a good combo since it’s fast, lightweight, and modern. If I were to be more technical, I’d say it: 1. has minimal system footprint, using native OS WebViews (WebView2) instead of bundling Chromium like Electron, keeping memory usage under ~30MB RAM (vs 300MB+) so your PC doesn’t lag while doing other stuff 2. Low-Level Native OS Control: Allows direct calls to native Win32 C++ APIs (SetWindowDisplayAffinity) in Rust to hide the app overlay from screen-recording tools like Zoom, Teams, Discord, and OBS. 3. High-Speed RAM Processing: Captures, color-converts (RGBA to RGB8), downscales, and Base64-encodes high-res screenshots entirely in memory with zero disk I/O bottlenecks. That’s the technical aspect/architecture of the current iteration right now; all it does is capture the screen and output what it sees. This is the placeholder/prototype to test the core concept/selling point for now."}]...
|
Title: Clueless by @Natt | Stardance
Devlogs:
Thi Title: Clueless by @Natt | Stardance
Devlogs:
This is a quick rough sketch of the core idea and implementation. So I did some research on how Cluely actually operates and also found out there are quite a few already existing projects and repos, so I studied them and every resource I could find. As you can probably guess by the picture attached, the thing is working probably because I cannot screenshot my screen and have to go out of my way to get my phone and take a picture, which is great because, after all, that means the main selling point of Cluely, which is the undetectability, has been implemented and is working properly. To be more technical about the current version, Clueless connects directly to Ollama, running the LLava model. In TypeScript (main.ts), I coded a stream buffer to handle split TCP chunks, stitching partial JSON responses back together on the fly so tokens render line-by-line. To make the overlay invisible to screen shares (Zoom, Discord, Teams, OBS), I hooked into the Windows Win32 API in Rust and told the Windows Desktop Manager to render the window locally on my monitor, but return a pitch-black box to any capture software trying to record the screen. You might be wondering why I use Rust… because I’m a nerd…, just kidding…, but to be fair, I’m not even sure…. Tauri + Rust MIGHT be a good combo since it’s fast, lightweight, and modern. If I were to be more technical, I’d say it: 1. has minimal system footprint, using native OS WebViews (WebView2) instead of bundling Chromium like Electron, keeping memory usage under ~30MB RAM (vs 300MB+) so your PC doesn’t lag while doing other stuff 2. Low-Level Native OS Control: Allows direct calls to native Win32 C++ APIs (SetWindowDisplayAffinity) in Rust to hide the app overlay from screen-recording tools like Zoom, Teams, Discord, and OBS. 3. High-Speed RAM Processing: Captures, color-converts (RGBA to RGB8), downscales, and Base64-encodes high-res screenshots entirely in memory with zero disk I/O bottlenecks. That’s the technical aspect/architecture of the current iteration right now; all it does is capture the screen and output what it sees. This is the placeholder/prototype to test the core concept/selling point for now.
Okay… this might be disappointing, but despite the hours that will be logged in this devlog, the majority of it was trying to make the Clueless invisible/semi transparent or translucent, like what Cluely or an overlay in general should be, which, despite the painful amount of hours spent on just THIS… ladies and gentlemen…. it won’t even work… so I lowk gave up… I went on to make the UI look a bit better and polish it, which was pretty simple compared to the pain I’ve been so wrongly focused on. I’ll come back to this later tho. I figured that I should focus on the features, the overall app, and end-to-end prototype first; I feel like that is more important. Currently, the project is using gemma3:4b as an LLM. I’m not sure if I’ve mentioned it, but I’m pretty sure I was using llava before and then switched to gemma3:4b due to it being superior in general, maybe almost every way. However, I planned to include an option for changing/using you prefered LLM, but not right now; that’s for the future Here’s how it looks now
Lads, sorry I have been gone for a while, mostly just school-related stuff like exams and classes and all that. My new school is really tough, ngl, but here I am, lmao, so what i basically did was, first, I figured out how to make the overlay see-through. Now, I can’t really say I figured it out, and I wish I could go into more technical details, but I really can’t since I just mess around in the codebase, tweaking this and that, and I’m not sure what did the job; only God knows now, lol. The second thing was coding more essential stuff to make the app or overlay more polished, just like “Cluely,” a shitty version of it, at least (that’s what I’m aiming for). Okay, let’s get back to the point. So for the UI, I added a prompt/input bar, a live button (for the interview, you know), and a send button, but it isn’t finished. The live listening or the interview function isn’t working properly, actually, it isn’t finished at all, but the app is starting to look like a product now. I’ll have to keep at it; it’s still far from finished, but yeah....
|
1792785089.1997125
|
1793389889.1997125
|
|
61742
|
prism.exe by @Srikar1705 | Stardance
|
Srikar1705
|
1
|
15.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-27T05:05:01Z", "hours": 15.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "prism.exe A Custom New Tab website with a 2000s Desktop theme. Designed as minimal and modern version of the Internet Explorer with no eye-catching or distracting elements. Its packed with features such as a Notepad for quick notes, Bookmarks Manager for bookmarking your most-visited websites and also an option to change the background theme of the website. Additionally, it has an InfoBox which gives random information about a tech device from the Y2K era using my API from my last project. It also has minimize and close animations for windows. Features: Advanced Searchbar : The searchbar in the website is capable of differentiating between a query or an URL entered by the user just like the omnibox on Google. Notepad Window : It’s a window which looks just like the Notepad application on WinXP. It can save the user’s note and also shows the character count of the text! Bookmarks : The website has a bookmarks bar under the searchbar which helps the user navigate easily to his most visited wbesites. Also displays the icons of the websites! Bookmarks Manager : This feature allows the user to add or remove upto 6 website bookmarks of his choice Background Themes : This allows the user to switch between 6 preset background themes Info Box : A small box which gives info about a cool tech device from the Y2K using my API, inspired by dialog box from WinXP. Date-Time Window : A simple and silent date-time window at the bottom-right of the website, replicating the icon Windows XP System Tray. My Journey This is my second project shipped for the Stardance Challenge and I really enjoyed developing prism.exe . Though I had multiple exams in the last two weeks, I managed to balance my studies and my project. This website started with a basic searchbar on Devlog 1 and my aim was to add features which are useful to the website, keeping it very minimal and also that it should not have any attention-grabbing or loud colors/elements. I’m very happy that I could achieve this by Devlog 6, making prism.exe very efficient for the users. Do checkout prism.exe here! Don’t forget to minimize a window to view the icons of other features… Thanks, Srikar.", "repo": "https://github.com/SRIKAR-B-S-S/prism.exe", "demo": "https://srikar-b-s-s.github.io/prism.exe/"}]...
|
[{"post_id": 73175, "ts": "202 [{"post_id": 73175, "ts": "2026-09-24T15:10:23Z", "hours": 1.9172, "text": "Devlog 6 - Preparing for Ship #1 I’ve added all the main features for my website in my previous devlog and now I have to fill the bottom right space! Looking at Windows XP, I wanted to replicate its system tray as a date-time window in project… After some experimenting with CSS, I added the date-time window with a transparent background, placed it on the bottom right of the website with thin black text! I liked its minimal look as I wanted to design it in a way that it doesn’t grab our attention much. I was switching themes to check if it looks good on all of them… And due to the black text, it was not properly visible on themes having a darker background. So, I added a line of code which makes the colour of the date-time window white when the user selected a dark colored background. And the cool part of this devlog is the “Info Box”, inspired from the dialog box of WinXP, this displays a info about a random tech device from the 2000s era. This uses the API which I made for my previous project, which has a lot of data about tech devices from the Y2K. Additionally, I’ve also added the feature of character counting for the Notepad Window Now that everything’s done, I think this project is ready to be shipped! I hope you guys like the website!"}, {"post_id": 72286, "ts": "2026-09-22T16:18:22Z", "hours": 3.0942, "text": "Devlog 5 - The Background Themes I was casually browsing through the projects made by others for this mission with a thought in mind to add something which others missed. That’s when I got the idea of adding the feature of Background Themes. And of course people do have different interests and likings and I think they’d love the idea of different themes. I started preparing an idea of how it should look and where people can change the settings. I added an icon named “Settings” and by clicking on it, the user could select a theme out of the available ones. I’ve also integrated localStorage which will save the theme selected by the user and loads it the next time he returns to the website. Initially, I’ve planned to add the colours from Frutiger Aero design aesthetic but upon adding them, the website looks too odd and bright, my idea was to select colors which looked minimal and were also seen during the Y2K era. Themes only not change the background color of the website but also the color of the logo text at the top-left, its just small detailing but it gives the website a cleaner look. A quick tip for developers who love designing good UI and pick perfect colors for their projects - Just search “color picker” on Google and a you can find a color picker displayed on your screen! (except that it doesn’t have an option to set transparency) Additionally, I’ve also fixed two bugs from the recent bookmarks feature. Do check how the Mint and DarkUI themes look!"}, {"post_id": 71053, "ts": "2026-09-20T07:48:45Z", "hours": 5.3733, "text": "Devlog 4 - The Bookmarks Manager Heyy, it’s been 5 days since my last devlog and I had an important exam yesterday for which I was studying the whole week.. It took me a lot of time to plan and implement this bookmarks feature which is why, this is my longest time logged for a devlog! After my last devlog, the next feature I wanted to add to my project was a bookmarks section under the searchbar. I started experimenting with some design ideas in mind but later fixed on the desktop-icon styled bookmark icons. I spent a lot of time on adding and modifying designs in CSS but thanks to VS Code’s suggestions for CSS properties it made my work easy! While implementing the bookmarks feature, I first developed a static bookmarks section which had 5 bookmarks pre-coded (I included websites such as Hackclub, Gmail, Github, Hackatime, Youtube), where users cannot add website bookmarks of their choice. Later, I planned for a custom bookmarks section where people can add/remove bookmarks of their choice. I also planned for an application-like interface where people can add or remove websites bookmarks and all of this should be done in a Windows XP theme. There was another challenge which was to display the icon whichever website the user added as a bookmark. After some research, I found this answer on StackOverflow . Attaching the logo to that API grabs the icon of the website, so that we can directly use it as a source for an image tag. I added the icon of WinXP’s Control Panel as the icon for Bookmarks Manager. And I’ve also added a limit where the user can only add upto 6 bookmarks, as a maximum of 6 bookmark cards look perfect under the searchbar. I don’t wish to make this devlog any longer. Thanks for your time! If you ever try out my website, don’t forget to minimize the notepad to view the icon of Bookmarks Manager. Do check the bookmarks section below…"}, {"post_id": 68487, "ts": "2026-09-15T06:40:34Z", "hours": 1.7808, "text": "Devlog 3 - The Optimization I was bored yesterday and I was scrolling through the projects which are completed for the ‘Give Your Website a Pulse’ mission and they are very creative! But there was one problem in almost all of their projects. The problem was that the content which people enter in the searchbar is of two types: Keyword or a query just like how we search on Google. URL or a website link. And the website has only one searchbar which is either redirecting to “google.com/search?q=[content-in-searchbar]” or “https://[content-in-searchbar]” according to what the developer has written in the code. What if the user searched for a query and it redirects him to https://keyword (or) if the user searched for a URL and it redirects him to google.com/search?q=userurl.com . It’s really annoying! To prevent this, the code should be structured to check if the entered content is a URL, if yes - redirect him to that website; if no - redirect him to a google search. After doing some research on how to validate a URL, I got to know about URL Object Validation in Javascript. Thanks to this guide , it helped me implement the URL validation in my website. I’ve also added two lines of code just to ensure that the https:// gets added to the URL, incase the user doesn’t enter it. I’ve added the feature of localStorage which automatically saves the text typed by the user in the notepad window and loads it the next time he returns to the website. There’s no worry of losing the data now! Along with that I’ve added a feature of minimizing or closing the notepad window and you can see a notepad icon at the bottom left of your screen after minimizing it! Checkout the minimize feature ⬇"}, {"post_id": 68026, "ts": "2026-09-14T12:20:02Z", "hours": 1.25, "text": "Devlog 2 - The Notepad Window In my previous devlog, I’ve noticed that a lot of space on my website looks very empty. I couldn’t figure out what to fill that space with, until I thought to add small space in the screen where people could fill it with their to-do lists or ideas! And as my project being ‘2000s Desktop’ themed, I thought that adding a Windows XP-styled Notepad Window would be the best! Though this may look like a small feature to be added, it took me a lot of time to design the Notepad window! Thanks to this website , which replicated exactly how a WinXP OS would be running like. It helped me to exactly replicate that user interface. Wait until my next devlog to see what I’d fill the other half of the screen with! The Notepad Window 👇🏻"}, {"post_id": 67954, "ts": "2026-09-14T08:46:49Z", "hours": 1.5708, "text": "Devlog 1 - The Idea This is my 2nd project on Stardance and I’ve started it yesterday. Just like my previous project, I wanted to design this website in the same 2000s Desktop aesthetic. I’ve started with finding a catchy name, which I thought to go with ‘prism.exe’. The .exe in the naming refers to the Windows Executable File which points out the desktop aesthetic of my website. I’ve also designed a logo for my website on Canva. I’ve started developing the website with an off-white background which was intended to look like the background of File Explorer on Windows XP or the color used in some parts of the Windows 98. I’m still experimenting with various CSS properties but right now I’ve added a basic centered searchbar with a Windows XP styled Search button which shows orange shade when hovered. That’s everything I’ve done yesterday! It was too late in the night, so I couldn’t post a devlog yesterday… This is how the website looks right now ⬇"}]...
|
Title: prism.exe by @Srikar1705 | Stardance
Devlo Title: prism.exe by @Srikar1705 | Stardance
Devlogs:
Devlog 1 - The Idea This is my 2nd project on Stardance and I’ve started it yesterday. Just like my previous project, I wanted to design this website in the same 2000s Desktop aesthetic. I’ve started with finding a catchy name, which I thought to go with ‘prism.exe’. The .exe in the naming refers to the Windows Executable File which points out the desktop aesthetic of my website. I’ve also designed a logo for my website on Canva. I’ve started developing the website with an off-white background which was intended to look like the background of File Explorer on Windows XP or the color used in some parts of the Windows 98. I’m still experimenting with various CSS properties but right now I’ve added a basic centered searchbar with a Windows XP styled Search button which shows orange shade when hovered. That’s everything I’ve done yesterday! It was too late in the night, so I couldn’t post a devlog yesterday… This is how the website looks right now ⬇
Devlog 2 - The Notepad Window In my previous devlog, I’ve noticed that a lot of space on my website looks very empty. I couldn’t figure out what to fill that space with, until I thought to add small space in the screen where people could fill it with their to-do lists or ideas! And as my project being ‘2000s Desktop’ themed, I thought that adding a Windows XP-styled Notepad Window would be the best! Though this may look like a small feature to be added, it took me a lot of time to design the Notepad window! Thanks to this website , which replicated exactly how a WinXP OS would be running like. It helped me to exactly replicate that user interface. Wait until my next devlog to see what I’d fill the other half of the screen with! The Notepad Window 👇🏻
Devlog 3 - The Optimization I was bored yesterday and I was scrolling through the projects which are completed for the ‘Give Your Website a Pulse’ mission and they are very creative! But there was one problem in almost all of their projects. The problem was that the content which people enter in the searchbar is of two types: Keyword or a query just like how we search on Google. URL or a website link. And the website has only one searchbar which is either redirecting to “google.com/search?q=[content-in-searchbar]” or “https://[content-in-searchbar]” according to what the developer has written in the code. What if the user searched for a query and it redirects him to https://keyword (or) if the user searched for a URL and it redirects him to google.com/search?q=userurl.com . It’s really annoying! To prevent this, the code should be structured to check if the entered content is a URL, if yes - redirect him to that website; if no - redirect him to a google search. After doing some research on how to validate a URL, I got to know about URL Object Validation in Javascript. Thanks to this guide , it helped me implement the URL validation in my website. I’ve also added two lines of code just to ensure that the https:// gets added to the URL, incase the user doesn’t enter it. I’ve added the feature of localStorage which automatically saves the text typed by the user in the notepad window and loads it the next time he returns to the website. There’s no worry of losing the data now! Along with that I’ve added a feature of minimizing or closing the notepad window and you can see a notepad icon at the bottom left of your screen after minimizing it! Checkout the minimize feature ⬇
Devlog 4 - The Bookmarks Manager Heyy, it’s been 5 days since my last devlog and I had an important exam yesterday for which I was studying the whole week.. It took me a lot of time to plan and implement this bookmarks feature which is why, this is my longest time logged for a devlog! After my last devlog, the next feature I wanted to add to my project was a bookmarks section under the searchbar. I started experimenting with some design ideas in mind but later fixed on the desktop-icon styled bookmark icons. I spent a lot of time on adding and modifying designs in CSS but thanks to VS Code’s suggestions for CSS properties it made my work easy! While implementing the bookmarks feature, I first developed a static bookmarks section which had 5 bookmarks pre-coded (I included websites such as Hackclub, Gmail, Github, Hackatime, Youtube), where users cannot add website bookmarks of their choice. Later, I planned for a custom bookmarks section where people can add/remove bookmarks of their choice. I also planned for an application-like interface where people can add or remove websites bookmarks and all of this should be done in a Windows XP theme. There was another challenge which was to display the icon whichever website the user added as a bookmark. After some research, I found this answer on StackOverflow . Attaching the logo to that API grabs the icon of the website, so that we can directly use it as a source for an image tag. I added the icon of WinXP’s Control Panel as the icon for Bookmarks Manager. And I’ve also added a limit where the user can only add upto 6 bookmarks, as a maximum of 6 bookmark cards look perfect under the searchbar. I don’t wish to make this devlog any longer. Thanks for your time! If you ever try out my website, don’t forget to minimize the notepad to view the icon of Bookmarks Manager. Do check the bookmarks section below…
Devlog 5 - The Background Themes I was casually browsing through the projects made by others for this mission with a thought in mind to add something which others missed. That’s when I got the idea of adding the feature of Background Themes. And of course people do have different interests and likings and I think they’d love the idea of different themes. I started preparing an idea of how it should look and where people can change the settings. I added an icon named “Settings” and by clicking on it, the user could select a theme out of the available ones. I’ve also integrated localStorage which will save the theme selected by the user and loads it the next time he returns to the website. Initially, I’ve planned to add the colours from Frutiger Aero design aesthetic but upon adding them, the website looks too odd and bright, my idea was to select colors which looked minimal and were also seen during the Y2K era. Themes only not change the background color of the website but also the color of the logo text at the top-left, its just small detailing but it gives the website a cleaner look. A quick tip for developers who love designing good UI and pick perfect colors for their projects - Just search “color picker” on Google and a you can find a color picker displayed on your screen! (except that it doesn’t have an option to set transparency) Additionally, I’ve also fixed two bugs from the recent bookmarks feature. Do check how the Mint and DarkUI themes look!
Devlog 6 - Preparing for Ship #1 I’ve added all the main features for my website in my previous devlog and now I have to fill the bottom right space! Looking at Windows XP, I wanted to replicate its system tray as a date-time window in project… After some experimenting with CSS, I added the date-time window with a transparent background, placed it on the bottom right of the website with thin black text! I liked its minimal look as I wanted to design it in a way that it doesn’t grab our attention much. I was switching themes to check if it looks good on all of them… And due to the black text, it was not properly visible on themes having a darker background. So, I added a line of code which makes the colour of the date-time window white when the user selected a dark colored background. And the cool part of this devlog is the “Info Box”, inspired from the dialog box of WinXP, this displays a info about a random tech device from the 2000s era. This uses the API which I made for my previous project, which has a lot of data about tech devices from the Y2K. Additionally, I’ve also added the feature of character counting for the Notepad Window Now that everything’s done, I think this project is ready to be shipped! I hope you guys like the website!
Ships:
prism.exe A Custom New Tab website with a 2000s Desktop theme. Designed as minimal and modern version of the Internet Explorer with no eye-catching or distracting elements. Its packed with features such as a Notepad for quick notes, Bookmarks Manager for bookmarking your most-visited websites and also an option to change the background theme of the website. Additionally, it has an InfoBox which gives random information about a tech device from the Y2K era using my API from my last project. It also has minimize and close animations for windows. Features: Advanced Searchbar : The searchbar in the website is capable of differentiating between a query or an URL entered by the user just like the omnibox on Google. Notepad Window : It’s a window which looks just like the Notepad application on WinXP. It can save the user’s note and also shows the character count of the text! Bookmarks : The website has a bookmarks bar under the searchbar which helps the user navigate easily to his most visited wbesites. Also displays the icons of the websites! Bookmarks Manager : This feature allows the user to add or remove upto 6 website bookmarks of his choice Background Themes : This allows the user to switch between 6 preset background themes Info Box : A small box which gives info about a cool tech device from the Y2K using my API, inspired by dialog box from WinXP. Date-Time Window : A simple and silent date-time window at the bottom-right of the website, replicating the icon Windows XP System Tray. My Journey This is my second project shipped for the Stardance Challenge and I really enjoyed developing prism.exe . Though I had multiple exams in the last two weeks, I managed to balance my studies and my project. This website started with a basic searchbar on Devlog 1 and my aim was to add features which are useful to the website, keeping it very minimal and also that it should not have any attention-grabbing or loud colors/elements. I’m very happy that I could achieve this by Devlog 6, making prism.exe very efficient for the users. Do checkout prism.exe here! Don’t forget to minimize a window to view the icons of other features… Thanks, Srikar....
|
1793209781.7910054
|
1793296181.7910054
|
|
14763
|
Motion-Controlled-Hand by @Snoopsawg | Stardance
|
Snoopsawg
|
0
|
1.88
|
0
|
[]
|
[{"post_id": 7318, "ts": "2026 [{"post_id": 7318, "ts": "2026-06-12T06:10:49Z", "hours": 0.7847, "text": "TROUBLESHOOTING! #Devlog for 12/06/26 for Project Handy #11:04, I've been trying to troubleshoot this thing for the last 45 minutes now; nothing new is happening. #11:09, I reconnected the servo directly to the Pi and it works fine, the pinout it servo orange to pin 16, servo red to pin 2, and servo brown to pin 6, so the problem is definitely with the breadboard wiring #NOTE: still need to fix some micromovements, but the servo is moving back and forth which is good, so I just need to fix the micromovements and then connect the other servos.... if that even works out #11:34: I think I'm gonna wait for the power module to arrive before I try to connect the other servos, I don't want to deal with the messy wiring anymore, hopefully the power module will make things easier and less prone to errors"}, {"post_id": 6739, "ts": "2026-06-11T08:52:27Z", "hours": 0.7131, "text": "#This is a Devlog for 12/06/26 for Project Handy #Okay so right now I have one servo motor attached to the Raspberry Pi: #Brown –> Pin 6 (Ground) #Red –> Pin 2 (5V) #Orange –> Pin 12 (GPIO 18) #Uhhhh, okay the Raspi is now saying that the connection is being refused??? #12:27: trying to figure out the problem with the sshing thingy but I’m not sure, this doesn’t usually happen #12:31: Okay I fixed the problem I think we are good hpprayayayay #12:37 I ran yesterday’s code and it worked, the servo motor is moving back and forth, but the micromovements still aren’t there #12:40 I think I know what the problem is, the servo motor is moving back and forth but it’s not doing the micromovements because the code is only telling it to move to 0 degrees and then to 180 degrees, so I need to change the code to make it move to different angles in between #I think I’m gonna try and troubleshoot my code and see what’s up #12:47 Okay I figured out that maybe the code was erasing micromovements because it was rounding the angle to WHOLE degrees, so I changed the code to round to 2 decimal places instead of whole numbers, hopefully that will fix the problem #12:52 I ran the code and it seems to be working better, the servo motor is moving to different angles instead of just 0 and 180, but I still need to test it more to see if the micromovements are there and connect the other servos #I think I’m gonna try and connect the other servos now and see if they are working properly, hopefully they will be #So I don’t have a USB board so I’m gonna have to cut up a USB-A cable #1:00 I cut up the USB-B cable and I have the wires ready, now I just need to connect them to the breadboard and then to the Raspberry Pi #I have red, blue, green, white cables; usually there’s black instead of blue for the ground GND but I’m gonna assume blue is just ground GND (which is what Google says too) #1:15 I connected the red wire to 5V, the blue wire to GND, and the green and white wires to (GPIO 23 and GPIO 24) nothing yet respectively, now I just need to test if they are working properly #1:22 Okay I connected everything and there aren’t any errors in the code, but the servo motors aren’t moving, I’m not sure what’s wrong, maybe I need to change the GPIO pins in the code to match the ones I connected to, or the power bank is bad #1:24 Well looks like the power bank is bad, I’m gonna try to find another #2:17 I troubleshooted a lot and I think the problem is that the breadboard wiring is really bad. I ordered a usb power module so I can connect it directly to the breadboard and then connect the servos to that, hopefully that will fix the problem and I won’t have to deal with the messy wiring anymore"}, {"post_id": 6082, "ts": "2026-06-10T07:05:17Z", "hours": 0.3847, "text": "Devlog 10/06/26: Finished the basic code for the hand tracker and connected the first servo! The basic code was fairly simple and just tracks the motion of my index finger for now, but I’m having trouble capturing the micromovements fairly smoothly. I also need to find an external power source to connect all 5+ servos; right now, the one is just running connected directly to the Pi. I also need to start planning the 3D frame for printing soon and figure out the mechanics. Snoopsawg"}]...
|
Title: Motion-Controlled-Hand by @Snoopsawg | Star Title: Motion-Controlled-Hand by @Snoopsawg | Stardance
Devlogs:
Devlog 10/06/26: Finished the basic code for the hand tracker and connected the first servo! The basic code was fairly simple and just tracks the motion of my index finger for now, but I’m having trouble capturing the micromovements fairly smoothly. I also need to find an external power source to connect all 5+ servos; right now, the one is just running connected directly to the Pi. I also need to start planning the 3D frame for printing soon and figure out the mechanics. Snoopsawg
#This is a Devlog for 12/06/26 for Project Handy #Okay so right now I have one servo motor attached to the Raspberry Pi: #Brown –> Pin 6 (Ground) #Red –> Pin 2 (5V) #Orange –> Pin 12 (GPIO 18) #Uhhhh, okay the Raspi is now saying that the connection is being refused??? #12:27: trying to figure out the problem with the sshing thingy but I’m not sure, this doesn’t usually happen #12:31: Okay I fixed the problem I think we are good hpprayayayay #12:37 I ran yesterday’s code and it worked, the servo motor is moving back and forth, but the micromovements still aren’t there #12:40 I think I know what the problem is, the servo motor is moving back and forth but it’s not doing the micromovements because the code is only telling it to move to 0 degrees and then to 180 degrees, so I need to change the code to make it move to different angles in between #I think I’m gonna try and troubleshoot my code and see what’s up #12:47 Okay I figured out that maybe the code was erasing micromovements because it was rounding the angle to WHOLE degrees, so I changed the code to round to 2 decimal places instead of whole numbers, hopefully that will fix the problem #12:52 I ran the code and it seems to be working better, the servo motor is moving to different angles instead of just 0 and 180, but I still need to test it more to see if the micromovements are there and connect the other servos #I think I’m gonna try and connect the other servos now and see if they are working properly, hopefully they will be #So I don’t have a USB board so I’m gonna have to cut up a USB-A cable #1:00 I cut up the USB-B cable and I have the wires ready, now I just need to connect them to the breadboard and then to the Raspberry Pi #I have red, blue, green, white cables; usually there’s black instead of blue for the ground GND but I’m gonna assume blue is just ground GND (which is what Google says too) #1:15 I connected the red wire to 5V, the blue wire to GND, and the green and white wires to (GPIO 23 and GPIO 24) nothing yet respectively, now I just need to test if they are working properly #1:22 Okay I connected everything and there aren’t any errors in the code, but the servo motors aren’t moving, I’m not sure what’s wrong, maybe I need to change the GPIO pins in the code to match the ones I connected to, or the power bank is bad #1:24 Well looks like the power bank is bad, I’m gonna try to find another #2:17 I troubleshooted a lot and I think the problem is that the breadboard wiring is really bad. I ordered a usb power module so I can connect it directly to the breadboard and then connect the servos to that, hopefully that will fix the problem and I won’t have to deal with the messy wiring anymore
TROUBLESHOOTING! #Devlog for 12/06/26 for Project Handy #11:04, I've been trying to troubleshoot this thing for the last 45 minutes now; nothing new is happening. #11:09, I reconnected the servo directly to the Pi and it works fine, the pinout it servo orange to pin 16, servo red to pin 2, and servo brown to pin 6, so the problem is definitely with the breadboard wiring #NOTE: still need to fix some micromovements, but the servo is moving back and forth which is good, so I just need to fix the micromovements and then connect the other servos.... if that even works out #11:34: I think I'm gonna wait for the power module to arrive before I try to connect the other servos, I don't want to deal with the messy wiring anymore, hopefully the power module will make things easier and less prone to errors...
|
1793198872.9915056
|
1793803672.9915056
|
|
59951
|
Fidget Cube by @ektoracc | Stardance
|
ektoracc
|
0
|
10.66
|
0
|
[]
|
[{"post_id": 73186, "ts": "202 [{"post_id": 73186, "ts": "2026-09-24T15:34:21Z", "hours": 3.3758, "text": "Second-to-last devlog I finally managed to assemble almost everything together; that includes: -Switch -Switch casing -Walls -rods -Gears (both the 25-tooth and the 10-tooth one) -rolling ball (which doesn’t quite look like it’s moving in the video) -Spinner The very last thing I have to do is assemble the joystick mechanism, which I am guessing will pure pain to do, and then I’m done!"}, {"post_id": 70674, "ts": "2026-09-19T15:56:03Z", "hours": 2.715, "text": "Because the last design wasn’t only terrible but also unfinished, I focused on the joystick, which ended up taking a lot more time than expected. I shortened it since it wouldn’t fit in the cube, added the spring that will hold the stick in the middle in place, all the connectors, and the cap. The proportions compared to the fidget cube are still off by quite a lot. The part that genuinely scares me, though, is the mate connectors, which will definitely take a lot of time"}, {"post_id": 67658, "ts": "2026-09-13T20:13:38Z", "hours": 1.9058, "text": "Devlog #3 After redesigning the switch and making it thicker, I got into the joystick part, where I had a lot of trouble for no reason at all. After several concepts, I came up with this idea, featuring 2 bridges that will be able to move freely on the x and z axes, making the joystick movable in all directions."}, {"post_id": 65577, "ts": "2026-09-10T20:15:07Z", "hours": 1.3992, "text": "Devlog #2 Remade the side with the gears and made it cleaner and more refined, while also adding a place for a rolling sphere. I also designed a simple switch mechanism, which, when 3D-printed, would, in theory, make a satisfying clicking sound."}, {"post_id": 64438, "ts": "2026-09-08T20:19:00Z", "hours": 1.2614, "text": "Devlog #1 With school starting and me being fresh out of ideas for CAD, I decided to start on an anti-stress fidget cube, which everyone has used at least 3 times in their lifetime fs. Proportions are off as HELL, but anyway. Did the first 2 sides (almost) and am now aiming to clock in more time to get that certificate. Shi lowk looking kinda fire tho. (it doesn’t)."}]...
|
Title: Fidget Cube by @ektoracc | Stardance
Devlo Title: Fidget Cube by @ektoracc | Stardance
Devlogs:
Devlog #1 With school starting and me being fresh out of ideas for CAD, I decided to start on an anti-stress fidget cube, which everyone has used at least 3 times in their lifetime fs. Proportions are off as HELL, but anyway. Did the first 2 sides (almost) and am now aiming to clock in more time to get that certificate. Shi lowk looking kinda fire tho. (it doesn’t).
Devlog #2 Remade the side with the gears and made it cleaner and more refined, while also adding a place for a rolling sphere. I also designed a simple switch mechanism, which, when 3D-printed, would, in theory, make a satisfying clicking sound.
Devlog #3 After redesigning the switch and making it thicker, I got into the joystick part, where I had a lot of trouble for no reason at all. After several concepts, I came up with this idea, featuring 2 bridges that will be able to move freely on the x and z axes, making the joystick movable in all directions.
Because the last design wasn’t only terrible but also unfinished, I focused on the joystick, which ended up taking a lot more time than expected. I shortened it since it wouldn’t fit in the cube, added the spring that will hold the stick in the middle in place, all the connectors, and the cap. The proportions compared to the fidget cube are still off by quite a lot. The part that genuinely scares me, though, is the mate connectors, which will definitely take a lot of time
Second-to-last devlog I finally managed to assemble almost everything together; that includes: -Switch -Switch casing -Walls -rods -Gears (both the 25-tooth and the 10-tooth one) -rolling ball (which doesn’t quite look like it’s moving in the video) -Spinner The very last thing I have to do is assemble the joystick mechanism, which I am guessing will pure pain to do, and then I’m done!...
|
1793030003.7191265
|
1793634803.7191265
|
|
25375
|
My awesome macropad! by @ejo | Stardance
|
ejo
|
0
|
21.91
|
0
|
[]
|
[{"post_id": 73188, "ts": "202 [{"post_id": 73188, "ts": "2026-09-24T15:35:40Z", "hours": 3.5967, "text": "cad is done"}, {"post_id": 72341, "ts": "2026-09-22T18:18:50Z", "hours": 18.3119, "text": "man i didnt knww, i need to post devlog each 10h , i lost 8 hrsss"}]...
|
Title: My awesome macropad! by @ejo | Stardance
D Title: My awesome macropad! by @ejo | Stardance
Devlogs:
man i didnt knww, i need to post devlog each 10h , i lost 8 hrsss
cad is done...
|
1792748979.972662
|
1793612979.972662
|
|
6076
|
Nasa Dashboard by @krxn | Stardance
|
krxn
|
1
|
18.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-13T14:23:51Z", "hours": 18.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "NASA Asteroid Dashboard - Project Description Overview I built a professional, real-time NASA Asteroid Monitoring Dashboard—a fully functional web application that tracks near-Earth asteroids using NASA’s official APIs. This project demonstrates complete data science capabilities, from API integration through cloud deployment. The dashboard is live and accessible to anyone at https://nasa-dashboard-0xkrxn.streamlit.app , showcasing real asteroid data with interactive visualizations and comprehensive analysis tools. What Makes This Special The dashboard fetches live data directly from NASA’s Near-Earth Object API, processes it through a sophisticated Pandas pipeline, and displays it through a professional Streamlit interface. Users can explore real asteroids approaching Earth, view hazard classifications, and interact with beautiful Plotly visualizations. The application handles over 1000+ lines of production-quality Python code organized across multiple specialized modules for data fetching, processing, and visualization. Technical Architecture The backend uses Python with the requests library to fetch real NASA data. Raw JSON responses are processed through comprehensive Pandas DataFrames that extract, clean, and transform asteroid information. Custom hazard classification algorithms categorize asteroids as HAZARDOUS (less than 50,000 km), MONITOR (50,000-100,000 km), or SAFE (greater than 100,000 km). The frontend is built with Streamlit, featuring a responsive dashboard with interactive Plotly charts, filterable data tables, and real-time metric displays. Key Features The dashboard displays real-time key metrics including total asteroid count, hazard classification breakdown, closest approach distance, and maximum relative velocity. An intelligent hazard alert system detects potentially dangerous asteroids and presents detailed information in an accessible table format. Four interactive visualizations show size distribution histograms, hazard level pie charts, distance versus speed scatter plots with bubble sizing, and daily approach timelines. Users can filter data by hazard level and sort by distance, speed, or diameter, making data exploration intuitive and comprehensive. Development Challenges Creating this project involved solving complex problems. API key security required implementing .gitignore for local development and Streamlit Secrets for cloud deployment. Real NASA data processing required building robust error handling for nested JSON structures and missing values. Cloud deployment revealed differences between local and cloud environments, necessitating configuration updates. Data visualization required choosing appropriate tools—Matplotlib for static charts and Plotly for interactive exploration. Throughout development, I learned professional security practices, proper error handling, and modern deployment strategies. Learning Outcomes This project taught me full-stack data science skills including API integration, JSON parsing, data cleaning and transformation, statistical analysis, multiple visualization frameworks, web development with Streamlit, Git version control, GitHub collaboration, cloud deployment, and security best practices. Each component reinforced important software engineering principles about modularity, documentation, and professional code organization. Deployment and Impact The application is deployed on Streamlit Cloud, running 24/7 with live data updates. GitHub hosts the complete source code with professional documentation, comprehensive README file, and proper security configuration through .gitignore. The project successfully demonstrates production-ready code that people can use immediately without installation, making space data accessible and engaging.", "repo": "https://github.com/0xkrxn/nasa-dashboard", "demo": "https://nasa-dashboard-0xkrxn.streamlit.app/"}]...
|
[{"post_id": 7319, "ts": "2026 [{"post_id": 7319, "ts": "2026-06-12T06:12:05Z", "hours": 18.3236, "text": "I built a real-time NASA asteroid dashboard using Python. I integrated NASA’s free APIs to fetch live asteroid data, processed it with Pandas, created interactive visualizations with Plotly, and deployed a Streamlit dashboard on the cloud. The app fetches data in real-time, classifies hazard levels, and displays beautiful interactive charts. It’s fully version-controlled on GitHub and deployed on Streamlit Cloud."}]...
|
Title: Nasa Dashboard by @krxn | Stardance
Devlog Title: Nasa Dashboard by @krxn | Stardance
Devlogs:
I built a real-time NASA asteroid dashboard using Python. I integrated NASA’s free APIs to fetch live asteroid data, processed it with Pandas, created interactive visualizations with Plotly, and deployed a Streamlit dashboard on the cloud. The app fetches data in real-time, classifies hazard levels, and displays beautiful interactive charts. It’s fully version-controlled on GitHub and deployed on Streamlit Cloud.
Ships:
NASA Asteroid Dashboard - Project Description Overview I built a professional, real-time NASA Asteroid Monitoring Dashboard—a fully functional web application that tracks near-Earth asteroids using NASA’s official APIs. This project demonstrates complete data science capabilities, from API integration through cloud deployment. The dashboard is live and accessible to anyone at https://nasa-dashboard-0xkrxn.streamlit.app , showcasing real asteroid data with interactive visualizations and comprehensive analysis tools. What Makes This Special The dashboard fetches live data directly from NASA’s Near-Earth Object API, processes it through a sophisticated Pandas pipeline, and displays it through a professional Streamlit interface. Users can explore real asteroids approaching Earth, view hazard classifications, and interact with beautiful Plotly visualizations. The application handles over 1000+ lines of production-quality Python code organized across multiple specialized modules for data fetching, processing, and visualization. Technical Architecture The backend uses Python with the requests library to fetch real NASA data. Raw JSON responses are processed through comprehensive Pandas DataFrames that extract, clean, and transform asteroid information. Custom hazard classification algorithms categorize asteroids as HAZARDOUS (less than 50,000 km), MONITOR (50,000-100,000 km), or SAFE (greater than 100,000 km). The frontend is built with Streamlit, featuring a responsive dashboard with interactive Plotly charts, filterable data tables, and real-time metric displays. Key Features The dashboard displays real-time key metrics including total asteroid count, hazard classification breakdown, closest approach distance, and maximum relative velocity. An intelligent hazard alert system detects potentially dangerous asteroids and presents detailed information in an accessible table format. Four interactive visualizations show size distribution histograms, hazard level pie charts, distance versus speed scatter plots with bubble sizing, and daily approach timelines. Users can filter data by hazard level and sort by distance, speed, or diameter, making data exploration intuitive and comprehensive. Development Challenges Creating this project involved solving complex problems. API key security required implementing .gitignore for local development and Streamlit Secrets for cloud deployment. Real NASA data processing required building robust error handling for nested JSON structures and missing values. Cloud deployment revealed differences between local and cloud environments, necessitating configuration updates. Data visualization required choosing appropriate tools—Matplotlib for static charts and Plotly for interactive exploration. Throughout development, I learned professional security practices, proper error handling, and modern deployment strategies. Learning Outcomes This project taught me full-stack data science skills including API integration, JSON parsing, data cleaning and transformation, statistical analysis, multiple visualization frameworks, web development with Streamlit, Git version control, GitHub collaboration, cloud deployment, and security best practices. Each component reinforced important software engineering principles about modularity, documentation, and professional code organization. Deployment and Impact The application is deployed on Streamlit Cloud, running 24/7 with live data updates. GitHub hosts the complete source code with professional documentation, comprehensive README file, and proper security configuration through .gitignore. The project successfully demonstrates production-ready code that people can use immediately without installation, making space data accessible and engaging....
|
1793220520.6734731
|
1793306920.6734731
|
|
51038
|
dagit by @Lxsh-S | Stardance
|
Lxsh-S
|
2
|
14.0
|
135
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-24T15:40:40Z", "hours": 1.0, "multiplier": 8.6, "payout": 5, "blessing": "neutral", "text": "The ony changes we have made is fix some issues with the way we fetch data from github. I wouldn’t have shipped this but I currently have 34 stardust and urgently need 1 to buy some electronics for my other project :). Please be kind", "repo": "https://github.com/lxsh-S/dagit", "demo": "https://github.com/lxsh-S/dagit/releases"}, {"ship_num": 2, "ts": "2026-08-26T15:21:21Z", "hours": 13.0, "multiplier": 10.32, "payout": 130, "blessing": "neutral", "text": "DAGIT SHIP1 I have built a terminal TUI git visualizer that beautifully displays your git repository on the terminal. Challenging part Dagit has four small sections [left panel/visualizer/status panel/logs] . I first thought there would be no resizing issues because I’m using bubble-tea and built all there sections’ skeletons, as bubble-tea doesn’t automatically handle the resize event(got to know later). I manually tried to fix it in my own broken ways and found somewhat of a solution that feels and looks good A Breakdown of the project dagit refuses to launch if we don’t open it inside a git repo. We fetch all the data by running git commands. Currently in the left panel we have the following information: * Repo name * The repo's owner name * Current branch * The url of the remote In the vizualizer: * hash of the commit * Reference * the committer name * The time of the commit * We also beautify the graph and show it in this section Log section: * Hash of commit * Commit message * Committer name Status panel: * Modified, staged files are shown here The user can toggle between the visualizer and the status panel using v The user can also choose between my predefined tick rates [500ms/1s/3s/5s/10s] . By default the tick rate is set to 1sec Proud Of how quickly I have understood the git docs and used it to build this project that makes git look so much better for the newbies. Also that I have finally made a project that is not very complicated for the user to use like gos was. lmao Also handling resize events was a bit of headache and it feels so much better now. I feel proud because of that too :shy Do we need to set something before? No, but if you wanna install it using go , you need to have go installed :) Note: The releases page only has a darwin(macos) and linux version. So I recommend using wsl on windows to enjoy the beauty of dagit Installation the simplest way to install dagit is using the AUR: yay -S dagit-bin Using go : go install github.com/lxsh-S/dagit@latest You can also install it from the github releases page (Make sure you get the latest version)", "repo": "https://github.com/lxsh-S/dagit", "demo": "https://github.com/lxsh-S/dagit/releases"}]...
|
[{"post_id": 73190, "ts": "202 [{"post_id": 73190, "ts": "2026-09-24T15:39:08Z", "hours": 0.5869, "text": "Update #1 There isnt much we have fixed some issues that were being cause because of the way we fetch data from git"}, {"post_id": 55058, "ts": "2026-08-26T14:18:54Z", "hours": 2.4206, "text": "DAGIT DEVLOG 5 yoo once again! I’ve worked on the features I’ve been delaying and let’s see the progress Progress Overview I first worked on the idea i got yesterday A status panel to see staged/modified files Then I tried to work on scrollbars in the git log and the visualizer but I failed to do so I just scrapped it completely and reset the repo to the after status panel state After scrapping that, I worked on the tick rate selection Intervals of time at which we update the data displayed in the TUI DETAIL The status panel idea had come when I was surfing git hub and was just looking at lazygit (A far better project than dagit btw). I saw the same panel there and thought of adding it here because it would make more sense, although dagit is different from lazygit (dagit is only trying to visualze git not become a workflow) The scrollbars were out of my league I already knew that but still gave a try. I dont think I would be giving up on the idea. I’ll just watch some tutorials on bubbletea and scrollbars specifically before working on it again At first, I thought I would make the tick rate selector a separate panel where we would just scroll through different intervals of time, but as I consider myself lazy I just thought of adding it in such a way that instead of scrolling we change the tick rate with the press of buttons. Although the max tickrate is already small(10sec) I recommend using 1sec on small projects"}, {"post_id": 53053, "ts": "2026-08-23T13:28:02Z", "hours": 2.8308, "text": "DAGIT DEVLOG 4 Yoo! I’ve made soo many updates and the resizing /clipping issues are still eating my brain like bugs Progress overview Decreased the sizes of reference being displayed also truncated lines in the gitlog so that the vertical clipping stops I completely styled the UI using lipgloss and it looks soo much better now Added highlighting to the head of the repo that pops a little more Refactored the old way of refreshing the data Refactored the code to increase readability Explain The git logs were looking odd because when the commit messages were long , the log that should only take the space of one line was now also taking space in the second line. So we fixed it using truncateMessages() function As we are pushig to multiple tags . The reference also gets long and causes a clipping issue again. So we again simply dosent let the refs be that long[But the current implementation can cause the line to break suddenly that may not look good all the time]- // Stop 'refs' being too long if lipgloss.Width(refs) > 30 { refs = refs[:27] + \"...\" } And as dagit is a live visualizer, I removed the old way of refreshing the data[clicking [r] to refresh]. Now what we do is use tea.Tick and the time library to refresh the data every 1 second. Issues that can be caused We are currently refreshing data every second that can put a lot more load on the system when used inside a big repository, So in infuture I’m gonna work to give the user a way to choose the tick Rate What im gonna work on now Scrollbar for gitlog and also visualizer A tick rate selector File status panel that can be toggled with the visualizer A way to search for different repo’s in the user’s computer and jumping between them(something like the nvim feature of finding files) –im not really sure of this"}, {"post_id": 52869, "ts": "2026-08-23T07:39:28Z", "hours": 0.7267, "text": "DAGIT DEVLOG 3 Yay! we have got the release workflow up and running What we are doing what we do is make new binaries name dagit-linux-amd64.tar.gz and dagit-darwin-arm64.tar.gz and push them to our releases page with the tag given while pushing to the repo We also push to the AUR!! . So all the I use arch btw people can download it easily Installation AUR yay -S dagit-bin Run in a github repo ,ie paste-> dagit Github releases go to the releases page and download the binaries zip, extract it and run in a github repo"}, {"post_id": 52542, "ts": "2026-08-22T18:20:33Z", "hours": 3.5672, "text": "DAGIT DEVLOG 2 We’ve improved the TUI soo much!! What I’ve done Got gitlog working with hash, commit message and the contibuter Made a somewhat good looking git visualizer and fixed the horizontal and vertical border issue caused by big lines (reference mainly) Styled the git visualizer with charm’s lipgloss Fixed border issues in the footer and git log too Also made dagit resize when the user makes the terminal window larger but idk why it doesnt work when the terminal window is shortened I also added a resize keybind r to reload the data in the TUI so that the user does not need to stop it and run again for it to update to latest info Issues faced I haven’t faced any big issue in particular but figuring out resizing is the only thing that eats my brain Where I spent the most time I have spent the most time making the visualizer , lemme explain a little of it’s woking !! First we fetch the git log graph from git and then we spread the graph by using SpreadGraph function in graph.go to make it look a little better Then we get 15 of the graph lines into out TUI and then render it using lipgloss [Man charm’s tool are soo cool and make CLI/TUI look soo good]. Although we don’t see all the 15 lines as we dont have a scroll feature for now What we are going to do Style it Fetch number of commits done to the repo and display it Add scrollbar to git visualizer _ Also add scrollbar to git log -Not sure What I currently feel When I was planning to make dagit, I felt it’ll be different and will attract people towards it but it’s not upto my expectation. I thinking to adding some feature that will make more people use it"}, {"post_id": 51644, "ts": "2026-08-21T12:59:40Z", "hours": 3.0086, "text": "DAGIT DEVLOG 1 (BTW WHOEVER ADDED EMOJIS OPTION SHOULD BE PROMOTED ) Hii, I’m making a TUI application that beautifully visualizes your GitHub repo inside your terminal!! Note -> This devlog is a compilation of 2 days of work that I’ll explain What I have done DAY 1: I started working on dagit with first: Checking if the current directory is a git repo or not If yes, we first fetch the repo name along with owner of the repo the remote url of current repo current branch Lmao, this was all I did on day 1 DAY 2 Today the fun began I started working on the TUI section I started with a simple bubble tea list TUI to remember the simple things that I had forgot in these many days Then I used bubbletea to render the left panel containing the the data we fetched from day one but I realised that this is messed up cuz I wont be able to make different sections for the visualizer and the git log history When I searched for a fix I saw lipgloss and then integrated it with our current setup I used lip gloss to make diffferent sections for our TUI. The sections that I currently want in the TUI left panel/middle(visualizer)/ bottom(git log) along with the footer like nvim But I forgot about the resizing problem and idk anything about how I’m going to fix it like other TUI’s do so I’m donna leave it like tat for now What I’m gonna do Make it look prettier Get the git log because it’s gonna be easier than the visualizer Make my shit code look a little better"}]...
|
Title: dagit by @Lxsh-S | Stardance
Devlogs:
DAGI Title: dagit by @Lxsh-S | Stardance
Devlogs:
DAGIT DEVLOG 1 (BTW WHOEVER ADDED EMOJIS OPTION SHOULD BE PROMOTED ) Hii, I’m making a TUI application that beautifully visualizes your GitHub repo inside your terminal!! Note -> This devlog is a compilation of 2 days of work that I’ll explain What I have done DAY 1: I started working on dagit with first: Checking if the current directory is a git repo or not If yes, we first fetch the repo name along with owner of the repo the remote url of current repo current branch Lmao, this was all I did on day 1 DAY 2 Today the fun began I started working on the TUI section I started with a simple bubble tea list TUI to remember the simple things that I had forgot in these many days Then I used bubbletea to render the left panel containing the the data we fetched from day one but I realised that this is messed up cuz I wont be able to make different sections for the visualizer and the git log history When I searched for a fix I saw lipgloss and then integrated it with our current setup I used lip gloss to make diffferent sections for our TUI. The sections that I currently want in the TUI left panel/middle(visualizer)/ bottom(git log) along with the footer like nvim But I forgot about the resizing problem and idk anything about how I’m going to fix it like other TUI’s do so I’m donna leave it like tat for now What I’m gonna do Make it look prettier Get the git log because it’s gonna be easier than the visualizer Make my shit code look a little better
DAGIT DEVLOG 2 We’ve improved the TUI soo much!! What I’ve done Got gitlog working with hash, commit message and the contibuter Made a somewhat good looking git visualizer and fixed the horizontal and vertical border issue caused by big lines (reference mainly) Styled the git visualizer with charm’s lipgloss Fixed border issues in the footer and git log too Also made dagit resize when the user makes the terminal window larger but idk why it doesnt work when the terminal window is shortened I also added a resize keybind r to reload the data in the TUI so that the user does not need to stop it and run again for it to update to latest info Issues faced I haven’t faced any big issue in particular but figuring out resizing is the only thing that eats my brain Where I spent the most time I have spent the most time making the visualizer , lemme explain a little of it’s woking !! First we fetch the git log graph from git and then we spread the graph by using SpreadGraph function in graph.go to make it look a little better Then we get 15 of the graph lines into out TUI and then render it using lipgloss [Man charm’s tool are soo cool and make CLI/TUI look soo good]. Although we don’t see all the 15 lines as we dont have a scroll feature for now What we are going to do Style it Fetch number of commits done to the repo and display it Add scrollbar to git visualizer _ Also add scrollbar to git log -Not sure What I currently feel When I was planning to make dagit, I felt it’ll be different and will attract people towards it but it’s not upto my expectation. I thinking to adding some feature that will make more people use it
DAGIT DEVLOG 3 Yay! we have got the release workflow up and running What we are doing what we do is make new binaries name dagit-linux-amd64.tar.gz and dagit-darwin-arm64.tar.gz and push them to our releases page with the tag given while pushing to the repo We also push to the AUR!! . So all the I use arch btw people can download it easily Installation AUR yay -S dagit-bin Run in a github repo ,ie paste-> dagit Github releases go to the releases page and download the binaries zip, extract it and run in a github repo
DAGIT DEVLOG 4 Yoo! I’ve made soo many updates and the resizing /clipping issues are still eating my brain like bugs Progress overview Decreased the sizes of reference being displayed also truncated lines in the gitlog so that the vertical clipping stops I completely styled the UI using lipgloss and it looks soo much better now Added highlighting to the head of the repo that pops a little more Refactored the old way of refreshing the data Refactored the code to increase readability Explain The git logs were looking odd because when the commit messages were long , the log that should only take the space of one line was now also taking space in the second line. So we fixed it using truncateMessages() function As we are pushig to multiple tags . The reference also gets long and causes a clipping issue again. So we again simply dosent let the refs be that long[But the current implementation can cause the line to break suddenly that may not look good all the time]- // Stop 'refs' being too long if lipgloss.Width(refs) > 30 { refs = refs[:27] + "..." } And as dagit is a live visualizer, I removed the old way of refreshing the data[clicking [r] to refresh]. Now what we do is use tea.Tick and the time library to refresh the data every 1 second. Issues that can be caused We are currently refreshing data every second that can put a lot more load on the system when used inside a big repository, So in infuture I’m gonna work to give the user a way to choose the tick Rate What im gonna work on now Scrollbar for gitlog and also visualizer A tick rate selector File status panel that can be toggled with the visualizer A way to search for different repo’s in the user’s computer and jumping between them(something like the nvim feature of finding files) –im not really sure of this
DAGIT DEVLOG 5 yoo once again! I’ve worked on the features I’ve been delaying and let’s see the progress Progress Overview I first worked on the idea i got yesterday A status panel to see staged/modified files Then I tried to work on scrollbars in the git log and the visualizer but I failed to do so I just scrapped it completely and reset the repo to the after status panel state After scrapping that, I worked on the tick rate selection Intervals of time at which we update the data displayed in the TUI DETAIL The status panel idea had come when I was surfing git hub and was just looking at lazygit (A far better project than dagit btw). I saw the same panel there and thought of adding it here because it would make more sense, although dagit is different from lazygit (dagit is only trying to visualze git not become a workflow) The scrollbars were out of my league I already knew that but still gave a try. I dont think I would be giving up on the idea. I’ll just watch some tutorials on bubbletea and scrollbars specifically before working on it again At first, I thought I would make the tick rate selector a separate panel where we would just scroll through different intervals of time, but as I consider myself lazy I just thought of adding it in such a way that instead of scrolling we change the tick rate with the press of buttons. Although the max tickrate is already small(10sec) I recommend using 1sec on small projects
Update #1 There isnt much we have fixed some issues that were being cause because of the way we fetch data from git
Ships:
DAGIT SHIP1 I have built a terminal TUI git visualizer that beautifully displays your git repository on the terminal. Challenging part Dagit has four small sections [left panel/visualizer/status panel/logs] . I first thought there would be no resizing issues because I’m using bubble-tea and built all there sections’ skeletons, as bubble-tea doesn’t automatically handle the resize event(got to know later). I manually tried to fix it in my own broken ways and found somewhat of a solution that feels and looks good A Breakdown of the project dagit refuses to launch if we don’t open it inside a git repo. We fetch all the data by running git commands. Currently in the left panel we have the following information: * Repo name * The repo's owner name * Current branch * The url of the remote In the vizualizer: * hash of the commit * Reference * the committer name * The time of the commit * We also beautify the graph and show it in this section Log section: * Hash of commit * Commit message * Committer name Status panel: * Modified, staged files are shown here The user can toggle between the visualizer and the status panel using v The user can also choose between my predefined tick rates [500ms/1s/3s/5s/10s] . By default the tick rate is set to 1sec Proud Of how quickly I have understood the git docs and used it to build this project that makes git look so much better for the newbies. Also that I have finally made a project that is not very complicated for the user to use like gos was. lmao Also handling resize events was a bit of headache and it feels so much better now. I feel proud because of that too :shy Do we need to set something before? No, but if you wanna install it using go , you need to have go installed :) Note: The releases page only has a darwin(macos) and linux version. So I recommend using wsl on windows to enjoy the beauty of dagit Installation the simplest way to install dagit is using the AUR: yay -S dagit-bin Using go : go install github.com/lxsh-S/dagit@latest You can also install it from the github releases page (Make sure you get the latest version)
The ony changes we have made is fix some issues with the way we fetch data from github. I wouldn’t have shipped this but I currently have 34 stardust and urgently need 1 to buy some electronics for my other project :). Please be kind...
|
1793253126.8035843
|
1793339526.8035843
|
|
64853
|
Smart Temp Fan by @MaxAA | Stardance
|
MaxAA
|
1
|
0.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-24T23:36:28Z", "hours": 0.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "A fan that turns on once it reaches a certain temperature, the code was a bit challenging but it was really fun to do! It took a lot of patient to do but i am really proud of the final product!", "repo": "https://github.com/aalaqqad0808-star/Smart-Temp-Fan/blob/main/Smart%20Fan", "demo": ""}]...
|
[{"post_id": 73195, "ts": "202 [{"post_id": 73195, "ts": "2026-09-24T15:58:37Z", "hours": 0.4075, "text": "Built and Tested a fan that turns on automatically once it reaches the desired temperature"}]...
|
Title: Smart Temp Fan by @MaxAA | Stardance
Devlo Title: Smart Temp Fan by @MaxAA | Stardance
Devlogs:
Built and Tested a fan that turns on automatically once it reaches the desired temperature
Ships:
A fan that turns on once it reaches a certain temperature, the code was a bit challenging but it was really fun to do! It took a lot of patient to do but i am really proud of the final product!...
|
1793213654.485134
|
1793300054.485134
|
|
65167
|
Smart Converter by @SohamKaran | Stardance
|
SohamKaran
|
0
|
0.37
|
0
|
[]
|
[{"post_id": 73197, "ts": "202 [{"post_id": 73197, "ts": "2026-09-24T16:11:31Z", "hours": 0.3733, "text": "TODAY I realize that my family members are always forgot to turn off the lights so i decided to make this automatic by using a HC-SR501 sensor module , transistor and relay and some other components so at first i started to drawing the sch today later when i done the sch work i started making the pcb today I didn’t connect the wires.after done the sch draw I select all the footprint and then desgning the pcb for the requarment size for all components and then i make some holes for mounting the pcb and connect all the components. today i realize that in my project some major defect are present like the live wire are extremely thin and also i put the live wire under the relay also i doesn’t give any space be twin tne relay and power supply so i completely redesign the pcb also i create a repo on github.in today my pcb was looking quite simple so i add some graphics on it and later export the Gerber files after finishing the pcb i started making a zine poster for my project today i finally complete upload some necessary files on repo later i also upload the Gerber file on jlc pcb"}]...
|
Title: Smart Converter by @SohamKaran | Stardance
Title: Smart Converter by @SohamKaran | Stardance
Devlogs:
TODAY I realize that my family members are always forgot to turn off the lights so i decided to make this automatic by using a HC-SR501 sensor module , transistor and relay and some other components so at first i started to drawing the sch today later when i done the sch work i started making the pcb today I didn’t connect the wires.after done the sch draw I select all the footprint and then desgning the pcb for the requarment size for all components and then i make some holes for mounting the pcb and connect all the components. today i realize that in my project some major defect are present like the live wire are extremely thin and also i put the live wire under the relay also i doesn’t give any space be twin tne relay and power supply so i completely redesign the pcb also i create a repo on github.in today my pcb was looking quite simple so i add some graphics on it and later export the Gerber files after finishing the pcb i started making a zine poster for my project today i finally complete upload some necessary files on repo later i also upload the Gerber file on jlc pcb...
|
1793084019.3749242
|
1793688819.3749242
|
|
33788
|
SOS Button by @SohamKaran | Stardance
|
SohamKaran
|
1
|
5.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-24T16:27:43Z", "hours": 5.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "i made a sos button which can send your live location or call on the saved number it can be helpful for kids and any other person who is in danger", "repo": "https://github.com/sohamboyythrdh6/SOS-button", "demo": ""}]...
|
[{"post_id": 73201, "ts": "202 [{"post_id": 73201, "ts": "2026-09-24T16:24:51Z", "hours": 4.6919, "text": "after getting all the parts i started prototyping it on a bread board and after that i orderd the pcb and soldering everything after that i uploaded the code and it is working great"}, {"post_id": 31293, "ts": "2026-07-19T16:13:41Z", "hours": 6.0347, "text": "i found that some children or anyone not safe to went out so i decided to make a project which felt them safer so i made this at first i watch some YouTube tutorials then i go with some my opinion parts and i started drawing the sch after that i design the pcb and after working on the hardware I started writing code for this project . later i write the github repo i started with the bom and then i write the readme and at last upload all other requard file in it now i am finished and rady to ship it."}]...
|
Title: SOS Button by @SohamKaran | Stardance
Devl Title: SOS Button by @SohamKaran | Stardance
Devlogs:
i found that some children or anyone not safe to went out so i decided to make a project which felt them safer so i made this at first i watch some YouTube tutorials then i go with some my opinion parts and i started drawing the sch after that i design the pcb and after working on the hardware I started writing code for this project . later i write the github repo i started with the bom and then i write the readme and at last upload all other requard file in it now i am finished and rady to ship it.
after getting all the parts i started prototyping it on a bread board and after that i orderd the pcb and soldering everything after that i uploaded the code and it is working great
Ships:
i made a sos button which can send your live location or call on the saved number it can be helpful for kids and any other person who is in danger...
|
1793339692.1298962
|
1793426092.1298962
|
|
65475
|
it's a bloody hackpad by @lahcen | Stardance
|
lahcen
|
0
|
0.86
|
0
|
[]
|
[{"post_id": 73205, "ts": "202 [{"post_id": 73205, "ts": "2026-09-24T16:28:04Z", "hours": 0.8567, "text": "i finished the pcb + the bottom case!"}]...
|
Title: it's a bloody hackpad by @lahcen | Star Title: it's a bloody hackpad by @lahcen | Stardance
Devlogs:
i finished the pcb + the bottom case!...
|
1793087551.351466
|
1793692351.351466
|
|
42278
|
Monado Phone Driver by @ttomf | Stardance
|
ttomf
|
3
|
76.94
|
1364
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-16T16:44:11Z", "hours": 22.0, "multiplier": 19.73, "payout": 430, "blessing": "neutral", "text": "I made Monado Phone Driver - a bridge between VR app and phone in cardboard headset. This allows you to play VR games just with Linux PC and Android phone, without buying expensive VR headset. There are alternatives, like ALVR and WiVRn , but my driver has 6DOF tracking (you can move and rotate in space) and hand tracking (it takes hand landmarks from PC or phone camera). Since last ship, I improved stability, added Android app settings, created auto installer, and mainly tracking from PC camera, because phone has small FOV and limited performance.", "repo": "https://github.com/ttomf/monado-phone", "demo": "https://github.com/ttomf/monado-phone/releases/"}, {"ship_num": 2, "ts": "2026-09-04T08:04:23Z", "hours": 32.0, "multiplier": 19.12, "payout": 609, "blessing": "neutral", "text": "Hi! This is my second ship of this project, Monado Phone Driver. It’s bridge between your VR app and your phone in headset ( Google Cardboard ). I wanted to make it better than ALVR , because it has only 3DOF tracking, so I created 6DOF tracking and hand tracking, like professional headsets. The most challenging part of this was debugging all of these. From Vulkan swapchain management and GStreamer pipeline to hand and 6DOF tracking. I am proud of it, because this will help people without VR headsets to enjoy VR games. NOTE: Hand tracking is done the best possible way, but I think it still doesn’t compete with real VR headsets. Next ship should add better tracking with PC camera.", "repo": "https://github.com/ttomf/monado-phone", "demo": "https://github.com/ttomf/monado-phone/releases/"}, {"ship_num": 3, "ts": "2026-08-05T13:16:21Z", "hours": 19.0, "multiplier": 17.05, "payout": 325, "blessing": "neutral", "text": "Hi! I ship my Monado Phone Driver ! I worked on it for last week and it was really challenging. My vision was to build something with what you can play VR games on phone (with Google Cardboard), like iVRy, but open-source and simple. I worked on streaming pipeline, UDP discovery, pose tracking and gluing it all together with Monado. I hope this will help people that wanted to play VR games without expensive headset.", "repo": "https://github.com/ttomf/monado-phone", "demo": "https://github.com/ttomf/monado-phone/releases/"}]...
|
[{"post_id": 73208, "ts": "202 [{"post_id": 73208, "ts": "2026-09-24T16:33:26Z", "hours": 3.9361, "text": "Hi! So I’m here again after many exams (I didn’t have time and strength to iteratively test this ) and I’m gonna make this better using better Hand Landmarkers and (hopefully) run on Window$."}, {"post_id": 69212, "ts": "2026-09-16T16:31:16Z", "hours": 1.6044, "text": "I think it’s time to new release! I merged upstream, created tag, built app and driver and published on GitHub."}, {"post_id": 68141, "ts": "2026-09-14T16:07:57Z", "hours": 3.4667, "text": "I am working on implementing hand controller using same data as hand tracking does. It also includes the “aim pose” - where does controller point. On video, it’s shown as red line, I take it from the index finger. I hope I will be able to play some better VR games!"}, {"post_id": 66631, "ts": "2026-09-12T14:11:34Z", "hours": 5.8714, "text": "I’ve fixed some bugs and leaks, added more configuration to Android app and created hand tracking vizualization for the PC script. Also, I am working on integrating hands as controllers (because controllers have better support across games)."}, {"post_id": 63611, "ts": "2026-09-07T15:18:52Z", "hours": 3.8808, "text": "YEAH! I have finally done the PC camera hand tracking! It has much better FOV than phone camera and more computing power. It’s just Python script with MediaPipe, sending the data to 127.0.0.1 to hand port, and it has same format, so the driver doesn’t even know the data is sending someone other than phone. You will ofc need to disable phone hand tracking, otherwise they will collide. As you see in the video, I can move the hands far and they still get tracked. (End of the video is when I took off the headset - it was also tracked :D)"}, {"post_id": 62773, "ts": "2026-09-06T09:09:55Z", "hours": 1.3114, "text": "Now I am making just minor changes to the driver as the base is nearly done. I added screen size synchronization with phone, so the driver now can send right stream. Also I am making small bugfixes and improvements."}, {"post_id": 62286, "ts": "2026-09-05T16:11:29Z", "hours": 1.7353, "text": "I added settings on phone, so now you can really configure the ports on both sides! Also there’s option to disable hand tracking or 6DOF (then it will send only rotation of headset)"}, {"post_id": 62060, "ts": "2026-09-05T09:18:28Z", "hours": 3.9211, "text": "I created simple terminal installer in python that downloads and setups Monado Phone Driver. Thanks also for the positive reviews and the 19.12x stardust multiplier — when I started this project, I didn’t think I’d ever finish it :D"}, {"post_id": 61371, "ts": "2026-09-04T07:52:18Z", "hours": 0.4617, "text": "Last devlog before ship! I just merged upstream monado, built release binaries and created GitHub release."}, {"post_id": 61334, "ts": "2026-09-04T06:19:09Z", "hours": 2.1025, "text": "So I finished the hand tracking! I tried to make it as good as possible on a phone, and it looks like it might actually work! Even though I’m limited by the hardware, you can see in the video that it tracks pretty well. (video from openxr-simple-playground )"}, {"post_id": 60746, "ts": "2026-09-03T09:54:46Z", "hours": 5.6369, "text": "I am enhancing hand tracking now, and it’s starting to look good! Here is how: I use MediaPipe by Google to analyze image from front camera. MediaPipe Hand Landmarker returns hand landmarks in camera-relative format in two dimensions, so I need to make depth (z-coordinate). I measure distance between wrist and fingers, in 2D space this means distance from camera (the farther away they are, the smaller they get). Now, they are 3D, but still relative to camera. Then I simply send both hands as UDP packet for the driver. The driver (PC side) computes real-world coordinates of the hands using saved earlier sent from ARCore and pushes them into Monado."}, {"post_id": 59610, "ts": "2026-09-01T15:01:51Z", "hours": 6.9739, "text": "I worked hard on both the Android app and the Monado driver and finally: I have working hand tracking! It is very laggy, needs many optimizations, and isn’t even in alpha state yet, but I can see that it is possible to do it. This was my dream when I began this project, and finally, it has come true. I hope it will help many people who cannot afford a professional headset :D"}, {"post_id": 58719, "ts": "2026-08-31T08:20:00Z", "hours": 2.2467, "text": "So today I finished image settings (you can configure them in the config file). They control how the image is rendered, because every headset has different lenses, distance between lenses, distance from screen to lenses etc. To find your headset’s properties, go to https://wwgc.firebaseapp.com/ ."}, {"post_id": 58171, "ts": "2026-08-30T15:09:22Z", "hours": 3.5397, "text": "I created new TCP socket logic for configuration sharing and added logic for loading configuration file. Now I am trying to change the x265enc software encoding to something faster on GPU. Unfortunately, nvenc (nvidia encoding) is really hard to configure properly, as you can see for yourselves."}, {"post_id": 57515, "ts": "2026-08-29T17:59:31Z", "hours": 9.2639, "text": "Phew, I almost went over the time limit (10 hours) :D I tried to get it running on Windows, and I partially succeeded, but it’s still not stable. Aside from that, I mostly cleaned up the code, improved usability, and removed unnecessary modules from CMake. Now I’m working on an improved distortion using Monado’s u_distortion_cardboard_calculate (cardboard stands for Google Cardboard btw) And one more thing: thanks to everyone for the positive feedback on the project — I really didn’t expect that!"}, {"post_id": 46899, "ts": "2026-08-14T13:22:12Z", "hours": 1.6314, "text": "Since nobody reviewed my submission, I don’t want to add more features, so I only updated the README and made small changes to the app. If anyone wants to play VR games on their phone, they can just download the files from Releases and run them without hard compiling!"}, {"post_id": 41279, "ts": "2026-08-05T12:09:23Z", "hours": 6.8658, "text": "Devlog 4 : I replaced boilerplate LLM code with my own. I also wrote README with instructions, so you can now try it!"}, {"post_id": 40628, "ts": "2026-08-04T09:25:23Z", "hours": 0.6022, "text": "I am making minor adjustments to run with SteamVR. I use opencomposite as layer between OpenXR and OpenVR/SteamVR. Video is phone screencap from free Steam game “Aircar”."}, {"post_id": 39990, "ts": "2026-08-03T10:37:11Z", "hours": 3.0761, "text": "Devlog 3 : I made 6DOF (6 degrees of freedom = position+rotation in space) tracking with ARCore. It’s a bit laggy, but it works. This is just test, I plan to optimize it later. Video is from xrgears with looking around."}, {"post_id": 39422, "ts": "2026-08-02T11:32:08Z", "hours": 1.5058, "text": "Devlog 2 : Finally I made working streaming pipeline! My driver takes image from Monado, gstreamer encodes it and sends via UDP. On phone, there is AMediaCodec that takes the packets, joins them and renders. Used codec is HEVC (H265). Video is from xrgears demo."}, {"post_id": 38950, "ts": "2026-08-01T15:47:39Z", "hours": 4.6072, "text": "So now I’m basically stuck. Three hours of debugging the streaming pipeline, refractoring with Opencode and trying to make it work. As you see, even Deepseek is struggling with it… Wish me luck 🤞"}, {"post_id": 38092, "ts": "2026-07-31T09:43:03Z", "hours": 2.3839, "text": "Hi! So I have started this project because I want to play VR games, but I don’t have any headset, only Google Cardboard. I know there is ALVR and iVRy, but: ALVR doesn’t have support for hand tracking and 6DOF iVRy is closed-source and wants to pay Sorry, but I don’t plan to add Windows support soon. Devlog 1 : I forked Monado and made some bureaucracy (like adding my driver to CMakeLists.txt etc.) I made simple Android app that pairs over UDP multicast with my driver. The image is from editor, because I don’t have anything interesting to post (except maybe positive logs 😁)"}]...
|
Title: Monado Phone Driver by @ttomf | Stardance
Title: Monado Phone Driver by @ttomf | Stardance
Devlogs:
Hi! So I have started this project because I want to play VR games, but I don’t have any headset, only Google Cardboard. I know there is ALVR and iVRy, but: ALVR doesn’t have support for hand tracking and 6DOF iVRy is closed-source and wants to pay Sorry, but I don’t plan to add Windows support soon. Devlog 1 : I forked Monado and made some bureaucracy (like adding my driver to CMakeLists.txt etc.) I made simple Android app that pairs over UDP multicast with my driver. The image is from editor, because I don’t have anything interesting to post (except maybe positive logs 😁)
So now I’m basically stuck. Three hours of debugging the streaming pipeline, refractoring with Opencode and trying to make it work. As you see, even Deepseek is struggling with it… Wish me luck 🤞
Devlog 2 : Finally I made working streaming pipeline! My driver takes image from Monado, gstreamer encodes it and sends via UDP. On phone, there is AMediaCodec that takes the packets, joins them and renders. Used codec is HEVC (H265). Video is from xrgears demo.
Devlog 3 : I made 6DOF (6 degrees of freedom = position+rotation in space) tracking with ARCore. It’s a bit laggy, but it works. This is just test, I plan to optimize it later. Video is from xrgears with looking around.
I am making minor adjustments to run with SteamVR. I use opencomposite as layer between OpenXR and OpenVR/SteamVR. Video is phone screencap from free Steam game “Aircar”.
Devlog 4 : I replaced boilerplate LLM code with my own. I also wrote README with instructions, so you can now try it!
Since nobody reviewed my submission, I don’t want to add more features, so I only updated the README and made small changes to the app. If anyone wants to play VR games on their phone, they can just download the files from Releases and run them without hard compiling!
Phew, I almost went over the time limit (10 hours) :D I tried to get it running on Windows, and I partially succeeded, but it’s still not stable. Aside from that, I mostly cleaned up the code, improved usability, and removed unnecessary modules from CMake. Now I’m working on an improved distortion using Monado’s u_distortion_cardboard_calculate (cardboard stands for Google Cardboard btw) And one more thing: thanks to everyone for the positive feedback on the project — I really didn’t expect that!
I created new TCP socket logic for configuration sharing and added logic for loading configuration file. Now I am trying to change the x265enc software encoding to something faster on GPU. Unfortunately, nvenc (nvidia encoding) is really hard to configure properly, as you can see for yourselves.
So today I finished image settings (you can configure them in the config file). They control how the image is rendered, because every headset has different lenses, distance between lenses, distance from screen to lenses etc. To find your headset’s properties, go to https://wwgc.firebaseapp.com/ .
I worked hard on both the Android app and the Monado driver and finally: I have working hand tracking! It is very laggy, needs many optimizations, and isn’t even in alpha state yet, but I can see that it is possible to do it. This was my dream when I began this project, and finally, it has come true. I hope it will help many people who cannot afford a professional headset :D
I am enhancing hand tracking now, and it’s starting to look good! Here is how: I use MediaPipe by Google to analyze image from front camera. MediaPipe Hand Landmarker returns hand landmarks in camera-relative format in two dimensions, so I need to make depth (z-coordinate). I measure distance between wrist and fingers, in 2D space this means distance from camera (the farther away they are, the smaller they get). Now, they are 3D, but still relative to camera. Then I simply send both hands as UDP packet for the driver. The driver (PC side) computes real-world coordinates of the hands using saved earlier sent from ARCore and pushes them into Monado.
So I finished the hand tracking! I tried to make it as good as possible on a phone, and it looks like it might actually work! Even though I’m limited by the hardware, you can see in the video that it tracks pretty well. (video from openxr-simple-playground )
Last devlog before ship! I just merged upstream monado, built release binaries and created GitHub release.
I created simple terminal installer in python that downloads and setups Monado Phone Driver. Thanks also for the positive reviews and the 19.12x stardust multiplier — when I started this project, I didn’t think I’d ever finish it :D
I added settings on phone, so now you can really configure the ports on both sides! Also there’s option to disable hand tracking or 6DOF (then it will send only rotation of headset)
Now I am making just minor changes to the driver as the base is nearly done. I added screen size synchronization with phone, so the driver now can send right stream. Also I am making small bugfixes and improvements.
YEAH! I have finally done the PC camera hand tracking! It has much better FOV than phone camera and more computing power. It’s just Python script with MediaPipe, sending the data to 127.0.0.1 to hand port, and it has same format, so the driver doesn’t even know the data is sending someone other than phone. You will ofc need to disable phone hand tracking, otherwise they will collide. As you see in the video, I can move the hands far and they still get tracked. (End of the video is when I took off the headset - it was also tracked :D)
I’ve fixed some bugs and leaks, added more configuration to Android app and created hand tracking vizualization for the PC script. Also, I am working on integrating hands as controllers (because controllers have better support across games).
I am working on implementing hand controller using same data as hand tracking does. It also includes the “aim pose” - where does controller point. On video, it’s shown as red line, I take it from the index finger. I hope I will be able to play some better VR games!
I think it’s time to new release! I merged upstream, created tag, built app and driver and published on GitHub.
Hi! So I’m here again after many exams (I didn’t have time and strength to iteratively test this ) and I’m gonna make this better using better Hand Landmarkers and (hopefully) run on Window$.
Ships:
Hi! I ship my Monado Phone Driver ! I worked on it for last week and it was really challenging. My vision was to build something with what you can play VR games on phone (with Google Cardboard), like iVRy, but open-source and simple. I worked on streaming pipeline, UDP discovery, pose tracking and gluing it all together with Monado. I hope this will help people that wanted to play VR games without expensive headset.
Hi! This is my second ship of this project, Monado Phone Driver. It’s bridge between your VR app and your phone in headset ( Google Cardboard ). I wanted to make it better than ALVR , because it has only 3DOF tracking, so I created 6DOF tracking and hand tracking, like professional headsets. The most challenging part of this was debugging all of these. From Vulkan swapchain management and GStreamer pipeline to hand and 6DOF tracking. I am proud of it, because this will help people without VR headsets to enjoy VR games. NOTE: Hand tracking is done the best possible way, but I think it still doesn’t compete with real VR headsets. Next ship should add better tracking with PC camera.
I made Monado Phone Driver - a bridge between VR app and phone in cardboard headset. This allows you to play VR games just with Linux PC and Android phone, without buying expensive VR headset. There are alternatives, like ALVR and WiVRn , but my driver has 6DOF tracking (you can move and rotate in space) and hand tracking (it takes hand landmarks from PC or phone camera). Since last ship, I improved stability, added Android app settings, created auto installer, and mainly tracking from PC camera, because phone has small FOV and limited performance....
|
1793289093.6370258
|
1793375493.6370258
|
|
56516
|
Hotwheel Alarm Clock! by @akhilatyam | Stardance
|
akhilatyam
|
0
|
5.16
|
0
|
[]
|
[{"post_id": 73211, "ts": "202 [{"post_id": 73211, "ts": "2026-09-24T16:40:58Z", "hours": 0.9906, "text": "Devlog 3: THE CODE Hello guys, welcome to hopefully, the final devlog!!! In this devlog, I finished writing the code for this project. Code was inspired by other projects in terms of wifi, and I would like to thank the creator of the BEE alarm clock. Features The alarm clock has 3 modes, stopwatch, alarm, time. It can cycle between the 3, and add upto 10 alarms stored in a list. There really isn’t much to say, i am not super good at code devlogs forgive me."}, {"post_id": 71469, "ts": "2026-09-20T21:48:43Z", "hours": 2.7828, "text": "Devlog #2: The CAD Slightly long devlog, lets go over it! For my base, I just used the normal tutorial for the project, since my CAD knowledge extended only to assembling an FTC bot. After that, I was thinking of a theme. It took me a while to figure things out, and I slept on it. I had a carton of some of the new F1 hotwheels on my table, and I decided to make my alarm clock hotwheel themed! I got a DXF file of the hotwheel logo, imported and extruded it, then used the boolean tool to etch the logo into the case so it can actually print that way. What was the hardest part of this part? The Boolean tool and managing DXF files. Once I had loaded in the DXF files, it took FOREVER for me to be able to adjust and crop it. There were a lot of stray dots that took a while to get rid of. Luckily, they did not affect final cad. I also added a phone stand because why not. It prints without supports according to my slicer."}, {"post_id": 70335, "ts": "2026-09-18T23:50:17Z", "hours": 1.3836, "text": "Devlog #1 : The PCB Hello guys! So I have officially made the PCB!!! This took a bit off time, i did Kicad before but this was some good practice for me. I did a basic design with 4 switches for now, might expand later. Thats all!"}]...
|
Title: Hotwheel Alarm Clock! by @akhilatyam | Star Title: Hotwheel Alarm Clock! by @akhilatyam | Stardance
Devlogs:
Devlog #1 : The PCB Hello guys! So I have officially made the PCB!!! This took a bit off time, i did Kicad before but this was some good practice for me. I did a basic design with 4 switches for now, might expand later. Thats all!
Devlog #2: The CAD Slightly long devlog, lets go over it! For my base, I just used the normal tutorial for the project, since my CAD knowledge extended only to assembling an FTC bot. After that, I was thinking of a theme. It took me a while to figure things out, and I slept on it. I had a carton of some of the new F1 hotwheels on my table, and I decided to make my alarm clock hotwheel themed! I got a DXF file of the hotwheel logo, imported and extruded it, then used the boolean tool to etch the logo into the case so it can actually print that way. What was the hardest part of this part? The Boolean tool and managing DXF files. Once I had loaded in the DXF files, it took FOREVER for me to be able to adjust and crop it. There were a lot of stray dots that took a while to get rid of. Luckily, they did not affect final cad. I also added a phone stand because why not. It prints without supports according to my slicer.
Devlog 3: THE CODE Hello guys, welcome to hopefully, the final devlog!!! In this devlog, I finished writing the code for this project. Code was inspired by other projects in terms of wifi, and I would like to thank the creator of the BEE alarm clock. Features The alarm clock has 3 modes, stopwatch, alarm, time. It can cycle between the 3, and add upto 10 alarms stored in a list. There really isn’t much to say, i am not super good at code devlogs forgive me....
|
1792666415.1560338
|
1793271215.1560338
|
|
28981
|
My very own WebOS by @Nikks | Stardance
|
Nikks
|
2
|
18.0
|
14
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-24T17:07:34Z", "hours": 9.0, "multiplier": 1.52, "payout": 14, "blessing": "neutral", "text": "I made a breaking bad themed OS that’s running in a website. Also the part i was kind of stuck at was the terminal. It was hard trying to make it similar to a traditional on and that’s I’m most proud of too.", "repo": "https://github.com/Nikhil1059/BreakingBadOS", "demo": "https://nikhil1059.github.io/BreakingBadOS/"}, {"ship_num": 2, "ts": "2026-08-17T21:13:35Z", "hours": 9.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I havent completed it but i think this is a good milestone to ship it ad work on it in the future.", "repo": "https://github.com/Nikhil1059/BreakingBadOS", "demo": "https://nikhil1059.github.io/BreakingBadOS/"}]...
|
[{"post_id": 73216, "ts": "202 [{"post_id": 73216, "ts": "2026-09-24T16:48:12Z", "hours": 1.4122, "text": "This time i have added the feature to resize windows. its similar to normal windows resizing windows or linux."}, {"post_id": 65951, "ts": "2026-09-11T13:08:39Z", "hours": 2.1336, "text": "So today i made some good and exciting changes. The changes that were made are: I made a Calendar that pops out when you click the date or time. I redesigned the topbar to kind of look like a taskbar I also made the buttons on the top bar better with animations and shadow. I hope whoever tries this out if any please give me some ideas to further add :)"}, {"post_id": 65322, "ts": "2026-09-10T12:15:23Z", "hours": 1.6089, "text": "So today I made some commands for the terminal. /help gives you all the commands that WORK so feel free to fidget and I’m sure there should be no bugs but please let me know if there are any;)"}, {"post_id": 64171, "ts": "2026-09-08T12:05:35Z", "hours": 1.5844, "text": "I further worked on the terminal. Today i have added two things: The way the input and output is given in the terminal. Its very close to a standard terminal and acts like it. The cursor bar. I have added a distinct function masking the normal cursor bar with a terminal style cursor bar that works so nice. also for now the output of the commands(for now just text) is the input itself but in the next session im going to add official commands and a /help too :)"}, {"post_id": 63473, "ts": "2026-09-07T10:55:18Z", "hours": 1.38, "text": "Today I made the terminal window. As usual it will has all the characteristics of the notes window and also I tried to replicate a terminal design as much as possible. For now the terminal doesn’t work and it just gives the same output as what we type but ill work on that. But I this this was a good front end work."}, {"post_id": 49887, "ts": "2026-08-18T20:56:35Z", "hours": 1.2892, "text": "These are the things i have done in this session: I created a terminal icon and gave it the same charecteristics as the notes icon. I added a reset button which makes the app icons go back to their previous place and this clears the local storage too. I significantly upgraded the dragging system and tbh i spent a really long time for this so please check this out. The icon won’t overlap now and also i gave them real desktop like behaviour. I also added desktop boundaries so that the icons dont go off screen."}, {"post_id": 47641, "ts": "2026-08-15T17:48:50Z", "hours": 1.0669, "text": "I have made the Icon movable like an actual icon on a desktop. Also added a grid so that the icon snapped to a place like again a normal desktop. Also i have added local storage for this icon position so when you change the position of the icon and reload the website the icon will stay at the place you left it. I though it was cool. also for the people who find the boot screen appearing every time you can just change the dev mode true in Script.js and it’ll be bypassed. I planned a solution for this so stay tuned :)"}, {"post_id": 39492, "ts": "2026-08-02T13:58:35Z", "hours": 6.0139, "text": "I have made a lot of changes and forgot to make devlogs. I made a beautiful booting screen and also a beautiful intro screen. I also added a notes app which saves automatically."}, {"post_id": 20284, "ts": "2026-07-01T20:44:38Z", "hours": 1.9125, "text": "I’m working on a os on a web as part of a mission in stardance. I have so far just added some introduction about myself and added a little time and date indicator on the top right. And yeah its Breaking Bad themed so stay tuned i have some good ideas to implement."}]...
|
Title: My very own WebOS by @Nikks | Stardance
De Title: My very own WebOS by @Nikks | Stardance
Devlogs:
I’m working on a os on a web as part of a mission in stardance. I have so far just added some introduction about myself and added a little time and date indicator on the top right. And yeah its Breaking Bad themed so stay tuned i have some good ideas to implement.
I have made a lot of changes and forgot to make devlogs. I made a beautiful booting screen and also a beautiful intro screen. I also added a notes app which saves automatically.
I have made the Icon movable like an actual icon on a desktop. Also added a grid so that the icon snapped to a place like again a normal desktop. Also i have added local storage for this icon position so when you change the position of the icon and reload the website the icon will stay at the place you left it. I though it was cool. also for the people who find the boot screen appearing every time you can just change the dev mode true in Script.js and it’ll be bypassed. I planned a solution for this so stay tuned :)
These are the things i have done in this session: I created a terminal icon and gave it the same charecteristics as the notes icon. I added a reset button which makes the app icons go back to their previous place and this clears the local storage too. I significantly upgraded the dragging system and tbh i spent a really long time for this so please check this out. The icon won’t overlap now and also i gave them real desktop like behaviour. I also added desktop boundaries so that the icons dont go off screen.
Today I made the terminal window. As usual it will has all the characteristics of the notes window and also I tried to replicate a terminal design as much as possible. For now the terminal doesn’t work and it just gives the same output as what we type but ill work on that. But I this this was a good front end work.
I further worked on the terminal. Today i have added two things: The way the input and output is given in the terminal. Its very close to a standard terminal and acts like it. The cursor bar. I have added a distinct function masking the normal cursor bar with a terminal style cursor bar that works so nice. also for now the output of the commands(for now just text) is the input itself but in the next session im going to add official commands and a /help too :)
So today I made some commands for the terminal. /help gives you all the commands that WORK so feel free to fidget and I’m sure there should be no bugs but please let me know if there are any;)
So today i made some good and exciting changes. The changes that were made are: I made a Calendar that pops out when you click the date or time. I redesigned the topbar to kind of look like a taskbar I also made the buttons on the top bar better with animations and shadow. I hope whoever tries this out if any please give me some ideas to further add :)
This time i have added the feature to resize windows. its similar to normal windows resizing windows or linux.
Ships:
I havent completed it but i think this is a good milestone to ship it ad work on it in the future.
I made a breaking bad themed OS that’s running in a website. Also the part i was kind of stuck at was the terminal. It was hard trying to make it similar to a traditional on and that’s I’m most proud of too....
|
1793307000.3835564
|
1793393400.3835564
|
|
62840
|
Can you Outsmart AI? by @Duxredux | Stardance
|
Duxredux
|
1
|
4.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-25T14:55:15Z", "hours": 4.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "CAN YOU OUTSMART AI? This is a simple website that gamifies the process of trying to basically extract confidential data(not really that confidential in this case) from an LLM by tricking it into giving it to you. Your objective is simple. The LLM has been given a passkey or a secret phrase (whatever floats your boat) and it is instructed on not to giving it to you (Do not try to inspect page, it wont work). You are supposed to give it prompts to trick it into giving you the passkey by any manner. This is a cybersecurity based project to educate people about the potential harm that could occur when AI agents are given acess to confidential information. Challenges: The main challenge in making this was that I had to learn how to make an LLM run locally on a machine and that too through a website and ofc choosing the model itself. I experimented with a few smaller models with 0.5-1B parameters and they were all insanely dumb and made getting the passkey way too easy. So stepped it up to a 1.5B parameter model and a bit of Prompt Engineering Magic to get the sweet spot. Important: This project does not support or endorse any kind of illegal activities by utilizing AI or otherwise. This is strictly a cybersecurity based project I wanted to make to educate people about the potential flaws of LLMs. LLMs are stateless and hence each message is new to them. So its really important to maintain guardrails and safely nets in your AI Agents and system prompts", "repo": "https://github.com/Sohan-r07/Outsmarting-AI", "demo": "https://sohan-r07.github.io/Outsmarting-AI/"}]...
|
[{"post_id": 73221, "ts": "202 [{"post_id": 73221, "ts": "2026-09-24T16:51:16Z", "hours": 1.0839, "text": "Finally finished the website completely. The UI to me is satisfactory but not perfect or good enough, will look forward to improve it. Will be shipping it out soon (maybe tomorrow perhaps)."}, {"post_id": 71791, "ts": "2026-09-21T15:39:47Z", "hours": 0.535, "text": "Finished the UI finally and got the Javascript and stuff working. The model that I am currently using though is a 0.5B parameter one and just keeps giving the secret away with no effort.. Gotta find some bigger and better alternatives for it. Once that’s done I might be able to ship this out"}, {"post_id": 71296, "ts": "2026-09-20T16:13:41Z", "hours": 0.6475, "text": "Worked on the actual website to make it functional but the AI model I am using which is a 0.5B parameter one seems a little too dumb. Going to try to improve it now."}, {"post_id": 70523, "ts": "2026-09-19T09:59:24Z", "hours": 0.5783, "text": "Worked on trying to get the AI model to work on the browser and found out that I could use webllm for it. Chose a simple model. Decided to also implement a sha256 encryption so that people can not just inspect page to get the answer. (Please excuse the video at the bottom)"}, {"post_id": 70160, "ts": "2026-09-18T16:24:23Z", "hours": 0.5692, "text": "Worked on the styling of the website today with a little help for the colour palette. Worked on a bit of the javascript too."}, {"post_id": 69227, "ts": "2026-09-16T16:45:44Z", "hours": 0.4125, "text": "Started the Project today. Done with the simple overall structure for the website, may need some changes later."}]...
|
Title: Can you Outsmart AI? by @Duxredux | Stardan Title: Can you Outsmart AI? by @Duxredux | Stardance
Devlogs:
Started the Project today. Done with the simple overall structure for the website, may need some changes later.
Worked on the styling of the website today with a little help for the colour palette. Worked on a bit of the javascript too.
Worked on trying to get the AI model to work on the browser and found out that I could use webllm for it. Chose a simple model. Decided to also implement a sha256 encryption so that people can not just inspect page to get the answer. (Please excuse the video at the bottom)
Worked on the actual website to make it functional but the AI model I am using which is a 0.5B parameter one seems a little too dumb. Going to try to improve it now.
Finished the UI finally and got the Javascript and stuff working. The model that I am currently using though is a 0.5B parameter one and just keeps giving the secret away with no effort.. Gotta find some bigger and better alternatives for it. Once that’s done I might be able to ship this out
Finally finished the website completely. The UI to me is satisfactory but not perfect or good enough, will look forward to improve it. Will be shipping it out soon (maybe tomorrow perhaps).
Ships:
CAN YOU OUTSMART AI? This is a simple website that gamifies the process of trying to basically extract confidential data(not really that confidential in this case) from an LLM by tricking it into giving it to you. Your objective is simple. The LLM has been given a passkey or a secret phrase (whatever floats your boat) and it is instructed on not to giving it to you (Do not try to inspect page, it wont work). You are supposed to give it prompts to trick it into giving you the passkey by any manner. This is a cybersecurity based project to educate people about the potential harm that could occur when AI agents are given acess to confidential information. Challenges: The main challenge in making this was that I had to learn how to make an LLM run locally on a machine and that too through a website and ofc choosing the model itself. I experimented with a few smaller models with 0.5-1B parameters and they were all insanely dumb and made getting the passkey way too easy. So stepped it up to a 1.5B parameter model and a bit of Prompt Engineering Magic to get the sweet spot. Important: This project does not support or endorse any kind of illegal activities by utilizing AI or otherwise. This is strictly a cybersecurity based project I wanted to make to educate people about the potential flaws of LLMs. LLMs are stateless and hence each message is new to them. So its really important to maintain guardrails and safely nets in your AI Agents and system prompts...
|
1793210125.4943683
|
1793296525.4943683
|
|
65488
|
TypeArena by @Xgly | Stardance
|
Xgly
|
1
|
5.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-24T17:09:25Z", "hours": 5.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a Typing Speed Testing website, I just bored using a simple speed testing website, so I decided to make my own with some cool features and yeah it’s not the end I will add many more cool features. It has many mode not just one simple typing for ex- it has a hardcore mode in this if u type 1 wrong word it’s over. I faces many problem but not gonna lie I use Ai to fix them…", "repo": "https://github.com/aquamystic7/Typing-Speed-Test", "demo": "https://typearena.xyz/"}]...
|
[{"post_id": 73230, "ts": "202 [{"post_id": 73230, "ts": "2026-09-24T17:04:25Z", "hours": 5.2956, "text": "I’m Just making a cool Typing Speed Testing website with cool features…"}]...
|
Title: TypeArena by @Xgly | Stardance
Devlogs:
I’ Title: TypeArena by @Xgly | Stardance
Devlogs:
I’m Just making a cool Typing Speed Testing website with cool features…
Ships:
I made a Typing Speed Testing website, I just bored using a simple speed testing website, so I decided to make my own with some cool features and yeah it’s not the end I will add many more cool features. It has many mode not just one simple typing for ex- it has a hardcore mode in this if u type 1 wrong word it’s over. I faces many problem but not gonna lie I use Ai to fix them…...
|
1793213773.1385033
|
1793300173.1385033
|
|
64859
|
All-In-One-Calendar-notetaking-and-reminders by @s All-In-One-Calendar-notetaking-and-reminders by @sharavan | Stardance...
|
sharavan
|
0
|
1.61
|
0
|
[]
|
[{"post_id": 73236, "ts": "202 [{"post_id": 73236, "ts": "2026-09-24T17:09:49Z", "hours": 0.3761, "text": "Continuing on from my previous Dev-note, I carried out some research on which areas would be the most logical to place the UI elements like the settings and the top left seemed ideal! Attached below is what the button layout looks like, with some place holders in place (like “R” for reminders and “T” for today) just for testing purposes. The next step for me will be creating algorithms to build the calendar UI, which will be a complex problem to solve."}, {"post_id": 73206, "ts": "2026-09-24T16:28:36Z", "hours": 0.5458, "text": "I have been working on modifying the software to add a more buttons on the left hand side of the screen, which I intend to have the navigation controls! I would love to see the community opinion on the look of the software so far, so if there is any opinions please let me know! For those who are interested, the module i am using is flet in python, which allows me to create a more modern GUI than tkinter!"}, {"post_id": 72382, "ts": "2026-09-22T20:00:24Z", "hours": 0.3722, "text": "DEV NOTE 2: Looking back at my main home screen, my grey “today” button has something wrong… It just says “22” not the “22nd”… to correct this I decided to implement a new method which could deal with adding the appropiate addition to the “dd” section of the date… However, this does currently not work as intended so more debugging is required!"}, {"post_id": 72369, "ts": "2026-09-22T19:29:40Z", "hours": 0.3133, "text": "DEV NOTE 1: This is the first dev-note for this project! So, to start off the project I have created a main home page with the “chronos” name in the top left and the two buttons at the top. The main idea is that the green and red buttons will direct you between the different functions, and the button below the top bar (with 22 in it) will be the “today” button which will show what you have scheduled for today, notes and other reminders, etc…"}]...
|
Title: All-In-One-Calendar-notetaking-and-reminder Title: All-In-One-Calendar-notetaking-and-reminders by @sharavan | Stardance
Devlogs:
DEV NOTE 1: This is the first dev-note for this project! So, to start off the project I have created a main home page with the “chronos” name in the top left and the two buttons at the top. The main idea is that the green and red buttons will direct you between the different functions, and the button below the top bar (with 22 in it) will be the “today” button which will show what you have scheduled for today, notes and other reminders, etc…
DEV NOTE 2: Looking back at my main home screen, my grey “today” button has something wrong… It just says “22” not the “22nd”… to correct this I decided to implement a new method which could deal with adding the appropiate addition to the “dd” section of the date… However, this does currently not work as intended so more debugging is required!
I have been working on modifying the software to add a more buttons on the left hand side of the screen, which I intend to have the navigation controls! I would love to see the community opinion on the look of the software so far, so if there is any opinions please let me know! For those who are interested, the module i am using is flet in python, which allows me to create a more modern GUI than tkinter!
Continuing on from my previous Dev-note, I carried out some research on which areas would be the most logical to place the UI elements like the settings and the top left seemed ideal! Attached below is what the button layout looks like, with some place holders in place (like “R” for reminders and “T” for today) just for testing purposes. The next step for me will be creating algorithms to build the calendar UI, which will be a complex problem to solve....
|
1793069264.4479077
|
1793674064.4479077
|
|
48199
|
UPS for Raspberry Pi by @Jovi | Stardance
|
Jovi
|
2
|
5.0
|
23
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-24T17:16:12Z", "hours": 1.0, "multiplier": 5.0, "payout": 3, "blessing": "neutral", "text": "I made a simple but working UPS for a raspberry pi(any raspberry pi) that works on a 1200mAh li-po battery, and can last an hour with strong load on the pi! You can also view the voltage of the battery, as shown below, so you would know when to stop before the pi shuts down edit: I edited the video this time, and added some comments", "repo": "https://github.com/TeenEngineer/RasPi_UPS", "demo": ""}, {"ship_num": 2, "ts": "2026-08-17T16:58:25Z", "hours": 4.0, "multiplier": 5.0, "payout": 20, "blessing": "neutral", "text": "I made a simple but working UPS for a raspberry pi(any raspberry pi) that works on a 1200mAh li-po battery, and can last an hour with strong load on the pi! You can also view the voltage of the battery, as shown below, so you would know when to stop before the pi shuts down", "repo": "https://github.com/TeenEngineer/RasPi_UPS", "demo": ""}]...
|
[{"post_id": 73239, "ts": "202 [{"post_id": 73239, "ts": "2026-09-24T17:13:22Z", "hours": 0.5344, "text": "Edited the initial video(i hope i get more payout this time)"}, {"post_id": 48414, "ts": "2026-08-16T19:07:04Z", "hours": 0.4003, "text": "Made the case"}, {"post_id": 47695, "ts": "2026-08-15T19:31:34Z", "hours": 3.5389, "text": "Made the UPS(TOOK TOO LONG, AND ACCIDENTALLY TRIED TO OVER-ENGINEER IT)… The final result is below. You can watch this timelapse to see what i was doing before switching to the current design: https://lapse.hackclub.com/timelapse/Mhi8F60c0BRf"}]...
|
Title: UPS for Raspberry Pi by @Jovi | Stardance
Title: UPS for Raspberry Pi by @Jovi | Stardance
Devlogs:
Made the UPS(TOOK TOO LONG, AND ACCIDENTALLY TRIED TO OVER-ENGINEER IT)… The final result is below. You can watch this timelapse to see what i was doing before switching to the current design: https://lapse.hackclub.com/timelapse/Mhi8F60c0BRf
Made the case
Edited the initial video(i hope i get more payout this time)
Ships:
I made a simple but working UPS for a raspberry pi(any raspberry pi) that works on a 1200mAh li-po battery, and can last an hour with strong load on the pi! You can also view the voltage of the battery, as shown below, so you would know when to stop before the pi shuts down
I made a simple but working UPS for a raspberry pi(any raspberry pi) that works on a 1200mAh li-po battery, and can last an hour with strong load on the pi! You can also view the voltage of the battery, as shown below, so you would know when to stop before the pi shuts down edit: I edited the video this time, and added some comments...
|
1793325013.943674
|
1793411413.943674
|
|
62105
|
space-dashboard by @abdulqadir | Stardance
|
abdulqadir
|
1
|
16.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-24T18:27:33Z", "hours": 16.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a customizable Space Dashboard using HTML, CSS, JavaScript and Vite. It uses NASA’s APOD API to show a new space background and also has a live customizable clock, Google search, quick shortcuts, random quotes, a draggable to-do list, custom space wallpapers and solid backgrounds. One of the most challenging parts was debugging the JavaScript, especially when a missing bracket broke both the clock and hamburger menu, and I also had some problems getting the Day/Night color toggle and wallpapers working correctly. I’m most proud of the custom Space Menu and how users can personalize the dashboard. When testing it, try changing the background, clock font and color, turning Day/Night mode on and off, and using the To-Do list and search.", "repo": "https://github.com/qadir-eng/space-dashboard", "demo": "https://qadir-eng.github.io/space-dashboard/"}]...
|
[{"post_id": 73257, "ts": "202 [{"post_id": 73257, "ts": "2026-09-24T18:04:25Z", "hours": 3.9967, "text": "Since the last devlog, I worked mainly on improving the customization and overall UI of the Space Dashboard. I added a Background section to the side menu. Users can now switch back to the NASA Daily image, choose from five selected space wallpapers, or use solid-color backgrounds. The wallpapers also have small previews so users can see them before selecting one. I also improved the clock customization. Users can now change the clock font using arrow buttons and choose between Digital Ops, Audiowide, Michroma, Bruno Ace, and Oxanium. I added a similar selector for clock colors, with options like White, Cyan, Blue, Purple, Solar, and Black. I added a Day/Night toggle for the clock too. When it is turned on, the clock automatically changes its color depending on the time of day. When it is turned off, the user can select their own clock color. I also improved the side menu so the clock font and color selectors open directly underneath their buttons instead of opening separate panels. This makes the menu simpler and keeps the main dashboard clean. Another addition was the loading screen. When the website starts, it shows “Loading Space…” while the NASA Daily background is being fetched and loaded. Once the image is ready, the loading screen disappears. It also disappears if the NASA request fails so the website doesn’t get stuck. There were several bugs while building these features. The biggest one was a misplaced } in the clock code, which caused the clock to stay at 00 00 and stopped the hamburger menu from working. I also had issues with the Day/Night toggle not visually turning off, wallpaper paths, and manual clock colors being overwritten by the automatic colors. I debugged these issues and got everything working properly. Overall, this update focused on making the Space Dashboard more customizable, cleaner, and easier to use."}, {"post_id": 72588, "ts": "2026-09-23T09:29:52Z", "hours": 3.6825, "text": "From last 2 days I was focusing on making the Space Dashboard more interactive and customizable. Space Menu I created a hamburger menu that opens a glass-style sidebar. This will act as the main control center for the dashboard, with options for the Quote of the Day, To-Do List, backgrounds, clock styles, and clock colors. I connected the Quote of the Day option to the sidebar. Users can now toggle the quote ON or OFF, depending on whether they want a cleaner dashboard or some inspiration on screen. I added a 4-task To-Do panel with a dark matte-glass design, background blur, rounded corners, and subtle transparency. I also made the panel draggable, so users can move it anywhere on their dashboard while still being able to type normally inside the task fields. and with that they can be on and off by clicking on to-do list button on sidebar"}, {"post_id": 71743, "ts": "2026-09-21T13:12:22Z", "hours": 0.7314, "text": "Today I worked on the search section of my Space Dashboard. I added a Google search bar so users can quickly search the web directly from the dashboard. I also added four shortcut buttons for YouTube, Gmail, Stardance, and Hackatime. I gave the search bar and shortcuts a glassmorphism/futuristic space design with transparent backgrounds, blur effects, and hover animations."}, {"post_id": 71683, "ts": "2026-09-21T09:35:02Z", "hours": 1.0897, "text": "add 5 different quotes each time randomly one from them will appear as it is appearing of top right if you think any changes feel free to give your changes"}, {"post_id": 71406, "ts": "2026-09-20T19:22:20Z", "hours": 2.0353, "text": "Set today’s NASA Astronomy Picture of the Day as the full-page background, with a dark overlay to keep everything readable regardless of what image NASA posts. Added a large glowing digital clock overlay showing the live time, styled with a soft black to match the space theme"}, {"post_id": 71105, "ts": "2026-09-20T09:38:25Z", "hours": 1.8103, "text": "🚀 Space Dashboard — Saving Notes with localStorageToday I worked on making the sticky notes in my Space Dashboard persistent.Before this, I could create NASA photo notes and drag them around, but whenever I refreshed the page, all the notes disappeared.💾 What I addedI implemented localStorage so the dashboard can remember the notes even after refreshing the page.For each note, I now save:📸 The NASA photo URL📍 The note’s position📝 The note’s shape/classI created a saveNotes() function that collects the information from every sticky note and stores it in the browser’s localStorage.I also added a restore system that runs when the page loads. It reads the saved notes, recreates them, restores their positions, and makes them draggable again.🖱️ Dragging + SavingI kept the existing drag system and connected it to the save function. Whenever I move a note, its new position is saved.This means I can:Add a NASA photo noteDrag it anywhereRefresh the pageGet the note back in the same position 🎯🧠 What I learnedThis part taught me more about:localStorageJSON.stringify()JSON.parse()datasetSaving JavaScript objectsRestoring DOM elements after a page reloadConnecting multiple features together✅ ResultThe Space Dashboard now remembers my NASA sticky notes instead of losing them every time the page refreshes.This makes the dashboard feel much more like a real usable application rather than just a temporary webpage. lwk this time no ss TT"}, {"post_id": 70069, "ts": "2026-09-18T12:00:27Z", "hours": 0.9089, "text": "Fixed a real-world problem: NASA’s official Mars Rover Photos API was returning 404 errors on every request — confirmed it wasn’t my code by testing the exact documented URL directly, even with their public demo key. Pivoted to reusing the same NASA APOD endpoint I’d already gotten working, but requesting a random historical date instead of today — gives varied real space photos on each sticky note while staying reliable. Learned how to generate a random date between two points using Date.getTime() and Math.random()."}, {"post_id": 69319, "ts": "2026-09-16T19:50:28Z", "hours": 1.2689, "text": "Wrote the core JavaScript for my Space Search project: a live fetch to NASA’s Astronomy Picture of the Day API. Learned how fetch() and .then() chains work — sending a request, converting the raw response with .json(), then using the data to build the page. Handled the case where NASA sometimes posts a video instead of an image (using an if statement and a media variable so I only set innerHTML once, instead of overwriting it multiple times). Added error handling with .catch() so the page shows a clear message instead of going blank if something fails. Toughest part was understanding why setting innerHTML multiple times wipes out previous content — had to actually see it break before it clicked. Screenshot: the page showing today’s NASA title, image, and description. Ik that it isn’t looking cool but trust the process buddies TT"}]...
|
Title: space-dashboard by @abdulqadir | Stardance
Title: space-dashboard by @abdulqadir | Stardance
Devlogs:
Wrote the core JavaScript for my Space Search project: a live fetch to NASA’s Astronomy Picture of the Day API. Learned how fetch() and .then() chains work — sending a request, converting the raw response with .json(), then using the data to build the page. Handled the case where NASA sometimes posts a video instead of an image (using an if statement and a media variable so I only set innerHTML once, instead of overwriting it multiple times). Added error handling with .catch() so the page shows a clear message instead of going blank if something fails. Toughest part was understanding why setting innerHTML multiple times wipes out previous content — had to actually see it break before it clicked. Screenshot: the page showing today’s NASA title, image, and description. Ik that it isn’t looking cool but trust the process buddies TT
Fixed a real-world problem: NASA’s official Mars Rover Photos API was returning 404 errors on every request — confirmed it wasn’t my code by testing the exact documented URL directly, even with their public demo key. Pivoted to reusing the same NASA APOD endpoint I’d already gotten working, but requesting a random historical date instead of today — gives varied real space photos on each sticky note while staying reliable. Learned how to generate a random date between two points using Date.getTime() and Math.random().
🚀 Space Dashboard — Saving Notes with localStorageToday I worked on making the sticky notes in my Space Dashboard persistent.Before this, I could create NASA photo notes and drag them around, but whenever I refreshed the page, all the notes disappeared.💾 What I addedI implemented localStorage so the dashboard can remember the notes even after refreshing the page.For each note, I now save:📸 The NASA photo URL📍 The note’s position📝 The note’s shape/classI created a saveNotes() function that collects the information from every sticky note and stores it in the browser’s localStorage.I also added a restore system that runs when the page loads. It reads the saved notes, recreates them, restores their positions, and makes them draggable again.🖱️ Dragging + SavingI kept the existing drag system and connected it to the save function. Whenever I move a note, its new position is saved.This means I can:Add a NASA photo noteDrag it anywhereRefresh the pageGet the note back in the same position 🎯🧠 What I learnedThis part taught me more about:localStorageJSON.stringify()JSON.parse()datasetSaving JavaScript objectsRestoring DOM elements after a page reloadConnecting multiple features together✅ ResultThe Space Dashboard now remembers my NASA sticky notes instead of losing them every time the page refreshes.This makes the dashboard feel much more like a real usable application rather than just a temporary webpage. lwk this time no ss TT
Set today’s NASA Astronomy Picture of the Day as the full-page background, with a dark overlay to keep everything readable regardless of what image NASA posts. Added a large glowing digital clock overlay showing the live time, styled with a soft black to match the space theme
add 5 different quotes each time randomly one from them will appear as it is appearing of top right if you think any changes feel free to give your changes
Today I worked on the search section of my Space Dashboard. I added a Google search bar so users can quickly search the web directly from the dashboard. I also added four shortcut buttons for YouTube, Gmail, Stardance, and Hackatime. I gave the search bar and shortcuts a glassmorphism/futuristic space design with transparent backgrounds, blur effects, and hover animations.
From last 2 days I was focusing on making the Space Dashboard more interactive and customizable. Space Menu I created a hamburger menu that opens a glass-style sidebar. This will act as the main control center for the dashboard, with options for the Quote of the Day, To-Do List, backgrounds, clock styles, and clock colors. I connected the Quote of the Day option to the sidebar. Users can now toggle the quote ON or OFF, depending on whether they want a cleaner dashboard or some inspiration on screen. I added a 4-task To-Do panel with a dark matte-glass design, background blur, rounded corners, and subtle transparency. I also made the panel draggable, so users can move it anywhere on their dashboard while still being able to type normally inside the task fields. and with that they can be on and off by clicking on to-do list button on sidebar
Since the last devlog, I worked mainly on improving the customization and overall UI of the Space Dashboard. I added a Background section to the side menu. Users can now switch back to the NASA Daily image, choose from five selected space wallpapers, or use solid-color backgrounds. The wallpapers also have small previews so users can see them before selecting one. I also improved the clock customization. Users can now change the clock font using arrow buttons and choose between Digital Ops, Audiowide, Michroma, Bruno Ace, and Oxanium. I added a similar selector for clock colors, with options like White, Cyan, Blue, Purple, Solar, and Black. I added a Day/Night toggle for the clock too. When it is turned on, the clock automatically changes its color depending on the time of day. When it is turned off, the user can select their own clock color. I also improved the side menu so the clock font and color selectors open directly underneath their buttons instead of opening separate panels. This makes the menu simpler and keeps the main dashboard clean. Another addition was the loading screen. When the website starts, it shows “Loading Space…” while the NASA Daily background is being fetched and loaded. Once the image is ready, the loading screen disappears. It also disappears if the NASA request fails so the website doesn’t get stuck. There were several bugs while building these features. The biggest one was a misplaced } in the clock code, which caused the clock to stay at 00 00 and stopped the hamburger menu from working. I also had issues with the Day/Night toggle not visually turning off, wallpaper paths, and manual clock colors being overwritten by the automatic colors. I debugged these issues and got everything working properly. Overall, this update focused on making the Space Dashboard more customizable, cleaner, and easier to use.
Ships:
I made a customizable Space Dashboard using HTML, CSS, JavaScript and Vite. It uses NASA’s APOD API to show a new space background and also has a live customizable clock, Google search, quick shortcuts, random quotes, a draggable to-do list, custom space wallpapers and solid backgrounds. One of the most challenging parts was debugging the JavaScript, especially when a missing bracket broke both the clock and hamburger menu, and I also had some problems getting the Day/Night color toggle and wallpapers working correctly. I’m most proud of the custom Space Menu and how users can personalize the dashboard. When testing it, try changing the background, clock font and color, turning Day/Night mode on and off, and using the To-Do list and search....
|
1793209911.0292916
|
1793296311.0292916
|
|
59063
|
soundpillow by @Dalv | Stardance
|
Dalv
|
0
|
0.38
|
0
|
[]
|
[{"post_id": 73259, "ts": "202 [{"post_id": 73259, "ts": "2026-09-24T18:06:59Z", "hours": 0.3819, "text": "I added GG’s to my PCB because why not"}]...
|
Title: soundpillow by @Dalv | Stardance
Devlogs:
Title: soundpillow by @Dalv | Stardance
Devlogs:
I added GG’s to my PCB because why not...
|
1792781503.1378984
|
1793386303.1378984
|
|
40044
|
Aether by @Praknoor | Stardance
|
Praknoor
|
1
|
90.8
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-11T17:37:24Z", "hours": 47.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "yoo gng… so this is v1 of my platform, pls join me in this journey….basicly it’s a platform where the studets can learn anythigh, i am also planning to add other subjects like cad, design but i am still figuring out……….to use the platform u need to first register as betatesters , then i will approve u and then u can use the platform", "repo": "https://github.com/GurnoorLog/AETHER", "demo": "https://aether-sooty-one.vercel.app/"}]...
|
[{"post_id": 73267, "ts": "202 [{"post_id": 73267, "ts": "2026-09-24T18:19:42Z", "hours": 6.8969, "text": "improved the website, the tutors languigeand added the poption to custumize the look"}, {"post_id": 60866, "ts": "2026-09-03T14:33:30Z", "hours": 4.9708, "text": "just improved the app, gave the app the style of the website, also i made some art, but it’s 🤮 rn…but give some tmie and it will be great"}, {"post_id": 58115, "ts": "2026-08-30T13:51:06Z", "hours": 0.5667, "text": "improved also the layout of the dahboard"}, {"post_id": 58071, "ts": "2026-08-30T12:42:03Z", "hours": 4.0575, "text": "reworked on the css"}, {"post_id": 54716, "ts": "2026-08-25T19:50:06Z", "hours": 7.0078, "text": "improved the website, and also made the app more optimized"}, {"post_id": 52583, "ts": "2026-08-22T19:24:01Z", "hours": 1.3981, "text": "yoo gng added more screens… and the ui is now complete….. it’s ready to use gng, i am soon gonna publish it"}, {"post_id": 52181, "ts": "2026-08-22T08:35:54Z", "hours": 4.0375, "text": "created the remaing screens, and improved the ui"}, {"post_id": 51533, "ts": "2026-08-21T09:22:21Z", "hours": 4.6594, "text": "yoo gng i am now focusing on the ui, i chose the koala as my mascot 🐨🐨🐨🐨"}, {"post_id": 47642, "ts": "2026-08-15T17:48:54Z", "hours": 4.6103, "text": "yoo the app is complete, i added all the functionality, optimized , added dark theme and other custumisations…….now the only thigh left is to put it in google playstore"}, {"post_id": 47101, "ts": "2026-08-14T18:57:14Z", "hours": 5.5983, "text": "yoo gng i have now also made it into an app for android …..i changed the ui in the android mode, i am also palnning to mmake a big chnage in the ui of the website..but yeah slow and steady wins the race 😭😭😭😭😭😭😭😭..so tired 😭😭"}, {"post_id": 45275, "ts": "2026-08-11T16:57:27Z", "hours": 12.1869, "text": "yoo gng… just improved the ai"}, {"post_id": 38293, "ts": "2026-07-31T16:40:01Z", "hours": 0.4378, "text": "gng…i have made this demo video, lol i was my first video editing took me like 4hr, oh well i think it’s goo…..here is the link https://youtu.be/Adcq0bVabeU?si=SW5BLNibwAD3Nauz"}, {"post_id": 37840, "ts": "2026-07-30T20:04:03Z", "hours": 1.3114, "text": "it can now generate maps"}, {"post_id": 37589, "ts": "2026-07-30T12:53:01Z", "hours": 2.155, "text": "added the betatesting form, only allowed email will be able to test it……..just send the email and i will allow u all as soon as i can"}, {"post_id": 37015, "ts": "2026-07-29T14:10:48Z", "hours": 2.7511, "text": "improved the ui, a code challanges option….. basically it’s like a google collab ui where u wrtie ure code and the ai checks it"}, {"post_id": 36930, "ts": "2026-07-29T10:22:33Z", "hours": 1.3236, "text": "just optimised the platform for phones also, it still needs refinements 😭😭😭😭, if somone finds any bugs pls dm me on slack @Praknoor"}, {"post_id": 36502, "ts": "2026-07-28T17:33:43Z", "hours": 7.22, "text": "just added the voice tutor option"}, {"post_id": 35696, "ts": "2026-07-27T09:34:27Z", "hours": 1.2364, "text": "guys just made it online, i am now working on the roadmap creation, and adding a voice tutor……..here is the link: https://aether-sooty-one.vercel.app/ ………..it’s not quite ready for testing, it will be soon all the basic functions work, music creation only the musicgen option( since i am broke😭😭😭😭 i am using a downloaded llm on collab linked it there, and as u all know collab after sometime it closes so that might not work, if u want to try pls dm on slack @Praknoor ) …i am also opened to suggetions"}, {"post_id": 35416, "ts": "2026-07-26T20:10:31Z", "hours": 2.0853, "text": "wired up with supabase the dashboard, created the chat….soon i’ll make it online for testing…..but rn i’m so tired so i’m gonna do it tomorrow🤣😭"}, {"post_id": 35083, "ts": "2026-07-26T09:07:47Z", "hours": 16.7844, "text": "i ahve created the ui and wired up the pages…dman it took me so much just to design the landing page and then the dashboard 😭😭"}]...
|
Title: Aether by @Praknoor | Stardance
Devlogs:
i Title: Aether by @Praknoor | Stardance
Devlogs:
i ahve created the ui and wired up the pages…dman it took me so much just to design the landing page and then the dashboard 😭😭
wired up with supabase the dashboard, created the chat….soon i’ll make it online for testing…..but rn i’m so tired so i’m gonna do it tomorrow🤣😭
guys just made it online, i am now working on the roadmap creation, and adding a voice tutor……..here is the link: https://aether-sooty-one.vercel.app/ ………..it’s not quite ready for testing, it will be soon all the basic functions work, music creation only the musicgen option( since i am broke😭😭😭😭 i am using a downloaded llm on collab linked it there, and as u all know collab after sometime it closes so that might not work, if u want to try pls dm on slack @Praknoor ) …i am also opened to suggetions
just added the voice tutor option
just optimised the platform for phones also, it still needs refinements 😭😭😭😭, if somone finds any bugs pls dm me on slack @Praknoor
improved the ui, a code challanges option….. basically it’s like a google collab ui where u wrtie ure code and the ai checks it
added the betatesting form, only allowed email will be able to test it……..just send the email and i will allow u all as soon as i can
it can now generate maps
gng…i have made this demo video, lol i was my first video editing took me like 4hr, oh well i think it’s goo…..here is the link https://youtu.be/Adcq0bVabeU?si=SW5BLNibwAD3Nauz
yoo gng… just improved the ai
yoo gng i have now also made it into an app for android …..i changed the ui in the android mode, i am also palnning to mmake a big chnage in the ui of the website..but yeah slow and steady wins the race 😭😭😭😭😭😭😭😭..so tired 😭😭
yoo the app is complete, i added all the functionality, optimized , added dark theme and other custumisations…….now the only thigh left is to put it in google playstore
yoo gng i am now focusing on the ui, i chose the koala as my mascot 🐨🐨🐨🐨
created the remaing screens, and improved the ui
yoo gng added more screens… and the ui is now complete….. it’s ready to use gng, i am soon gonna publish it
improved the website, and also made the app more optimized
reworked on the css
improved also the layout of the dahboard
just improved the app, gave the app the style of the website, also i made some art, but it’s 🤮 rn…but give some tmie and it will be great
improved the website, the tutors languigeand added the poption to custumize the look
Ships:
yoo gng… so this is v1 of my platform, pls join me in this journey….basicly it’s a platform where the studets can learn anythigh, i am also planning to add other subjects like cad, design but i am still figuring out……….to use the platform u need to first register as betatesters , then i will approve u and then u can use the platform...
|
1793299847.1864567
|
1793386247.1864567
|
|
65102
|
esp32 key chain by @Bhavyadeep | Stardance
|
Bhavyadeep
|
0
|
1.7
|
0
|
[]
|
[{"post_id": 73271, "ts": "202 [{"post_id": 73271, "ts": "2026-09-24T18:27:42Z", "hours": 0.8333, "text": "yaay i have completed the second microcontroller and with this i conclude my fun side quest"}, {"post_id": 72731, "ts": "2026-09-23T16:40:42Z", "hours": 0.8706, "text": "cool esp32 key chain! so this photo was the inspiration and as a cool sidequest i am making this i will be making 2 esp32s 1. esp32 cam 2. esp32 (standard) 3. arduino uno first i desolder all the pins and then just put something to hag it is a very good gift for people who build with u"}]...
|
Title: esp32 key chain by @Bhavyadeep | Stardance
Title: esp32 key chain by @Bhavyadeep | Stardance
Devlogs:
cool esp32 key chain! so this photo was the inspiration and as a cool sidequest i am making this i will be making 2 esp32s 1. esp32 cam 2. esp32 (standard) 3. arduino uno first i desolder all the pins and then just put something to hag it is a very good gift for people who build with u
yaay i have completed the second microcontroller and with this i conclude my fun side quest...
|
1793083892.5086055
|
1793688692.5086055
|
|
63554
|
Detective Flowers by @rgb-hsl | Stardance
|
rgb-hsl
|
0
|
8.76
|
0
|
[]
|
[{"post_id": 73278, "ts": "202 [{"post_id": 73278, "ts": "2026-09-24T18:46:57Z", "hours": 2.0606, "text": "Made a bunch of progress, also made a template to save time!!!"}, {"post_id": 72579, "ts": "2026-09-23T08:40:44Z", "hours": 2.97, "text": "Done with 2 of the endings! This is what I want the website layout to be like by the end, maybe with some minor changes later on."}, {"post_id": 71758, "ts": "2026-09-21T13:45:12Z", "hours": 1.7042, "text": "I’ve decided to make multiple endings, going to make a really interesting story."}, {"post_id": 71304, "ts": "2026-09-20T16:28:57Z", "hours": 0.9925, "text": "Sidebar worked!!!"}, {"post_id": 70855, "ts": "2026-09-19T21:32:06Z", "hours": 0.5975, "text": "Tried to make a sidebar but it didnt work right 😭😭 began working on the main files page, will be adding proper css soon."}, {"post_id": 70293, "ts": "2026-09-18T21:46:27Z", "hours": 0.4394, "text": "Done with the homepage. Might add CSS to the homepage later, but I want to keep the overall site very minimal. I’m very excited to work on this because I’ve been wanting to do something like this for a while. I might try adding JS features later on."}]...
|
Title: Detective Flowers by @rgb-hsl | Stardance
Title: Detective Flowers by @rgb-hsl | Stardance
Devlogs:
Done with the homepage. Might add CSS to the homepage later, but I want to keep the overall site very minimal. I’m very excited to work on this because I’ve been wanting to do something like this for a while. I might try adding JS features later on.
Tried to make a sidebar but it didnt work right 😭😭 began working on the main files page, will be adding proper css soon.
Sidebar worked!!!
I’ve decided to make multiple endings, going to make a really interesting story.
Done with 2 of the endings! This is what I want the website layout to be like by the end, maybe with some minor changes later on.
Made a bunch of progress, also made a template to save time!!!...
|
1793051576.7518282
|
1793656376.7518282
|
|
32164
|
Jpad by @The_one_who_knocks | Stardance
|
The_one_who_knocks
|
0
|
8.59
|
0
|
[]
|
[{"post_id": 73288, "ts": "202 [{"post_id": 73288, "ts": "2026-09-24T19:26:26Z", "hours": 0.5514, "text": "first devlog in like a month, basically i made the edges of the case curved so it doesnt look like some primal box with holes"}, {"post_id": 31986, "ts": "2026-07-20T20:29:10Z", "hours": 1.1503, "text": "i made firmware 👍"}, {"post_id": 28758, "ts": "2026-07-15T07:11:45Z", "hours": 4.8258, "text": "basically, i did the case and then, discovered issues with the pcb 3d model, and then, redid the 3d model, and did it all over again, discovered the rotary encoder in my schematics and pcb has no click, so i went back and replaced that, also the 3d model for the encoder was also wrong, so i went back and downloaded that, also turns out i didnt quite understand how a cherry mx switch works, so i did the top and went back and redid when a friend kindly explained it to me, fusion 360 is an absolute pain tho, oh and my gpu died at the end, so thats fun, over all im pretty happy with it and i hope my dimensions are correct"}, {"post_id": 27448, "ts": "2026-07-13T00:47:10Z", "hours": 0.7419, "text": "i took a break for a bit to learn some fusion, made some prototypes and i think this would maybe be the final product, theres still the top plate and many more things to work on here, i know this isnt really progress and i hope i can finish this case soon so i can get to the firmware and submit this thing"}, {"post_id": 25480, "ts": "2026-07-09T19:38:01Z", "hours": 0.3003, "text": "lookout keeps crashing out on me so i finished the pcb without, looks much cleaner now, and the port is facing the right way now obviously, so far , drc isnt freaking out with 40 warnings this time, just 19 which is still a lot but not 40 a lot, anyways heres a screenie of my awesome pcb"}, {"post_id": 25305, "ts": "2026-07-09T14:56:33Z", "hours": 1.025, "text": "schematics done, made the pcb and did all the traces but the microcontroller orientation was wrong and had 40 errors, but it was a first try so im not that mad abt it"}]...
|
Title: Jpad by @The_one_who_knocks | Stardance
De Title: Jpad by @The_one_who_knocks | Stardance
Devlogs:
schematics done, made the pcb and did all the traces but the microcontroller orientation was wrong and had 40 errors, but it was a first try so im not that mad abt it
lookout keeps crashing out on me so i finished the pcb without, looks much cleaner now, and the port is facing the right way now obviously, so far , drc isnt freaking out with 40 warnings this time, just 19 which is still a lot but not 40 a lot, anyways heres a screenie of my awesome pcb
i took a break for a bit to learn some fusion, made some prototypes and i think this would maybe be the final product, theres still the top plate and many more things to work on here, i know this isnt really progress and i hope i can finish this case soon so i can get to the firmware and submit this thing
basically, i did the case and then, discovered issues with the pcb 3d model, and then, redid the 3d model, and did it all over again, discovered the rotary encoder in my schematics and pcb has no click, so i went back and replaced that, also the 3d model for the encoder was also wrong, so i went back and downloaded that, also turns out i didnt quite understand how a cherry mx switch works, so i did the top and went back and redid when a friend kindly explained it to me, fusion 360 is an absolute pain tho, oh and my gpu died at the end, so thats fun, over all im pretty happy with it and i hope my dimensions are correct
i made firmware 👍
first devlog in like a month, basically i made the edges of the case curved so it doesnt look like some primal box with holes...
|
1792716443.8901463
|
1793321243.8901463
|
|
28570
|
Natural Selection Simulation by @VasilyKrupenin | Natural Selection Simulation by @VasilyKrupenin | Stardance...
|
VasilyKrupenin
|
1
|
20.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-24T19:34:25Z", "hours": 20.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made the basics of a natural selection simulation, but it unfortunately is unfinished, and since Stardance is ending pretty soon, I want to publish this so if anyone wants to use my project for something, they are free to do so, since I will be unable to finish it before it ends.", "repo": "https://github.com/vkrpn/Natural-Selection-Simulation", "demo": "https://drive.google.com/drive/folders/1Ek7X9l--7f_XP9Hxx5AYiUP00q131n4a?usp=drive_link"}]...
|
[{"post_id": 73289, "ts": "202 [{"post_id": 73289, "ts": "2026-09-24T19:27:07Z", "hours": 1.3636, "text": "Stardance is about to end, so I might as well publish this to get my 20+ hours worth of stardust. I may finish this later, but it will probably won’t be finished by the time Stardance ends. Do whatever you want with my project. It needs a screenshot, so here’s a cool picture I took:"}, {"post_id": 43552, "ts": "2026-08-08T21:48:17Z", "hours": 2.4575, "text": "It’s been a while since I last posted a devlog because I was hoping to finish the project, but I am farther away than I thought, and I also could not work on any Stardance projects for 2 weeks, unfortunately. It’s been so long since I’ve worked that I forgot what I’ve made; I think I made size, color, and a few tree variants."}, {"post_id": 27445, "ts": "2026-07-13T00:41:49Z", "hours": 2.8772, "text": "I’ve been a bit lazy, but progress on procedural generation is coming along well. I finished it and tweaked it until I got a result I liked (there was more mathematics that I had to do, like I had to use the pythagorean theorem to figure out the distance away from the center and subtract that to ensure that edges are ocean). The way it works is by first creating ocean, beach, fertile land, and mountains from noise, then I use moisture and temperature to determine the biome. Temperature is calculated by getting the latitude, subtracting the elevation (to make higher areas naturally colder), and then a bit of noise is added on top of all of that. Moisture works similarly, minus the latitude part. I also started working on vegetation; see those savanna trees? But I do have to create plants for each biome (or the creatures will have nothing to eat) which I am too lazy to do (as you can see I just made a savanna tree), I do not know what I’ll do for that. There’s so much art I have to make; I’ll have to make the animals and all of the plants. I’m planning to code a bunch of traits gained from animal appearance as soon as I put in the work to create the animals, which will be really difficult to do. I’m finally moving away from MSFT Paint though!"}, {"post_id": 25459, "ts": "2026-07-09T18:57:48Z", "hours": 2.0503, "text": "I don’t have much to display at the moment, I’ve been optimizing the code (for example, I used for loops to repeat the same process with different variables used for graphing instead of having separate code for each variable to significantly shorten the code) and I’ve started working on biomes. Since it has been a while since I have last posted a devlog, I’ll post one, and since I have to attach a screenshot or video, here’s an demonstration of natural selection in my game. You can clearly see the memory trait rose a lot and certain traits balanced out at a certain level (the images are a bit low quality but the values tracked are speed, sight, metabolism, mutation, memory, and population)."}, {"post_id": 23670, "ts": "2026-07-06T19:40:33Z", "hours": 1.7361, "text": "I did a bit more work on the windows. Now you can select which stats to track (only sight and speed for now, but I’ll fix that) and you can track up to 2 stats (but it doesn’t take long to change how many stats you can track), and you can change the colors. In the video, I am tracking the average speed and sight (note that the graph is measuring not the value, but the change in value; sight is twice as large as speed by default). I also demonstrated some of the features of the windows in the video which I forgot to show in the last one."}, {"post_id": 23131, "ts": "2026-07-05T22:03:50Z", "hours": 2.2103, "text": "I haven’t posted much because there wasn’t a lot to display or show that I’ve gotten something to work. Anyway, I coded a mutation trait which modifies how much a child’s traits can change (I noticed something pretty cool; when setting the mutation value super high like 1, it almost always drops back down to around 0.3). Here’s how mutation works: you get a child’s genes by calculating the average of the 2 parents genes plus that same number multiplied by mutation value. With a mutation of value of 1, the highest amount genes can change is double the original value. And most noticeably, I started working on UI; I started making charts that display certain traits. It’s nowhere near done, but it is coming along quite nicely. In the video attached, a chart is tracking the average speed value of the population. I didn’t show in the video, but you can drag the windows around, but that’s about it; I can only manually set the tracked value in code and drag windows around, they don’t have much features. A lot of the work I can’t really show; I was working on tracking, originally it was mostly for debugging, but now I can actually display those values with the graphs I am coding. Sorry that the video’s a bit long, Haaland scored a goal against Brazil and I forgot I was recording; I had to see the replay. He also scored a second one while I was typing this devlog. Go Norway (I’d root for Russia but they got suspended)!"}, {"post_id": 22335, "ts": "2026-07-04T19:12:32Z", "hours": 0.4192, "text": "I didn’t do much coding, and the game still needs a lot of work, but I have reached a great milestone! The game naturally selects traits! I added some statistics and a new memory trait because the creatures could just set off on a journey and remember the exact position down to the decimal places of the last food and water it saw, so I fixed that and added a timer which wipes the memory of the food/water position once it times out. The default traits are: 75 speed, 150 sight, 1 metabolism, and 7 memory. The average traits after running the simulation for some time: 65 speed, 125 sight, similar metabolism, and 10 memory. This result is pretty consistent with the exact plant and water setup in the image, but if I change it to a sparser environment, I saw speed go up by 10, sight go up by 5, metabolism stay the same, and surprisingly, despite being a trait with no negatives implemented yet, memory go down by 0.25. I guess memory doesn’t matter if you are fast enough and see well."}, {"post_id": 22200, "ts": "2026-07-04T15:37:17Z", "hours": 0.7967, "text": "I’m a bit stuck. I don’t really like the gene system so I decided to code traits as numbers, but that needs a lot of balance and tweaking to properly implement, and all of this work is a bit overwhelming. I might take a break from this project for a few days."}, {"post_id": 21092, "ts": "2026-07-02T21:47:31Z", "hours": 0.7008, "text": "I did a LOT of debugging. Fixed the last bug and numerous more that caused things like food not giving any hunger, genes getting incorrect effects, and more. I also changed how metabolism works and nerfed it. Now, Mm = 0, mm = -1, and MM = 1. These values are “intensified” by the I/i alleles. These work the same way as metabolism worked before, but now the values can be negative leading to efficient but low capacity creatures. I had to nerf it because capacity was becoming negative and creatures were getting infinite food."}, {"post_id": 20930, "ts": "2026-07-02T17:37:15Z", "hours": 1.1336, "text": "I restored my work and added a new trait; metabolism. mm is default metabolism; 10 hunger/thirst capacity and normal depletion. Mm is higher metabolism with 12-15 capacity and increased depletion. MM is highest metabolism with 13-22.5 capacity and even more increased depletion. I also made growth smooth instead of how previously juveniles instantly became adults. There’s also a strange bug which I’m trying to fix. Sometimes, the metabolism genotype becomes part of the other genotype. “Qq” “Vv” “Mm” is default, but after a few generations, you start seeing things like “Qq” “vm” “Mm” and eventually, things like “mm” “MM” “Mm”"}, {"post_id": 20449, "ts": "2026-07-02T01:28:54Z", "hours": 0.2603, "text": "All of my progress since my last devlog is lost :( I’ll have to recode all of it, but it isn’t that much work. Probably happened because I set up Git incorrectly or something."}, {"post_id": 19963, "ts": "2026-07-01T12:53:28Z", "hours": 1.1578, "text": "I coded limited resources and juvenile creatures. When creatures spawn, they have to wait 15 seconds until they can mate (so they don’t start mating right out of the womb like last time), and now when food is eaten, it regrows after 7 seconds. I’ll probably add more genes next time, or maybe even expand the map and add new biomes and plants (which would be really easy because I can just drag the food scene onto any plant and the plant now has fruits that grow and regrow)."}, {"post_id": 19464, "ts": "2026-06-30T19:55:19Z", "hours": 1.9164, "text": "I added genetics and reproduction! You can see in the output that each new organism has 2 genotypes, one for Q/q (short for quickness, didn’t want to use S because it’s a common letter and I might need it later idk I forgot), and one for V/v (short for vision) alleles (probably using all the wrong vocabulary). These genes directly affect speed and vision (with some slight randomness) and speed and vision also affects hunger and thirst depletion, meaning that being fast and seeing well has a tradeoff. I really need to code limited resources and I really need to code juvenile creatures (they’re mating at birth 😭😭😭). Maybe I could even make something like eggs? The output got cut off in the image. Here’s what it’s supposed to say: Genetics: [“Qq”,“vv”] Speed: 92.3979906001719 Sight: 150 Genetics: [“qQ”,vv”] Speed: 83.9082190561058 Sight: 150 Genetics: [“QQ”,“vV”] Speed: 142.633334008872 Sight: 171.81141852858 Genetics: [“QQ”,“vv”] Speed: 110.227173121233 Sight: 150 …"}, {"post_id": 18864, "ts": "2026-06-30T02:01:05Z", "hours": 1.2911, "text": "Finished coding a lil guy with some slight (heavy emphasis on slight) survival instincts. You can watch his hunger and thirst go down in the Godot output and watch him race towards food and water (oh wait forgot to add a hungry state he just runs after water, oh well, I’ll just add that next dev log). I just started working on this, so basically everything’s a prototype. And I also had the bright idea of making prototype assets in MS Paint, that’s why the art looks so beautiful and astounding. I have a lot of ideas for the future; I’ll probably code genes and reproduction next, but I also have a ton of ideas for the future, like Perlin noise generated terrain (like in my last project), adding natural selection for plants, multiple biomes, several species, etc… Who knows how this project will turn out? Anyways, it’s 10 PM and I have spend over an hour coding, so I should definitely go to sleep. Or should I? I reallyyyy want to code genes and reproduction."}]...
|
Title: Natural Selection Simulation by @VasilyKrup Title: Natural Selection Simulation by @VasilyKrupenin | Stardance
Devlogs:
Finished coding a lil guy with some slight (heavy emphasis on slight) survival instincts. You can watch his hunger and thirst go down in the Godot output and watch him race towards food and water (oh wait forgot to add a hungry state he just runs after water, oh well, I’ll just add that next dev log). I just started working on this, so basically everything’s a prototype. And I also had the bright idea of making prototype assets in MS Paint, that’s why the art looks so beautiful and astounding. I have a lot of ideas for the future; I’ll probably code genes and reproduction next, but I also have a ton of ideas for the future, like Perlin noise generated terrain (like in my last project), adding natural selection for plants, multiple biomes, several species, etc… Who knows how this project will turn out? Anyways, it’s 10 PM and I have spend over an hour coding, so I should definitely go to sleep. Or should I? I reallyyyy want to code genes and reproduction.
I added genetics and reproduction! You can see in the output that each new organism has 2 genotypes, one for Q/q (short for quickness, didn’t want to use S because it’s a common letter and I might need it later idk I forgot), and one for V/v (short for vision) alleles (probably using all the wrong vocabulary). These genes directly affect speed and vision (with some slight randomness) and speed and vision also affects hunger and thirst depletion, meaning that being fast and seeing well has a tradeoff. I really need to code limited resources and I really need to code juvenile creatures (they’re mating at birth 😭😭😭). Maybe I could even make something like eggs? The output got cut off in the image. Here’s what it’s supposed to say: Genetics: [“Qq”,“vv”] Speed: 92.3979906001719 Sight: 150 Genetics: [“qQ”,vv”] Speed: 83.9082190561058 Sight: 150 Genetics: [“QQ”,“vV”] Speed: 142.633334008872 Sight: 171.81141852858 Genetics: [“QQ”,“vv”] Speed: 110.227173121233 Sight: 150 …
I coded limited resources and juvenile creatures. When creatures spawn, they have to wait 15 seconds until they can mate (so they don’t start mating right out of the womb like last time), and now when food is eaten, it regrows after 7 seconds. I’ll probably add more genes next time, or maybe even expand the map and add new biomes and plants (which would be really easy because I can just drag the food scene onto any plant and the plant now has fruits that grow and regrow).
All of my progress since my last devlog is lost :( I’ll have to recode all of it, but it isn’t that much work. Probably happened because I set up Git incorrectly or something.
I restored my work and added a new trait; metabolism. mm is default metabolism; 10 hunger/thirst capacity and normal depletion. Mm is higher metabolism with 12-15 capacity and increased depletion. MM is highest metabolism with 13-22.5 capacity and even more increased depletion. I also made growth smooth instead of how previously juveniles instantly became adults. There’s also a strange bug which I’m trying to fix. Sometimes, the metabolism genotype becomes part of the other genotype. “Qq” “Vv” “Mm” is default, but after a few generations, you start seeing things like “Qq” “vm” “Mm” and eventually, things like “mm” “MM” “Mm”
I did a LOT of debugging. Fixed the last bug and numerous more that caused things like food not giving any hunger, genes getting incorrect effects, and more. I also changed how metabolism works and nerfed it. Now, Mm = 0, mm = -1, and MM = 1. These values are “intensified” by the I/i alleles. These work the same way as metabolism worked before, but now the values can be negative leading to efficient but low capacity creatures. I had to nerf it because capacity was becoming negative and creatures were getting infinite food.
I’m a bit stuck. I don’t really like the gene system so I decided to code traits as numbers, but that needs a lot of balance and tweaking to properly implement, and all of this work is a bit overwhelming. I might take a break from this project for a few days.
I didn’t do much coding, and the game still needs a lot of work, but I have reached a great milestone! The game naturally selects traits! I added some statistics and a new memory trait because the creatures could just set off on a journey and remember the exact position down to the decimal places of the last food and water it saw, so I fixed that and added a timer which wipes the memory of the food/water position once it times out. The default traits are: 75 speed, 150 sight, 1 metabolism, and 7 memory. The average traits after running the simulation for some time: 65 speed, 125 sight, similar metabolism, and 10 memory. This result is pretty consistent with the exact plant and water setup in the image, but if I change it to a sparser environment, I saw speed go up by 10, sight go up by 5, metabolism stay the same, and surprisingly, despite being a trait with no negatives implemented yet, memory go down by 0.25. I guess memory doesn’t matter if you are fast enough and see well.
I haven’t posted much because there wasn’t a lot to display or show that I’ve gotten something to work. Anyway, I coded a mutation trait which modifies how much a child’s traits can change (I noticed something pretty cool; when setting the mutation value super high like 1, it almost always drops back down to around 0.3). Here’s how mutation works: you get a child’s genes by calculating the average of the 2 parents genes plus that same number multiplied by mutation value. With a mutation of value of 1, the highest amount genes can change is double the original value. And most noticeably, I started working on UI; I started making charts that display certain traits. It’s nowhere near done, but it is coming along quite nicely. In the video attached, a chart is tracking the average speed value of the population. I didn’t show in the video, but you can drag the windows around, but that’s about it; I can only manually set the tracked value in code and drag windows around, they don’t have much features. A lot of the work I can’t really show; I was working on tracking, originally it was mostly for debugging, but now I can actually display those values with the graphs I am coding. Sorry that the video’s a bit long, Haaland scored a goal against Brazil and I forgot I was recording; I had to see the replay. He also scored a second one while I was typing this devlog. Go Norway (I’d root for Russia but they got suspended)!
I did a bit more work on the windows. Now you can select which stats to track (only sight and speed for now, but I’ll fix that) and you can track up to 2 stats (but it doesn’t take long to change how many stats you can track), and you can change the colors. In the video, I am tracking the average speed and sight (note that the graph is measuring not the value, but the change in value; sight is twice as large as speed by default). I also demonstrated some of the features of the windows in the video which I forgot to show in the last one.
I don’t have much to display at the moment, I’ve been optimizing the code (for example, I used for loops to repeat the same process with different variables used for graphing instead of having separate code for each variable to significantly shorten the code) and I’ve started working on biomes. Since it has been a while since I have last posted a devlog, I’ll post one, and since I have to attach a screenshot or video, here’s an demonstration of natural selection in my game. You can clearly see the memory trait rose a lot and certain traits balanced out at a certain level (the images are a bit low quality but the values tracked are speed, sight, metabolism, mutation, memory, and population).
I’ve been a bit lazy, but progress on procedural generation is coming along well. I finished it and tweaked it until I got a result I liked (there was more mathematics that I had to do, like I had to use the pythagorean theorem to figure out the distance away from the center and subtract that to ensure that edges are ocean). The way it works is by first creating ocean, beach, fertile land, and mountains from noise, then I use moisture and temperature to determine the biome. Temperature is calculated by getting the latitude, subtracting the elevation (to make higher areas naturally colder), and then a bit of noise is added on top of all of that. Moisture works similarly, minus the latitude part. I also started working on vegetation; see those savanna trees? But I do have to create plants for each biome (or the creatures will have nothing to eat) which I am too lazy to do (as you can see I just made a savanna tree), I do not know what I’ll do for that. There’s so much art I have to make; I’ll have to make the animals and all of the plants. I’m planning to code a bunch of traits gained from animal appearance as soon as I put in the work to create the animals, which will be really difficult to do. I’m finally moving away from MSFT Paint though!
It’s been a while since I last posted a devlog because I was hoping to finish the project, but I am farther away than I thought, and I also could not work on any Stardance projects for 2 weeks, unfortunately. It’s been so long since I’ve worked that I forgot what I’ve made; I think I made size, color, and a few tree variants.
Stardance is about to end, so I might as well publish this to get my 20+ hours worth of stardust. I may finish this later, but it will probably won’t be finished by the time Stardance ends. Do whatever you want with my project. It needs a screenshot, so here’s a cool picture I took:
Ships:
I made the basics of a natural selection simulation, but it unfortunately is unfinished, and since Stardance is ending pretty soon, I want to publish this so if anyone wants to use my project for something, they are free to do so, since I will be unable to finish it before it ends....
|
1793335985.6921763
|
1793422385.6921763
|
|
47889
|
sorting algs by @Lumethra | Stardance
|
Lumethra
|
1
|
16.0
|
212
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-24T19:32:31Z", "hours": 16.0, "multiplier": 13.53, "payout": 212, "blessing": "neutral", "text": "A 3d sorting algorithm visualizer with NextJS and ThreeJS. Also its made with luve and happiness.", "repo": "https://github.com/Lumethra/sorting-algs", "demo": "https://lumethra-sorting-algs.vercel.app/"}]...
|
[{"post_id": 73291, "ts": "202 [{"post_id": 73291, "ts": "2026-09-24T19:30:47Z", "hours": 0.4911, "text": "I wrote my readme in this session, so nothing really to say. It was just typing typing typing and finishing this beautiful readme to be able to submit this project."}, {"post_id": 73279, "ts": "2026-09-24T18:57:15Z", "hours": 0.4069, "text": "Implemented pause logic. I implemented pause logic and added an indicator, which shows, which sorting algorithm is currently active. The pause logic was quite painful, cause it just didnt want to stop. Neither with break, nor with return. After a long long long trouble shooting session, I found out, that I forgot .current and it just wont detect correctly, what a stupid bug to troubleshoot 20 min for. Also I fixed an edge case in the demo vid xD"}, {"post_id": 73266, "ts": "2026-09-24T18:19:33Z", "hours": 2.58, "text": "FINALLYYYY Today was the final coding session. I finally got the UI right and am okay with it. Its not the best, but its acceptable. I decided to only use icons, to keep it clean, but I ran into the problem, that the icons arent clear enough to showcase the specific sorting algorithm. So I decided on making a tooltip. But the build in HTML tooltip is too ugly and the delay is annoying. I did some research and found a W3Schools tutorial, they are the goat ( here it is ). I didnt expect front end being so time intensive, but I did need to adjust every value so it looks good, which is very hard to do :(. Ah, I also fixed the bug that when there is the minimal amount of pillars, it will be weird while shuffling (that wasnt proper english). Also the icons changes depending if we are shuffling or sorting and the disables and reinables, which is cool. Uhh, I remembered sth, I need to implement canceling while sorting. Also the vid is one fix old, i did fix the typo in the sorting alg."}, {"post_id": 72326, "ts": "2026-09-22T17:49:27Z", "hours": 1.4453, "text": "Thats enough, Ima do CSS tomorrow. Today I added a slider style and 2 other sliders for the shuffling and sorting speed. Then I hid those 2 and the remove and adding pillar buttons. Also added some CSS for flex, justify content, space between, to seperate the drop down, which I added too. I tried to add a scrolling drop down thing, but failed, uhh, I also adjusted the pillar speed and camera angle. Also I found out, that I can call functions from an array, so I can store a function in an array and then call it like that, thats weird, but also huge. Dont wanna write too much today, cause I still have stuff to do. Ah, also added prevention of shuffling while sorting."}, {"post_id": 71209, "ts": "2026-09-20T13:27:14Z", "hours": 1.2819, "text": "Slider!! Today I added a slider that controls the adding and removing of pillars. I had some minor problems. (No, they were huge, but I feel better saying that they were minor ). First of all, I needed to figure out how to set default values. Normally its just value=””, but this doesnt work for a input type range. After some research I found out that its simply defaultValue, I feel dumb. Then I tried to add/remove pillars with useEffect and monitor the changes of the slider. This worked, but also didnt. I needed to manually update the pillars. It didnt do it automatically. Then my brain suggested something genius. Using onChange. But now I need to do an extra function for it. I thought, maybe I use a while loop once. While the number array is smaller run add function and while its bigger, the remove function. This was uhh, not that good, because it somehow resulted into an infinite while loop, because js is asynchronous. I also tried with a for loop. This threw the error, that I set the 2 useState too often. After some experimenting I ended up with my current solution. I also added 2 useState variables for the sorting delay and shuffling delay. I am still searching for a great mathematical, anti-proportional, linear function to adjust it corresponding to the pillars count. Ahh and I also updated the camera adjusting logic a bit."}, {"post_id": 70217, "ts": "2026-09-18T18:42:46Z", "hours": 1.0872, "text": "HOLY WAS THIS A STRUGGLE !! In this session I implemented adding and removing numbers for a slider in the future (hopefully tomorrow). THIS WAS A PAIN. Especially the camera handling. The very very basic adding and removing function was quite easy, since its only adding numbers or splicing numbers from the array (stack overflow my goat). The camera thing was quite hard though. When I add enough numbers it could make the pillars taller than the viewheight, making them sticking “off screen”. The fix was zooming out. But the fix on stack overflow needed to let it be a JSX element, which somehow didnt work. Finding the fix was one problem. The other problem is, that after finding the fix, it still didnt work and the camera “fell” down. After a long debugging session with various console.logs, I finally found the problem and it was one of the stupid ones. I used z, where it should have been y, thats dumb, but eyy, here we go. There were also a few other bugs, like having an infinite while loop when only having one pillar and shuffling. This was fixed by making the minimum number 2. The other bug was, weird camera behaviors happen, when reducing the number while its shuffled. Fixing it with an instant sort before reducing the number of pillars was my approach. Ya, that was about it. I am done for today."}, {"post_id": 70112, "ts": "2026-09-18T14:17:37Z", "hours": 1.1447, "text": "Better Shuffling logic!!! Before the refinement of the shuffling logic today I just simply randomized the numbers in the array, so that there are new numbers. That introduced one problem, actually two. Numbers could dupe!! I tried to fix it while using numbers with one decimal. The other problem was I could not add an animation anywhere. This is why I decided to make a brand new shuffling logic today. I first tried to fix the duping problem, by checking if this number already exists. This took a while, because I need to figure out how to only watch an array to a specific point, to ignore the upcoming numbers. This resulted in a growing or shrinking animation, which wasnt what I wanted. Then I thought, maybe I can shuffle in another way. Not by changing the value, rather by swapping numbers randomly. Just like in a deck of cards. So I loop through each digit and randomly choose a number in the whole array and then swapping those. This ensures every place got changed. Now there was another problem. It sometimes changed with it self causing it not to do anything. This was fixed by adding a while loop which generates new positions if the position is the own position. While writing this devlog I also thought of another problem. When the total count of numbers is very low, this shuffling method might not shuffle it enough, so I am looping it 2 times, if there are less then 10 numbers in it. Ya, thats about it. Now lets get to the slider which increases the blocks."}, {"post_id": 67381, "ts": "2026-09-13T14:07:06Z", "hours": 1.6225, "text": "Finally something after a long time. I was on vacation during that time, so I needed to use some time to understand what I have done before that. Then I implemented another sorting algorithm!! Selection Sort!! If you take a look inside my commits, you can see it being committed. After implementing selection sort I took a small break and didnt devlog, cause it didnt even took that long. After the break I decided to add a little highlighting animation, that changes the color of the pillars, that are being swapped. That took waay longer that expected, but was the easiest thing to do. I just had to save the 2 values being swapped and somehow pass it inside and get the colors changed. After the highlighting, I decided its time for another sorting alg. The Insertion Sort. That somehow took longer that selection sort. Due to it being almost the exact opposite of bubble sort, I always fell back to it. While researching for insertion sort, I found this great website and quite liked its finishing animation. I also felt that the selecting animation is kinda off for insertion sort. It shouldnt be 2 pillars that are selected. It should be 3 or 1, since one pillar is inserted between 2 other ones and not 2 pillars being swapped. So I made a highlighting version with only one pillar being highlighted and created an if statement of doom inside the meshStandartMaterial. I thought this version was also better for bubble sort than the selection one and switched it too. Ya, that was all of it, I think, Have a great day though :)"}, {"post_id": 48929, "ts": "2026-08-17T14:21:47Z", "hours": 1.9594, "text": "AHHHHHHHHHHHHHHHHHHHHHH Sorting algorithm was made today. I decided on the most basic bubble sort. It is basically just 2 nested for-loops. This wikipedia article ( https://en.wikipedia.org/wiki/Bubble_sort ) has a great code example for it. It was relative easy. But the hard part was to get the animation going. The second part of the vid shows how it was without the fix for the animation. Finding out what the error was, was the first major problem. Fixing it was also hard, because I needed to save the target position after the box was created. This doesnt work, because you cannot call things after a return. Then after a good half hour of struggling and no progress, I asked my father for help. He is a full time developer aaand I hoped, that we could fix this together. He did gave some good calls, but the coding is still done by myself. After some together struggling, that lasted around 30 to 40 min, he proposed something genius. Save a version of the array of numbers, before every sorting step. That meant we need to compare the 2 arrays to get the difference and how the numbers got moved. I then said we could use some complicated for loops and then comparing stuff. He smiled and let me do. After some programming it was finally done and worked. But it wasnt optimized at all and was a bit laggy. Then he couldnt hold on anymore, laughed and told me that there is a dedicated js function just for that. I almost crashed out . Ya, that was todays session. I only implemented the dedicated js function instead of that. Ahh and before asking my father I also found out that js async is weird and that we need to use useEffect, kinda an event listener to see when the useState value changes. Ya, now that was it. See u later or tmrw."}, {"post_id": 48190, "ts": "2026-08-16T14:16:24Z", "hours": 1.0175, "text": "Shuffle mechanism Today was very successful day. The two major breakthroughs are creating the boxes dynamically and shuffle the height by math.random. I am happy that I remembered, that I could use useState to make an array and use the Array.prototype.map() function to simultaneously create the different boxes. And I can change the order of the boxes with changing the order of the components in the array, sooooo, that should be quite easy to archive. The random shuffle thingi was also quite successful. I just Math.random’ed some value and floor it to 2 decimals. Then I do that for every place of the numbers array and set it as new numbers array. This will update the numbers array, because of useState and let React-Three-Fiber rerender the boxes, resulting in a shuffling. The sorting will need an async function though, or else it will be instant sorting, which isnt the goal of this sorting thing. Enough yap, back to coding, eventually, maybe."}, {"post_id": 47505, "ts": "2026-08-15T13:45:14Z", "hours": 1.2922, "text": "After messing around abit and finding out that it is possible to have multiple meshes, I finally started with the actual project and made a Box func. While making it I decided on doing it with an Interface to be able to learn that (the whole point of this proj was to learn ThreeJS and NextJS). This Box func can be reused and the properties of this box can also be parsed inside. Soo every Box is the same and makes animating easier. I also added a simple moving animation. Then the quest was to level the boxes on the bottom. After a whole 5 min of struggling, I found a random post saying I could do scale / 2, which also worked. The moving the box was the hard part, because NextJS requires me to use useState, or else it wont get updated. This took me very long, very very very long to get right. The moving seems abit laggy in the vid, but in real life its smooth, i dunno why, but ya. The last part, was centering this whole thing, because the camera always points to [0, 0, 0] which is strange, but whatever, so i needed to move the boxes collectively somewhere else. So I tried alot of stuff, but finally found out that groups have props too, so I can group them and move them to the left and down. This was great !! Later I need to find out how to do this automatically, but thats not present-me problem, its a future-me problem."}, {"post_id": 47096, "ts": "2026-08-14T18:50:47Z", "hours": 1.3286, "text": "First devlog My friend @Leon gave me this idea to work with ThreeJS in NextJS, so I can get familiar with both at the same time. And I said, fine whatever. I had the idea to do a sorting algorithm showcaser with pillars of different heights. And code different sorting methods to sort these pillars. Soo I created a Next instance like my personal site aaaand messed up. So I had to delete it and install again, WITHOUT TailwindCSS. Finally having a working NextJS instance I installed ThreeJS, but then I ran into the problem that ThreeJS didnt like pnpm, soo I reinstalled the whole shit with npm, which obviously didnt work. So I debugged the whole shit and every reddit post and stackoverflow post said to reinstall it again, so the installer cleanly installs the JSX module that was missing, which it didnt. So I decided to just paste the whole error message into google and there it was. The holy stackoverflow post that gave me a command to reinstall the dependencies and advised me to reload my vscode window to prevent cache. THIS WORKED!!! My next task was to read and follow the React Three Fiber docs, which is threejs but in better for react, so also for nextjs. I followed it (which was very hard, since its written unclearly, but I think when you know the normal threejs it should be fine, which I obviously am not familiar with) and after some time got an overall idea how this thing works. Then I found a task in this doc and it is to create a spinning cube. I took it seriously and made it todays goal. And here we are. To be fair, it was okay to finish, since there was already a sample code written in vite or whatever it was. I just needed to rewrite that for my nextjs instance. Ya that was todays progress. I think when I got the motivation to continue later, it will be waay easier to do, since I know the basics now. Holy yap, bye, see u later, maybe, well, bye"}]...
|
Title: sorting algs by @Lumethra | Stardance
Devl Title: sorting algs by @Lumethra | Stardance
Devlogs:
First devlog My friend @Leon gave me this idea to work with ThreeJS in NextJS, so I can get familiar with both at the same time. And I said, fine whatever. I had the idea to do a sorting algorithm showcaser with pillars of different heights. And code different sorting methods to sort these pillars. Soo I created a Next instance like my personal site aaaand messed up. So I had to delete it and install again, WITHOUT TailwindCSS. Finally having a working NextJS instance I installed ThreeJS, but then I ran into the problem that ThreeJS didnt like pnpm, soo I reinstalled the whole shit with npm, which obviously didnt work. So I debugged the whole shit and every reddit post and stackoverflow post said to reinstall it again, so the installer cleanly installs the JSX module that was missing, which it didnt. So I decided to just paste the whole error message into google and there it was. The holy stackoverflow post that gave me a command to reinstall the dependencies and advised me to reload my vscode window to prevent cache. THIS WORKED!!! My next task was to read and follow the React Three Fiber docs, which is threejs but in better for react, so also for nextjs. I followed it (which was very hard, since its written unclearly, but I think when you know the normal threejs it should be fine, which I obviously am not familiar with) and after some time got an overall idea how this thing works. Then I found a task in this doc and it is to create a spinning cube. I took it seriously and made it todays goal. And here we are. To be fair, it was okay to finish, since there was already a sample code written in vite or whatever it was. I just needed to rewrite that for my nextjs instance. Ya that was todays progress. I think when I got the motivation to continue later, it will be waay easier to do, since I know the basics now. Holy yap, bye, see u later, maybe, well, bye
After messing around abit and finding out that it is possible to have multiple meshes, I finally started with the actual project and made a Box func. While making it I decided on doing it with an Interface to be able to learn that (the whole point of this proj was to learn ThreeJS and NextJS). This Box func can be reused and the properties of this box can also be parsed inside. Soo every Box is the same and makes animating easier. I also added a simple moving animation. Then the quest was to level the boxes on the bottom. After a whole 5 min of struggling, I found a random post saying I could do scale / 2, which also worked. The moving the box was the hard part, because NextJS requires me to use useState, or else it wont get updated. This took me very long, very very very long to get right. The moving seems abit laggy in the vid, but in real life its smooth, i dunno why, but ya. The last part, was centering this whole thing, because the camera always points to [0, 0, 0] which is strange, but whatever, so i needed to move the boxes collectively somewhere else. So I tried alot of stuff, but finally found out that groups have props too, so I can group them and move them to the left and down. This was great !! Later I need to find out how to do this automatically, but thats not present-me problem, its a future-me problem.
Shuffle mechanism Today was very successful day. The two major breakthroughs are creating the boxes dynamically and shuffle the height by math.random. I am happy that I remembered, that I could use useState to make an array and use the Array.prototype.map() function to simultaneously create the different boxes. And I can change the order of the boxes with changing the order of the components in the array, sooooo, that should be quite easy to archive. The random shuffle thingi was also quite successful. I just Math.random’ed some value and floor it to 2 decimals. Then I do that for every place of the numbers array and set it as new numbers array. This will update the numbers array, because of useState and let React-Three-Fiber rerender the boxes, resulting in a shuffling. The sorting will need an async function though, or else it will be instant sorting, which isnt the goal of this sorting thing. Enough yap, back to coding, eventually, maybe.
AHHHHHHHHHHHHHHHHHHHHHH Sorting algorithm was made today. I decided on the most basic bubble sort. It is basically just 2 nested for-loops. This wikipedia article ( https://en.wikipedia.org/wiki/Bubble_sort ) has a great code example for it. It was relative easy. But the hard part was to get the animation going. The second part of the vid shows how it was without the fix for the animation. Finding out what the error was, was the first major problem. Fixing it was also hard, because I needed to save the target position after the box was created. This doesnt work, because you cannot call things after a return. Then after a good half hour of struggling and no progress, I asked my father for help. He is a full time developer aaand I hoped, that we could fix this together. He did gave some good calls, but the coding is still done by myself. After some together struggling, that lasted around 30 to 40 min, he proposed something genius. Save a version of the array of numbers, before every sorting step. That meant we need to compare the 2 arrays to get the difference and how the numbers got moved. I then said we could use some complicated for loops and then comparing stuff. He smiled and let me do. After some programming it was finally done and worked. But it wasnt optimized at all and was a bit laggy. Then he couldnt hold on anymore, laughed and told me that there is a dedicated js function just for that. I almost crashed out . Ya, that was todays session. I only implemented the dedicated js function instead of that. Ahh and before asking my father I also found out that js async is weird and that we need to use useEffect, kinda an event listener to see when the useState value changes. Ya, now that was it. See u later or tmrw.
Finally something after a long time. I was on vacation during that time, so I needed to use some time to understand what I have done before that. Then I implemented another sorting algorithm!! Selection Sort!! If you take a look inside my commits, you can see it being committed. After implementing selection sort I took a small break and didnt devlog, cause it didnt even took that long. After the break I decided to add a little highlighting animation, that changes the color of the pillars, that are being swapped. That took waay longer that expected, but was the easiest thing to do. I just had to save the 2 values being swapped and somehow pass it inside and get the colors changed. After the highlighting, I decided its time for another sorting alg. The Insertion Sort. That somehow took longer that selection sort. Due to it being almost the exact opposite of bubble sort, I always fell back to it. While researching for insertion sort, I found this great website and quite liked its finishing animation. I also felt that the selecting animation is kinda off for insertion sort. It shouldnt be 2 pillars that are selected. It should be 3 or 1, since one pillar is inserted between 2 other ones and not 2 pillars being swapped. So I made a highlighting version with only one pillar being highlighted and created an if statement of doom inside the meshStandartMaterial. I thought this version was also better for bubble sort than the selection one and switched it too. Ya, that was all of it, I think, Have a great day though :)
Better Shuffling logic!!! Before the refinement of the shuffling logic today I just simply randomized the numbers in the array, so that there are new numbers. That introduced one problem, actually two. Numbers could dupe!! I tried to fix it while using numbers with one decimal. The other problem was I could not add an animation anywhere. This is why I decided to make a brand new shuffling logic today. I first tried to fix the duping problem, by checking if this number already exists. This took a while, because I need to figure out how to only watch an array to a specific point, to ignore the upcoming numbers. This resulted in a growing or shrinking animation, which wasnt what I wanted. Then I thought, maybe I can shuffle in another way. Not by changing the value, rather by swapping numbers randomly. Just like in a deck of cards. So I loop through each digit and randomly choose a number in the whole array and then swapping those. This ensures every place got changed. Now there was another problem. It sometimes changed with it self causing it not to do anything. This was fixed by adding a while loop which generates new positions if the position is the own position. While writing this devlog I also thought of another problem. When the total count of numbers is very low, this shuffling method might not shuffle it enough, so I am looping it 2 times, if there are less then 10 numbers in it. Ya, thats about it. Now lets get to the slider which increases the blocks.
HOLY WAS THIS A STRUGGLE !! In this session I implemented adding and removing numbers for a slider in the future (hopefully tomorrow). THIS WAS A PAIN. Especially the camera handling. The very very basic adding and removing function was quite easy, since its only adding numbers or splicing numbers from the array (stack overflow my goat). The camera thing was quite hard though. When I add enough numbers it could make the pillars taller than the viewheight, making them sticking “off screen”. The fix was zooming out. But the fix on stack overflow needed to let it be a JSX element, which somehow didnt work. Finding the fix was one problem. The other problem is, that after finding the fix, it still didnt work and the camera “fell” down. After a long debugging session with various console.logs, I finally found the problem and it was one of the stupid ones. I used z, where it should have been y, thats dumb, but eyy, here we go. There were also a few other bugs, like having an infinite while loop when only having one pillar and shuffling. This was fixed by making the minimum number 2. The other bug was, weird camera behaviors happen, when reducing the number while its shuffled. Fixing it with an instant sort before reducing the number of pillars was my approach. Ya, that was about it. I am done for today.
Slider!! Today I added a slider that controls the adding and removing of pillars. I had some minor problems. (No, they were huge, but I feel better saying that they were minor ). First of all, I needed to figure out how to set default values. Normally its just value=””, but this doesnt work for a input type range. After some research I found out that its simply defaultValue, I feel dumb. Then I tried to add/remove pillars with useEffect and monitor the changes of the slider. This worked, but also didnt. I needed to manually update the pillars. It didnt do it automatically. Then my brain suggested something genius. Using onChange. But now I need to do an extra function for it. I thought, maybe I use a while loop once. While the number array is smaller run add function and while its bigger, the remove function. This was uhh, not that good, because it somehow resulted into an infinite while loop, because js is asynchronous. I also tried with a for loop. This threw the error, that I set the 2 useState too often. After some experimenting I ended up with my current solution. I also added 2 useState variables for the sorting delay and shuffling delay. I am still searching for a great mathematical, anti-proportional, linear function to adjust it corresponding to the pillars count. Ahh and I also updated the camera adjusting logic a bit.
Thats enough, Ima do CSS tomorrow. Today I added a slider style and 2 other sliders for the shuffling and sorting speed. Then I hid those 2 and the remove and adding pillar buttons. Also added some CSS for flex, justify content, space between, to seperate the drop down, which I added too. I tried to add a scrolling drop down thing, but failed, uhh, I also adjusted the pillar speed and camera angle. Also I found out, that I can call functions from an array, so I can store a function in an array and then call it like that, thats weird, but also huge. Dont wanna write too much today, cause I still have stuff to do. Ah, also added prevention of shuffling while sorting.
FINALLYYYY Today was the final coding session. I finally got the UI right and am okay with it. Its not the best, but its acceptable. I decided to only use icons, to keep it clean, but I ran into the problem, that the icons arent clear enough to showcase the specific sorting algorithm. So I decided on making a tooltip. But the build in HTML tooltip is too ugly and the delay is annoying. I did some research and found a W3Schools tutorial, they are the goat ( here it is ). I didnt expect front end being so time intensive, but I did need to adjust every value so it looks good, which is very hard to do :(. Ah, I also fixed the bug that when there is the minimal amount of pillars, it will be weird while shuffling (that wasnt proper english). Also the icons changes depending if we are shuffling or sorting and the disables and reinables, which is cool. Uhh, I remembered sth, I need to implement canceling while sorting. Also the vid is one fix old, i did fix the typo in the sorting alg.
Implemented pause logic. I implemented pause logic and added an indicator, which shows, which sorting algorithm is currently active. The pause logic was quite painful, cause it just didnt want to stop. Neither with break, nor with return. After a long long long trouble shooting session, I found out, that I forgot .current and it just wont detect correctly, what a stupid bug to troubleshoot 20 min for. Also I fixed an edge case in the demo vid xD
I wrote my readme in this session, so nothing really to say. It was just typing typing typing and finishing this beautiful readme to be able to submit this project.
Ships:
A 3d sorting algorithm visualizer with NextJS and ThreeJS. Also its made with luve and happiness....
|
1793339395.0963213
|
1793425795.0963213
|