|
2189
|
Full Flow by @Connor | Stardance
|
Connor
|
0
|
23.65
|
0
|
[]
|
[{"post_id": 12160, "ts": "202 [{"post_id": 12160, "ts": "2026-06-19T21:21:27Z", "hours": 6.1844, "text": "Devlog #7 Unfortunately, it was not that easy to finish CCEC . The problem I was getting consistently inaccurate results with H2-O2 reactions, overestimating the combustion temperature by hundreds of degrees. Troubleshooting a problem like this is very difficult because its almost impossible to figure out where exactly in the algorithm it all went wrong with just console logs. It was only really H2-O2 and H2-F2 reactions that were off; CH4-O2 and Aerozine-NTO reactions were mostly unaffected. Fix #1 When I added the ability to specify the temperatures of each reactant, I forgot to consider the fact that the NASA-9 polynomials I was using only worked for temperature ranging from 1000-6000K. That means that when I try to use 90K oxygen as reactant, the enthalpy (kind of like the total energy) is completely off. This was a pretty easy fix because I just had to use a different part of the dataset for low-temperature reactants. While this improved numbers by a little bit, it didn’t fix the hydrogen problem. Shot-in-the-dark #2 This attempt involved poking around at many different numbers while trying not to break anything. This is what took most of the hours recorded for this devlog. This did not fix the problem. The solution During the last devlog, I tried optimizing the program by cutting out any chemicals under a certain value every iteration of the chemistry solver. This was a terrible mistake . It improved the numbers for CH4-O2 by a little bit and made the solver considerably faster, so I didn’t think too much of it. However, as it turns out, this is what caused hydrogen combustion to overshoot temperature. After removing this evil line of code, everything worked perfectly fine again and I was getting great numbers! Optimization While 3 seconds on my laptop for solving CH4-O2 combustion is plenty good, 30 seconds for solving a much more complex Aerozine-NTO combustion is unacceptable. This meant I had to optimize my algorithm even more. The main way I did this was reducing the number of iterations for my binary search, since each iteration ran MinimizeGibbsEnergy which is what I’ve been working towards developing since day 1 and is the main bottleneck since it takes so long. Now I can get Aerozine-NTO results in around 7 seconds. The future Now I can hopefully finally start working on the engine fluid flow calculations, which shouldn’t take too long since I have them in Desmos already. However, I think in order to get the best results I have to solve the chemistry 3 times in total to get the data I need for the rocket engine. One for the combustion chamber, throat, and nozzle mouth respectively. This is quite unfortunate and means I may have to optimize CCEC even further. TL;DR Took forever to find a problem, also did some optimization (Finally figured out how to use markdown. Thank you Hackclub for giving the preview option for devlogs)"}, {"post_id": 7698, "ts": "2026-06-12T21:05:40Z", "hours": 1.0722, "text": "Devlog #6 After finishing the Gibbs minimizer, it was pretty easy to finish CCEC . I just had to find the chemical solution with the smallest change in enthalpy using a binary search. I put together a table for stoichiometric methalox and hydrolox combustion at 97 bar comparing my CCEC and NASA’s CEA . This is awesome!"}, {"post_id": 7191, "ts": "2026-06-12T00:22:56Z", "hours": 2.6333, "text": "Devlog #5 After poking at several functions for several hours, I have managed to reduce the Gibbs minimizer runtime from 40 seconds to around 1 second, which is good enough. Hopefully I can improve this in the future, but the final CCEC build should run in reasonable time. As you can see, CCEC matches NASA’s CEA results pretty nicely if you pay attention to the most significant chemical species!"}, {"post_id": 6949, "ts": "2026-06-11T17:36:19Z", "hours": 3.6978, "text": "Devlog #4 After hours of tracking down stupid mistakes, I’ve finally completed a rough implementation of my Gibbs free energy minimizer. It seems to produce reasonably accurate results, but it definitely needs to be optimized. For the final equilibrium solver, it will probably need to run at least 20 times so 40 seconds for one temperature is utterly ridiculous. I’m scared of optimization."}, {"post_id": 5960, "ts": "2026-06-09T23:48:10Z", "hours": 4.0569, "text": "Devlog #3 I have implemented the chemical adjustment system. Essentially, you give it a set of chemical amounts and tell it to adjust one of them while conserving the total amount of each element in the system. This ended up being really hard to implement and I had to try many different things to get it to work. First, I tried using the null space vector to change each value in the element vector, which worked in conserving the element counts but it ended up being almost impossible to ensure every chemical had an amount greater than zero. The math doesn’t care about negative numbers, but you definitely can’t have negative 10 moles of hydrogen. Unfortunately, this approach wasted several hours of my time. Next, I tried another approach that was a bit dumber but much more successful. It uses a bit of matrix magic to lock one value in place (the one you’re modifying) and change others to keep the element conservation. The second approach worked great and next update I should be able to implement the Gibbs free energy minimizer, and after that, finally finish my chemical equilibrium solver. Linear algebra is freaking awesome and magical."}, {"post_id": 4457, "ts": "2026-06-07T19:40:50Z", "hours": 2.775, "text": "Devlog #2 Now you can easily get the elemental and thermodynamic properties of a chemical species; ended up being a little difficult because the dataset I’m using is formatted really weird. Github is evil."}, {"post_id": 2348, "ts": "2026-06-04T19:54:37Z", "hours": 3.2294, "text": "Devlog #1 The goal of Full Flow is to have a spaceflight simulator where a user can design an engine and rocket parts from scratch and put them together to create a working spacecraft and fly it. One of the most challenging aspects of this project - or, at least, the one I have to deal with first - is the engine design. It is also what I consider to be the most important. Most of my time these past few weeks was spent throwing together a really complicated Desmos graph. Thanks to NASA’s propulsion index, there’s a lot of great info about this stuff. It would be pretty easy to implement this into code, but the problem is that you need to plug in really specific numbers to get the thermodynamics to make sense. This wouldn’t be a problem if all rocket engines used the same fuel, but they don’t. This means I have to implement a system that takes input chemicals and engine properties in and outputs gas properties and the combustion chamber temperatures. Starting off this project will be the development of CCEC (Connor’s Chemical Equilibrium for Combustion). As it turns out, this stuff is really complicated and required a ton more research. However, again thanks to NASA, there are tons of data and many papers about this topic. As it turns out, computers don’t understand chemistry. In order to do the calculations to solve for equilibrium, you need a bunch of data for each chemical species the algorithm can use. What I thought would take me less than an hour ended up taking me more than 3 and counting. Trying to use a database formatted in FORTRAN for a C# project is a bad idea. Since the format and syntax was different (FORTRAN uses (X)D+(Y) instead of (X)E+(Y) for scientific notation???), I had to create an algorithm to search the database. This was hard. I am a terrible programmer and C# is really weird sometimes when it comes to strings. After banging my head against a wall for 3 hours, I am finally almost done making the class for chemical species, which was the easy part. Very long devlog."}]...
|
Title: Full Flow by @Connor | Stardance
Devlogs:
Title: Full Flow by @Connor | Stardance
Devlogs:
Devlog #1 The goal of Full Flow is to have a spaceflight simulator where a user can design an engine and rocket parts from scratch and put them together to create a working spacecraft and fly it. One of the most challenging aspects of this project - or, at least, the one I have to deal with first - is the engine design. It is also what I consider to be the most important. Most of my time these past few weeks was spent throwing together a really complicated Desmos graph. Thanks to NASA’s propulsion index, there’s a lot of great info about this stuff. It would be pretty easy to implement this into code, but the problem is that you need to plug in really specific numbers to get the thermodynamics to make sense. This wouldn’t be a problem if all rocket engines used the same fuel, but they don’t. This means I have to implement a system that takes input chemicals and engine properties in and outputs gas properties and the combustion chamber temperatures. Starting off this project will be the development of CCEC (Connor’s Chemical Equilibrium for Combustion). As it turns out, this stuff is really complicated and required a ton more research. However, again thanks to NASA, there are tons of data and many papers about this topic. As it turns out, computers don’t understand chemistry. In order to do the calculations to solve for equilibrium, you need a bunch of data for each chemical species the algorithm can use. What I thought would take me less than an hour ended up taking me more than 3 and counting. Trying to use a database formatted in FORTRAN for a C# project is a bad idea. Since the format and syntax was different (FORTRAN uses (X)D+(Y) instead of (X)E+(Y) for scientific notation???), I had to create an algorithm to search the database. This was hard. I am a terrible programmer and C# is really weird sometimes when it comes to strings. After banging my head against a wall for 3 hours, I am finally almost done making the class for chemical species, which was the easy part. Very long devlog.
Devlog #2 Now you can easily get the elemental and thermodynamic properties of a chemical species; ended up being a little difficult because the dataset I’m using is formatted really weird. Github is evil.
Devlog #3 I have implemented the chemical adjustment system. Essentially, you give it a set of chemical amounts and tell it to adjust one of them while conserving the total amount of each element in the system. This ended up being really hard to implement and I had to try many different things to get it to work. First, I tried using the null space vector to change each value in the element vector, which worked in conserving the element counts but it ended up being almost impossible to ensure every chemical had an amount greater than zero. The math doesn’t care about negative numbers, but you definitely can’t have negative 10 moles of hydrogen. Unfortunately, this approach wasted several hours of my time. Next, I tried another approach that was a bit dumber but much more successful. It uses a bit of matrix magic to lock one value in place (the one you’re modifying) and change others to keep the element conservation. The second approach worked great and next update I should be able to implement the Gibbs free energy minimizer, and after that, finally finish my chemical equilibrium solver. Linear algebra is freaking awesome and magical.
Devlog #4 After hours of tracking down stupid mistakes, I’ve finally completed a rough implementation of my Gibbs free energy minimizer. It seems to produce reasonably accurate results, but it definitely needs to be optimized. For the final equilibrium solver, it will probably need to run at least 20 times so 40 seconds for one temperature is utterly ridiculous. I’m scared of optimization.
Devlog #5 After poking at several functions for several hours, I have managed to reduce the Gibbs minimizer runtime from 40 seconds to around 1 second, which is good enough. Hopefully I can improve this in the future, but the final CCEC build should run in reasonable time. As you can see, CCEC matches NASA’s CEA results pretty nicely if you pay attention to the most significant chemical species!
Devlog #6 After finishing the Gibbs minimizer, it was pretty easy to finish CCEC . I just had to find the chemical solution with the smallest change in enthalpy using a binary search. I put together a table for stoichiometric methalox and hydrolox combustion at 97 bar comparing my CCEC and NASA’s CEA . This is awesome!
Devlog #7 Unfortunately, it was not that easy to finish CCEC . The problem I was getting consistently inaccurate results with H2-O2 reactions, overestimating the combustion temperature by hundreds of degrees. Troubleshooting a problem like this is very difficult because its almost impossible to figure out where exactly in the algorithm it all went wrong with just console logs. It was only really H2-O2 and H2-F2 reactions that were off; CH4-O2 and Aerozine-NTO reactions were mostly unaffected. Fix #1 When I added the ability to specify the temperatures of each reactant, I forgot to consider the fact that the NASA-9 polynomials I was using only worked for temperature ranging from 1000-6000K. That means that when I try to use 90K oxygen as reactant, the enthalpy (kind of like the total energy) is completely off. This was a pretty easy fix because I just had to use a different part of the dataset for low-temperature reactants. While this improved numbers by a little bit, it didn’t fix the hydrogen problem. Shot-in-the-dark #2 This attempt involved poking around at many different numbers while trying not to break anything. This is what took most of the hours recorded for this devlog. This did not fix the problem. The solution During the last devlog, I tried optimizing the program by cutting out any chemicals under a certain value every iteration of the chemistry solver. This was a terrible mistake . It improved the numbers for CH4-O2 by a little bit and made the solver considerably faster, so I didn’t think too much of it. However, as it turns out, this is what caused hydrogen combustion to overshoot temperature. After removing this evil line of code, everything worked perfectly fine again and I was getting great numbers! Optimization While 3 seconds on my laptop for solving CH4-O2 combustion is plenty good, 30 seconds for solving a much more complex Aerozine-NTO combustion is unacceptable. This meant I had to optimize my algorithm even more. The main way I did this was reducing the number of iterations for my binary search, since each iteration ran MinimizeGibbsEnergy which is what I’ve been working towards developing since day 1 and is the main bottleneck since it takes so long. Now I can get Aerozine-NTO results in around 7 seconds. The future Now I can hopefully finally start working on the engine fluid flow calculations, which shouldn’t take too long since I have them in Desmos already. However, I think in order to get the best results I have to solve the chemistry 3 times in total to get the data I need for the rocket engine. One for the combustion chamber, throat, and nozzle mouth respectively. This is quite unfortunate and means I may have to optimize CCEC even further. TL;DR Took forever to find a problem, also did some optimization (Finally figured out how to use markdown. Thank you Hackclub for giving the preview option for devlogs)...
|
1793271213.960371
|
1793876013.960371
|
|
32129
|
roboPet by @aryavora21 | Stardance
|
aryavora21
|
0
|
23.63
|
0
|
[]
|
[{"post_id": 24529, "ts": "202 [{"post_id": 24529, "ts": "2026-07-08T04:30:26Z", "hours": 1.21, "text": "Working on cad design for the frame"}, {"post_id": 24156, "ts": "2026-07-07T15:19:03Z", "hours": 22.4206, "text": "Wireless Pico UART REPL via Pi Zero 2W What I worked on: Executed the dual-board bridge bring-up: connecting the Raspberry Pi Pico (real-time controller) to the Pi Zero 2W (high-level brain) over a physical UART link. Wired Zero GPIO 14/15 (mini UART TX/RX) to Pico GP1/GP0 (UART0 RX/TX) on a shared power rail, with SWD on GPIO 24/25 for flashing. After flashing fresh MicroPython v1.23.0 via OpenOCD over SWD, set up the MicroPython REPL to duplicate over UART so the Zero can wirelessly talk to the Pico.Hit two blockers: wiring polarity was wrong initially (TX-to-TX, RX-to-RX instead of a null-modem crossover), and os.dupterm(uart, 1) crashed boot.py since RP2040 MicroPython only supports dupterm slot 0. Both fixed, and added core_freq=250 to the Zero’s config.txt to stop the mini UART baud rate drifting with CPU frequency scaling.Followed up (this session): wrote tools/blink.py and uploaded it to the Pico via tools/upload_to_pico.py, confirming the full host -> SSH -> Zero -> UART -> Pico pipeline end-to-end. What I learned: Embedded Trap: RP2040 MicroPython’s os.dupterm() only supports slot index 0. Slot 1 is silently invalid, causing a boot-time crash invisible unless you’re watching USB REPL output. Use os.dupterm(uart) or os.dupterm(uart, 0). Hardware Lesson: Pi Zero 2W mini UART (ttyS0) derives its baud rate from the VPU core clock. Without core_freq=250, frequency scaling causes the baud rate to drift; even a 1% mismatch causes data loss. SSH Issue: After rebooting the Zero, the SSH host key changed, blocking password login until passing -o StrictHostKeyChecking=accept-new.What’s next: Now that the wireless UART REPL bridge and upload pipeline are verified, next is wiring an MPU6050 + two servos on the Pico for a simple tilt-correction gyroscope test, adding an OLED pitch/roll readout, and smoke-testing the Zero’s PiCam/mic/speaker independently."}]...
|
Title: roboPet by @aryavora21 | Stardance
Devlogs Title: roboPet by @aryavora21 | Stardance
Devlogs:
Wireless Pico UART REPL via Pi Zero 2W What I worked on: Executed the dual-board bridge bring-up: connecting the Raspberry Pi Pico (real-time controller) to the Pi Zero 2W (high-level brain) over a physical UART link. Wired Zero GPIO 14/15 (mini UART TX/RX) to Pico GP1/GP0 (UART0 RX/TX) on a shared power rail, with SWD on GPIO 24/25 for flashing. After flashing fresh MicroPython v1.23.0 via OpenOCD over SWD, set up the MicroPython REPL to duplicate over UART so the Zero can wirelessly talk to the Pico.Hit two blockers: wiring polarity was wrong initially (TX-to-TX, RX-to-RX instead of a null-modem crossover), and os.dupterm(uart, 1) crashed boot.py since RP2040 MicroPython only supports dupterm slot 0. Both fixed, and added core_freq=250 to the Zero’s config.txt to stop the mini UART baud rate drifting with CPU frequency scaling.Followed up (this session): wrote tools/blink.py and uploaded it to the Pico via tools/upload_to_pico.py, confirming the full host -> SSH -> Zero -> UART -> Pico pipeline end-to-end. What I learned: Embedded Trap: RP2040 MicroPython’s os.dupterm() only supports slot index 0. Slot 1 is silently invalid, causing a boot-time crash invisible unless you’re watching USB REPL output. Use os.dupterm(uart) or os.dupterm(uart, 0). Hardware Lesson: Pi Zero 2W mini UART (ttyS0) derives its baud rate from the VPU core clock. Without core_freq=250, frequency scaling causes the baud rate to drift; even a 1% mismatch causes data loss. SSH Issue: After rebooting the Zero, the SSH host key changed, blocking password login until passing -o StrictHostKeyChecking=accept-new.What’s next: Now that the wireless UART REPL bridge and upload pipeline are verified, next is wiring an MPU6050 + two servos on the Pico for a simple tilt-correction gyroscope test, adding an OLED pitch/roll readout, and smoke-testing the Zero’s PiCam/mic/speaker independently.
Working on cad design for the frame...
|
1792601386.5018928
|
1793206186.5018928
|
|
24662
|
Dungeon Caster by @Zave | Stardance
|
Zave
|
0
|
23.62
|
0
|
[]
|
[{"post_id": 25672, "ts": "202 [{"post_id": 25672, "ts": "2026-07-10T02:47:37Z", "hours": 10.2972, "text": "Tiles along with most other sprites have been completed! Most of my time during the process was trying different looking floor and background textures, but I’m okay with where it ended up. I’ll be working on implementing the final two spells as well as creating some of the earlier levels that lead up to the first two. Once those have been completed I’ll be working on the spell animations. The devlogs in the future will hopefully have smaller breaks between them. I wanted to finish the tiles before I made this one, but I was kind of struggling the with designs so it took longer than I would’ve liked."}, {"post_id": 17304, "ts": "2026-06-28T01:05:00Z", "hours": 9.9022, "text": "Player sprites are done! All of the animations and sprites for the wizard have been completed. All current animations have been implemented into the game. The movement has been to tweaked so that it would feel a little better to play. Before it felt too fast and snappy and now it feels a little more controllable, but will still likely need some changing. I was also able to implement a dash! It will likely be the last spell to be added for a bit as art is going to be my main focus going forward. I’d like to make some levels to play around with the current mechanics I have implemented before adding more. In the future the animations for the abilities will have spells going on around the player, but the art for them is yet to be done so for now enjoy the color changing wizard :D"}, {"post_id": 16479, "ts": "2026-06-26T20:32:37Z", "hours": 2.2964, "text": "Devlog #2: Hello! I’ve been mostly working on teaching myself pixel art so that I could make the sprites for the game. I also was able to add in a double jump mechanic and collectable. After this I plan to continue working sprites and focusing on getting the dash implemented."}, {"post_id": 15383, "ts": "2026-06-25T00:36:32Z", "hours": 1.1281, "text": "Devlog #1: Hello! Today I just wanted to get something to start with so I focused on creating an area where I could test mechanics and added in some basic movement. Other than that I spent some time planning the general outline of the game and figuring out what types of spells I could add in for movement abilities. The timelapse below shows some of the planning."}]...
|
Title: Dungeon Caster by @Zave | Stardance
Devlog Title: Dungeon Caster by @Zave | Stardance
Devlogs:
Devlog #1: Hello! Today I just wanted to get something to start with so I focused on creating an area where I could test mechanics and added in some basic movement. Other than that I spent some time planning the general outline of the game and figuring out what types of spells I could add in for movement abilities. The timelapse below shows some of the planning.
Devlog #2: Hello! I’ve been mostly working on teaching myself pixel art so that I could make the sprites for the game. I also was able to add in a double jump mechanic and collectable. After this I plan to continue working sprites and focusing on getting the dash implemented.
Player sprites are done! All of the animations and sprites for the wizard have been completed. All current animations have been implemented into the game. The movement has been to tweaked so that it would feel a little better to play. Before it felt too fast and snappy and now it feels a little more controllable, but will still likely need some changing. I was also able to implement a dash! It will likely be the last spell to be added for a bit as art is going to be my main focus going forward. I’d like to make some levels to play around with the current mechanics I have implemented before adding more. In the future the animations for the abilities will have spells going on around the player, but the art for them is yet to be done so for now enjoy the color changing wizard :D
Tiles along with most other sprites have been completed! Most of my time during the process was trying different looking floor and background textures, but I’m okay with where it ended up. I’ll be working on implementing the final two spells as well as creating some of the earlier levels that lead up to the first two. Once those have been completed I’ll be working on the spell animations. The devlogs in the future will hopefully have smaller breaks between them. I wanted to finish the tiles before I made this one, but I was kind of struggling the with designs so it took longer than I would’ve liked....
|
1793270939.81788
|
1793875739.81788
|
|
56572
|
arcPad by @jorm | Stardance
|
jorm
|
0
|
23.62
|
0
|
[]
|
[{"post_id": 80655, "ts": "202 [{"post_id": 80655, "ts": "2026-10-18T12:33:51Z", "hours": 4.0678, "text": "finished modelling the case! I wanted to keep the design really compact (which was the reason why I redesigned the PCB earlier), so I decided not to use screws and secured the PCB with friction instead. The PCB is sandwiched between a base and a top plate, the PCB is secured to the top plate when the switches are attached, and the top plate secures to the base with some neat snap fit geometry (second pic). I made a little render to illustrate how it’ll look in the end, with the light bar as well."}, {"post_id": 80210, "ts": "2026-10-16T19:10:26Z", "hours": 4.9892, "text": "for some reason, I decided to change my macropad’s design, so I had to redo parts of the schematic and PCB. It’s now more compact, with one switch replaced by the rotary encoder, and 5 extra LEDs used as some sort of “progress bar” that I think would turn out pretty cool."}, {"post_id": 79858, "ts": "2026-10-15T17:05:16Z", "hours": 5.3056, "text": "finished pcb! designing and tracing the pcb was definitely the most enjoyable part of the process so far imo. i also imported all the step files and silkscreen into fusion, next up is designing a case!"}, {"post_id": 78790, "ts": "2026-10-11T16:39:28Z", "hours": 6.1658, "text": "made progress on the pcb! this was an oddly satisfying process, but took absolutely forever since I had to redo the LED traces at least 5 times. I ran a quick DRC after wiring everthing and got about 80 warnings and errors… tomorrow’s problem."}, {"post_id": 78094, "ts": "2026-10-09T15:26:49Z", "hours": 3.0908, "text": "finished the schematics (for now)! this took way longer than it should’ve, mainly because i have no clue what i’m doing, but i think it all works? next I have to check if it actually works as a pcb, and make sure it doesn’t exceed the max dimensions (100x100mm)"}]...
|
Title: arcPad by @jorm | Stardance
Devlogs:
finis Title: arcPad by @jorm | Stardance
Devlogs:
finished the schematics (for now)! this took way longer than it should’ve, mainly because i have no clue what i’m doing, but i think it all works? next I have to check if it actually works as a pcb, and make sure it doesn’t exceed the max dimensions (100x100mm)
made progress on the pcb! this was an oddly satisfying process, but took absolutely forever since I had to redo the LED traces at least 5 times. I ran a quick DRC after wiring everthing and got about 80 warnings and errors… tomorrow’s problem.
finished pcb! designing and tracing the pcb was definitely the most enjoyable part of the process so far imo. i also imported all the step files and silkscreen into fusion, next up is designing a case!
for some reason, I decided to change my macropad’s design, so I had to redo parts of the schematic and PCB. It’s now more compact, with one switch replaced by the rotary encoder, and 5 extra LEDs used as some sort of “progress bar” that I think would turn out pretty cool.
finished modelling the case! I wanted to keep the design really compact (which was the reason why I redesigned the PCB earlier), so I decided not to use screws and secured the PCB with friction instead. The PCB is sandwiched between a base and a top plate, the PCB is secured to the top plate when the switches are attached, and the top plate secures to the base with some neat snap fit geometry (second pic). I made a little render to illustrate how it’ll look in the end, with the light bar as well....
|
1792669786.425491
|
1793274586.425491
|
|
41042
|
MICO - TV head by @eunalian | Stardance
|
eunalian
|
0
|
23.61
|
0
|
[]
|
[{"post_id": 77289, "ts": "202 [{"post_id": 77289, "ts": "2026-10-06T13:29:55Z", "hours": 12.5267, "text": "ive had a convention so i needed to finish this in time, haven’t had the time to write any devlog at all in the end i couldnt make it in time but hey, ive assembled mostly everything, things are working, i have some vibecoded placeholder code that ill replace with my own code soon enough, and some art i drew myself turns out…. its too front heavy, unbearably so. im too burnt out to work on this for now, ill probably move on to something else in the meantime"}, {"post_id": 69261, "ts": "2026-09-16T18:08:21Z", "hours": 6.0403, "text": "Its all polishing……. Its ALL polishing…….. Always refining and tweaking and adjusting My timeline has 122 features and at this point its such a jumbled mess that if I adjust anything at least 30 other things will break in propagation I hate parametric CAD, but whatever this is is almost ready to print. Finally"}, {"post_id": 59234, "ts": "2026-08-31T22:07:02Z", "hours": 0.5167, "text": "spent 30 minutes just fumbling with onshape’s draft tool. just to make. cat ears. thats all </3"}, {"post_id": 58369, "ts": "2026-08-30T19:33:11Z", "hours": 1.3833, "text": "this is actually starting to come together now, spent a good part of the evening just trying out random ideas on onshape and seeing what sticks, turns out the best way to work is not to overthink too much next i will probably need to set up the github page, write a readme.md and all"}, {"post_id": 57568, "ts": "2026-08-29T19:07:57Z", "hours": 1.2, "text": "created a mount that holds the actual display to the damn bezel, though the sketch looks kind of cursed ( address me , the cloud of mirror constraints says) i find that I get distracted on small details instead of drawing the rest of the owl. (/ref) case in point, much of the hour I spent making on this was spent arguing things like: do I design the fillets straight into the sketch or just apply it after extruding? so I think it’s best if I give myself a roadmap I need to follow. decide how I want it to look , and decide quickly, so that I’ll have time to work on the technical details later. the technical details :) how will I assemble different parts together? how do I plan to actually see out of this mess? software. well here, I’m not too sure yet. I’ll figure something out. here’s to future me! maybe next devlog i’ll add some design flare to make it look less like a box of plastic and more like my lovingly personalized box of plastic."}, {"post_id": 56584, "ts": "2026-08-28T12:07:21Z", "hours": 1.9453, "text": "Spent a few hours fighting onshape, trying my best to turn the ideas I have in my head into exact dimensions and constraints and 2d sketches. CAD is SO tedious, I swear. But at least I ended up with what I wanted, a roughly TV shaped helmet sized to fit my own head. Well, after two hours I have something that looks a little bland :/ The design I had been hoping for was something more inspired with Nintendo’s FAMICOM. But I think I’m getting ahead of myself?"}]...
|
Title: MICO - TV head by @eunalian | Stardance
De Title: MICO - TV head by @eunalian | Stardance
Devlogs:
Spent a few hours fighting onshape, trying my best to turn the ideas I have in my head into exact dimensions and constraints and 2d sketches. CAD is SO tedious, I swear. But at least I ended up with what I wanted, a roughly TV shaped helmet sized to fit my own head. Well, after two hours I have something that looks a little bland :/ The design I had been hoping for was something more inspired with Nintendo’s FAMICOM. But I think I’m getting ahead of myself?
created a mount that holds the actual display to the damn bezel, though the sketch looks kind of cursed ( address me , the cloud of mirror constraints says) i find that I get distracted on small details instead of drawing the rest of the owl. (/ref) case in point, much of the hour I spent making on this was spent arguing things like: do I design the fillets straight into the sketch or just apply it after extruding? so I think it’s best if I give myself a roadmap I need to follow. decide how I want it to look , and decide quickly, so that I’ll have time to work on the technical details later. the technical details :) how will I assemble different parts together? how do I plan to actually see out of this mess? software. well here, I’m not too sure yet. I’ll figure something out. here’s to future me! maybe next devlog i’ll add some design flare to make it look less like a box of plastic and more like my lovingly personalized box of plastic.
this is actually starting to come together now, spent a good part of the evening just trying out random ideas on onshape and seeing what sticks, turns out the best way to work is not to overthink too much next i will probably need to set up the github page, write a readme.md and all
spent 30 minutes just fumbling with onshape’s draft tool. just to make. cat ears. thats all </3
Its all polishing……. Its ALL polishing…….. Always refining and tweaking and adjusting My timeline has 122 features and at this point its such a jumbled mess that if I adjust anything at least 30 other things will break in propagation I hate parametric CAD, but whatever this is is almost ready to print. Finally
ive had a convention so i needed to finish this in time, haven’t had the time to write any devlog at all in the end i couldnt make it in time but hey, ive assembled mostly everything, things are working, i have some vibecoded placeholder code that ill replace with my own code soon enough, and some art i drew myself turns out…. its too front heavy, unbearably so. im too burnt out to work on this for now, ill probably move on to something else in the meantime...
|
1792788531.3735645
|
1793393331.3735645
|
|
60526
|
FTC Team site by @Thomas | Stardance
|
Thomas
|
0
|
23.58
|
0
|
[]
|
[{"post_id": 77682, "ts": "202 [{"post_id": 77682, "ts": "2026-10-07T20:55:15Z", "hours": 5.9797, "text": "Page updates, footer and an improved layout Added some pictures I added proper pictures of the team, as well as the roles and a picture of the robot on the robot page Added a footer I made the footer, it has a link to every page and also external sites Fundraising section There is now a section on the home page for fundraising, with an embedded element to the team’s gofundme Improved layout I changed the layout of the home page, so that the about, robot, and fundraising sections are in a column rather than a row. They change to be in rows again on small screens though. I think this makes the site look less generic Current work I am currently working on improving the mobile experience of the site, such as adding a menu to the navbar and improving the footer layout"}, {"post_id": 74135, "ts": "2026-09-26T18:53:06Z", "hours": 6.5531, "text": "Contact Us Form I built a form on the website to send email to the team! I am using Cloudflare Functions (free & serverless) as the backend, which receives the name, email address and message from the sender via an API, validates it, and then sends it via a noreply address to the contactus address using Resend. The senders address is included in the ‘reply to’ header so the team member just needs to reply to the email. I had to learn how to use Cloudflare Functions for this, and re-learn some web API concepts from my earlier projects. Overall I’m very happy with the usability of the system!"}, {"post_id": 71150, "ts": "2026-09-20T11:03:14Z", "hours": 7.5453, "text": "I kinda forgot to devlog for a while, so this is a big one.. Link element This was my first astro component, it is for links so I didn’t have to style each one individually. You can specify a colour theme, if it opens in a new tab, etc. Navbar I created a navbar with some links for different pages (not all created yet) this was my second component, since I can now easliy add it to each page. Im pretty pleased with how this turned out, since I figured out the tailwind styling myself. Meet the Team page I created a second page for the site, for team members. I used a grid of member cards (another component), and I like the look of it. It went through quite a few revisions until I got the look that I wanted."}, {"post_id": 65453, "ts": "2026-09-10T16:18:09Z", "hours": 3.5022, "text": "First devlog! I started work on a team website for my First Tech Challenge team. I’m using the Astro web framework, Tailwind CSS and Cloudflare pages for hosting. this devlog I was learning tailwind and making some sections, and a cool header. the dev site is hosted at sitedev.botonauts.uk"}]...
|
Title: FTC Team site by @Thomas | Stardance
Devlo Title: FTC Team site by @Thomas | Stardance
Devlogs:
First devlog! I started work on a team website for my First Tech Challenge team. I’m using the Astro web framework, Tailwind CSS and Cloudflare pages for hosting. this devlog I was learning tailwind and making some sections, and a cool header. the dev site is hosted at sitedev.botonauts.uk
I kinda forgot to devlog for a while, so this is a big one.. Link element This was my first astro component, it is for links so I didn’t have to style each one individually. You can specify a colour theme, if it opens in a new tab, etc. Navbar I created a navbar with some links for different pages (not all created yet) this was my second component, since I can now easliy add it to each page. Im pretty pleased with how this turned out, since I figured out the tailwind styling myself. Meet the Team page I created a second page for the site, for team members. I used a grid of member cards (another component), and I like the look of it. It went through quite a few revisions until I got the look that I wanted.
Contact Us Form I built a form on the website to send email to the team! I am using Cloudflare Functions (free & serverless) as the backend, which receives the name, email address and message from the sender via an API, validates it, and then sends it via a noreply address to the contactus address using Resend. The senders address is included in the ‘reply to’ header so the team member just needs to reply to the email. I had to learn how to use Cloudflare Functions for this, and re-learn some web API concepts from my earlier projects. Overall I’m very happy with the usability of the system!
Page updates, footer and an improved layout Added some pictures I added proper pictures of the team, as well as the roles and a picture of the robot on the robot page Added a footer I made the footer, it has a link to every page and also external sites Fundraising section There is now a section on the home page for fundraising, with an embedded element to the team’s gofundme Improved layout I changed the layout of the home page, so that the about, robot, and fundraising sections are in a column rather than a row. They change to be in rows again on small screens though. I think this makes the site look less generic Current work I am currently working on improving the mobile experience of the site, such as adding a menu to the navbar and improving the footer layout...
|
1793036848.7999694
|
1793641648.7999694
|
|
25558
|
Long Exposures iOS App by @kingjamesh | Stardance
|
kingjamesh
|
0
|
23.56
|
0
|
[]
|
[{"post_id": 24861, "ts": "202 [{"post_id": 24861, "ts": "2026-07-08T18:29:48Z", "hours": 3.5758, "text": "Devlog #8: Onboarding & Settings My onboarding and setting screens are now functional, although I kind of want to redo the UI on my settings screen. I’m still working on my UI rework for the editting page. I decided on a category dropdown format. Almost ready to release v1.2!"}, {"post_id": 23501, "ts": "2026-07-06T14:55:41Z", "hours": 3.8069, "text": "Devlog #7: Timelapse Video I wanted to be able to export a video of the long exposure actually building up, so I added an export that renders a short timelapse .mov of the composite building up, ending on the finished exposure. I attached an example of the buildup, I’m still playing around with speed and stuff, it looks kinda ugly rn. The Build-Up I built an incremental acumulator on the blend engine that I’m already using for the other features. It holds the min, max, and sum textures, and each step basically folds one new frame forward into them. Video frame 1 is the blend of just the first source frame, video frame 2 is the blend of the first two, and so on until the last video frame is the full exposure. The last frame stays for about a second before the end. Usually, it ends up being around 4 seconds long. Writing the File For the video itself I used AVAssetWriter with H.264. Each output frame resolves the current composite to a CGImage , draws it into a bgra pixel buffer, and appends it. The finished .mov goes to a temp file, then to the share sheet and save to the phone’s photo library. I now have a lot of different features and settings, and they are taking up most of the app. The long exposure itself looks really small right now, so I need to rework the ui."}, {"post_id": 22301, "ts": "2026-07-04T18:08:57Z", "hours": 5.5544, "text": "Devlog #6: Motion Smoothing Motion smoothing! Live photos are usually about 30 fps, so when something moves fast across the frame, a long exposure doesn’t get a smooth streak, and you can see the individual frames. I wanted to try to address this by smoothing the gaps. Smooth Motion I basically wanted to synthesize extra frames between pairs of real frames to fill in the gaps. I had to figure out the pixel’s movement from frame to frame, so I computed dense optical flow with Vision’s VNGenerateOpticalFlowRequest . It returns a vector field that tells me how each pixel traveled (direction & distance). I run this once per import at a low res. Once I have the flow field, I do a warp operation to generate a frame between A and B. I push frame A forward halfway towards B, and I push frame B backwards halfway towards A. Then I cross-fade the two results. This is repeated between each pair All of this runs inside a metal compute shader. The kernel warps each synthesized frame and accumulates it into the running min, max, and sum buffers the blend already uses from the exposure stuff. This basically means that motion smoothing works with the other adjustments for free. Frame alignment and exposure normalization both are applied in the same way I’m almost done with the app, I just have to keep tuning my values for exposure and motion smoothing then im going to release version 1.1."}, {"post_id": 20849, "ts": "2026-07-02T15:49:27Z", "hours": 2.8708, "text": "Devlog #5: Exposure Modifications I finally finished my exposure modifier. The big change from before is that i changed it from three buttons (average, lighten, darken) to a slider, so now the user can pick the right amount for each photo. Exposure Modifier The slider has lighten and darken on each end. The lighten side keeps the brightest pixel across all your frames at each point in the image. This is supposed to improve the appearance of light trails in dark long exposures. Darken does the opposite. It keeps the darkest pixel, which is kinda niche and really only works to a small scale.This was built with a metal compute shader to track a running min, max and average across all the frames at once in linear light. The slider just picks how much to mix in the min or max, so moving it doesn’t require re-blending anything. To do: i still want to add some sort of motion blur to smooth in the diff between frames a little bit"}, {"post_id": 19288, "ts": "2026-06-30T15:39:46Z", "hours": 0.3203, "text": "Devlog #4: README I put together my readme! I used diagrams.net to make the how it works diagram, then everything else is pretty standard Still working on exposure stuff, almost done"}, {"post_id": 18071, "ts": "2026-06-29T01:54:11Z", "hours": 1.5278, "text": "Devlog #3: Landing Page Today, I built my landing page for the app. It was basically meant to show the different features of the app + how the app worked. Link: https://long-exposures.jameshou28.com IMPORTANT NOTE: this is what I’m attaching as my demo, but it’s just the landing page not the actual app - I don’t have an apple developer account so the only way to download the app will be through a .ipa later"}, {"post_id": 16884, "ts": "2026-06-27T12:19:47Z", "hours": 2.0892, "text": "Devlog #2: Frame Alignment The hard part of long exposures is that you need to hold your camera steady for the entire duration (usually with a tripod). If your camera is not steady, the picture becomes blurry. frame alignment To address this, I used apple’s VNTranslationalImageRegistrationRequest . It basically works by taking pixel buffers and returning a 3x3 matrix that describes how the frames map each other. I took the translation parts from this and used it to move the frames for the alignment part Everything is aligned to the center frame, so basically every time you move the sliders, it has recalculates it I’m still working on the exposure modifying, will be done soon"}, {"post_id": 15876, "ts": "2026-06-25T20:05:01Z", "hours": 3.8117, "text": "Devlog #1: Long Exposures A few weeks ago when i was on vacation, I was standing on a bridge at 1 am playing around with some long exposures on my dslr, and I realized that iphones don’t have real long exposures. Without a third party app, the closest that iPhones can get to long exposures is through converting live photos, which is very limited in what it can do. live photos Basically, live photos consist of the cover photo and a ~3 second video. I used photokit and avfoundation to extract raw pixel buffers from the video. I then used a metal compute shader to average the pixel values across all of the frames of the video together to make the long exposure. At this point i had basically reconstructed the built-in long exposure from apple. long exposure editting The big thing that I wanted to do was take these long exposures and edit the frames that went into them (what you can’t do on apple). This lets me make long exposures with fewer frames and lets me go around apple’s built-in long exposure limitations. To create this feature, I added a range slider to select what frames go into the long exposure (letting me choose the start and end frame) library I implemented a simple library feature that basically lets you save your long exposures into the app (and also into your photo library on your phone) I also started a frame alignment feature and an exposure modifier, but i’m still working on those so i’ll save it for another devlog I spent at least 10 more hours on this before i realized that i didn’t have hackatime connected to my xcode :("}]...
|
Title: Long Exposures iOS App by @kingjamesh | Sta Title: Long Exposures iOS App by @kingjamesh | Stardance
Devlogs:
Devlog #1: Long Exposures A few weeks ago when i was on vacation, I was standing on a bridge at 1 am playing around with some long exposures on my dslr, and I realized that iphones don’t have real long exposures. Without a third party app, the closest that iPhones can get to long exposures is through converting live photos, which is very limited in what it can do. live photos Basically, live photos consist of the cover photo and a ~3 second video. I used photokit and avfoundation to extract raw pixel buffers from the video. I then used a metal compute shader to average the pixel values across all of the frames of the video together to make the long exposure. At this point i had basically reconstructed the built-in long exposure from apple. long exposure editting The big thing that I wanted to do was take these long exposures and edit the frames that went into them (what you can’t do on apple). This lets me make long exposures with fewer frames and lets me go around apple’s built-in long exposure limitations. To create this feature, I added a range slider to select what frames go into the long exposure (letting me choose the start and end frame) library I implemented a simple library feature that basically lets you save your long exposures into the app (and also into your photo library on your phone) I also started a frame alignment feature and an exposure modifier, but i’m still working on those so i’ll save it for another devlog I spent at least 10 more hours on this before i realized that i didn’t have hackatime connected to my xcode :(
Devlog #2: Frame Alignment The hard part of long exposures is that you need to hold your camera steady for the entire duration (usually with a tripod). If your camera is not steady, the picture becomes blurry. frame alignment To address this, I used apple’s VNTranslationalImageRegistrationRequest . It basically works by taking pixel buffers and returning a 3x3 matrix that describes how the frames map each other. I took the translation parts from this and used it to move the frames for the alignment part Everything is aligned to the center frame, so basically every time you move the sliders, it has recalculates it I’m still working on the exposure modifying, will be done soon
Devlog #3: Landing Page Today, I built my landing page for the app. It was basically meant to show the different features of the app + how the app worked. Link: https://long-exposures.jameshou28.com IMPORTANT NOTE: this is what I’m attaching as my demo, but it’s just the landing page not the actual app - I don’t have an apple developer account so the only way to download the app will be through a .ipa later
Devlog #4: README I put together my readme! I used diagrams.net to make the how it works diagram, then everything else is pretty standard Still working on exposure stuff, almost done
Devlog #5: Exposure Modifications I finally finished my exposure modifier. The big change from before is that i changed it from three buttons (average, lighten, darken) to a slider, so now the user can pick the right amount for each photo. Exposure Modifier The slider has lighten and darken on each end. The lighten side keeps the brightest pixel across all your frames at each point in the image. This is supposed to improve the appearance of light trails in dark long exposures. Darken does the opposite. It keeps the darkest pixel, which is kinda niche and really only works to a small scale.This was built with a metal compute shader to track a running min, max and average across all the frames at once in linear light. The slider just picks how much to mix in the min or max, so moving it doesn’t require re-blending anything. To do: i still want to add some sort of motion blur to smooth in the diff between frames a little bit
Devlog #6: Motion Smoothing Motion smoothing! Live photos are usually about 30 fps, so when something moves fast across the frame, a long exposure doesn’t get a smooth streak, and you can see the individual frames. I wanted to try to address this by smoothing the gaps. Smooth Motion I basically wanted to synthesize extra frames between pairs of real frames to fill in the gaps. I had to figure out the pixel’s movement from frame to frame, so I computed dense optical flow with Vision’s VNGenerateOpticalFlowRequest . It returns a vector field that tells me how each pixel traveled (direction & distance). I run this once per import at a low res. Once I have the flow field, I do a warp operation to generate a frame between A and B. I push frame A forward halfway towards B, and I push frame B backwards halfway towards A. Then I cross-fade the two results. This is repeated between each pair All of this runs inside a metal compute shader. The kernel warps each synthesized frame and accumulates it into the running min, max, and sum buffers the blend already uses from the exposure stuff. This basically means that motion smoothing works with the other adjustments for free. Frame alignment and exposure normalization both are applied in the same way I’m almost done with the app, I just have to keep tuning my values for exposure and motion smoothing then im going to release version 1.1.
Devlog #7: Timelapse Video I wanted to be able to export a video of the long exposure actually building up, so I added an export that renders a short timelapse .mov of the composite building up, ending on the finished exposure. I attached an example of the buildup, I’m still playing around with speed and stuff, it looks kinda ugly rn. The Build-Up I built an incremental acumulator on the blend engine that I’m already using for the other features. It holds the min, max, and sum textures, and each step basically folds one new frame forward into them. Video frame 1 is the blend of just the first source frame, video frame 2 is the blend of the first two, and so on until the last video frame is the full exposure. The last frame stays for about a second before the end. Usually, it ends up being around 4 seconds long. Writing the File For the video itself I used AVAssetWriter with H.264. Each output frame resolves the current composite to a CGImage , draws it into a bgra pixel buffer, and appends it. The finished .mov goes to a temp file, then to the share sheet and save to the phone’s photo library. I now have a lot of different features and settings, and they are taking up most of the app. The long exposure itself looks really small right now, so I need to rework the ui.
Devlog #8: Onboarding & Settings My onboarding and setting screens are now functional, although I kind of want to redo the UI on my settings screen. I’m still working on my UI rework for the editting page. I decided on a category dropdown format. Almost ready to release v1.2!...
|
1792893215.0461905
|
1793757215.0461905
|
|
22022
|
Ornithopter by @java | Stardance
|
java
|
0
|
23.51
|
0
|
[]
|
[{"post_id": 75121, "ts": "202 [{"post_id": 75121, "ts": "2026-09-29T05:50:20Z", "hours": 1.5736, "text": "Wow it’s been awhille… well someone got funing 400$ yay. anyway someone forgot about there tolerances. and the main gear is really wobbly oh well lets see what i can do here a quick vid for u guys."}, {"post_id": 41107, "ts": "2026-08-05T03:00:37Z", "hours": 0.6003, "text": "Tiny Design So as I wait for grant money, I have decided to make a fork of the project in Onshape, and I made it smaller. I now have an 80 tooth on the big main gear instead of a 112 tooth. I am still going to be making the 112 tooth version, as I would like to get my first prototype made. This will let me practice building, and I can tweak anything else in the next version. Frame Size Width Old 226 mm, New 162mm Height Old 152 mm, New 130mm"}, {"post_id": 40294, "ts": "2026-08-03T18:44:43Z", "hours": 1.7681, "text": "I think I made it too big……. anyway been awhile since an update. I am just going to build it and see what happens the plan is right now it to stop worrying about “what if” and just see what is wrong with the designs."}, {"post_id": 35024, "ts": "2026-07-26T05:39:51Z", "hours": 0.6028, "text": "I am thinking of moving this dev log to my new website. I ask in the slack if I could move the dev logs to my website I made for the project. so I may be just putting links to them here. aka I think I am going a little crazy whille I wait for funding apps to reopen anyway here are some photos of what I may added to the website."}, {"post_id": 34443, "ts": "2026-07-25T04:51:18Z", "hours": 8.8142, "text": "Hello Been awhile. What I have done. Made a website Added more detail to the model Still waiting on funding Here a cool video of it Website is called https://www.governmentcrow.net/"}, {"post_id": 23664, "ts": "2026-07-06T19:33:38Z", "hours": 0.9172, "text": "Hello Yall, maybe I should lock in to what I am making give some more detail of how this project is going to work out. So I am trying to make a ornithopter what it does is it flap its wing to generate life ( aka a mechinal bird) The Goal of the project: to build a lightweight ornithopter capable of stable powered flight using a simple flapping mechanism. The project will be set up in phases. Phase 1 This is the prototyping phase of the wing movement mechanism. I will be designing a body that takes the rotating motion from a motor to move the wings up and down. I will be looking for reliability, strength, and efficiency. Phase 2 Here I will be designing the wing. I need to make it lightweight. I will also be testing it with the gear mechanism and measuring how much lift it produces so I can determine my design constraints for the tail. Phase 3 – Adding the Tail and Other Electronics This is where I will be adding the tail and electronics together. I will also be doing some early test flights if all goes to plan. My goal is to have a clean mechanical system. The tail will look like an airplane tail, as I am currently just focusing on the flapping mechanism. Phase 4 This phase is for debugging and testing. I want to aim for reliability and simplicity, and I will be conducting my own test flights as well. Current Progress (Phase 1) I am currently in Phase 1 and have decided to use a crankshaft based mechanism for wing motion.I am using this simulation tool to help calculate and visualize the wing path: https://www.desmos.com/calculator/iuprdl6sxkMy motor has a KV rating of 1700, and I will need a gear reduction of approximately 21.24:1. This may change during testing, but for now I am satisfied with the I have just submitted my project for funding so I am hoping it will go though. – Changes I’ve Made. So I change how the space sits as it look a little to week and it was interfering with the flapping motion"}, {"post_id": 23291, "ts": "2026-07-06T04:54:43Z", "hours": 7.03, "text": "So I’ve Finish my design and I would be ready to move to the protyping phase. from the last design i have change the movment mech so that I have a clean path to follow. I also made a bom list of all of the parts."}, {"post_id": 21934, "ts": "2026-07-04T04:02:05Z", "hours": 2.2, "text": "Hello, this is my Ornithopter project. I am just working on a mechanism to move the wings up and down. This will let me test to see if I have the flapping motion correct. The next thing I need to do is print it out and do a test with it to see if my measurements are right.In Onshape right now, I need to get the ratio proper so I can have a clean up-and-down movement.The next thing I need to do is prototype with a 3D printer."}]...
|
Title: Ornithopter by @java | Stardance
Devlogs:
Title: Ornithopter by @java | Stardance
Devlogs:
Hello, this is my Ornithopter project. I am just working on a mechanism to move the wings up and down. This will let me test to see if I have the flapping motion correct. The next thing I need to do is print it out and do a test with it to see if my measurements are right.In Onshape right now, I need to get the ratio proper so I can have a clean up-and-down movement.The next thing I need to do is prototype with a 3D printer.
So I’ve Finish my design and I would be ready to move to the protyping phase. from the last design i have change the movment mech so that I have a clean path to follow. I also made a bom list of all of the parts.
Hello Yall, maybe I should lock in to what I am making give some more detail of how this project is going to work out. So I am trying to make a ornithopter what it does is it flap its wing to generate life ( aka a mechinal bird) The Goal of the project: to build a lightweight ornithopter capable of stable powered flight using a simple flapping mechanism. The project will be set up in phases. Phase 1 This is the prototyping phase of the wing movement mechanism. I will be designing a body that takes the rotating motion from a motor to move the wings up and down. I will be looking for reliability, strength, and efficiency. Phase 2 Here I will be designing the wing. I need to make it lightweight. I will also be testing it with the gear mechanism and measuring how much lift it produces so I can determine my design constraints for the tail. Phase 3 – Adding the Tail and Other Electronics This is where I will be adding the tail and electronics together. I will also be doing some early test flights if all goes to plan. My goal is to have a clean mechanical system. The tail will look like an airplane tail, as I am currently just focusing on the flapping mechanism. Phase 4 This phase is for debugging and testing. I want to aim for reliability and simplicity, and I will be conducting my own test flights as well. Current Progress (Phase 1) I am currently in Phase 1 and have decided to use a crankshaft based mechanism for wing motion.I am using this simulation tool to help calculate and visualize the wing path: https://www.desmos.com/calculator/iuprdl6sxkMy motor has a KV rating of 1700, and I will need a gear reduction of approximately 21.24:1. This may change during testing, but for now I am satisfied with the I have just submitted my project for funding so I am hoping it will go though. – Changes I’ve Made. So I change how the space sits as it look a little to week and it was interfering with the flapping motion
Hello Been awhile. What I have done. Made a website Added more detail to the model Still waiting on funding Here a cool video of it Website is called https://www.governmentcrow.net/
I am thinking of moving this dev log to my new website. I ask in the slack if I could move the dev logs to my website I made for the project. so I may be just putting links to them here. aka I think I am going a little crazy whille I wait for funding apps to reopen anyway here are some photos of what I may added to the website.
I think I made it too big……. anyway been awhile since an update. I am just going to build it and see what happens the plan is right now it to stop worrying about “what if” and just see what is wrong with the designs.
Tiny Design So as I wait for grant money, I have decided to make a fork of the project in Onshape, and I made it smaller. I now have an 80 tooth on the big main gear instead of a 112 tooth. I am still going to be making the 112 tooth version, as I would like to get my first prototype made. This will let me practice building, and I can tweak anything else in the next version. Frame Size Width Old 226 mm, New 162mm Height Old 152 mm, New 130mm
Wow it’s been awhille… well someone got funing 400$ yay. anyway someone forgot about there tolerances. and the main gear is really wobbly oh well lets see what i can do here a quick vid for u guys....
|
1792662485.1571782
|
1793267285.1571782
|
|
29010
|
Waddle by @LinusSchneeberg | Stardance
|
LinusSchneeberg
|
0
|
23.49
|
0
|
[]
|
[{"post_id": 31322, "ts": "202 [{"post_id": 31322, "ts": "2026-07-19T16:53:54Z", "hours": 1.7192, "text": "Waddle (Devlog?) 5 I’m leaving Stardance I will not ship this project to stardance so I can instead use it to go to the Horizons hackathon. I will continue development though. I might use the GitHub releases for devlogs instead. I wish all of you lots of fun doing stardance! Goodbye (Image unrelated)"}, {"post_id": 30311, "ts": "2026-07-17T19:22:18Z", "hours": 6.4208, "text": "Waddle Devlog 4 (I’m running out of emojis) New release (v0.4.1) Info: Previous configurations will not be compatible with this version but migrating shouldn’t be difficult. You can backup your config and run waddle init to generate a new one. Waddle is now on Nuget!!! That means you can now install Waddle using dotnet tool install -g Waddle.Cli And you can still find new releases on GitHub as well :) New features Allow .w.yaml and .w.yml file endings to avoid conflicts with other tools Improved README a lot (I went on a side quest and built a little script that fills out a readme template ) I spent a lot of time making it as easy as possible to try this project (Worked on the docker file, created start script for the container, improved Quick Start section in README…) a few bug fixes You can now put relative paths in your waddle.yaml (which makes it a lot more portable) You don’t have to specify authentication configuration anymore, so you can create client-only workflows Struggles Tried to fix a very weird bug for an hour. I had a weird issue where the program would get stuck whenever I did not specify a log file in the config even after I removed most log-related things. Turned out it was a UI component not being thread-safe"}, {"post_id": 29771, "ts": "2026-07-16T21:26:06Z", "hours": 7.2719, "text": "Waddle Devlog 3 Releases! Releases! You can download releases on the github page now! What changed? Added a README Added a timeout option for penguins (my name for workflow tasks) Added SendFolderPenguin and ReceiveFolderPenguin which can send and receive folders from the server Added Logging Added SendFilePenguin and ReceiveFilePenguin which can send and receive files Improved the CLI Got really stressed out trying to become #1 on the globaly hackatime leaderboard 😅 Managed to become #1 on the global Hackatime leaderboard in last 24 hours Added publish waddle workflow so I can build the binaries using waddle What’s planned? Completely refactor the workflow runner so that nested workflows can be allowed SendCompressedFolderPenguin ReceiveCompressedFolderPenguin"}, {"post_id": 29176, "ts": "2026-07-15T22:01:32Z", "hours": 7.1814, "text": "Waddle devlog 2 (a big devlog) I managed to create a first working version I have added many features which make Waddle actually usable: an init command which creates a configuration file a way to parse penguin-workflows from a yaml file a command to run a workflow from a file a Dockerfile which creates a simple nest (server) that can be used to test this project The yaml workflows Every step (penguin) has a name and an exactly one action (see below for all available penguins) A penguin can choose to ignore errors. This will continue with the workflow even if a previous step failed Config options Hostname Port Username Authentication method (Password/private key/ssh agent) File to write server outputs Icons Implemented Penguins 🐧 RunServerCommand (he won’t be lonely much longer ) Planned Penguins SendFolder GetFolder SendFile GetFile RunCommand (locally) Release when? I’ll probably do my first ship tomorrow. It will come with a release for both Linux and W*ndows"}, {"post_id": 28608, "ts": "2026-07-14T23:17:26Z", "hours": 0.8994, "text": "My new project: Waddle 🐧 Waddle is a collection of digital penguins which can waddle to their nests (remote servers) via SSH. They can carry files or requests to execute commands. Waddle is supposed to help me deploy my projects to nest (or other servers). I couldn’t achieve much today but I have planned the features and got remote commands working. Technologies ⚙️ All requests are made via SSH for security reasons and because it fits my needs perfectly. I use C# because I like object-oriented languages and C# is the one I like most. The plan I want to support yaml workflows that can run commands on both the client and the server and transfer files between both. (How haven’t I figured out that you can format these earlier) (And the emojis are amazing )"}]...
|
Title: Waddle by @LinusSchneeberg | Stardance
Dev Title: Waddle by @LinusSchneeberg | Stardance
Devlogs:
My new project: Waddle 🐧 Waddle is a collection of digital penguins which can waddle to their nests (remote servers) via SSH. They can carry files or requests to execute commands. Waddle is supposed to help me deploy my projects to nest (or other servers). I couldn’t achieve much today but I have planned the features and got remote commands working. Technologies ⚙️ All requests are made via SSH for security reasons and because it fits my needs perfectly. I use C# because I like object-oriented languages and C# is the one I like most. The plan I want to support yaml workflows that can run commands on both the client and the server and transfer files between both. (How haven’t I figured out that you can format these earlier) (And the emojis are amazing )
Waddle devlog 2 (a big devlog) I managed to create a first working version I have added many features which make Waddle actually usable: an init command which creates a configuration file a way to parse penguin-workflows from a yaml file a command to run a workflow from a file a Dockerfile which creates a simple nest (server) that can be used to test this project The yaml workflows Every step (penguin) has a name and an exactly one action (see below for all available penguins) A penguin can choose to ignore errors. This will continue with the workflow even if a previous step failed Config options Hostname Port Username Authentication method (Password/private key/ssh agent) File to write server outputs Icons Implemented Penguins 🐧 RunServerCommand (he won’t be lonely much longer ) Planned Penguins SendFolder GetFolder SendFile GetFile RunCommand (locally) Release when? I’ll probably do my first ship tomorrow. It will come with a release for both Linux and W*ndows
Waddle Devlog 3 Releases! Releases! You can download releases on the github page now! What changed? Added a README Added a timeout option for penguins (my name for workflow tasks) Added SendFolderPenguin and ReceiveFolderPenguin which can send and receive folders from the server Added Logging Added SendFilePenguin and ReceiveFilePenguin which can send and receive files Improved the CLI Got really stressed out trying to become #1 on the globaly hackatime leaderboard 😅 Managed to become #1 on the global Hackatime leaderboard in last 24 hours Added publish waddle workflow so I can build the binaries using waddle What’s planned? Completely refactor the workflow runner so that nested workflows can be allowed SendCompressedFolderPenguin ReceiveCompressedFolderPenguin
Waddle Devlog 4 (I’m running out of emojis) New release (v0.4.1) Info: Previous configurations will not be compatible with this version but migrating shouldn’t be difficult. You can backup your config and run waddle init to generate a new one. Waddle is now on Nuget!!! That means you can now install Waddle using dotnet tool install -g Waddle.Cli And you can still find new releases on GitHub as well :) New features Allow .w.yaml and .w.yml file endings to avoid conflicts with other tools Improved README a lot (I went on a side quest and built a little script that fills out a readme template ) I spent a lot of time making it as easy as possible to try this project (Worked on the docker file, created start script for the container, improved Quick Start section in README…) a few bug fixes You can now put relative paths in your waddle.yaml (which makes it a lot more portable) You don’t have to specify authentication configuration anymore, so you can create client-only workflows Struggles Tried to fix a very weird bug for an hour. I had a weird issue where the program would get stuck whenever I did not specify a log file in the config even after I removed most log-related things. Turned out it was a UI component not being thread-safe
Waddle (Devlog?) 5 I’m leaving Stardance I will not ship this project to stardance so I can instead use it to go to the Horizons hackathon. I will continue development though. I might use the GitHub releases for devlogs instead. I wish all of you lots of fun doing stardance! Goodbye (Image unrelated)...
|
1793256471.7643259
|
1793861271.7643259
|
|
29015
|
Pygame 2d Platformer by @Burnt_Cookie | Stardance
|
Burnt_Cookie
|
1
|
23.43
|
174
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-13T23:30:43Z", "hours": 23.0, "multiplier": 7.74, "payout": 174, "blessing": "neutral", "text": "I made a 2d Platformer in python using the pygame module/library (i don’t really know what the word is) the most difficult part was player movement and collision especially because i was using pygame, pygame has almost no tools built in that are standard with other game engines like Godot or unity. The main reason i chose pygame for this was because it was a little farther into my comfort zone because i love to code in python and dont have as much experience in other languages or game engines. I also really enjoyed the fact that i have to do allot of things from pygame manually it shows me how complicated things actually are and helps me learn how they work I am really proud of the level creation and level editor system i really like the level editor and i think its one of my favirote things ive ever coded in python even if i got a little help with ai This game is not quite intending to be a standalone game so i encourage people to look at he game and mod it how they want to use it as a base for other projects im not the best at level design so id love to see if other people want to make a level as long as the level is named in sequence as level1, level2, etc the game will load it just fine I hope whoever plays or modifies this code has fun!", "repo": "https://github.com/BurntCookie7/2d-Platformer", "demo": "https://burnt-cookie.itch.io/pygame-platformer"}]...
|
[{"post_id": 33377, "ts": "202 [{"post_id": 33377, "ts": "2026-07-23T08:14:21Z", "hours": 0.4278, "text": "Spooky Game Changed: now rather than charging automatically the flashlight has a small crank that the player has to turn by moving the mouse, the faster the player moves the mouse the faster the crank will turn and the faster the flashlight will charge. added ambient noise to the forest added the sounds of the players footsteps and running added a click when turning on and off the flashlight"}, {"post_id": 27973, "ts": "2026-07-13T22:36:33Z", "hours": 0.65, "text": "2d Platformer with pygame Added: new levels! To Do: fix issue where the player does not die if there is no checkpoint set"}, {"post_id": 27945, "ts": "2026-07-13T21:45:13Z", "hours": 1.5386, "text": "2d Platformer with pygame Added: new player anims/textures for falling, dashing, and taking damage from spikes player now has hearts that are taken away when hitting spike rather than immediately dying the checkpoint now is in the center of the tile it is placed in fixed a bug where the player could dash in order to avoid hitting certain spikes To Do: make new levels"}, {"post_id": 24923, "ts": "2026-07-08T19:58:01Z", "hours": 3.5306, "text": "2d Platformer with pygame Added: the ability to place spikes with different rotations drew new player sprite and animations for walking and air dashing the player now spawns a rainbow trail when air dashing drew a new player spawn sprite replacing the previous placeholder in the editor you can now zoom in, out, and drag around the grid with the scroll wheel To Do: make new levels change the checkpoint sprite to render in the center of the tile"}, {"post_id": 23960, "ts": "2026-07-07T06:07:45Z", "hours": 2.2336, "text": "2d Platformer with pygame Changes: added level transitions built a few new levels added the editor to the main menu made some changed to the editor mainly adding level end tiles and a “quit to game” button To Do: make new player textures for normal movement, sprinting, air dashing, and jumping/falling create a new character design make new proper levels for the player to play make changes to the way that spikes are placed so i can place them on walls and upside down"}, {"post_id": 23191, "ts": "2026-07-06T00:45:07Z", "hours": 2.2544, "text": "2d Platformer with pygame Changes: made a level builder program To Do: add player spawn point to the level editor draw new player sprites create more levels add level transitioning"}, {"post_id": 23129, "ts": "2026-07-05T22:03:14Z", "hours": 1.7867, "text": "2d Platformer with pygame Changes: remade the Main menu added an air dash ability started work on a level transitioning To Do: create more levels potentially make a proper level builder"}, {"post_id": 20623, "ts": "2026-07-02T08:28:24Z", "hours": 1.5519, "text": "2d Platformer with pygame Changes: fixed bug where the player could stand on the side of a wall/platform made new checkpoint and hazard (spike) textures created placeholder player texture gave the spike proper triangular collisions. earlier it had only box collisions and i was harder to avoid To Do: create main menu screen add level changing create more levels create new player texture"}, {"post_id": 20553, "ts": "2026-07-02T05:10:47Z", "hours": 1.1117, "text": "2d Platformer with pygame Added: proper level “editor” using a grid of characters in a text file new texture for checkpoints fullscreen support To Do: end level trigger level changing more levels main menu, Sadly implementing the level “editor” resulted in the main menu screen breaking. I will try to fix that as soon as possible"}, {"post_id": 20259, "ts": "2026-07-01T20:08:28Z", "hours": 1.7511, "text": "2d Platformer with pygame Goals Accomplished: Main menu Wall jumping slight level changes for testing To Do Air dash? Better level build system End level trigger easy way to transition between levels"}, {"post_id": 19860, "ts": "2026-07-01T08:22:14Z", "hours": 3.2136, "text": "2d Platformer with pygame Goals Achieved: Side Scrolling camera allowing for bigger levels. New Stuff: Kill blocks as a threat to the player Checkpoints to resume after dying A class system to more easily make levels now I only have to position everything Need to make: End level trigger Menu screen? Air dash Wall jumping? Maybe a better system to build levels"}, {"post_id": 19739, "ts": "2026-07-01T03:59:26Z", "hours": 1.9111, "text": "2d Platformer with pygame Goals Achieved: Proper collisions for all surfaces Reworked all code for movement In Progress: Textures Proper map/level Side scrolling for longer levels"}, {"post_id": 19583, "ts": "2026-06-30T22:35:25Z", "hours": 1.1694, "text": "Finished the basic player movement code. Things to add: textures more level geometry more detailed collisions"}]...
|
Title: Pygame 2d Platformer by @Burnt_Cookie | Sta Title: Pygame 2d Platformer by @Burnt_Cookie | Stardance
Devlogs:
Finished the basic player movement code. Things to add: textures more level geometry more detailed collisions
2d Platformer with pygame Goals Achieved: Proper collisions for all surfaces Reworked all code for movement In Progress: Textures Proper map/level Side scrolling for longer levels
2d Platformer with pygame Goals Achieved: Side Scrolling camera allowing for bigger levels. New Stuff: Kill blocks as a threat to the player Checkpoints to resume after dying A class system to more easily make levels now I only have to position everything Need to make: End level trigger Menu screen? Air dash Wall jumping? Maybe a better system to build levels
2d Platformer with pygame Goals Accomplished: Main menu Wall jumping slight level changes for testing To Do Air dash? Better level build system End level trigger easy way to transition between levels
2d Platformer with pygame Added: proper level “editor” using a grid of characters in a text file new texture for checkpoints fullscreen support To Do: end level trigger level changing more levels main menu, Sadly implementing the level “editor” resulted in the main menu screen breaking. I will try to fix that as soon as possible
2d Platformer with pygame Changes: fixed bug where the player could stand on the side of a wall/platform made new checkpoint and hazard (spike) textures created placeholder player texture gave the spike proper triangular collisions. earlier it had only box collisions and i was harder to avoid To Do: create main menu screen add level changing create more levels create new player texture
2d Platformer with pygame Changes: remade the Main menu added an air dash ability started work on a level transitioning To Do: create more levels potentially make a proper level builder
2d Platformer with pygame Changes: made a level builder program To Do: add player spawn point to the level editor draw new player sprites create more levels add level transitioning
2d Platformer with pygame Changes: added level transitions built a few new levels added the editor to the main menu made some changed to the editor mainly adding level end tiles and a “quit to game” button To Do: make new player textures for normal movement, sprinting, air dashing, and jumping/falling create a new character design make new proper levels for the player to play make changes to the way that spikes are placed so i can place them on walls and upside down
2d Platformer with pygame Added: the ability to place spikes with different rotations drew new player sprite and animations for walking and air dashing the player now spawns a rainbow trail when air dashing drew a new player spawn sprite replacing the previous placeholder in the editor you can now zoom in, out, and drag around the grid with the scroll wheel To Do: make new levels change the checkpoint sprite to render in the center of the tile
2d Platformer with pygame Added: new player anims/textures for falling, dashing, and taking damage from spikes player now has hearts that are taken away when hitting spike rather than immediately dying the checkpoint now is in the center of the tile it is placed in fixed a bug where the player could dash in order to avoid hitting certain spikes To Do: make new levels
2d Platformer with pygame Added: new levels! To Do: fix issue where the player does not die if there is no checkpoint set
Spooky Game Changed: now rather than charging automatically the flashlight has a small crank that the player has to turn by moving the mouse, the faster the player moves the mouse the faster the crank will turn and the faster the flashlight will charge. added ambient noise to the forest added the sounds of the players footsteps and running added a click when turning on and off the flashlight
Ships:
I made a 2d Platformer in python using the pygame module/library (i don’t really know what the word is) the most difficult part was player movement and collision especially because i was using pygame, pygame has almost no tools built in that are standard with other game engines like Godot or unity. The main reason i chose pygame for this was because it was a little farther into my comfort zone because i love to code in python and dont have as much experience in other languages or game engines. I also really enjoyed the fact that i have to do allot of things from pygame manually it shows me how complicated things actually are and helps me learn how they work I am really proud of the level creation and level editor system i really like the level editor and i think its one of my favirote things ive ever coded in python even if i got a little help with ai This game is not quite intending to be a standalone game so i encourage people to look at he game and mod it how they want to use it as a base for other projects im not the best at level design so id love to see if other people want to make a level as long as the level is named in sequence as level1, level2, etc the game will load it just fine I hope whoever plays or modifies this code has fun!...
|
1793246026.8969636
|
1793332426.8969636
|
|
13761
|
Autonamous UAV - KESTRAL by @Orange01 | Stardance
|
Orange01
|
0
|
23.34
|
0
|
[]
|
[{"post_id": 59220, "ts": "202 [{"post_id": 59220, "ts": "2026-08-31T21:49:05Z", "hours": 9.5692, "text": "Tasks done since last devlog: Added proper hinges for ailerons, ruddervators Added final model of aileron, ruddervator Added cavities for servos for control surface actuation Added routing for wiring for servos in main wing Inserted servos+horns Added models of RPI 4, MATEK F405 Wing, 40 Amp ESC, RPI HQ Cam w/ lens Added 4s3p pack Modeled brackets to hold battery cell together Modified main nacelle to be larger to fit all parts -Made dummy model of motor and imported prop Removed internal support structure of all ribs (turns out with this scale of 3d prints the honey comb structure would be heavier) Started putting 3d printed parts in bambu lab - Slicer to find mass when printed with right settings and putting mass in onshape to calculate the CG Added mount for motor and hole for motor wires"}, {"post_id": 20764, "ts": "2026-07-02T13:42:17Z", "hours": 13.09, "text": "KESTRAL - 7/2/26 Hi guys, I’ve done a lot since the last devlog here’s a list of things added: -Proper hinges for the ailerons, and ruddervators -Mostly final model of aileron and ruddervators -cavities in some of the ribs for servos to actuate the control surfaces -routing for wires for servos in main wing -inserted servos and servo horns -models of RPI4, MATEK F405 Wing, 40 amp ESC, RPI HQ Cam w/ Lens -All of the cells of the 4s3p lipo pack -Modeled the brackets to hold the 21700 cells in the battery pack together -Modified main nacelle to be larger to fit all avionics and payload -Dummy model of motor and imported prop -Removed internal support structure of all ribs (turns out with this scale of 3d prints the honey comb structure would be heavier, this was very painful) -Started putting 3d printed parts in bambu lab Slicer to find mass when printed with right settings and putting mass in onshape to calculate the CG Things I plan on doing: -Finish adding mass to all parts -Add wiring routing for servos in tail section -Figure out how to join 2 halves of the main nacelle -modify the main nacelle holder (currently its like 2 cm wide and probably will not hold the weight of the nacelle) -Figure out how to fit all the avionics into the main nacelle -Figure out main payload -I might need to make a power distribution board so I need to learn how to make pcbs Also I still haven’t finalized the payload, right now I’ve just thrown a RPI HQ cam on there to take pictures of the ground and maybe use machine vision or something to identify and track things on the ground. If yall have any better suggestions please tell me The UAV can carry 1 KG for 1 hr so anything that is relatively small and under 1kg is fine. PLZ give me ideas here is a link to the CAD: https://cad.onshape.com/documents/9bbfe5c889049964a7b3ec7c/w/12735438ade2747052664e45/e/bffd84ac46a9da4b91f82ea6?renderMode=0&uiState=6a466a252d98a41a72b522e7"}, {"post_id": 15952, "ts": "2026-06-25T22:21:13Z", "hours": 0.6833, "text": "Hi, 1st devlog I’ve already been working on this for a while before I started Stardance, so I have the main structure done Things to add: -space for wiring and linkages for control surfaces -payload design -mount for motor -other things I have yet to think about did some work on the ailerons and wings today Also I still haven’t decide on the final payload yet so if yall have any good ideas please let me know This platform should be able to carry up to 1kg for 1 hour and I can probably redesign the fuselage to fit anything reasonable. Finally here is the link to the onshape project if you wanna chack it out: https://cad.onshape.com/documents/9bbfe5c889049964a7b3ec7c/w/12735438ade2747052664e45/e/bffd84ac46a9da4b91f82ea6?renderMode=0&uiState=6a3db24cd585f1d9e3870a42"}]...
|
Title: Autonamous UAV - KESTRAL by @Orange01 | Sta Title: Autonamous UAV - KESTRAL by @Orange01 | Stardance
Devlogs:
Hi, 1st devlog I’ve already been working on this for a while before I started Stardance, so I have the main structure done Things to add: -space for wiring and linkages for control surfaces -payload design -mount for motor -other things I have yet to think about did some work on the ailerons and wings today Also I still haven’t decide on the final payload yet so if yall have any good ideas please let me know This platform should be able to carry up to 1kg for 1 hour and I can probably redesign the fuselage to fit anything reasonable. Finally here is the link to the onshape project if you wanna chack it out: https://cad.onshape.com/documents/9bbfe5c889049964a7b3ec7c/w/12735438ade2747052664e45/e/bffd84ac46a9da4b91f82ea6?renderMode=0&uiState=6a3db24cd585f1d9e3870a42
KESTRAL - 7/2/26 Hi guys, I’ve done a lot since the last devlog here’s a list of things added: -Proper hinges for the ailerons, and ruddervators -Mostly final model of aileron and ruddervators -cavities in some of the ribs for servos to actuate the control surfaces -routing for wires for servos in main wing -inserted servos and servo horns -models of RPI4, MATEK F405 Wing, 40 amp ESC, RPI HQ Cam w/ Lens -All of the cells of the 4s3p lipo pack -Modeled the brackets to hold the 21700 cells in the battery pack together -Modified main nacelle to be larger to fit all avionics and payload -Dummy model of motor and imported prop -Removed internal support structure of all ribs (turns out with this scale of 3d prints the honey comb structure would be heavier, this was very painful) -Started putting 3d printed parts in bambu lab Slicer to find mass when printed with right settings and putting mass in onshape to calculate the CG Things I plan on doing: -Finish adding mass to all parts -Add wiring routing for servos in tail section -Figure out how to join 2 halves of the main nacelle -modify the main nacelle holder (currently its like 2 cm wide and probably will not hold the weight of the nacelle) -Figure out how to fit all the avionics into the main nacelle -Figure out main payload -I might need to make a power distribution board so I need to learn how to make pcbs Also I still haven’t finalized the payload, right now I’ve just thrown a RPI HQ cam on there to take pictures of the ground and maybe use machine vision or something to identify and track things on the ground. If yall have any better suggestions please tell me The UAV can carry 1 KG for 1 hr so anything that is relatively small and under 1kg is fine. PLZ give me ideas here is a link to the CAD: https://cad.onshape.com/documents/9bbfe5c889049964a7b3ec7c/w/12735438ade2747052664e45/e/bffd84ac46a9da4b91f82ea6?renderMode=0&uiState=6a466a252d98a41a72b522e7
Tasks done since last devlog: Added proper hinges for ailerons, ruddervators Added final model of aileron, ruddervator Added cavities for servos for control surface actuation Added routing for wiring for servos in main wing Inserted servos+horns Added models of RPI 4, MATEK F405 Wing, 40 Amp ESC, RPI HQ Cam w/ lens Added 4s3p pack Modeled brackets to hold battery cell together Modified main nacelle to be larger to fit all parts -Made dummy model of motor and imported prop Removed internal support structure of all ribs (turns out with this scale of 3d prints the honey comb structure would be heavier) Started putting 3d printed parts in bambu lab - Slicer to find mass when printed with right settings and putting mass in onshape to calculate the CG Added mount for motor and hole for motor wires...
|
1792669734.1721458
|
1793274534.1721458
|
|
10369
|
Keyey by @Thenewtechguy | Stardance
|
Thenewtechguy
|
0
|
23.33
|
0
|
[]
|
[{"post_id": 48783, "ts": "202 [{"post_id": 48783, "ts": "2026-08-17T10:02:04Z", "hours": 0.5667, "text": "So I’m resubmitting Keyey. I got some comments on my last submission and changed what needed to be changed and now am back!"}, {"post_id": 37052, "ts": "2026-07-29T14:58:58Z", "hours": 0.4056, "text": "Why is JLCPCB so expensive!!!! Im going to order the parts from LCSC then request funding for a soldering+hot air station and save over 50USD!!! Also I’m making the BOM to submit"}, {"post_id": 37023, "ts": "2026-07-29T14:29:25Z", "hours": 2.7667, "text": "I was able to fix Keyey!!!. So I switched from the Rp2350b to the Rp2040 so that I can use QMK configurator. I made the BOM. Next is to finish the my BOM to request funding and Building the README."}, {"post_id": 36421, "ts": "2026-07-28T15:12:13Z", "hours": 0.9003, "text": "My not doing research before designing is coming back to bite me in the back. QMK doesn’t support the Rp2350. Now I have 2 options: Learn how to use ZMK instead of QMK or redesign the board for the Rp2040. I might take the 2nd option.(I added a little Brushbuddy from my favorite manga/anime WHA cause why not)"}, {"post_id": 36291, "ts": "2026-07-28T09:31:24Z", "hours": 0.3297, "text": "So i made the empty space as high as the wall so it wouldn’t look out of place. Increased the hole for the EC11 on the plate and made sure there was a 0.5-1mm between the plate and other moving components"}, {"post_id": 36286, "ts": "2026-07-28T09:08:55Z", "hours": 1.6072, "text": "Finished fixing errors of the plate and added the stab’s cad file. Next is to add the key caps file and then fill in the top whole of the plate."}, {"post_id": 35840, "ts": "2026-07-27T15:11:34Z", "hours": 0.9314, "text": "So the keyboard is looking good. I just need to change the position of some mounting holes on the pcb. Which is a headaches because Onshape’s update feature don’t really work for me so I have to import everything into a new doc:(("}, {"post_id": 35707, "ts": "2026-07-27T09:49:01Z", "hours": 0.5253, "text": "Made the slot for the usb-c connector and added a circle around the hole for the QSPI-SS. Next is to make the case and put it all together"}, {"post_id": 35681, "ts": "2026-07-27T08:50:50Z", "hours": 1.62, "text": "I made mounting holes on the case so that it can fit threaded insert also I made that so the keyboard has a natural tilt( gonna do some research on what angle to use). But at the moment I cant make a hole for the usbc connector. someone send help:/"}, {"post_id": 35274, "ts": "2026-07-26T16:05:26Z", "hours": 2.4053, "text": "Finished wiring everything. Made copper fill zones. The nightmare is over!!. Now I uploaded the 3d files of the components to kicad and uploaded the keyboard to Onshape. Next steps are to design the case, and add something on the silkscreen for fun!"}, {"post_id": 34606, "ts": "2026-07-25T13:56:37Z", "hours": 3.9689, "text": "I finished wiring the columns and rows and started wiring the led chain. I’M SO DUMBBBB!!! I PUT THE LEDS IN THE WRONG ORDER SO I SPENT 1 HOUR REARANGING!!!!"}, {"post_id": 34069, "ts": "2026-07-24T15:03:04Z", "hours": 0.7, "text": "I finished the placement of the parts and have started routing"}, {"post_id": 34044, "ts": "2026-07-24T14:19:39Z", "hours": 1.7822, "text": "So since this is going to be my first keyboard i’ve decided to ditch the bluetooth and battery idea. And i’ve started placing the capacitor for the sk6812 and the diode for the switches"}, {"post_id": 33490, "ts": "2026-07-23T14:10:53Z", "hours": 1.1, "text": "I finished the wiring for the TP4056 and got the TPS2115APWR as a power switcher. I also got 84 sk6811-minie leds that im gonna put on the bottom sidw of the board"}, {"post_id": 33375, "ts": "2026-07-23T07:58:50Z", "hours": 1.8136, "text": "I wired up the RP2350B according to the RP2350 hardware design guide and finished wiring the TP4056 and figuring out how MOSFETs work to design a system to shut off battery power when usb is inserted."}, {"post_id": 33225, "ts": "2026-07-22T22:52:29Z", "hours": 0.7167, "text": "So I’ve decided to use the RP2350B instead of the Pico 2 because then I have space for the usb connector without the keyboard getting too big and looking funny."}, {"post_id": 32959, "ts": "2026-07-22T13:27:52Z", "hours": 0.695, "text": "I wired up the pico 2W to a usbc connector (through the TP2, TP3 pins on the bottom of the pico) I also pulled the Ec11 and in the process of researching and wiring the TP4056 battery charger. The DNP is because I don’t know beforehand which side of the JST connector is GND and which is 4.2V, so I’m gonna leave 4 footprint and bridge them when I get the battery"}, {"post_id": 32933, "ts": "2026-07-22T12:36:34Z", "hours": 0.5003, "text": "I spent 3 hours on this to get Hackatime to not log my time:((. Any ways I wired up the keyboard matrix, designed the layout"}]...
|
Title: Keyey by @Thenewtechguy | Stardance
Devlog Title: Keyey by @Thenewtechguy | Stardance
Devlogs:
I spent 3 hours on this to get Hackatime to not log my time:((. Any ways I wired up the keyboard matrix, designed the layout
I wired up the pico 2W to a usbc connector (through the TP2, TP3 pins on the bottom of the pico) I also pulled the Ec11 and in the process of researching and wiring the TP4056 battery charger. The DNP is because I don’t know beforehand which side of the JST connector is GND and which is 4.2V, so I’m gonna leave 4 footprint and bridge them when I get the battery
So I’ve decided to use the RP2350B instead of the Pico 2 because then I have space for the usb connector without the keyboard getting too big and looking funny.
I wired up the RP2350B according to the RP2350 hardware design guide and finished wiring the TP4056 and figuring out how MOSFETs work to design a system to shut off battery power when usb is inserted.
I finished the wiring for the TP4056 and got the TPS2115APWR as a power switcher. I also got 84 sk6811-minie leds that im gonna put on the bottom sidw of the board
So since this is going to be my first keyboard i’ve decided to ditch the bluetooth and battery idea. And i’ve started placing the capacitor for the sk6812 and the diode for the switches
I finished the placement of the parts and have started routing
I finished wiring the columns and rows and started wiring the led chain. I’M SO DUMBBBB!!! I PUT THE LEDS IN THE WRONG ORDER SO I SPENT 1 HOUR REARANGING!!!!
Finished wiring everything. Made copper fill zones. The nightmare is over!!. Now I uploaded the 3d files of the components to kicad and uploaded the keyboard to Onshape. Next steps are to design the case, and add something on the silkscreen for fun!
I made mounting holes on the case so that it can fit threaded insert also I made that so the keyboard has a natural tilt( gonna do some research on what angle to use). But at the moment I cant make a hole for the usbc connector. someone send help:/
Made the slot for the usb-c connector and added a circle around the hole for the QSPI-SS. Next is to make the case and put it all together
So the keyboard is looking good. I just need to change the position of some mounting holes on the pcb. Which is a headaches because Onshape’s update feature don’t really work for me so I have to import everything into a new doc:((
Finished fixing errors of the plate and added the stab’s cad file. Next is to add the key caps file and then fill in the top whole of the plate.
So i made the empty space as high as the wall so it wouldn’t look out of place. Increased the hole for the EC11 on the plate and made sure there was a 0.5-1mm between the plate and other moving components
My not doing research before designing is coming back to bite me in the back. QMK doesn’t support the Rp2350. Now I have 2 options: Learn how to use ZMK instead of QMK or redesign the board for the Rp2040. I might take the 2nd option.(I added a little Brushbuddy from my favorite manga/anime WHA cause why not)
I was able to fix Keyey!!!. So I switched from the Rp2350b to the Rp2040 so that I can use QMK configurator. I made the BOM. Next is to finish the my BOM to request funding and Building the README.
Why is JLCPCB so expensive!!!! Im going to order the parts from LCSC then request funding for a soldering+hot air station and save over 50USD!!! Also I’m making the BOM to submit
So I’m resubmitting Keyey. I got some comments on my last submission and changed what needed to be changed and now am back!...
|
1792641186.477222
|
1793245986.477222
|
|
32613
|
ImageTranslation by @nbth | Stardance
|
nbth
|
0
|
23.33
|
0
|
[]
|
[{"post_id": 81042, "ts": "202 [{"post_id": 81042, "ts": "2026-10-19T17:24:25Z", "hours": 0.4008, "text": "First Release work good on https://cubari.moe/read/mangadex/7a82d0ef-034e-427b-bf5c-ed7d08ddbd6b/1/1/ check the release note please https://github.com/code-ga/image-translate-extension/releases/tag/v0.1.0"}, {"post_id": 80698, "ts": "2026-10-18T15:29:22Z", "hours": 3.6092, "text": "Devlog TL;DR Translation: Experimented with local NLLB and Google Translate, weighing privacy against performance. Architecture: Moved translation into an offscreen document with a dedicated Web Worker. Performance: Added caching, task scheduling, and bounded concurrency. OCR: Improved error handling, caching, and image processing reliability. Release: Brought the core features together for Image Translate v0.1.0. Privacy vs. performance My original goal was to keep everything local, so users wouldn’t have to send their text to an external service. However, NLLB-200 comes with a hefty model size of around 2.4 GB, which can put serious pressure on browser memory. I experimented with Google Translate as an alternative. It’s much lighter on the user’s device, but there’s a trade-off: text sent for translation leaves the device and is processed by a third-party service. That means giving up some privacy for convenience and lower resource usage. Neither approach is perfect. Local inference costs memory and performance; hosted translation introduces an external data dependency. I’m still figuring out the right balance for an extension whose original motivation was privacy. Moving heavy work out of the background Chrome’s Manifest V3 service worker isn’t ideal for heavy inference. I moved translation into an offscreen document and added a dedicated Web Worker for model inference. The background script now mainly routes messages. I also switched to runtime.connect ports for longer-running communication to reduce messaging failures when the service worker gets suspended. Caching and scheduling Repeated requests were wasting time, so I added an L1 memory cache and an L2 IndexedDB cache, using SHA-256 keys to identify repeated requests. A priority queue, bounded concurrency, and admission control help prevent pages containing lots of images from overwhelming the extension. Debugging wasn’t fun I ran into WebGPU/WASM initialization failures, an OCR crash caused by getContext is not a function , and InvalidCharacterError from malformed Base64 data. Turns out, running an ML model is only half the battle. Browser APIs, cross-origin restrictions, and memory limits can be just as frustrating. Making OCR more reliable I switched batch processing to Promise.allSettled , allowing individual images to fail without breaking the whole batch. OCR results are cached locally with a seven-day TTL, and the popup now tracks errors per item. I also added script detection, a tinyld fallback, text normalization, OCR region grouping, and token protection to support the translation pipeline. What’s next? Image Translate v0.1.0 brings together automatic image and canvas detection, PaddleOCR, translation, hover popups, caching, domain settings, and error tracking. The next challenge is finding a sensible balance between translation quality, memory usage, and privacy. Ideally, users should have a clear choice between local translation and hosted services rather than having that trade-off hidden from them."}, {"post_id": 59653, "ts": "2026-09-01T15:55:27Z", "hours": 4.4203, "text": "TL;DR Messaging: Fixed a silent settings synchronization bug by introducing typed, namespaced messages. Hover Translation: Added a hover-to-translate popup with language selection and race-condition-safe handling. Default Language: Users can now configure a default translation language that syncs across tabs. Error Feedback: OCR and translation failures now show toast notifications instead of silently failing. Domain Rules: Fixed empty domain lists incorrectly allowing translation everywhere. Auto-translate: Restored automatic translation behavior that was accidentally removed during the refactor. Unified messaging I discovered a pretty annoying bug in the settings synchronization system. The popup was sending: ts\"notify-settings-changed\" while the background script was listening for: ts\"settings/notify-changed\" Because of this mismatch, settings changes were not propagated correctly and failed silently. To avoid this kind of problem in the future, I introduced types/messages.ts with typed, namespaced message routing. Now the message names are centralized instead of being manually written across different parts of the extension. Settings changes can now propagate correctly and update active tabs in real time. Hover translation popup The overlay can now translate individual OCR regions directly through a hover popup. When hovering over an OCR box, the extension displays: The original detected text A target language selector The translated result The popup uses a small debounce before appearing and has a delayed close behavior when the mouse leaves. If the user moves back into the popup, the close action is cancelled. I also had to handle race conditions. Translation requests can finish in a different order than they were created, so late responses are ignored when they no longer belong to the currently active popup. The popup handles its own translation request and lifecycle, which makes it much more self-contained. Default translation language (model error) Users can now choose a default target language in Settings. The current default is Vietnamese ( vi ), with support for 17 languages. The setting is stored using browser.storage.sync and changes are broadcast to active tabs. The language selected inside a hover popup is temporary, while the configured default language remains the user’s persistent preference. In the future we will switch from machine translate or deep learning translate Error feedback instead of silent failures Previously, OCR and translation errors could fail without giving the user any useful feedback. I added utils/toast.ts to provide inline error notifications. Errors are debounced and deduplicated so the user does not get spammed with notifications when multiple failures happen at once. I also extracted shared popup styling into utils/popup-base.ts to reduce duplicated UI logic. Empty domains fix There was another logic issue with enabledDomains . An empty domain list should mean: Translate nothing. However, the previous implementation treated an empty list as if every domain was allowed. This has now been fixed in both background.ts and isDomainAllowed() . An empty list correctly disables translation entirely. Auto-translate restored During the refactor, some of the automatic translation logic was accidentally removed. This included: autoTranslateIfAllowed() URL polling The live DOM observer As a result, the extension would remain inactive until the user manually triggered it. These behaviors have now been restored, so automatic translation works again when the page loads and when new content appears dynamically."}, {"post_id": 49630, "ts": "2026-08-18T14:56:13Z", "hours": 5.2028, "text": "tl;dr WXT.js: Refactored the extension into smaller, more maintainable modules. Context Menu: Inject content scripts on pages to reliably detect clicked elements — a privacy/resource trade-off. Overlay: Reworked image overlays to be more independent from the website’s DOM and avoid rendering on invisible images. SPA Support: Added DOM-change detection for React-style navigation, at the cost of some extra resource usage. PaddleOCR: Still fighting text-box grouping 😭. Current grouping is imperfect, and we’re considering a better OCR model. WXT.js This is really easy. Almost everything is guided on their introduction page, so I need to follow it. Also, I need to refactor code from 1 huge file into many smaller files, which helps me maintain this more easily better context menu ( and first trade-off) Uh, due to the main problem that extensions don’t know which one was clicked. So I need to trade off user privacy with convenience. From now on, extensions will inject a content script into every page that you open, including enabling and disabling auto-translation better overlay box Over time, the extension displays an image by adding an extension element to a div, which is the image tag’s parent. But now we switch the approach to create a separate div that does not depend ( or depends less) on how the page works. Also, we need to check whether the current image displays are visible, or we will not render an overlay box for them. Add case for SPA web For frameworks like React.js, navigation is often handled as a Single-Page Application (SPA) update rather than a traditional page reload. When the user navigates to a different page, the application may update the DOM and the URL in the browser without triggering a full page refresh.Because of this, the extension cannot rely only on events such as page reloads or tab switches to detect when it needs to update its state. We therefore need to listen for DOM changes so the extension can detect when the application has rendered new content and reload or reinitialize its functionality accordingly. This will consume more resources, but we are unable to measure them Paddle-OCR and grouping text box (I hate this; why yolo ) This is the very unsolved problem that may annoy the user and me. The problem is paddle-ocr working like this, meaning it will separate the text bubble into smaller parts, which will make translation crazy. Currently, we are adding grouping to solve the issue of text on the same line, but the solution is not ready yet. Also, we are considering switching models for a better experience"}, {"post_id": 36271, "ts": "2026-07-28T08:22:41Z", "hours": 6.1336, "text": "tl;dr I am trying to make the extension more convenient for the user and boost the performance of AI tasks. And switch to a new framework for a better development cycle ( https://crxjs.dev is really bad; don’t use that currently) Why Because I recently found a manga page that has the manga that I want to read, I tried to make the extension more useful by adding a domain system (URL matching system ) which will automatically translate pages that match the URL. CORS problem This is not the main section, but I want to tell you about why this extension has some limitations with strictly page. Due to the original idea, focus on local first, but Chrome’s security design mainly blocks other processes from accessing image data of pages that have a config to block ( their CORS config ), so our extension will unable to run on that page, also i will work on a local backend to handle this problem (in a good situation) #Domain system design This design is quite weird because that firstly working on all page start will that domain. Then I used that, and all image include thumnail will be translated, and so i switched to a regex design, which will be more dynamic for users Extension page I am trying to make them easier to use, so I designed a simple ui ( tell AI to do that ). That will be more useful in the future ( currently, that just helps me in debug stage ) Background change Because of real-time (auto-translation mode ), we need to switch from using single mode to batch mode of the OCR library. If we continue to use the legacy solution that will make the user’s computer overloaded and cause a huge delay ( and error rate ). So we are switching to this solution. Also, is the batching solution for the background ( manager process, orchestrator) The background process will collect tasks from the content.js process in all tabs and then send them to the OCR and translate process ( batchingly, like 5 images per step, in about 80ms if no image is in the queue to keep offscreen work) build problem Vite builds to modular JavaScript code. But browsers don’t like that due to backward compatibility, so they reject it. next step I will migrating to mordern framework ( https://wxt.dev/ ), which will help me in the build process (I have a build problem with the module webpack of Vite, sadly )"}, {"post_id": 24788, "ts": "2026-07-08T16:12:20Z", "hours": 3.5633, "text": "After many efforts, I can OCR the image locally. (pic. 1 ) Tech choosing Firstly, I need to find a way to help me use the npm ecosystem. So I know that I can use Vite ( because Chrome just cares about how you define config in manifest, other files are not important ). but their don’t support live-reload, which makes me feel very bad in development. I hope I can use https://crxjs.dev/guide/installation/create-crxjs/ for this. UI and UX development Then I think that I want to build up some menu in the extension page, which will make my extension very modern. But I think about that, if I try to translate just one image, how can the user translate just one image? Because of that, I decided to build up a context menu that allows users to choose what they want to translate and just leave the extension page there with hello text. (pic. 2 and pic. 3 ) CORS problem Then I need to solve some problem with CORS in Chrome ( legendary web development problem ). They won’t allow me to just read the image tag, so I need to send the image URL to the background Context problem But background doesn’t have the context (like document.createElement or canvas, which will be able to boost my OCR speed ) which normal HTML page has, so I need to create an offscreen. Then the CORS problem comes back, and I need to build up some indexed storage solution to fix this. Thanks to Chrome. TL;DR And after their cors problem, isolation problem, chrome problem i here to present you the image that has the box showing you text that you see 😢😢"}]...
|
Title: ImageTranslation by @nbth | Stardance
Devl Title: ImageTranslation by @nbth | Stardance
Devlogs:
After many efforts, I can OCR the image locally. (pic. 1 ) Tech choosing Firstly, I need to find a way to help me use the npm ecosystem. So I know that I can use Vite ( because Chrome just cares about how you define config in manifest, other files are not important ). but their don’t support live-reload, which makes me feel very bad in development. I hope I can use https://crxjs.dev/guide/installation/create-crxjs/ for this. UI and UX development Then I think that I want to build up some menu in the extension page, which will make my extension very modern. But I think about that, if I try to translate just one image, how can the user translate just one image? Because of that, I decided to build up a context menu that allows users to choose what they want to translate and just leave the extension page there with hello text. (pic. 2 and pic. 3 ) CORS problem Then I need to solve some problem with CORS in Chrome ( legendary web development problem ). They won’t allow me to just read the image tag, so I need to send the image URL to the background Context problem But background doesn’t have the context (like document.createElement or canvas, which will be able to boost my OCR speed ) which normal HTML page has, so I need to create an offscreen. Then the CORS problem comes back, and I need to build up some indexed storage solution to fix this. Thanks to Chrome. TL;DR And after their cors problem, isolation problem, chrome problem i here to present you the image that has the box showing you text that you see 😢😢
tl;dr I am trying to make the extension more convenient for the user and boost the performance of AI tasks. And switch to a new framework for a better development cycle ( https://crxjs.dev is really bad; don’t use that currently) Why Because I recently found a manga page that has the manga that I want to read, I tried to make the extension more useful by adding a domain system (URL matching system ) which will automatically translate pages that match the URL. CORS problem This is not the main section, but I want to tell you about why this extension has some limitations with strictly page. Due to the original idea, focus on local first, but Chrome’s security design mainly blocks other processes from accessing image data of pages that have a config to block ( their CORS config ), so our extension will unable to run on that page, also i will work on a local backend to handle this problem (in a good situation) #Domain system design This design is quite weird because that firstly working on all page start will that domain. Then I used that, and all image include thumnail will be translated, and so i switched to a regex design, which will be more dynamic for users Extension page I am trying to make them easier to use, so I designed a simple ui ( tell AI to do that ). That will be more useful in the future ( currently, that just helps me in debug stage ) Background change Because of real-time (auto-translation mode ), we need to switch from using single mode to batch mode of the OCR library. If we continue to use the legacy solution that will make the user’s computer overloaded and cause a huge delay ( and error rate ). So we are switching to this solution. Also, is the batching solution for the background ( manager process, orchestrator) The background process will collect tasks from the content.js process in all tabs and then send them to the OCR and translate process ( batchingly, like 5 images per step, in about 80ms if no image is in the queue to keep offscreen work) build problem Vite builds to modular JavaScript code. But browsers don’t like that due to backward compatibility, so they reject it. next step I will migrating to mordern framework ( https://wxt.dev/ ), which will help me in the build process (I have a build problem with the module webpack of Vite, sadly )
tl;dr WXT.js: Refactored the extension into smaller, more maintainable modules. Context Menu: Inject content scripts on pages to reliably detect clicked elements — a privacy/resource trade-off. Overlay: Reworked image overlays to be more independent from the website’s DOM and avoid rendering on invisible images. SPA Support: Added DOM-change detection for React-style navigation, at the cost of some extra resource usage. PaddleOCR: Still fighting text-box grouping 😭. Current grouping is imperfect, and we’re considering a better OCR model. WXT.js This is really easy. Almost everything is guided on their introduction page, so I need to follow it. Also, I need to refactor code from 1 huge file into many smaller files, which helps me maintain this more easily better context menu ( and first trade-off) Uh, due to the main problem that extensions don’t know which one was clicked. So I need to trade off user privacy with convenience. From now on, extensions will inject a content script into every page that you open, including enabling and disabling auto-translation better overlay box Over time, the extension displays an image by adding an extension element to a div, which is the image tag’s parent. But now we switch the approach to create a separate div that does not depend ( or depends less) on how the page works. Also, we need to check whether the current image displays are visible, or we will not render an overlay box for them. Add case for SPA web For frameworks like React.js, navigation is often handled as a Single-Page Application (SPA) update rather than a traditional page reload. When the user navigates to a different page, the application may update the DOM and the URL in the browser without triggering a full page refresh.Because of this, the extension cannot rely only on events such as page reloads or tab switches to detect when it needs to update its state. We therefore need to listen for DOM changes so the extension can detect when the application has rendered new content and reload or reinitialize its functionality accordingly. This will consume more resources, but we are unable to measure them Paddle-OCR and grouping text box (I hate this; why yolo ) This is the very unsolved problem that may annoy the user and me. The problem is paddle-ocr working like this, meaning it will separate the text bubble into smaller parts, which will make translation crazy. Currently, we are adding grouping to solve the issue of text on the same line, but the solution is not ready yet. Also, we are considering switching models for a better experience
TL;DR Messaging: Fixed a silent settings synchronization bug by introducing typed, namespaced messages. Hover Translation: Added a hover-to-translate popup with language selection and race-condition-safe handling. Default Language: Users can now configure a default translation language that syncs across tabs. Error Feedback: OCR and translation failures now show toast notifications instead of silently failing. Domain Rules: Fixed empty domain lists incorrectly allowing translation everywhere. Auto-translate: Restored automatic translation behavior that was accidentally removed during the refactor. Unified messaging I discovered a pretty annoying bug in the settings synchronization system. The popup was sending: ts"notify-settings-changed" while the background script was listening for: ts"settings/notify-changed" Because of this mismatch, settings changes were not propagated correctly and failed silently. To avoid this kind of problem in the future, I introduced types/messages.ts with typed, namespaced message routing. Now the message names are centralized instead of being manually written across different parts of the extension. Settings changes can now propagate correctly and update active tabs in real time. Hover translation popup The overlay can now translate individual OCR regions directly through a hover popup. When hovering over an OCR box, the extension displays: The original detected text A target language selector The translated result The popup uses a small debounce before appearing and has a delayed close behavior when the mouse leaves. If the user moves back into the popup, the close action is cancelled. I also had to handle race conditions. Translation requests can finish in a different order than they were created, so late responses are ignored when they no longer belong to the currently active popup. The popup handles its own translation request and lifecycle, which makes it much more self-contained. Default translation language (model error) Users can now choose a default target language in Settings. The current default is Vietnamese ( vi ), with support for 17 languages. The setting is stored using browser.storage.sync and changes are broadcast to active tabs. The language selected inside a hover popup is temporary, while the configured default language remains the user’s persistent preference. In the future we will switch from machine translate or deep learning translate Error feedback instead of silent failures Previously, OCR and translation errors could fail without giving the user any useful feedback. I added utils/toast.ts to provide inline error notifications. Errors are debounced and deduplicated so the user does not get spammed with notifications when multiple failures happen at once. I also extracted shared popup styling into utils/popup-base.ts to reduce duplicated UI logic. Empty domains fix There was another logic issue with enabledDomains . An empty domain list should mean: Translate nothing. However, the previous implementation treated an empty list as if every domain was allowed. This has now been fixed in both background.ts and isDomainAllowed() . An empty list correctly disables translation entirely. Auto-translate restored During the refactor, some of the automatic translation logic was accidentally removed. This included: autoTranslateIfAllowed() URL polling The live DOM observer As a result, the extension would remain inactive until the user manually triggered it. These behaviors have now been restored, so automatic translation works again when the page loads and when new content appears dynamically.
Devlog TL;DR Translation: Experimented with local NLLB and Google Translate, weighing privacy against performance. Architecture: Moved translation into an offscreen document with a dedicated Web Worker. Performance: Added caching, task scheduling, and bounded concurrency. OCR: Improved error handling, caching, and image processing reliability. Release: Brought the core features together for Image Translate v0.1.0. Privacy vs. performance My original goal was to keep everything local, so users wouldn’t have to send their text to an external service. However, NLLB-200 comes with a hefty model size of around 2.4 GB, which can put serious pressure on browser memory. I experimented with Google Translate as an alternative. It’s much lighter on the user’s device, but there’s a trade-off: text sent for translation leaves the device and is processed by a third-party service. That means giving up some privacy for convenience and lower resource usage. Neither approach is perfect. Local inference costs memory and performance; hosted translation introduces an external data dependency. I’m still figuring out the right balance for an extension whose original motivation was privacy. Moving heavy work out of the background Chrome’s Manifest V3 service worker isn’t ideal for heavy inference. I moved translation into an offscreen document and added a dedicated Web Worker for model inference. The background script now mainly routes messages. I also switched to runtime.connect ports for longer-running communication to reduce messaging failures when the service worker gets suspended. Caching and scheduling Repeated requests were wasting time, so I added an L1 memory cache and an L2 IndexedDB cache, using SHA-256 keys to identify repeated requests. A priority queue, bounded concurrency, and admission control help prevent pages containing lots of images from overwhelming the extension. Debugging wasn’t fun I ran into WebGPU/WASM initialization failures, an OCR crash caused by getContext is not a function , and InvalidCharacterError from malformed Base64 data. Turns out, running an ML model is only half the battle. Browser APIs, cross-origin restrictions, and memory limits can be just as frustrating. Making OCR more reliable I switched batch processing to Promise.allSettled , allowing individual images to fail without breaking the whole batch. OCR results are cached locally with a seven-day TTL, and the popup now tracks errors per item. I also added script detection, a tinyld fallback, text normalization, OCR region grouping, and token protection to support the translation pipeline. What’s next? Image Translate v0.1.0 brings together automatic image and canvas detection, PaddleOCR, translation, hover popups, caching, domain settings, and error tracking. The next challenge is finding a sensible balance between translation quality, memory usage, and privacy. Ideally, users should have a clear choice between local translation and hosted services rather than having that trade-off hidden from them.
First Release work good on https://cubari.moe/read/mangadex/7a82d0ef-034e-427b-bf5c-ed7d08ddbd6b/1/1/ check the release note please https://github.com/code-ga/image-translate-extension/releases/tag/v0.1.0...
|
1792799364.855267
|
1793404164.855267
|
|
36172
|
AMC Calendar by @D-Pod | Stardance
|
D-Pod
|
0
|
23.32
|
0
|
[]
|
[{"post_id": 83164, "ts": "202 [{"post_id": 83164, "ts": "2026-10-27T03:16:43Z", "hours": 5.2872, "text": "shipped project for week 1 of terra, backend broke good news and bad news and more bad news: I was able to link the frontend to the actual query-calling backend However, AMC Theatres recently changed security on their website, so now they want cloudflare-issued cookies, which I can’t get with just the requests library. solution : use playwright , an actual headless browser which will be able to get the cookies and fetch data. however, i’ve never worked with async functions before so this will be a challenge. at least i got the frontend to render the 403 error with color coding 😊 remember how i said “more bad news”? well when I was deploying this project on vercel, the backend broke for some reason. the frontend can call the backend, but the backend can’t find the ../frontend library, yet it’s hosting it. a;laksjdf;lkja;lksdf. imma have to figure this out now."}, {"post_id": 82793, "ts": "2026-10-25T20:41:08Z", "hours": 4.5672, "text": "frontend prototype working I made a simple frontend, connected it to the backend, and made a batch file to launch the whole thing."}, {"post_id": 82485, "ts": "2026-10-24T23:20:57Z", "hours": 2.1047, "text": "project file restructuring finished finished file restructuring of theater lookup functionality, updated dependencies, added comments to query_handler.py for readability next step: either start working on a frontend for what I have so far, or finish the rest of the backend"}, {"post_id": 82015, "ts": "2026-10-23T13:42:44Z", "hours": 2.3711, "text": "we’re back - project restructuring Apart from opening the project from time to time and promptly forgetting about it, I started thinking about project structure and moved the query handler class into a separate python file. i also entered this project into Terra, so we’re also tracking time there now."}, {"post_id": 44703, "ts": "2026-08-10T17:20:37Z", "hours": 4.6783, "text": "GraphQL Handler Class Finished (Recap) A quick recap of what my project structure will be like, and what GraphQL does, since I don’t think I stated that too clearly… How This Should Theoretically Work: This is a web scraper that gets movie showtimes over different days from https://amctheatres.com/ and renders them as a calendar. But before you can even get the showtimes, you need the theater to get showtimes from (duh). Thankfully, I don’t have to rebuild this from scratch since I found AMC’s graphQL endpoint and their query for fetching theater locations by search term. (If I didn’t find this I would have likely given up on the project.) Since the query is already pretty much built for me, I can recreate a theater lookup modal , similar to AMC’s, so the user can choose a nearby theater. Using the theater’s backend information returned in the query , I can then construct a URL for that theater’s showtimes page , then scrape it. Currently I’m just making the backend, I’ll move to the UI after I’m finished with making the backend components. My Query Handler So I decided to make the query handling process object-oriented because I didn’t want a bunch of variables holding long strings laying around. Before I explain how the query handler works, I need to explain how the query itself works (I’ll make this quick I promise). Query Structure It basically takes a search query (search term) and looks up matching locations. It returns a list of locations (which can be cities or theaters), the length of which is indicated by a resultCount parameter, with each location also returning a list of theaters around it. The search query and result count are given in a separate variables json. The query structure basically looks like this (simplified version): query QueryName($query: String, $resultCount: Int = 10) { locations(query: $query, first: $resultCount) { [here you put in attributes you want returned. ex:] title latitude longitude theatres { [this is you requesting each location's theatres and their info] [here is where you put the THEATRES' attributes you want. ex:] name theatreId city attributes(type: FILTERS, first: 4) { [and this is if you want the list of theatres' features, like available formats, type of seating, etc.] name [just asking for the attributes' names] } } } } The Query Handler As you can see, all of this is incredibly painful. So I made a class that will take lists of attributes you want ( location_fields , theatre_fields , attributes_fields ) and construct a query, also with a method to send a request with a search term. All of this is shown in the video. Where to next? Now it’s time to build the url constructor and web scraper 😩 wish me luck guys"}, {"post_id": 40515, "ts": "2026-08-04T03:08:38Z", "hours": 1.2217, "text": "GraphQL pain I started researching GraphQL and JSON because I haven’t done much of either in the past. I snooped around in the AMC queries some more to try and make a query of my own, also trying to figure out how I’m going to structure theater lookup in the user experience. this is hard"}, {"post_id": 39841, "ts": "2026-08-03T03:03:59Z", "hours": 0.9167, "text": "endpoint day after snooping around in the “network” tab of Inspect I found AMC’s graphQL endpoint. after a bit of pain and not knowing how graphQL works, I finally was able to reproduce the request and get it to give me output. this is so that I can hopefully recreate AMC’s “select a theatre” UI from scratch, instead of having the user put in their theatre. help"}, {"post_id": 31586, "ts": "2026-07-20T03:06:40Z", "hours": 0.3122, "text": "I looked a bit into the amctheatres.com ’s request URLs and described their basic structure"}, {"post_id": 31035, "ts": "2026-07-19T03:10:40Z", "hours": 1.0617, "text": "I set up Poetry for python package and env management (including Jupyter notebooks) and started experimenting with fetching AMC’s showtime pages. Here’s what I found: You can’t request a showtimes page by itself. It will ask for a theater location. After peeking around in dev tools on the showtimes page, I found that it actually sends a request to the server with a theater set in the url! There is also a page on AMC to view showtimes for ALL movies, which I could theoretically use later to create a calendar for any movie, instead of just for one specific movie’s showtimes. Still much work to do, but I’m getting there! 👍"}, {"post_id": 30464, "ts": "2026-07-18T01:32:04Z", "hours": 0.7953, "text": "Wrote out a development plan for my project with all the packages I will need. phew, this is gonna be a long ride."}]...
|
Title: AMC Calendar by @D-Pod | Stardance
Devlogs Title: AMC Calendar by @D-Pod | Stardance
Devlogs:
Wrote out a development plan for my project with all the packages I will need. phew, this is gonna be a long ride.
I set up Poetry for python package and env management (including Jupyter notebooks) and started experimenting with fetching AMC’s showtime pages. Here’s what I found: You can’t request a showtimes page by itself. It will ask for a theater location. After peeking around in dev tools on the showtimes page, I found that it actually sends a request to the server with a theater set in the url! There is also a page on AMC to view showtimes for ALL movies, which I could theoretically use later to create a calendar for any movie, instead of just for one specific movie’s showtimes. Still much work to do, but I’m getting there! 👍
I looked a bit into the amctheatres.com ’s request URLs and described their basic structure
endpoint day after snooping around in the “network” tab of Inspect I found AMC’s graphQL endpoint. after a bit of pain and not knowing how graphQL works, I finally was able to reproduce the request and get it to give me output. this is so that I can hopefully recreate AMC’s “select a theatre” UI from scratch, instead of having the user put in their theatre. help
GraphQL pain I started researching GraphQL and JSON because I haven’t done much of either in the past. I snooped around in the AMC queries some more to try and make a query of my own, also trying to figure out how I’m going to structure theater lookup in the user experience. this is hard
GraphQL Handler Class Finished (Recap) A quick recap of what my project structure will be like, and what GraphQL does, since I don’t think I stated that too clearly… How This Should Theoretically Work: This is a web scraper that gets movie showtimes over different days from https://amctheatres.com/ and renders them as a calendar. But before you can even get the showtimes, you need the theater to get showtimes from (duh). Thankfully, I don’t have to rebuild this from scratch since I found AMC’s graphQL endpoint and their query for fetching theater locations by search term. (If I didn’t find this I would have likely given up on the project.) Since the query is already pretty much built for me, I can recreate a theater lookup modal , similar to AMC’s, so the user can choose a nearby theater. Using the theater’s backend information returned in the query , I can then construct a URL for that theater’s showtimes page , then scrape it. Currently I’m just making the backend, I’ll move to the UI after I’m finished with making the backend components. My Query Handler So I decided to make the query handling process object-oriented because I didn’t want a bunch of variables holding long strings laying around. Before I explain how the query handler works, I need to explain how the query itself works (I’ll make this quick I promise). Query Structure It basically takes a search query (search term) and looks up matching locations. It returns a list of locations (which can be cities or theaters), the length of which is indicated by a resultCount parameter, with each location also returning a list of theaters around it. The search query and result count are given in a separate variables json. The query structure basically looks like this (simplified version): query QueryName($query: String, $resultCount: Int = 10) { locations(query: $query, first: $resultCount) { [here you put in attributes you want returned. ex:] title latitude longitude theatres { [this is you requesting each location's theatres and their info] [here is where you put the THEATRES' attributes you want. ex:] name theatreId city attributes(type: FILTERS, first: 4) { [and this is if you want the list of theatres' features, like available formats, type of seating, etc.] name [just asking for the attributes' names] } } } } The Query Handler As you can see, all of this is incredibly painful. So I made a class that will take lists of attributes you want ( location_fields , theatre_fields , attributes_fields ) and construct a query, also with a method to send a request with a search term. All of this is shown in the video. Where to next? Now it’s time to build the url constructor and web scraper 😩 wish me luck guys
we’re back - project restructuring Apart from opening the project from time to time and promptly forgetting about it, I started thinking about project structure and moved the query handler class into a separate python file. i also entered this project into Terra, so we’re also tracking time there now.
project file restructuring finished finished file restructuring of theater lookup functionality, updated dependencies, added comments to query_handler.py for readability next step: either start working on a frontend for what I have so far, or finish the rest of the backend
frontend prototype working I made a simple frontend, connected it to the backend, and made a batch file to launch the whole thing.
shipped project for week 1 of terra, backend broke good news and bad news and more bad news: I was able to link the frontend to the actual query-calling backend However, AMC Theatres recently changed security on their website, so now they want cloudflare-issued cookies, which I can’t get with just the requests library. solution : use playwright , an actual headless browser which will be able to get the cookies and fetch data. however, i’ve never worked with async functions before so this will be a challenge. at least i got the frontend to render the 403 error with color coding 😊 remember how i said “more bad news”? well when I was deploying this project on vercel, the backend broke for some reason. the frontend can call the backend, but the backend can’t find the ../frontend library, yet it’s hosting it. a;laksjdf;lkja;lksdf. imma have to figure this out now....
|
1793224164.685303
|
1793828964.685303
|
|
18209
|
StardustArm by @Praknoor | Stardance
|
Praknoor
|
1
|
23.29
|
63
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-29T12:58:26Z", "hours": 7.0, "multiplier": 8.66, "payout": 63, "blessing": "neutral", "text": "StardustArm is a NASA-themed zero-gravity robotic arm simulator built with MuJoCo — a 6-DOF MEPhi arm on a spaceship reaching and grabbing floating target spheres, with both a hand-coded IK controller and a SAC+HER reinforcement learning pipeline. The hardest problems were getting the IK to actually converge (joint angles were only set as PD targets, never applied directly to qpos, so the arm would approach then drift away), hiding the obstacle spheres so they didn’t look like extra target balls, and keeping the ball from slipping and flying out of the single-jaw gripper. I’m most proud of the full-stack integration — damped least-squares IK, minimum-jerk trajectories, floating base thrusters, vision detection, obstacle avoidance, and RL training all working together for a cohesive on-orbit servicing demo. To test it, cd stardance, pip install mujoco gymnasium stable-baselines3 sb3-contrib tensorboard glfw PyOpenGL, then python main.py for the IK controller or python train_sac.py –run my_run –timesteps 500000 for RL training; left-drag orbits the camera, right-drag zooms, ESC exits.", "repo": "https://github.com/GurnoorLog/StardustArm", "demo": "https://stardustarm.gurnoor.hackclub.app/"}]...
|
[{"post_id": 47533, "ts": "202 [{"post_id": 47533, "ts": "2026-08-15T14:41:04Z", "hours": 12.5214, "text": "just mad esome improvments gng, now u can place the ball…. i need to make it also live in the website now……damn it took me so much time to figure out this 😭😭😭😭"}, {"post_id": 37505, "ts": "2026-07-30T09:33:34Z", "hours": 3.7692, "text": "just made it online…….and tweaked a bit……… https://stardustarm.gurnoor.hackclub.app/"}, {"post_id": 14656, "ts": "2026-06-23T20:48:55Z", "hours": 7.2478, "text": "this is stardust____a robotic arm simulator in MuJoCo……..it took me so much time just to figure out the phy behind it , and also how to apply it to the model…..oh well hope u like it…….had fun"}]...
|
Title: StardustArm by @Praknoor | Stardance
Devlo Title: StardustArm by @Praknoor | Stardance
Devlogs:
this is stardust____a robotic arm simulator in MuJoCo……..it took me so much time just to figure out the phy behind it , and also how to apply it to the model…..oh well hope u like it…….had fun
just made it online…….and tweaked a bit……… https://stardustarm.gurnoor.hackclub.app/
just mad esome improvments gng, now u can place the ball…. i need to make it also live in the website now……damn it took me so much time to figure out this 😭😭😭😭
Ships:
StardustArm is a NASA-themed zero-gravity robotic arm simulator built with MuJoCo — a 6-DOF MEPhi arm on a spaceship reaching and grabbing floating target spheres, with both a hand-coded IK controller and a SAC+HER reinforcement learning pipeline. The hardest problems were getting the IK to actually converge (joint angles were only set as PD targets, never applied directly to qpos, so the arm would approach then drift away), hiding the obstacle spheres so they didn’t look like extra target balls, and keeping the ball from slipping and flying out of the single-jaw gripper. I’m most proud of the full-stack integration — damped least-squares IK, minimum-jerk trajectories, floating base thrusters, vision detection, obstacle avoidance, and RL training all working together for a cohesive on-orbit servicing demo. To test it, cd stardance, pip install mujoco gymnasium stable-baselines3 sb3-contrib tensorboard glfw PyOpenGL, then python main.py for the IK controller or python train_sac.py –run my_run –timesteps 500000 for RL training; left-drag orbits the camera, right-drag zooms, ESC exits....
|
1793119972.6243138
|
1793206372.6243138
|
|
20353
|
Offline Youtube-esque player by @Fury | Stardance
|
Fury
|
1
|
23.27
|
127
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-29T04:10:27Z", "hours": 23.0, "multiplier": 5.56, "payout": 127, "blessing": "neutral", "text": "I made an Offline Media player", "repo": "https://github.com/Furyx407/Offline-YT-Player", "demo": "https://github.com/Furyx407/Offline-YT-Player/releases/tag/V1.0.0"}]...
|
[{"post_id": 19836, "ts": "202 [{"post_id": 19836, "ts": "2026-07-01T07:15:55Z", "hours": 0.2714, "text": "Added a Windows executable, was annoying because there is not an easy way to convert python to windows executable on Linux ( PyInstaller converts it to a Linux executable)"}, {"post_id": 18121, "ts": "2026-06-29T04:03:55Z", "hours": 2.5006, "text": "Implemented ability to resize thumbnails"}, {"post_id": 15346, "ts": "2026-06-24T23:03:21Z", "hours": 1.1494, "text": "Added ability to change the playback speed, it was somehow easier than having the icons change colours ( I am still procrastinating it)"}, {"post_id": 14722, "ts": "2026-06-23T22:39:33Z", "hours": 0.7844, "text": "Made settings persistent and added a toggle to set duration label to time left, making settings persistent was easier than expected as it was just a couple lines of code but getting syntax correctly was annoying."}, {"post_id": 14194, "ts": "2026-06-23T05:56:02Z", "hours": 0.6967, "text": "Implemented (Working) Dark and light mode, not currently persistent but was annoying because I had to make a custom toggle switch."}, {"post_id": 14122, "ts": "2026-06-23T03:06:05Z", "hours": 5.3253, "text": "Implemented settings with toggle options, haven’t populated it yet but implementing a toggle switch was hard as there isn’t one natively in PyQt6"}, {"post_id": 12509, "ts": "2026-06-20T13:05:28Z", "hours": 3.3236, "text": "Implemented basic video playback"}, {"post_id": 11931, "ts": "2026-06-19T13:52:04Z", "hours": 7.0711, "text": "Implemented Thumbnails and title (with wrapping), thumbnails layout changes with resizing"}, {"post_id": 10938, "ts": "2026-06-17T22:35:09Z", "hours": 2.1292, "text": "Implement PyQt6 & added exit button and search box"}]...
|
Title: Offline Youtube-esque player by @Fury | Sta Title: Offline Youtube-esque player by @Fury | Stardance
Devlogs:
Implement PyQt6 & added exit button and search box
Implemented Thumbnails and title (with wrapping), thumbnails layout changes with resizing
Implemented basic video playback
Implemented settings with toggle options, haven’t populated it yet but implementing a toggle switch was hard as there isn’t one natively in PyQt6
Implemented (Working) Dark and light mode, not currently persistent but was annoying because I had to make a custom toggle switch.
Made settings persistent and added a toggle to set duration label to time left, making settings persistent was easier than expected as it was just a couple lines of code but getting syntax correctly was annoying.
Added ability to change the playback speed, it was somehow easier than having the icons change colours ( I am still procrastinating it)
Implemented ability to resize thumbnails
Added a Windows executable, was annoying because there is not an easy way to convert python to windows executable on Linux ( PyInstaller converts it to a Linux executable)
Ships:
I made an Offline Media player...
|
1793137921.9539018
|
1793224321.9539018
|
|
61020
|
techy nerd crap by @cyclic | Stardance
|
cyclic
|
0
|
23.25
|
0
|
[]
|
[{"post_id": 72268, "ts": "202 [{"post_id": 72268, "ts": "2026-09-22T15:33:47Z", "hours": 8.5086, "text": "I have setup the item frontend and now I can query things from the DB with the web page"}, {"post_id": 68124, "ts": "2026-09-14T15:40:54Z", "hours": 4.6417, "text": "I fixed the database and macros and learned that you can conditionaly implement dirived functions in rust"}, {"post_id": 65958, "ts": "2026-09-11T13:29:18Z", "hours": 10.0983, "text": "I started by making a macro to do all of my database objects and to be able to not need to manually write all of my sql statements and I fully implemented auth"}]...
|
Title: techy nerd crap by @cyclic | Stardance
Dev Title: techy nerd crap by @cyclic | Stardance
Devlogs:
I started by making a macro to do all of my database objects and to be able to not need to manually write all of my sql statements and I fully implemented auth
I fixed the database and macros and learned that you can conditionaly implement dirived functions in rust
I have setup the item frontend and now I can query things from the DB with the web page...
|
1793037162.193505
|
1793641962.193505
|
|
36627
|
Crystal OS by @kuba_ch101 | Stardance
|
kuba_ch101
|
0
|
23.2
|
0
|
[]
|
[{"post_id": 75975, "ts": "202 [{"post_id": 75975, "ts": "2026-10-01T19:55:50Z", "hours": 1.2864, "text": "I added this cool animation when you open a window, I came up with it by myself. It is pretty straight forward, you just multiply the position vectors; I also added a real time clock so it looks more like an OS."}, {"post_id": 74032, "ts": "2026-09-26T15:48:49Z", "hours": 3.6783, "text": "I switched to instanced rendering which made everything faster and reduced memory use so I hope the will work on smartphones. I also added this exploding animation which triggers when you open an app, I got inspired by that one tony stark meme where he makes a big sphere out of holograms."}, {"post_id": 39779, "ts": "2026-08-02T23:35:58Z", "hours": 3.5822, "text": "I made the calculator and timer logic, the notepad needs a little bit of work but is mostly done. Then I tried to style everything to fit the theme."}, {"post_id": 33215, "ts": "2026-07-22T22:22:29Z", "hours": 1.8053, "text": "Started making the notepad and calculator"}, {"post_id": 32628, "ts": "2026-07-21T22:18:57Z", "hours": 4.6233, "text": "I finnished the windows! Needed to rework the logic and this time I followed the tutorial. It really helped me especially with organizing the functions."}, {"post_id": 31678, "ts": "2026-07-20T09:00:59Z", "hours": 1.4744, "text": "I started on some OS things, for now I’ve done some style and logic for the windows but I still need to make the icons open them. icon source: https://www.svgrepo.com"}, {"post_id": 31134, "ts": "2026-07-19T09:14:11Z", "hours": 1.5031, "text": "I fixed the rendering artifacts and started making the desktop."}, {"post_id": 30897, "ts": "2026-07-18T21:24:40Z", "hours": 3.6961, "text": "I almost finnished the background. The only things left are those random giant triangles and I cant figure out what is the cause."}, {"post_id": 30616, "ts": "2026-07-18T10:33:54Z", "hours": 1.5528, "text": "Hello, I just started making my web OS. Today I made the back groud rendering pipeline. The render will be quite basic and I took some code from my other projects so it took me less time than ussual. The background will be made randomly positioned, low-polly shapes(like this in the screen). I want them to look like crystals. I want to finnish the render and then make the actual site, but I still need to make random shape generation and add some movement"}]...
|
Title: Crystal OS by @kuba_ch101 | Stardance
Devl Title: Crystal OS by @kuba_ch101 | Stardance
Devlogs:
Hello, I just started making my web OS. Today I made the back groud rendering pipeline. The render will be quite basic and I took some code from my other projects so it took me less time than ussual. The background will be made randomly positioned, low-polly shapes(like this in the screen). I want them to look like crystals. I want to finnish the render and then make the actual site, but I still need to make random shape generation and add some movement
I almost finnished the background. The only things left are those random giant triangles and I cant figure out what is the cause.
I fixed the rendering artifacts and started making the desktop.
I started on some OS things, for now I’ve done some style and logic for the windows but I still need to make the icons open them. icon source: https://www.svgrepo.com
I finnished the windows! Needed to rework the logic and this time I followed the tutorial. It really helped me especially with organizing the functions.
Started making the notepad and calculator
I made the calculator and timer logic, the notepad needs a little bit of work but is mostly done. Then I tried to style everything to fit the theme.
I switched to instanced rendering which made everything faster and reduced memory use so I hope the will work on smartphones. I also added this exploding animation which triggers when you open an app, I got inspired by that one tony stark meme where he makes a big sphere out of holograms.
I added this cool animation when you open a window, I came up with it by myself. It is pretty straight forward, you just multiply the position vectors; I also added a real time clock so it looks more like an OS....
|
1792788630.0846155
|
1793393430.0846155
|
|
56659
|
PokeBird by @saidcim | Stardance
|
saidcim
|
1
|
23.17
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-04T14:37:44Z", "hours": 18.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "A fully offline, portable device that identifies bird songs on the spot.", "repo": "https://github.com/saidcim/pokebird", "demo": ""}]...
|
[{"post_id": 63072, "ts": "202 [{"post_id": 63072, "ts": "2026-09-06T17:44:40Z", "hours": 5.1692, "text": "I addressed the omissions in the README, translated the entire codebase into English (from Turkish), and added my first release."}, {"post_id": 61538, "ts": "2026-09-04T14:34:49Z", "hours": 0.5419, "text": "Final touches on the readme and its ready to ship !"}, {"post_id": 61514, "ts": "2026-09-04T13:55:03Z", "hours": 0.7044, "text": "There were some issues related to the device turning on and off such as shutting down on its own and touchscreen malfunctions and I fixed them."}, {"post_id": 59034, "ts": "2026-08-31T16:51:53Z", "hours": 0.3867, "text": "As planned, I conducted field testing in Belgrade and it was quite successful in bird sound recognition. I attached my field test report"}, {"post_id": 58973, "ts": "2026-08-31T15:25:03Z", "hours": 15.9783, "text": "I built a handheld device that identifies birds by their song, run entirely offline on a Waveshare RP2350-Touch-LCD-3. 49. No phone, no internet, no cloud!"}]...
|
Title: PokeBird by @saidcim | Stardance
Devlogs:
Title: PokeBird by @saidcim | Stardance
Devlogs:
I built a handheld device that identifies birds by their song, run entirely offline on a Waveshare RP2350-Touch-LCD-3. 49. No phone, no internet, no cloud!
As planned, I conducted field testing in Belgrade and it was quite successful in bird sound recognition. I attached my field test report
There were some issues related to the device turning on and off such as shutting down on its own and touchscreen malfunctions and I fixed them.
Final touches on the readme and its ready to ship !
I addressed the omissions in the README, translated the entire codebase into English (from Turkish), and added my first release.
Ships:
A fully offline, portable device that identifies bird songs on the spot....
|
1792878709.2609034
|
1793742709.2609034
|
|
13685
|
My awesome macropad! by @mishelkora27 | Stardance
|
mishelkora27
|
0
|
23.15
|
0
|
[]
|
[{"post_id": 54162, "ts": "202 [{"post_id": 54162, "ts": "2026-08-25T00:43:41Z", "hours": 0.7167, "text": "I finally finished soldering everythung. Im really nervous about whether it will work or not but I’m happy with how it turned out. I really like the usb cutout and it looks exactly as I had imagined. I wish I wouldve designed the oled screen cutout a little better but overall it looks good."}, {"post_id": 54094, "ts": "2026-08-24T21:42:45Z", "hours": 0.9075, "text": "I started soldering the microcontroller to the pcb board. I struggled a little because I only had one experince in soldering before but I think I got through it pretty alright. I also started placed the diodes into the pcb and will solder them later."}, {"post_id": 46120, "ts": "2026-08-13T04:03:46Z", "hours": 2.8389, "text": "I think I’m done. I redid the entire case and added a better usb cutout. I also made sure to measure the case better this time. I updated github and ready to submit again."}, {"post_id": 45992, "ts": "2026-08-12T20:40:36Z", "hours": 1.4667, "text": "I made some changes arounf the case. Like I fixed the cutout for the usb. Then I realized my plate and pcb holes for the switches did not match up so I had to reposition the switches on the pcb and rewire it. Also every time I made changes to the rp2040 ont eh pcb it would say that the footprint does not exist so I had to leave the microcontroller as is even though it gives me silkscreen warnings which do not affect the functionality of the board."}, {"post_id": 33364, "ts": "2026-07-23T06:59:35Z", "hours": 2.5897, "text": "I’m finally and hopefully done with macropad. I set up the qmk and struggled a lot through it. I kept getting warnings and errors but i got it fixed. I also uploaded everything to github. I had to zip some folders but they contained a lot of files. Overall I enjoyed the process even though it took me a really long time."}, {"post_id": 32142, "ts": "2026-07-21T03:19:30Z", "hours": 0.4411, "text": "Started the firmware. I downloaded QMK firmware but was a little confused on what to type. I figured out that I had to type it line by line instead of copying and pasting the entire code on the QMK firmware website."}, {"post_id": 31663, "ts": "2026-07-20T08:01:50Z", "hours": 3.4667, "text": "I finally finished the case!! After I trimmed the sides of the case to fit the Seeed XIAO RP2040, I also made the holes for the screws larger to fit the head inserts. I also made some corners around the sub c socket so that it would not wiggle around when I plug it in. I made the around the usb c socket larger to have enough space to fit the head of the cable around the usb c since the socket does not hang at the edge of the case. I also cut out the holes for the switches using the plate model and cut out the oled display space as well as some extra space underneath it to fit the other parts around the oled that are going to be inside the case. In the end I also curved the edges of the case and socket. I had some trouble figuring out how to use fusion but I’m slowly getting the hang of it. Over all I’m pretty pleased with how the case looks!! I also made sure that the 5mm heat inserts would fit and have some extra space left."}, {"post_id": 31125, "ts": "2026-07-19T08:42:28Z", "hours": 4.2969, "text": "I remodeled the case because the measurements were incorrect. I moved the U1 on Kicad a little outside of the pcb because since the case’s thickness is 10mm on each side, the U1 would be too far inside the case. Although I moved it, it’s still not quite right so I will have to make the walls less thick. I had some trouble building the walls and the holes because I couldn’t figure out the margins but I got it to work my manually measuring the distances. I also placed the pcb, oled displace and switch to check where the wall of the case should end and how tall the plate/cover of the case should be."}, {"post_id": 29345, "ts": "2026-07-16T07:03:46Z", "hours": 4.2494, "text": "I had misplaced the U1 in the pcb so I had to move it in order for the start of the usb socket to be at the edge of the pcb. After I moved the U1 I had to rewire some wires in the pcb and afterwards I ran the test and everything was fine. I saved the file and then I saved the pcb as gerber file to check how it looks on jlcpcb. I then moved onto Fusion and started the case. I created a base after I measured the size of the pcb on kicad and made another rectangle 3 mm larger on each size. I then extruded the larger triangle and moved the pcb step file and the lcd onto the case and checked if it fits."}, {"post_id": 6612, "ts": "2026-06-11T02:50:01Z", "hours": 1.3419, "text": "Connected the wires to the switches and the U1 in the pcb. Had some trouble with placing the the components in a position where all the wires could be connected. Then once I was done with both sides of the pcb, both the red and blue wires, I moved on to the DRC and checked for any errors. I had to change the shape of the pads from oval to circle and make them smaller on the U1, which is the MOUDLE-SEEEDUINO-XIAO, because they were touching the wires and that was an error. Another error I ran into was the wires being too close to components on the switches so i had to move them and make them slimmer because they were 0.2mm away from the components. I had an issue with pad 3 of the U1 and pad 2 of the 6th switch being extremely close so once I moved U1 I had to reconnect some of the wires again."}, {"post_id": 6024, "ts": "2026-06-10T03:11:44Z", "hours": 0.4658, "text": "After working for 2 hours, the app randomly closed down so I lost all progress. I had to reorganize the layout of the pcb and took this opportunity to change some things around and how it will look. Also made some space in the corner for an oled screen. Tried to connected the wires on the pcb but couldnt get the placements right so i deleted the wires I already have and will retry."}, {"post_id": 5315, "ts": "2026-06-09T01:38:30Z", "hours": 0.3667, "text": "Downloaded the kicad files and uploading them. Had some difficulty with finding the files and organizing the keyboard switches."}]...
|
Title: My awesome macropad! by @mishelkora27 | Sta Title: My awesome macropad! by @mishelkora27 | Stardance
Devlogs:
Downloaded the kicad files and uploading them. Had some difficulty with finding the files and organizing the keyboard switches.
After working for 2 hours, the app randomly closed down so I lost all progress. I had to reorganize the layout of the pcb and took this opportunity to change some things around and how it will look. Also made some space in the corner for an oled screen. Tried to connected the wires on the pcb but couldnt get the placements right so i deleted the wires I already have and will retry.
Connected the wires to the switches and the U1 in the pcb. Had some trouble with placing the the components in a position where all the wires could be connected. Then once I was done with both sides of the pcb, both the red and blue wires, I moved on to the DRC and checked for any errors. I had to change the shape of the pads from oval to circle and make them smaller on the U1, which is the MOUDLE-SEEEDUINO-XIAO, because they were touching the wires and that was an error. Another error I ran into was the wires being too close to components on the switches so i had to move them and make them slimmer because they were 0.2mm away from the components. I had an issue with pad 3 of the U1 and pad 2 of the 6th switch being extremely close so once I moved U1 I had to reconnect some of the wires again.
I had misplaced the U1 in the pcb so I had to move it in order for the start of the usb socket to be at the edge of the pcb. After I moved the U1 I had to rewire some wires in the pcb and afterwards I ran the test and everything was fine. I saved the file and then I saved the pcb as gerber file to check how it looks on jlcpcb. I then moved onto Fusion and started the case. I created a base after I measured the size of the pcb on kicad and made another rectangle 3 mm larger on each size. I then extruded the larger triangle and moved the pcb step file and the lcd onto the case and checked if it fits.
I remodeled the case because the measurements were incorrect. I moved the U1 on Kicad a little outside of the pcb because since the case’s thickness is 10mm on each side, the U1 would be too far inside the case. Although I moved it, it’s still not quite right so I will have to make the walls less thick. I had some trouble building the walls and the holes because I couldn’t figure out the margins but I got it to work my manually measuring the distances. I also placed the pcb, oled displace and switch to check where the wall of the case should end and how tall the plate/cover of the case should be.
I finally finished the case!! After I trimmed the sides of the case to fit the Seeed XIAO RP2040, I also made the holes for the screws larger to fit the head inserts. I also made some corners around the sub c socket so that it would not wiggle around when I plug it in. I made the around the usb c socket larger to have enough space to fit the head of the cable around the usb c since the socket does not hang at the edge of the case. I also cut out the holes for the switches using the plate model and cut out the oled display space as well as some extra space underneath it to fit the other parts around the oled that are going to be inside the case. In the end I also curved the edges of the case and socket. I had some trouble figuring out how to use fusion but I’m slowly getting the hang of it. Over all I’m pretty pleased with how the case looks!! I also made sure that the 5mm heat inserts would fit and have some extra space left.
Started the firmware. I downloaded QMK firmware but was a little confused on what to type. I figured out that I had to type it line by line instead of copying and pasting the entire code on the QMK firmware website.
I’m finally and hopefully done with macropad. I set up the qmk and struggled a lot through it. I kept getting warnings and errors but i got it fixed. I also uploaded everything to github. I had to zip some folders but they contained a lot of files. Overall I enjoyed the process even though it took me a really long time.
I made some changes arounf the case. Like I fixed the cutout for the usb. Then I realized my plate and pcb holes for the switches did not match up so I had to reposition the switches on the pcb and rewire it. Also every time I made changes to the rp2040 ont eh pcb it would say that the footprint does not exist so I had to leave the microcontroller as is even though it gives me silkscreen warnings which do not affect the functionality of the board.
I think I’m done. I redid the entire case and added a better usb cutout. I also made sure to measure the case better this time. I updated github and ready to submit again.
I started soldering the microcontroller to the pcb board. I struggled a little because I only had one experince in soldering before but I think I got through it pretty alright. I also started placed the diodes into the pcb and will solder them later.
I finally finished soldering everythung. Im really nervous about whether it will work or not but I’m happy with how it turned out. I really like the usb cutout and it looks exactly as I had imagined. I wish I wouldve designed the oled screen cutout a little better but overall it looks good....
|
1793188293.162948
|
1793793093.162948
|
|
28879
|
Butterfly DT by @umayer | Stardance
|
umayer
|
0
|
23.15
|
0
|
[]
|
[{"post_id": 54017, "ts": "202 [{"post_id": 54017, "ts": "2026-08-24T19:16:34Z", "hours": 0.6678, "text": "Final CAD & RendersThe CAD and wiring are now fully finished, and I made a few final renders to show off the completed design. I wanted the renders to highlight the overall packaging and especially the butterfly pod, so you can see how all of the reductions, linkages, hubs, and wiring fit together.I also wanted to highlight the dead-axle hub. Unlike a live axle, the dead axle stays fixed while the wheel rotates around it on bearings. This lets the axle focus on supporting the wheel while the belt system handles the power transmission, making the hub simpler, more rigid, and easier to fit within the tight packaging.Looking back at the different iterations, the butterfly pod changed the most. It went from a simple gear-driven concept to a compact, belt-driven, double-sided system with a custom dead-axle hub that is much more robust and better suited to the final packaging.Overall, the final DT is quieter, more compact, more robust, and much more refined than the original design."}, {"post_id": 53959, "ts": "2026-08-24T17:50:17Z", "hours": 10.1367, "text": "Butter Fly DT: Final Design After a lot of testing, redesigning, and troubleshooting, I’ve finally finished the DT design. This ended up being a much bigger redesign than I originally expected, especially with the butterfly pod. Almost every part of the pod went through multiple iterations to solve packaging, efficiency, strength, and center-to-center issues. The butterfly pod went through some of the biggest changes in the entire DT. I originally experimented with a gear-based reduction and linkage system, but after testing it, I decided gears weren’t the right solution. They added unnecessary noise, were less efficient, and made packaging much harder. The final design now uses belts for both reductions, including the butterfly mechanism. This made the system quieter, more efficient, and much easier to fit into the limited space. I also completely redesigned the butterfly linkage. Instead of using a single-sided linkage, I designed a double-sided linkage system that supports the mechanism from both sides. This makes the pod much more rigid and robust while reducing unwanted movement. Another major change was the wheel system. I moved away from using a COTS wheel and instead designed the wheel around a custom silicone-molded tire. This gave me more control over the geometry and let me integrate the wheel much better with the rest of the pod.The hub and mounting system were also redesigned from the ground up. I designed my own dead-axle hubs and reworked the surrounding structure so everything could fit within the extremely tight packaging constraints. One of the biggest challenges was getting everything to fit within 56 mm of thickness on each side. This forced me to rethink the position and configuration of almost every component in the pod. I also moved several components lower toward the ground to improve the center of gravity and overall stability. Once I worked through all the issues with the master sketch, the rest of the design became a process of slowly building everything back up, part by part. Because of all the belt center-to-center issues, I ended up redesigning almost every part and subassembly configuration. The CAD and wiring are now fully finished, and I’ve also made several renders of the completed DT. Looking back at all the iterations, the butterfly pod has probably changed the most. It went from a much simpler gear-driven concept to a compact, belt-driven, double-sided system that is much more robust and better suited to the final packaging. Overall, the final DT is quieter, more compact, more robust, and much more refined than the original design."}, {"post_id": 21281, "ts": "2026-07-03T03:54:25Z", "hours": 0.9836, "text": "Just some basic changes to the master sketch upon further review it seems there are bigger issues most likely require deeper revision. It all stems from changing the motor diameter it changes center to center distances in the belts as well causes a whole slew of issues."}, {"post_id": 19830, "ts": "2026-07-01T06:43:03Z", "hours": 3.1503, "text": "The physical butterfly module is fully assembled. While FTC Team 26000 used a different wheel layout, this design places one larger wheel in the center of the module. This configuration centers the 104mm mecanum wheel and uses the GT2 belt reduction to link it to the first stage, maintaining a balanced center of mass.Master Sketch CompletionThe master sketch for both the main chassis and the butterfly module is finished. Mapping all geometry in a single master sketch ensured that the 96.24269 mm center-to-center distance for the 20T and 28T pulleys aligns precisely with the packaging constraints of the 8:1 gear reduction stage. This layout locks in the axle positions and gear mesh clearances before manufacturing the final plates.Next Steps: Efficiency and AssemblyWith the core architecture defined, the focus shifts to two main areas:Mechanical Efficiency: Optimizing the module pivots and belt alignment to minimize friction losses from the 5000 RPM motor. This includes pocketing parts to remove unnecessary material weight.Connected Assembly: Finalizing the top-level assembly in CAD to verify clearances for the deployment mechanisms, electronics, and structural brackets across the full chassis.Oh also cool aside this should put me as # today in hackclub hours!"}, {"post_id": 19717, "ts": "2026-07-01T03:26:42Z", "hours": 8.2086, "text": "Butterfly Drivetrain DevelopmentThe butterfly drivetrain, or “switch-drive,” is a configuration that allows a robot to switch between two different types of locomotion. In my current build, I use this to alternate between high-traction movement, using 72mm hogback wheels, and omnidirectional maneuvering, using mecanum wheels.My design features a two-stage reduction system. The first stage uses an 8:1 gear reduction to power the hogback wheels directly. The second stage uses a GT2 belt system to further reduce the speed for the mecanum wheels. This ensures both wheel sets maintain consistent surface speeds despite their different diameters.Inspiration: FTC Team 26000My implementation of this system is heavily inspired by FTC team 26000. Their work on the butterfly drivetrain showcases a clean, efficient way to package two distinct movement systems within a compact chassis. I studied their design to understand how they optimized the mechanical linkages for deploying the secondary wheels. This helped me solve the challenge of integrating a 5000 RPM motor with the high torque required for a multi-wheel system.By applying these concepts to my own robot, I am building a versatile drivetrain that adapts to different match conditions while maintaining precise control over wheel speed and grip force."}]...
|
Title: Butterfly DT by @umayer | Stardance
Devlog Title: Butterfly DT by @umayer | Stardance
Devlogs:
Butterfly Drivetrain DevelopmentThe butterfly drivetrain, or “switch-drive,” is a configuration that allows a robot to switch between two different types of locomotion. In my current build, I use this to alternate between high-traction movement, using 72mm hogback wheels, and omnidirectional maneuvering, using mecanum wheels.My design features a two-stage reduction system. The first stage uses an 8:1 gear reduction to power the hogback wheels directly. The second stage uses a GT2 belt system to further reduce the speed for the mecanum wheels. This ensures both wheel sets maintain consistent surface speeds despite their different diameters.Inspiration: FTC Team 26000My implementation of this system is heavily inspired by FTC team 26000. Their work on the butterfly drivetrain showcases a clean, efficient way to package two distinct movement systems within a compact chassis. I studied their design to understand how they optimized the mechanical linkages for deploying the secondary wheels. This helped me solve the challenge of integrating a 5000 RPM motor with the high torque required for a multi-wheel system.By applying these concepts to my own robot, I am building a versatile drivetrain that adapts to different match conditions while maintaining precise control over wheel speed and grip force.
The physical butterfly module is fully assembled. While FTC Team 26000 used a different wheel layout, this design places one larger wheel in the center of the module. This configuration centers the 104mm mecanum wheel and uses the GT2 belt reduction to link it to the first stage, maintaining a balanced center of mass.Master Sketch CompletionThe master sketch for both the main chassis and the butterfly module is finished. Mapping all geometry in a single master sketch ensured that the 96.24269 mm center-to-center distance for the 20T and 28T pulleys aligns precisely with the packaging constraints of the 8:1 gear reduction stage. This layout locks in the axle positions and gear mesh clearances before manufacturing the final plates.Next Steps: Efficiency and AssemblyWith the core architecture defined, the focus shifts to two main areas:Mechanical Efficiency: Optimizing the module pivots and belt alignment to minimize friction losses from the 5000 RPM motor. This includes pocketing parts to remove unnecessary material weight.Connected Assembly: Finalizing the top-level assembly in CAD to verify clearances for the deployment mechanisms, electronics, and structural brackets across the full chassis.Oh also cool aside this should put me as # today in hackclub hours!
Just some basic changes to the master sketch upon further review it seems there are bigger issues most likely require deeper revision. It all stems from changing the motor diameter it changes center to center distances in the belts as well causes a whole slew of issues.
Butter Fly DT: Final Design After a lot of testing, redesigning, and troubleshooting, I’ve finally finished the DT design. This ended up being a much bigger redesign than I originally expected, especially with the butterfly pod. Almost every part of the pod went through multiple iterations to solve packaging, efficiency, strength, and center-to-center issues. The butterfly pod went through some of the biggest changes in the entire DT. I originally experimented with a gear-based reduction and linkage system, but after testing it, I decided gears weren’t the right solution. They added unnecessary noise, were less efficient, and made packaging much harder. The final design now uses belts for both reductions, including the butterfly mechanism. This made the system quieter, more efficient, and much easier to fit into the limited space. I also completely redesigned the butterfly linkage. Instead of using a single-sided linkage, I designed a double-sided linkage system that supports the mechanism from both sides. This makes the pod much more rigid and robust while reducing unwanted movement. Another major change was the wheel system. I moved away from using a COTS wheel and instead designed the wheel around a custom silicone-molded tire. This gave me more control over the geometry and let me integrate the wheel much better with the rest of the pod.The hub and mounting system were also redesigned from the ground up. I designed my own dead-axle hubs and reworked the surrounding structure so everything could fit within the extremely tight packaging constraints. One of the biggest challenges was getting everything to fit within 56 mm of thickness on each side. This forced me to rethink the position and configuration of almost every component in the pod. I also moved several components lower toward the ground to improve the center of gravity and overall stability. Once I worked through all the issues with the master sketch, the rest of the design became a process of slowly building everything back up, part by part. Because of all the belt center-to-center issues, I ended up redesigning almost every part and subassembly configuration. The CAD and wiring are now fully finished, and I’ve also made several renders of the completed DT. Looking back at all the iterations, the butterfly pod has probably changed the most. It went from a much simpler gear-driven concept to a compact, belt-driven, double-sided system that is much more robust and better suited to the final packaging. Overall, the final DT is quieter, more compact, more robust, and much more refined than the original design.
Final CAD & RendersThe CAD and wiring are now fully finished, and I made a few final renders to show off the completed design. I wanted the renders to highlight the overall packaging and especially the butterfly pod, so you can see how all of the reductions, linkages, hubs, and wiring fit together.I also wanted to highlight the dead-axle hub. Unlike a live axle, the dead axle stays fixed while the wheel rotates around it on bearings. This lets the axle focus on supporting the wheel while the belt system handles the power transmission, making the hub simpler, more rigid, and easier to fit within the tight packaging.Looking back at the different iterations, the butterfly pod changed the most. It went from a simple gear-driven concept to a compact, belt-driven, double-sided system with a custom dead-axle hub that is much more robust and better suited to the final packaging.Overall, the final DT is quieter, more compact, more robust, and much more refined than the original design....
|
1793199080.5777524
|
1793803880.5777524
|
|
49260
|
SWAY by @akshnoorbawa2 | Stardance
|
akshnoorbawa2
|
1
|
23.15
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-18T17:49:26Z", "hours": 9.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I built SWAY because I wanted a better way to manage audio on Windows. The main idea was pretty simple: create an app that could automatically duck other applications when important audio was playing, instead of constantly having to adjust volumes manually. Actually building it was a completely different story. The hardest part was getting the audio system to behave the way I wanted. Managing individual application volumes, detecting changes, and making everything happen smoothly without constantly interfering with the user was definitely one of the more challenging parts of the project. The UI was another big part of it. I didn’t want SWAY to look like some old Windows utility with a bunch of sliders everywhere. I wanted it to feel modern, clean, and actually enjoyable to use. Getting the layout, animations, controls, and overall feel right took a lot of experimenting and tweaking.", "repo": "https://github.com/akshnoorbawa2-glitch/Sway-Audio", "demo": "https://sway-audio-web.vercel.app/"}]...
|
[{"post_id": 73025, "ts": "202 [{"post_id": 73025, "ts": "2026-09-24T07:20:35Z", "hours": 4.1269, "text": "new designn"}, {"post_id": 59054, "ts": "2026-08-31T17:22:03Z", "hours": 5.4189, "text": "Devlog 4 - i did a complete Ui redesign because my initial website was looking too vibe coded and had a bunch on junk in it the re-design is super clean and non - flashy. i hope this is good and this is prob the last devlog of my project. so yeah check out my project for urself if ur interested pleaseee"}, {"post_id": 50032, "ts": "2026-08-19T01:59:01Z", "hours": 4.6, "text": "SWAY- brup it was so fun building this app so basically what it does is like if u playing music on spotify or other apps and u start watching a vid on youtube the volume of the music will automatically decrease so u dont have to pause ur music when playing a vid and then start again when u finish"}, {"post_id": 49746, "ts": "2026-08-18T17:46:19Z", "hours": 6.5164, "text": "im working on a amazing desktop app. hope u guys will like it :3"}, {"post_id": 48125, "ts": "2026-08-16T12:44:50Z", "hours": 2.5064, "text": "Bleh im working on Sway my new app"}]...
|
Title: SWAY by @akshnoorbawa2 | Stardance
Devlogs Title: SWAY by @akshnoorbawa2 | Stardance
Devlogs:
Bleh im working on Sway my new app
im working on a amazing desktop app. hope u guys will like it :3
SWAY- brup it was so fun building this app so basically what it does is like if u playing music on spotify or other apps and u start watching a vid on youtube the volume of the music will automatically decrease so u dont have to pause ur music when playing a vid and then start again when u finish
Devlog 4 - i did a complete Ui redesign because my initial website was looking too vibe coded and had a bunch on junk in it the re-design is super clean and non - flashy. i hope this is good and this is prob the last devlog of my project. so yeah check out my project for urself if ur interested pleaseee
new designn
Ships:
I built SWAY because I wanted a better way to manage audio on Windows. The main idea was pretty simple: create an app that could automatically duck other applications when important audio was playing, instead of constantly having to adjust volumes manually. Actually building it was a completely different story. The hardest part was getting the audio system to behave the way I wanted. Managing individual application volumes, detecting changes, and making everything happen smoothly without constantly interfering with the user was definitely one of the more challenging parts of the project. The UI was another big part of it. I didn’t want SWAY to look like some old Windows utility with a bunch of sliders everywhere. I wanted it to feel modern, clean, and actually enjoyable to use. Getting the layout, animations, controls, and overall feel right took a lot of experimenting and tweaking....
|
1793123766.778102
|
1793210166.778102
|
|
24645
|
ForestOS by @laupi_oida | Stardance
|
laupi_oida
|
1
|
23.12
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-11T20:07:52Z", "hours": 13.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made an WebOS themed around the forest. I really liked how the style turned out at the end and I’m really proud of my code because it’s very clean (I think).", "repo": "https://github.com/Laup0403/LaupiOS", "demo": "https://laup0403.github.io/ForestOS/"}]...
|
[{"post_id": 39102, "ts": "202 [{"post_id": 39102, "ts": "2026-08-01T20:12:11Z", "hours": 2.9761, "text": "ForestOS devlog #6 Hello, Moin and Grüezi! I haven’t posted a devlog in 12 days because I was busy or something. Spoiler Warning! But: We have our first enemie: The ram eater! He is completely buggy and you couldn’t see him in the video but I will fix that. And first I added some story to the notes, programmed a Files app, but I currently don’t have a name for it and I added some terminal commands and a crazy Jumpscare. Try it out now or later or never :( So that was a pretty messy devlog and update but anyways, bye Twin!"}, {"post_id": 31679, "ts": "2026-07-20T09:03:37Z", "hours": 2.3183, "text": "ForestOS devlog #5 I made it so, that at first you have just the welcome window and you must unlock other windows. The first window you unlock is the notes app and you unlock it if you press The big red button And i changed the notes content. Bye Twin!"}, {"post_id": 29061, "ts": "2026-07-15T18:28:56Z", "hours": 3.1597, "text": "ForestOS devlog #4 Big News: ForestOS will now get story! Yesterday I wanted to make a forest themed game for ForestOS, but then I got the wonderful Idea, to make ForestOS to a game. I’ve never saw something like this and I think it could be pretty fun. So I made some plans and already and changed the style and made it a bit darker. That was it for now and sorry, if my english was bad. Have a good day Twin✌️"}, {"post_id": 27285, "ts": "2026-07-12T18:43:52Z", "hours": 1.6697, "text": "ForestOS devlog #3 World, greetings to you! You know, I’m kind of a Linux Larper and of course I need a terminal. So I made one: ForestBreaker! There are some commands that the ForestOS Github Repo available, like forestfetch (the ultimate larper command). That was it for this devlog. Bye, Twin!"}, {"post_id": 26782, "ts": "2026-07-11T19:36:06Z", "hours": 3.4939, "text": "ForestOS devlog #2 World, greetings to you! ForestOS 1.0 is now out. And the best part: you can test it. Just click here: https://laup0403.github.io/ForestOS/ I hope you will test it and find the Easteregg I implemented. And I also added a new App: the Tincan Phone. Now you can hear your favorite animals! (What a blessing) and you can also call the Callcenter. (for my german friends) That was it for this Update and I would really enjoy, if you would try my site. Have a very excellent day, Twin!"}, {"post_id": 24876, "ts": "2026-07-08T18:42:54Z", "hours": 0.7294, "text": "ForestOS devlog #1 World, greetings to you! LaupiOS is from the past. Now I renamed it ForestOS and and I will focus on a forest theme. And I redesigned the welcome screen (hopefully the last time). And I will now post hopefully more devlogs because I have summer holidays now. Anyways that was it for this devlog. Bye, twin!"}, {"post_id": 23091, "ts": "2026-07-05T20:35:57Z", "hours": 3.6433, "text": "LaupiOS devlog #4 World, greetings to you! I added a new app: Nutnotes! There I will write something and currently there is a welcome note and a futures plans note. I also changed the theme more and I think, I’ll might change the name and the theme of this project and I made it so the window you tapped last is on top. And I improved my code more. That was everything. Bye, twin!"}, {"post_id": 19394, "ts": "2026-06-30T18:18:56Z", "hours": 2.8181, "text": "LaupiOS devlog #3 World, greetings to you! I’ve got my mouse back and worked on LaupiOS. I changed the theme so it is a forest/green theme now, you can now close and open the windows and I changed a lot in my code so it’s more readable and I understand it halfway. That was it for tody. Have a good day!"}, {"post_id": 17102, "ts": "2026-06-27T19:29:04Z", "hours": 1.9111, "text": "LaupiOS devlog #2 World, greeting to you! I’ve lost my mouse today, but I also worked on LaupiOS. Here’s what I added: -a live Wallpaper -a Taskbar (a bit buggy tbh) -the site is now a window -you can drag, rotate and close the window."}, {"post_id": 15676, "ts": "2026-06-25T14:17:38Z", "hours": 0.8622, "text": "LaupiOS devlog #1 World, greetings to you! I wanted to make LaupiOS (I know very creative Name) but I have just made games so I thougth this is the right time to learn html. So I’ve learned the basics first and made a simple Website."}]...
|
Title: ForestOS by @laupi_oida | Stardance
Devlog Title: ForestOS by @laupi_oida | Stardance
Devlogs:
LaupiOS devlog #1 World, greetings to you! I wanted to make LaupiOS (I know very creative Name) but I have just made games so I thougth this is the right time to learn html. So I’ve learned the basics first and made a simple Website.
LaupiOS devlog #2 World, greeting to you! I’ve lost my mouse today, but I also worked on LaupiOS. Here’s what I added: -a live Wallpaper -a Taskbar (a bit buggy tbh) -the site is now a window -you can drag, rotate and close the window.
LaupiOS devlog #3 World, greetings to you! I’ve got my mouse back and worked on LaupiOS. I changed the theme so it is a forest/green theme now, you can now close and open the windows and I changed a lot in my code so it’s more readable and I understand it halfway. That was it for tody. Have a good day!
LaupiOS devlog #4 World, greetings to you! I added a new app: Nutnotes! There I will write something and currently there is a welcome note and a futures plans note. I also changed the theme more and I think, I’ll might change the name and the theme of this project and I made it so the window you tapped last is on top. And I improved my code more. That was everything. Bye, twin!
ForestOS devlog #1 World, greetings to you! LaupiOS is from the past. Now I renamed it ForestOS and and I will focus on a forest theme. And I redesigned the welcome screen (hopefully the last time). And I will now post hopefully more devlogs because I have summer holidays now. Anyways that was it for this devlog. Bye, twin!
ForestOS devlog #2 World, greetings to you! ForestOS 1.0 is now out. And the best part: you can test it. Just click here: https://laup0403.github.io/ForestOS/ I hope you will test it and find the Easteregg I implemented. And I also added a new App: the Tincan Phone. Now you can hear your favorite animals! (What a blessing) and you can also call the Callcenter. (for my german friends) That was it for this Update and I would really enjoy, if you would try my site. Have a very excellent day, Twin!
ForestOS devlog #3 World, greetings to you! You know, I’m kind of a Linux Larper and of course I need a terminal. So I made one: ForestBreaker! There are some commands that the ForestOS Github Repo available, like forestfetch (the ultimate larper command). That was it for this devlog. Bye, Twin!
ForestOS devlog #4 Big News: ForestOS will now get story! Yesterday I wanted to make a forest themed game for ForestOS, but then I got the wonderful Idea, to make ForestOS to a game. I’ve never saw something like this and I think it could be pretty fun. So I made some plans and already and changed the style and made it a bit darker. That was it for now and sorry, if my english was bad. Have a good day Twin✌️
ForestOS devlog #5 I made it so, that at first you have just the welcome window and you must unlock other windows. The first window you unlock is the notes app and you unlock it if you press The big red button And i changed the notes content. Bye Twin!
ForestOS devlog #6 Hello, Moin and Grüezi! I haven’t posted a devlog in 12 days because I was busy or something. Spoiler Warning! But: We have our first enemie: The ram eater! He is completely buggy and you couldn’t see him in the video but I will fix that. And first I added some story to the notes, programmed a Files app, but I currently don’t have a name for it and I added some terminal commands and a crazy Jumpscare. Try it out now or later or never :( So that was a pretty messy devlog and update but anyways, bye Twin!
Ships:
I made an WebOS themed around the forest. I really liked how the style turned out at the end and I’m really proud of my code because it’s very clean (I think)....
|
1793263709.2817705
|
1793350109.2817705
|
|
18177
|
PolyClash by @rohanswamy | Stardance
|
rohanswamy
|
0
|
23.1
|
0
|
[]
|
[{"post_id": 11038, "ts": "202 [{"post_id": 11038, "ts": "2026-06-18T02:00:56Z", "hours": 6.6475, "text": "Phase 4 is done, and the game is finally starting to feel interactive instead of just being a static screen. First off, I got the inventory pieces to actually respond when you click them. I added a variable to track what you’re holding, so now when you click a block, it highlights in gold. But honestly, the coolest part was hooking up the keyboard. I linked the R and F keys to the math I wrote back in Phase 2. Being able to just hit a key and watch the piece instantly spin or flip in the sidebar is so satisfying after staring at frozen shapes for days. I also added click events to the main 14x14 grid. It’s not physically snapping the pieces onto the board yet that’s the big goal for Phase 5 but if you open up the console, it perfectly tracks the X and Y coordinates of wherever you click. Getting the code to remember which piece I had selected without glitching out the rest of the screen was kind of a pain, but the foundation to finally place these things is totally set now."}, {"post_id": 10628, "ts": "2026-06-17T14:11:27Z", "hours": 2.3, "text": "Phase 3 is officially done, and the game actually looks like a real game now. I got tired of looking at a blinding white layout, so I gave the whole UI a massive dark mode glow up with a sleek slate background and neon blue gradients for the blocks. The biggest victory this time was writing the inventory rendering system. I had to use three layers of nested loops to parse through the piece arrays, row by row, cell by cell, to dynamically generate the HTML for all 21 shapes. If a cell is a 1, the code paints it glowing blue; if it’s a 0, it keeps it transparent. It was a ton of lines of CSS and layout tweaking to get the grid to auto align nicely in the sidebar, but seeing all 21 polyominoes neatly lined up next to the main board instead of just reading them in the browser console is incredibly satisfying."}, {"post_id": 9221, "ts": "2026-06-15T14:26:53Z", "hours": 4.8267, "text": "Just finished mapping out all 21 game pieces in JavaScript and wrote the code to rotate and flip them. The rotation math absolutely broke my brain I’m using nested arrays to swap rows into columns, and for a while, my shapes kept turning into weird, distorted blobs instead of actually spinning. Since these pieces only live in the game’s memory right now, the actual page looks exactly the same as my last update, but checking the browser console proves the math is working perfectly behind the scenes. Next up is finally getting these blocks to show up visually in the player inventory sidebar!"}, {"post_id": 8902, "ts": "2026-06-14T20:18:25Z", "hours": 9.3236, "text": "Got the basic 3 column layout done and the 14x14 game board actually rendering on the screen using a 2D JavaScript array. I ended up wasting a ton of time fighting my WakaTime tracker because the extension log was completely blank and wouldn’t log my hours, but a quick reinstall and re-pasting the API key fixed it. For the board itself, I stamped data x and data y coordinates right onto each HTML cell so the game can track clicks and hovers easily later. Now that the empty board is up and customized, I’m moving on to defining the 21 game pieces and figuring out how to rotate and flip them."}]...
|
Title: PolyClash by @rohanswamy | Stardance
Devlo Title: PolyClash by @rohanswamy | Stardance
Devlogs:
Got the basic 3 column layout done and the 14x14 game board actually rendering on the screen using a 2D JavaScript array. I ended up wasting a ton of time fighting my WakaTime tracker because the extension log was completely blank and wouldn’t log my hours, but a quick reinstall and re-pasting the API key fixed it. For the board itself, I stamped data x and data y coordinates right onto each HTML cell so the game can track clicks and hovers easily later. Now that the empty board is up and customized, I’m moving on to defining the 21 game pieces and figuring out how to rotate and flip them.
Just finished mapping out all 21 game pieces in JavaScript and wrote the code to rotate and flip them. The rotation math absolutely broke my brain I’m using nested arrays to swap rows into columns, and for a while, my shapes kept turning into weird, distorted blobs instead of actually spinning. Since these pieces only live in the game’s memory right now, the actual page looks exactly the same as my last update, but checking the browser console proves the math is working perfectly behind the scenes. Next up is finally getting these blocks to show up visually in the player inventory sidebar!
Phase 3 is officially done, and the game actually looks like a real game now. I got tired of looking at a blinding white layout, so I gave the whole UI a massive dark mode glow up with a sleek slate background and neon blue gradients for the blocks. The biggest victory this time was writing the inventory rendering system. I had to use three layers of nested loops to parse through the piece arrays, row by row, cell by cell, to dynamically generate the HTML for all 21 shapes. If a cell is a 1, the code paints it glowing blue; if it’s a 0, it keeps it transparent. It was a ton of lines of CSS and layout tweaking to get the grid to auto align nicely in the sidebar, but seeing all 21 polyominoes neatly lined up next to the main board instead of just reading them in the browser console is incredibly satisfying.
Phase 4 is done, and the game is finally starting to feel interactive instead of just being a static screen. First off, I got the inventory pieces to actually respond when you click them. I added a variable to track what you’re holding, so now when you click a block, it highlights in gold. But honestly, the coolest part was hooking up the keyboard. I linked the R and F keys to the math I wrote back in Phase 2. Being able to just hit a key and watch the piece instantly spin or flip in the sidebar is so satisfying after staring at frozen shapes for days. I also added click events to the main 14x14 grid. It’s not physically snapping the pieces onto the board yet that’s the big goal for Phase 5 but if you open up the console, it perfectly tracks the X and Y coordinates of wherever you click. Getting the code to remember which piece I had selected without glitching out the rest of the screen was kind of a pain, but the foundation to finally place these things is totally set now....
|
1793260111.443662
|
1793864911.443662
|
|
33261
|
3x4 key macropad w/ 2 rotary encoder by @neilm | S 3x4 key macropad w/ 2 rotary encoder by @neilm | Stardance...
|
neilm
|
0
|
23.1
|
0
|
[]
|
[{"post_id": 57477, "ts": "202 [{"post_id": 57477, "ts": "2026-08-29T17:06:36Z", "hours": 6.1156, "text": "DEVLOG #003 Macropad design complete! After learning to use CAD and struggling to figure out KiCad, I have finally finished designing my custom RGB 3x4 macropad. Now, all I have to do is 3d print the case and assemble the PCB. Almost finished!"}, {"post_id": 37347, "ts": "2026-07-30T00:18:29Z", "hours": 1.8992, "text": "DEVLOG 002 OMNIPAD (trying out a new name :)) SHOUTOUT @stratustraipsing . tysm for the help Overview Today, I was able to fix the issue with SMD-mounting the Waveshare RP2040 thanks to a comment by @stratustraipsing . They suggested that I should try making a cutout in the PCB to accommodate the underlying MCU components. Thankfully, their advice worked! Then I moved to adding some aesthetic touches to the PCB itself by changing the board color and creating a logo. Making the cutout To make the cutout, I modified an existing RP2040-Zero footprint from this GitHub Repo: lamdakb/kicad-lkbd . So, in KiCad, I opened the footprint in the Footprint Editor and added a rectangle to the Edge.Cuts layer for the components to rest in. Then, I added a Draw Rules boundary so that I could accidentally register a trace or fill zone in that area. Aesthetic touches Because I was short on time today, I just made the front and back mask layers black and designed a new logo themed around the name, “OmniPad”. Next Steps Add the logo decal to the back silkscreen layer Export the PCB as a STEP file Begin to redesign the case in Onshape"}, {"post_id": 32181, "ts": "2026-07-21T05:16:36Z", "hours": 15.0853, "text": "DEVLOG #001 3x4 key hack pad with 2 rotary encoders Overview This is a macro pad with 12 keys (3x4 key matrix) and two rotary encoders. It also an RGB under-glow for a clean aesthetic. The reason I started this project was to get a functional, cheap macro pad and to get started with hardware and 3d design. The main use for this macro pad will just regular software development tasks like Git commands, client side build and production commands, starting up API endpoints, etc. Tools Used KiCad Onshape Progress As of now, I have almost finalized the PCB layout. To give context, I have went through about 4 different iterations of this PCB. PCB Iteration #001 For the first iteration, I was just getting started out so it took me quite a while even get started on the schematic. The original design started as one rotary encoder instead of two and the same 3x4 key matrix. After hours of research, I had came up with these specs: Seeed Studio XIAO RP2040 (1x) - I chose this MCU because it was compact, supported SMD mounting, and it had the perfect amount of pins I needed. Cherry MX switches (12x) - This choice was pretty much a no brainer as the Cherry MX switches are well-known as being top-tier mechanical switches. Bourns PEC11R rotary encoder (1x) - I chose this unit mainly because i found a lot of documentation for its firmware and there were many 3d knob models for it. WS2812B LEDs (4x) - I picked these LEDs because I was already familiar with them and they are versatile it terms of color selection. 0402 0.1 µF Capacitors (4x) - These capacitors were chosen because of their small form factor and ability to decouple our LEDs. SOD-123 1N4148W Diodes (12x) - Perfect for preventing ghosting in key matrixes and has a clean SMD physical package. Result Unfortunately, after designing the PCB, the design turned out to be too large. I also realized that I needed another rotary encoder for functionality. PCB Iteration #002 For this next iteration, I wanted to make the PCB shape compact and add an extra rotary encoder. The main aspect of the PCB that this change was the MCU. The Seeed Studio XIAO RP2040 had an insufficient amount of pins to supply all of the previous plus this new encoder. Thats how we landed with the WaveShare RP2040-Zero. WaveShare RP2040-Zero : This was the perfect fit as it exposed 20 GPIO pins and it was also SMD compatible (supposedly…). Result Soon after finalizing the new design, I realized that to mount the RP2040-Zero flat on the PCB like a SMD, I would have to create a cutout in PCB as the MCU actually has components on its back side as well. Now lets start talking about the actual case design. 3D Case Design This case design really took way more work than I though in the beginning. I had realized the complex of just building a simple case around a PCB. Overall, Through these case iterations, I’ve learned a lot about using Onshape and how create unique design without just Googling with tools to use. Thankfully though, I already had a bit of a head start because I had learned a bit of how to CAD on Onshape for VEX V5 robots. Since I had throughly documented each iteration the case as I was grinding, I can only really give the description of the semi-finished product. I tried to go for a very a geometrically simple aesthetic. Basically, I want it look like a really bored box but I didn’t want to spend all my time create a really fancy design. By the way, the case’s inspiration comes for a macropad that I found online called Ocreeb. Next Steps Now, here’s the things I need to complete: Figure whether to use new MCU or make a cutout in the PCB for the RP2040-Zero Add finishing touches to the 3D design Please comment below what I should do for my MCU problem!"}]...
|
Title: 3x4 key macropad w/ 2 rotary encoder by @ne Title: 3x4 key macropad w/ 2 rotary encoder by @neilm | Stardance
Devlogs:
DEVLOG #001 3x4 key hack pad with 2 rotary encoders Overview This is a macro pad with 12 keys (3x4 key matrix) and two rotary encoders. It also an RGB under-glow for a clean aesthetic. The reason I started this project was to get a functional, cheap macro pad and to get started with hardware and 3d design. The main use for this macro pad will just regular software development tasks like Git commands, client side build and production commands, starting up API endpoints, etc. Tools Used KiCad Onshape Progress As of now, I have almost finalized the PCB layout. To give context, I have went through about 4 different iterations of this PCB. PCB Iteration #001 For the first iteration, I was just getting started out so it took me quite a while even get started on the schematic. The original design started as one rotary encoder instead of two and the same 3x4 key matrix. After hours of research, I had came up with these specs: Seeed Studio XIAO RP2040 (1x) - I chose this MCU because it was compact, supported SMD mounting, and it had the perfect amount of pins I needed. Cherry MX switches (12x) - This choice was pretty much a no brainer as the Cherry MX switches are well-known as being top-tier mechanical switches. Bourns PEC11R rotary encoder (1x) - I chose this unit mainly because i found a lot of documentation for its firmware and there were many 3d knob models for it. WS2812B LEDs (4x) - I picked these LEDs because I was already familiar with them and they are versatile it terms of color selection. 0402 0.1 µF Capacitors (4x) - These capacitors were chosen because of their small form factor and ability to decouple our LEDs. SOD-123 1N4148W Diodes (12x) - Perfect for preventing ghosting in key matrixes and has a clean SMD physical package. Result Unfortunately, after designing the PCB, the design turned out to be too large. I also realized that I needed another rotary encoder for functionality. PCB Iteration #002 For this next iteration, I wanted to make the PCB shape compact and add an extra rotary encoder. The main aspect of the PCB that this change was the MCU. The Seeed Studio XIAO RP2040 had an insufficient amount of pins to supply all of the previous plus this new encoder. Thats how we landed with the WaveShare RP2040-Zero. WaveShare RP2040-Zero : This was the perfect fit as it exposed 20 GPIO pins and it was also SMD compatible (supposedly…). Result Soon after finalizing the new design, I realized that to mount the RP2040-Zero flat on the PCB like a SMD, I would have to create a cutout in PCB as the MCU actually has components on its back side as well. Now lets start talking about the actual case design. 3D Case Design This case design really took way more work than I though in the beginning. I had realized the complex of just building a simple case around a PCB. Overall, Through these case iterations, I’ve learned a lot about using Onshape and how create unique design without just Googling with tools to use. Thankfully though, I already had a bit of a head start because I had learned a bit of how to CAD on Onshape for VEX V5 robots. Since I had throughly documented each iteration the case as I was grinding, I can only really give the description of the semi-finished product. I tried to go for a very a geometrically simple aesthetic. Basically, I want it look like a really bored box but I didn’t want to spend all my time create a really fancy design. By the way, the case’s inspiration comes for a macropad that I found online called Ocreeb. Next Steps Now, here’s the things I need to complete: Figure whether to use new MCU or make a cutout in the PCB for the RP2040-Zero Add finishing touches to the 3D design Please comment below what I should do for my MCU problem!
DEVLOG 002 OMNIPAD (trying out a new name :)) SHOUTOUT @stratustraipsing . tysm for the help Overview Today, I was able to fix the issue with SMD-mounting the Waveshare RP2040 thanks to a comment by @stratustraipsing . They suggested that I should try making a cutout in the PCB to accommodate the underlying MCU components. Thankfully, their advice worked! Then I moved to adding some aesthetic touches to the PCB itself by changing the board color and creating a logo. Making the cutout To make the cutout, I modified an existing RP2040-Zero footprint from this GitHub Repo: lamdakb/kicad-lkbd . So, in KiCad, I opened the footprint in the Footprint Editor and added a rectangle to the Edge.Cuts layer for the components to rest in. Then, I added a Draw Rules boundary so that I could accidentally register a trace or fill zone in that area. Aesthetic touches Because I was short on time today, I just made the front and back mask layers black and designed a new logo themed around the name, “OmniPad”. Next Steps Add the logo decal to the back silkscreen layer Export the PCB as a STEP file Begin to redesign the case in Onshape
DEVLOG #003 Macropad design complete! After learning to use CAD and struggling to figure out KiCad, I have finally finished designing my custom RGB 3x4 macropad. Now, all I have to do is 3d print the case and assemble the PCB. Almost finished!...
|
1792597867.9497545
|
1793202667.9497545
|
|
7427
|
PeerPath by @shouryamishra | Stardance
|
shouryamishra
|
1
|
23.09
|
204
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-25T17:29:24Z", "hours": 22.0, "multiplier": 9.65, "payout": 204, "blessing": "neutral", "text": "I have created PeerPath, a dynamic learning environment that supports multiple subjects and currently has full data-driven tracks for AP Calculus AB and BC with its own quiz engine, which automatically converts mathematical notation to beautiful inline LaTeX. The main challenge was to deal with streams of various formats between pre-loaded JSON files and the API endpoints, which led to raw KaTeX blocks for normal English prompts, resulting in string parsing errors and an unreadable italicized text. I have dealt with this issue by implementing my inline tokenizing renderer that is separating calculator functions such as “sqrt()” or “^” from regular dictionary words, thus rendering equations smoothly without any layout issues. I think it’s really cool how this state machine works in real time validating responses and updating user’s concept momentum (XP) through Supabase. If you want to see how it works, you can just dive into any Calculus AB or BC milestone tracker module, open “Intuition Check” widget and see how mathematical symbols are rendered in real time.", "repo": "https://github.com/Sh4rk-glitch/PeerPath", "demo": "https://peerpathv2.vercel.app"}]...
|
[{"post_id": 17702, "ts": "202 [{"post_id": 17702, "ts": "2026-06-28T16:49:39Z", "hours": 1.0886, "text": "I’ve been making a whole bunch of fixes with all of the feedback I’m getting from the multiple rejections of ships… but I mean its good feedback and I’ve been using it to my advantage. Fixes: LocalHost error popping up when signing up, removed email authentication Fixed search bar Fixed UI changes on home page with the sign in card Minor bugs and updates."}, {"post_id": 15760, "ts": "2026-06-25T17:09:07Z", "hours": 1.5214, "text": "PeerPath is ready. As of now, only AP Calc AB and AP Calc BC. I plan on adding more and more curriculums in the future, but as of now, those are the ones that are ready."}, {"post_id": 15399, "ts": "2026-06-25T01:09:33Z", "hours": 4.4694, "text": "I grinded out a LOT today. Got a whole bunch of updates in, fixed bugs, only a couple more things to do before PeerPath is ready to be shipped. #PeerPath"}, {"post_id": 15092, "ts": "2026-06-24T15:02:48Z", "hours": 1.1944, "text": "So i spent quite a bit of time yesterday adding proper videos and adding the corresponding questions to the calculus section. I’ve gotten everything down for it and all the videos work on AP Calc AB, now i just gotta get BC done. And then I think I’ll just fix a couple bugs here and there, work on some UI fixes, and then shabang (drake ref), I should be all done."}, {"post_id": 13797, "ts": "2026-06-22T16:51:43Z", "hours": 1.6872, "text": "PeerPath is almost done! I’ve gotten a lot done over the past couple days! At the moment the only available classes are ap calc ab and ap calc bc, i’m working on the curriculum for other classes as it takes me hours on end to get the curriculum for them. As of now, both files have about 2500 lines of code, so as you can tell it takes a while. The good thing is that I’ve integrated AI generated questions into each unit! It’s still a work in progress and isn’t fully completed but as of now, its going very good!"}, {"post_id": 13729, "ts": "2026-06-22T14:39:18Z", "hours": 3.4503, "text": "4000 lines of code later, AP Calc AB and BC are ready for deployment!"}, {"post_id": 8962, "ts": "2026-06-14T22:19:15Z", "hours": 1.3053, "text": "Got classes integrated in my SQL Database, i populated them all. Then after that I created filters and got started on making curriculums for every class."}, {"post_id": 8312, "ts": "2026-06-13T20:30:11Z", "hours": 1.46, "text": "Alright so I got started on the actual home page, everything is now up and running well! Now time to work on lesson data."}, {"post_id": 8250, "ts": "2026-06-13T18:31:58Z", "hours": 1.0306, "text": "I’ve published the main side at: https://peerpathv2.vercel.app You can check it out there, im still working on all the features though, just the home page is up right now, the sign in features don’t work as the actual app isn’t ready yet."}, {"post_id": 8180, "ts": "2026-06-13T17:01:53Z", "hours": 1.5122, "text": "Home page is fully done. Took me sooo long to get these tsx animations to work with the css code.."}, {"post_id": 7708, "ts": "2026-06-12T21:24:27Z", "hours": 3.9778, "text": "After 4 hours of work, the home page is done. PeerPath is looking good! Now i just gotta refine a couple things on the home page, I’m gonna call it a day for now though."}]...
|
Title: PeerPath by @shouryamishra | Stardance
Dev Title: PeerPath by @shouryamishra | Stardance
Devlogs:
After 4 hours of work, the home page is done. PeerPath is looking good! Now i just gotta refine a couple things on the home page, I’m gonna call it a day for now though.
Home page is fully done. Took me sooo long to get these tsx animations to work with the css code..
I’ve published the main side at: https://peerpathv2.vercel.app You can check it out there, im still working on all the features though, just the home page is up right now, the sign in features don’t work as the actual app isn’t ready yet.
Alright so I got started on the actual home page, everything is now up and running well! Now time to work on lesson data.
Got classes integrated in my SQL Database, i populated them all. Then after that I created filters and got started on making curriculums for every class.
4000 lines of code later, AP Calc AB and BC are ready for deployment!
PeerPath is almost done! I’ve gotten a lot done over the past couple days! At the moment the only available classes are ap calc ab and ap calc bc, i’m working on the curriculum for other classes as it takes me hours on end to get the curriculum for them. As of now, both files have about 2500 lines of code, so as you can tell it takes a while. The good thing is that I’ve integrated AI generated questions into each unit! It’s still a work in progress and isn’t fully completed but as of now, its going very good!
So i spent quite a bit of time yesterday adding proper videos and adding the corresponding questions to the calculus section. I’ve gotten everything down for it and all the videos work on AP Calc AB, now i just gotta get BC done. And then I think I’ll just fix a couple bugs here and there, work on some UI fixes, and then shabang (drake ref), I should be all done.
I grinded out a LOT today. Got a whole bunch of updates in, fixed bugs, only a couple more things to do before PeerPath is ready to be shipped. #PeerPath
PeerPath is ready. As of now, only AP Calc AB and AP Calc BC. I plan on adding more and more curriculums in the future, but as of now, those are the ones that are ready.
I’ve been making a whole bunch of fixes with all of the feedback I’m getting from the multiple rejections of ships… but I mean its good feedback and I’ve been using it to my advantage. Fixes: LocalHost error popping up when signing up, removed email authentication Fixed search bar Fixed UI changes on home page with the sign in card Minor bugs and updates.
Ships:
I have created PeerPath, a dynamic learning environment that supports multiple subjects and currently has full data-driven tracks for AP Calculus AB and BC with its own quiz engine, which automatically converts mathematical notation to beautiful inline LaTeX. The main challenge was to deal with streams of various formats between pre-loaded JSON files and the API endpoints, which led to raw KaTeX blocks for normal English prompts, resulting in string parsing errors and an unreadable italicized text. I have dealt with this issue by implementing my inline tokenizing renderer that is separating calculator functions such as “sqrt()” or “^” from regular dictionary words, thus rendering equations smoothly without any layout issues. I think it’s really cool how this state machine works in real time validating responses and updating user’s concept momentum (XP) through Supabase. If you want to see how it works, you can just dive into any Calculus AB or BC milestone tracker module, open “Intuition Check” widget and see how mathematical symbols are rendered in real time....
|
1793112589.657813
|
1793198989.657813
|
|
30329
|
Cue by @L0stsky | Stardance
|
L0stsky
|
1
|
23.06
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-24T14:44:55Z", "hours": 20.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "So I Made Cue - A Multi OS Compatible Tool which Allows the user To Make Guides which is as Simple as Runing a Script in the background, Doing Whatever You want to Record, Use CTRL+CLICK or CTRL+ENTER to record the steps and Done!! So Basically Heres how it Works -> The User runs a Startup Script The Script Takes a Screenshot Everytime the User Presses CTRL+CLICK or CTRL+ENTER and Saves it. After going through all the Steps, the User Presses CTRL+ESC to End the Recording. After this, a New Script Is launched which loads in these Screenshots and then Uses a VL (Vision Languag) Model to Extract the User Intent. After going through all the imgs, the Data Extracted is passed through a more “Intelligent” Model which Compiles it Into a Guide. The QOF Improvement is that the It Removes the Boring task of telling someone “press x and then Click Y” till they finally Get it The Major QOF improvements are : Zero manual Screenshoting or Cropping No Manual Writing Steps Easy to Follow Guides and Allow Screenshots to be Directly Attached. No Manual Making of python Environment etc. So the Challenging Part was to get the Fricking Wayland Screenshot Working Cuz wayland wont allow Some script to Take Screenshots. Also another thing was Getting the Models to Cooperate and Stop “Hallucinating” Random Output The thing I’m Proud of the Most is that I was Able to Get the Wayland Screenshot Working and Also How I implemented the Paralled AI model Contacting Architecture for speed. So To try Cue out, You Just Click Try Project it will download a ZIP file, Extract that and Open the Folder. In the Folder Run “Cue_Windows.bat” for Windows and “Cue_Linux-Mac.sh” for Linux or Mac. Ensure that python is Installed and For Mac The Program has Permissions (In more detail on github Readme)", "repo": "https://github.com/L0stxRising/Cue", "demo": "https://github.com/L0stxRising/Cue/releases/tag/Cue_V1"}]...
|
[{"post_id": 72187, "ts": "202 [{"post_id": 72187, "ts": "2026-09-22T12:46:18Z", "hours": 0.9417, "text": "So my ship was rejected as I had used AI to generate the UI, so i just worked on the new Ui and some Bugs."}, {"post_id": 59330, "ts": "2026-09-01T01:54:03Z", "hours": 0.2806, "text": "So I noticed that I had put the AI usage to None in the beginning but later i used it to find some bugs etc and make the startup scripts so heres my AI usage if you wanna know"}, {"post_id": 55553, "ts": "2026-08-27T14:08:53Z", "hours": 0.3036, "text": "So I Broke it Again , the Models were Broken So i Just Updated the Models and Increased The Number of API Tries to 15"}, {"post_id": 55146, "ts": "2026-08-26T16:51:28Z", "hours": 0.3292, "text": "So I Found out that One of the Model I was Using Was Not Capable of the Task 🥀🥀, So I Updated the code to Use New Capable Models and also Retry If the Model Could not Extract the Data. And Now I gotta Wait Till Tommorrow Till I can ReMake the Windows Exe File (I use Linux soooo) 😭😭😭"}, {"post_id": 55020, "ts": "2026-08-26T13:25:51Z", "hours": 1.2083, "text": "So I was Finally Able to get Pyrunner Working and Make the Godamm executables for Linux and Windows. Well Finally after 22 Hours of Working and a dead Pen Drive (Idk why tf its Firmware Got erased) I finally Completed Cue"}, {"post_id": 51043, "ts": "2026-08-20T15:05:44Z", "hours": 2.7286, "text": "DevLog_6 So My dum Brain found out that Python Envs cannot just be “Packaged “ and Used on another Computer Sooooo I Updated the Startup Scripts to Make One On startup. Also IDK why but my dummahh tried to Retrain a local 2B pretrained Model but after getting 1 Epoch in 2 HOURS I just Lost Hope and Dumped the Idea."}, {"post_id": 49534, "ts": "2026-08-18T12:34:21Z", "hours": 2.8708, "text": "Devlog 5 : SO If you don’t Remember, Im Working on CUE -> A Easy af To use Tool to Make Easy to Follow Guides which Is simple as clicking to Run a Script and Then Doing Whatever Task You want. The Script AutoMatically saves Your actions and After You are done, these are Compiled into a Text Based or Both text and Image Based Guide of Your Chosing!!! Here’s What Im Working On: Made a Single Click Startup Script. Added a API key Verification. So I Fixed Some Major Cross Platform Code Errors. Packaged a Python Env With the Things for Ease of Use. Tried and Tested On Linux and Windows Thought I couldnt On Mac Since I dont Use that. Now I plan to Use the Tool to Make Guides Regarding How to use it!!!!"}, {"post_id": 47348, "ts": "2026-08-15T07:18:28Z", "hours": 2.6381, "text": "DevLog_4 : Finally Got the Fricking Images in the Guide to Work and The Sudo Permission to Work Correctly. First I tried to Embed them Directly But that didnt Work so i Just Put the Images Along with the Guide and Used Paths to render them. Then I made Improvements to my Screenshot and the Backend Code Like Gracefully exiting Rathar then the Forced Exit I was Doing Earlier. Added a “NOTE to the AI” Feature and Introduced a Smarter Model for Compiling the Data into a Guide. Now I plan to Use Pyinstaller to Make it a Executable and Make the Model Format the Guide a Little More Beautifully."}, {"post_id": 46424, "ts": "2026-08-13T16:49:28Z", "hours": 1.2117, "text": "DevLog_3 I have Attached a Demo Video of the Current Project. In the Video You Can see that the Output File is Not Properly Formatted because I opened it in Notepad But in The Actual Docs Viewer it Looks Fine. Also the |Image| Tags is a Beta Feature and Is not Fully Implemented. Also If you are Wondering, it Took the Script like 2 Minutes to Process the Screenshots (I have Cropped the Video). So I Finally Completed The Scripts for Running the Project. I made 2 scripts -> For the GUI version and the CLI version. I was able to make a minimal GUI Setup for the Project though its still a little buggy which I’ll Fix Later. Now I am Working on Fixing Some Issues with the API, Fully Implementing the images in the Guide Feature and Trying to turn it into a Application Rather than running it via Scripts."}, {"post_id": 45766, "ts": "2026-08-12T13:53:22Z", "hours": 7.8219, "text": "DevLog_2 So I Finally Was Able to Complete the AI Backend Part of the Project and let me tell you - IT WAS A NIGHTMARE . For the First 4 Hours I Tried to get a Local VLM to Work but Due to my Low end Pc it wouldnt Work so I just Gave up and Switched to Free Openrouter Models. So Here is What I’ve Made : I Made the Python File Which would Load in all the Screenshots from the Main Script. These Screenshots are then sent to an API which Describes What the User is Doing by Using the Cursor Locations. All these Observations are then Compiled by a Smarter Model To make a Comprehensive Guide. Now I plan to Try to Make a Simplistic IN-Python UI and a Script to Do all the Tasks and Package it."}, {"post_id": 43335, "ts": "2026-08-08T15:13:17Z", "hours": 2.7972, "text": "I’m building CUE —an AI-powered guide generator to solve the headache of manually making step-by-step instructions. The goal is to have a seamless tool that just works across all OSs. What’s done so far Finished the main code and the specific OS capture handlers. Every time you click anywhere on the screen, it automatically grabs a screenshot and dumps it into a local folder. The Wayland Pain: Wayland’s OS security made capturing clicks a nightmare compared to every other platform. I basically had to put Gemini’s black cap on to help me hack around Wayland security and get those screen captures working."}]...
|
Title: Cue by @L0stsky | Stardance
Devlogs:
I’m b Title: Cue by @L0stsky | Stardance
Devlogs:
I’m building CUE —an AI-powered guide generator to solve the headache of manually making step-by-step instructions. The goal is to have a seamless tool that just works across all OSs. What’s done so far Finished the main code and the specific OS capture handlers. Every time you click anywhere on the screen, it automatically grabs a screenshot and dumps it into a local folder. The Wayland Pain: Wayland’s OS security made capturing clicks a nightmare compared to every other platform. I basically had to put Gemini’s black cap on to help me hack around Wayland security and get those screen captures working.
DevLog_2 So I Finally Was Able to Complete the AI Backend Part of the Project and let me tell you - IT WAS A NIGHTMARE . For the First 4 Hours I Tried to get a Local VLM to Work but Due to my Low end Pc it wouldnt Work so I just Gave up and Switched to Free Openrouter Models. So Here is What I’ve Made : I Made the Python File Which would Load in all the Screenshots from the Main Script. These Screenshots are then sent to an API which Describes What the User is Doing by Using the Cursor Locations. All these Observations are then Compiled by a Smarter Model To make a Comprehensive Guide. Now I plan to Try to Make a Simplistic IN-Python UI and a Script to Do all the Tasks and Package it.
DevLog_3 I have Attached a Demo Video of the Current Project. In the Video You Can see that the Output File is Not Properly Formatted because I opened it in Notepad But in The Actual Docs Viewer it Looks Fine. Also the |Image| Tags is a Beta Feature and Is not Fully Implemented. Also If you are Wondering, it Took the Script like 2 Minutes to Process the Screenshots (I have Cropped the Video). So I Finally Completed The Scripts for Running the Project. I made 2 scripts -> For the GUI version and the CLI version. I was able to make a minimal GUI Setup for the Project though its still a little buggy which I’ll Fix Later. Now I am Working on Fixing Some Issues with the API, Fully Implementing the images in the Guide Feature and Trying to turn it into a Application Rather than running it via Scripts.
DevLog_4 : Finally Got the Fricking Images in the Guide to Work and The Sudo Permission to Work Correctly. First I tried to Embed them Directly But that didnt Work so i Just Put the Images Along with the Guide and Used Paths to render them. Then I made Improvements to my Screenshot and the Backend Code Like Gracefully exiting Rathar then the Forced Exit I was Doing Earlier. Added a “NOTE to the AI” Feature and Introduced a Smarter Model for Compiling the Data into a Guide. Now I plan to Use Pyinstaller to Make it a Executable and Make the Model Format the Guide a Little More Beautifully.
Devlog 5 : SO If you don’t Remember, Im Working on CUE -> A Easy af To use Tool to Make Easy to Follow Guides which Is simple as clicking to Run a Script and Then Doing Whatever Task You want. The Script AutoMatically saves Your actions and After You are done, these are Compiled into a Text Based or Both text and Image Based Guide of Your Chosing!!! Here’s What Im Working On: Made a Single Click Startup Script. Added a API key Verification. So I Fixed Some Major Cross Platform Code Errors. Packaged a Python Env With the Things for Ease of Use. Tried and Tested On Linux and Windows Thought I couldnt On Mac Since I dont Use that. Now I plan to Use the Tool to Make Guides Regarding How to use it!!!!
DevLog_6 So My dum Brain found out that Python Envs cannot just be “Packaged “ and Used on another Computer Sooooo I Updated the Startup Scripts to Make One On startup. Also IDK why but my dummahh tried to Retrain a local 2B pretrained Model but after getting 1 Epoch in 2 HOURS I just Lost Hope and Dumped the Idea.
So I was Finally Able to get Pyrunner Working and Make the Godamm executables for Linux and Windows. Well Finally after 22 Hours of Working and a dead Pen Drive (Idk why tf its Firmware Got erased) I finally Completed Cue
So I Found out that One of the Model I was Using Was Not Capable of the Task 🥀🥀, So I Updated the code to Use New Capable Models and also Retry If the Model Could not Extract the Data. And Now I gotta Wait Till Tommorrow Till I can ReMake the Windows Exe File (I use Linux soooo) 😭😭😭
So I Broke it Again , the Models were Broken So i Just Updated the Models and Increased The Number of API Tries to 15
So I noticed that I had put the AI usage to None in the beginning but later i used it to find some bugs etc and make the startup scripts so heres my AI usage if you wanna know
So my ship was rejected as I had used AI to generate the UI, so i just worked on the new Ui and some Bugs.
Ships:
So I Made Cue - A Multi OS Compatible Tool which Allows the user To Make Guides which is as Simple as Runing a Script in the background, Doing Whatever You want to Record, Use CTRL+CLICK or CTRL+ENTER to record the steps and Done!! So Basically Heres how it Works -> The User runs a Startup Script The Script Takes a Screenshot Everytime the User Presses CTRL+CLICK or CTRL+ENTER and Saves it. After going through all the Steps, the User Presses CTRL+ESC to End the Recording. After this, a New Script Is launched which loads in these Screenshots and then Uses a VL (Vision Languag) Model to Extract the User Intent. After going through all the imgs, the Data Extracted is passed through a more “Intelligent” Model which Compiles it Into a Guide. The QOF Improvement is that the It Removes the Boring task of telling someone “press x and then Click Y” till they finally Get it The Major QOF improvements are : Zero manual Screenshoting or Cropping No Manual Writing Steps Easy to Follow Guides and Allow Screenshots to be Directly Attached. No Manual Making of python Environment etc. So the Challenging Part was to get the Fricking Wayland Screenshot Working Cuz wayland wont allow Some script to Take Screenshots. Also another thing was Getting the Models to Cooperate and Stop “Hallucinating” Random Output The thing I’m Proud of the Most is that I was Able to Get the Wayland Screenshot Working and Also How I implemented the Paralled AI model Contacting Architecture for speed. So To try Cue out, You Just Click Try Project it will download a ZIP file, Extract that and Open the Folder. In the Folder Run “Cue_Windows.bat” for Windows and “Cue_Linux-Mac.sh” for Linux or Mac. Ensure that python is Installed and For Mac The Program has Permissions (In more detail on github Readme)...
|
1793138240.4147222
|
1793224640.4147222
|
|
69155
|
Dreamland by @luxi | Stardance
|
luxi
|
0
|
23.05
|
0
|
[]
|
[{"post_id": 82301, "ts": "202 [{"post_id": 82301, "ts": "2026-10-24T14:40:31Z", "hours": 2.5853, "text": "Grass blades now spawn and work with the progressive terrain generation"}, {"post_id": 82033, "ts": "2026-10-23T15:01:10Z", "hours": 7.1756, "text": "I am continuing work on gpu meshing and just in general world creation. I improved the mesher by adding full LoD support, and I started a gpu memory allocator. I store the state of each chunk column. So it allowed me to have this progressive mesh generator because I also have made the mesher use batches instead(Which was difficult to add). The blogs are gonna be much more sparse because for me to have something to blog about I need to do a lot of work as all the low hanging fruits were already picked"}, {"post_id": 80715, "ts": "2026-10-18T16:22:51Z", "hours": 8.2228, "text": "I’ve implemented the first version of GPU meshing and meshlet generation. It’s about 20 times faster than what my CPU can do (I have an rx 9070 and a 5950x) Also I don’t need to upload all the data so it’s even faster there (it was also quite slow to do) Of course, we are comparing an algorithm I tinkered and worked on for months to the GPU version which I just finished, so it’s completely unfair, as the CPU also can utilize more tricks with chunk generation skipping etc… using data that the GPU currently doesn’t yet have"}, {"post_id": 79166, "ts": "2026-10-12T21:05:54Z", "hours": 5.0619, "text": "I am continuing work on my main project, it’s a voxel engine utilizing virtualized geometry and splatting. It’s software rasterized but uses hardware rasterization in some cases. I’ve implemented clouds using raymarching and secondary lights. Currently the light is accelerated using only chunks. Nothing fancy yet but it’s a start"}]...
|
Title: Dreamland by @luxi | Stardance
Devlogs:
I Title: Dreamland by @luxi | Stardance
Devlogs:
I am continuing work on my main project, it’s a voxel engine utilizing virtualized geometry and splatting. It’s software rasterized but uses hardware rasterization in some cases. I’ve implemented clouds using raymarching and secondary lights. Currently the light is accelerated using only chunks. Nothing fancy yet but it’s a start
I’ve implemented the first version of GPU meshing and meshlet generation. It’s about 20 times faster than what my CPU can do (I have an rx 9070 and a 5950x) Also I don’t need to upload all the data so it’s even faster there (it was also quite slow to do) Of course, we are comparing an algorithm I tinkered and worked on for months to the GPU version which I just finished, so it’s completely unfair, as the CPU also can utilize more tricks with chunk generation skipping etc… using data that the GPU currently doesn’t yet have
I am continuing work on gpu meshing and just in general world creation. I improved the mesher by adding full LoD support, and I started a gpu memory allocator. I store the state of each chunk column. So it allowed me to have this progressive mesh generator because I also have made the mesher use batches instead(Which was difficult to add). The blogs are gonna be much more sparse because for me to have something to blog about I need to do a lot of work as all the low hanging fruits were already picked
Grass blades now spawn and work with the progressive terrain generation...
|
1793130650.2547567
|
1793735450.2547567
|
|
58732
|
Novex - AI Drone Swarm by @elkonmechato | Stardanc Novex - AI Drone Swarm by @elkonmechato | Stardance...
|
elkonmechato
|
0
|
23.02
|
0
|
[]
|
[{"post_id": 80521, "ts": "202 [{"post_id": 80521, "ts": "2026-10-18T00:42:55Z", "hours": 4.4536, "text": "Bulit a Smart power manager with STM32 and USB Hub for the RPI uHat, now RPI is able to hold up to 4 usb devices"}, {"post_id": 80243, "ts": "2026-10-16T20:53:42Z", "hours": 11.7428, "text": "Novex uHAT Design - working on connecting the esp32s3 with rpi2Wh and bringing radio commnication, Enviromental Sensors, and lowlevel AI interface to the Drone"}, {"post_id": 69359, "ts": "2026-09-16T21:47:39Z", "hours": 6.8228, "text": "3D Slam Tracking, Custom SuperFast VIO Works on Raspberry Pi Zero 2w"}]...
|
Title: Novex - AI Drone Swarm by @elkonmechato | S Title: Novex - AI Drone Swarm by @elkonmechato | Stardance
Devlogs:
3D Slam Tracking, Custom SuperFast VIO Works on Raspberry Pi Zero 2w
Novex uHAT Design - working on connecting the esp32s3 with rpi2Wh and bringing radio commnication, Enviromental Sensors, and lowlevel AI interface to the Drone
Bulit a Smart power manager with STM32 and USB Hub for the RPI uHat, now RPI is able to hold up to 4 usb devices...
|
1792767085.9300776
|
1793371885.9300776
|
|
46149
|
Weather Station by @lj6218732 | Stardance
|
lj6218732
|
0
|
23.01
|
0
|
[]
|
[{"post_id": 74592, "ts": "202 [{"post_id": 74592, "ts": "2026-09-27T18:14:30Z", "hours": 6.5836, "text": "|Drafted PCB Routing| In the many routing sessions, I was able to completely connect the components on the PCB to each other. The first thing I did was set the second layer to the ground plane in order for all components to have a reference layer. Then, I proceeded to route the power section. I used multiple power puddles, which is a new method that I am trying out. After the power section, I routed the MCU to the Sensors, and then did the RF section. For the RF section, I made sure to add tons of vias in order to protect the sensitive RF line from noise. When refining the routing, I had to reroute many things in order to make space; this is what took the most time of out the whole PCB routing session. All in all, I am ready to start finalizing the draft, and most likely, I am going to ship this project next session."}, {"post_id": 71365, "ts": "2026-09-20T18:09:59Z", "hours": 5.2736, "text": "|FINISHED PCB LAYOUT| In this session, I was able to lay out my PCB. I created a draft Layout and then a final Draft. I split the PCB into 3 sections: Sensors, Power, and RF + inputs. I tried my best to make the PCB visually pleasing while keeping it electrically stable."}, {"post_id": 70392, "ts": "2026-09-19T03:04:26Z", "hours": 4.4172, "text": "|FINISHED SCHEMATIC| Finishing the Schematic and assigning footprints took many sessions, which not all of them were logged. I added some Jumper points to be able to change some values for some of the ICs. Also, I chose actual parts for each component which was very time consuming. Next up is the PCB design."}, {"post_id": 64813, "ts": "2026-09-09T14:21:15Z", "hours": 4.3447, "text": "|FINISHED SCHEMTIC DRAFT| In the many session I put into getting a rough draft of my weather station, I changed some ICs, added new things, and connected everything up. First of all, I added ESD protection ICs to both USB-C ports, and swapped the GPS module I had before, for one with a already integrated GPS receiver. Also, I swapped the AMS1117 3.3V linear regulator for a MCP16362T buck converter that will convert high solar panel voltage to 3.3V more efficiently, therefore saving battery power. Furthermore, I added a cell balancing circuit to keep the battery cells balance to prevent any future damage to the battery cells."}, {"post_id": 57647, "ts": "2026-08-29T21:04:38Z", "hours": 1.0503, "text": "|Started BMS Schematic| In this session, I researched how to build the BMS system and implemented some of the circuitry needed to run the ICs."}, {"post_id": 54259, "ts": "2026-08-25T04:43:35Z", "hours": 0.3858, "text": "|Worked on schematic| In this session I added more of the the decoupling and power components to the ICs, and drafted wiring of USB functionality to both MCUs."}, {"post_id": 53304, "ts": "2026-08-23T19:25:45Z", "hours": 0.5167, "text": "|Organized Schematic| In this session, I added some new ICs and organized the schematic. It took a couple of days of research to start picking a good IC for the battery Management System, but I settled on the LTC4015 from Analog Devices. The LTC4015 supports LiFePO4 battery chemistry and includes built-in power-path circuitry and MPPT for solar panels. I decided on a 2S2P (2 batteries in series, with each series having 2 batteries in parallel) to get good voltage and capacity."}, {"post_id": 49380, "ts": "2026-08-18T05:18:14Z", "hours": 0.4336, "text": "|Started Project| This is my first Session designing my Weather station PCB. I am building a weather station to expand my knowledge of sensors, low-power systems, battery-powered systems, and RF. In this first session, I added most of the sensors that are being used in the weather station and the two MCUs. All in all, this was a quick session to layout all the components I want in my weather station."}]...
|
Title: Weather Station by @lj6218732 | Stardance
Title: Weather Station by @lj6218732 | Stardance
Devlogs:
|Started Project| This is my first Session designing my Weather station PCB. I am building a weather station to expand my knowledge of sensors, low-power systems, battery-powered systems, and RF. In this first session, I added most of the sensors that are being used in the weather station and the two MCUs. All in all, this was a quick session to layout all the components I want in my weather station.
|Organized Schematic| In this session, I added some new ICs and organized the schematic. It took a couple of days of research to start picking a good IC for the battery Management System, but I settled on the LTC4015 from Analog Devices. The LTC4015 supports LiFePO4 battery chemistry and includes built-in power-path circuitry and MPPT for solar panels. I decided on a 2S2P (2 batteries in series, with each series having 2 batteries in parallel) to get good voltage and capacity.
|Worked on schematic| In this session I added more of the the decoupling and power components to the ICs, and drafted wiring of USB functionality to both MCUs.
|Started BMS Schematic| In this session, I researched how to build the BMS system and implemented some of the circuitry needed to run the ICs.
|FINISHED SCHEMTIC DRAFT| In the many session I put into getting a rough draft of my weather station, I changed some ICs, added new things, and connected everything up. First of all, I added ESD protection ICs to both USB-C ports, and swapped the GPS module I had before, for one with a already integrated GPS receiver. Also, I swapped the AMS1117 3.3V linear regulator for a MCP16362T buck converter that will convert high solar panel voltage to 3.3V more efficiently, therefore saving battery power. Furthermore, I added a cell balancing circuit to keep the battery cells balance to prevent any future damage to the battery cells.
|FINISHED SCHEMATIC| Finishing the Schematic and assigning footprints took many sessions, which not all of them were logged. I added some Jumper points to be able to change some values for some of the ICs. Also, I chose actual parts for each component which was very time consuming. Next up is the PCB design.
|FINISHED PCB LAYOUT| In this session, I was able to lay out my PCB. I created a draft Layout and then a final Draft. I split the PCB into 3 sections: Sensors, Power, and RF + inputs. I tried my best to make the PCB visually pleasing while keeping it electrically stable.
|Drafted PCB Routing| In the many routing sessions, I was able to completely connect the components on the PCB to each other. The first thing I did was set the second layer to the ground plane in order for all components to have a reference layer. Then, I proceeded to route the power section. I used multiple power puddles, which is a new method that I am trying out. After the power section, I routed the MCU to the Sensors, and then did the RF section. For the RF section, I made sure to add tons of vias in order to protect the sensitive RF line from noise. When refining the routing, I had to reroute many things in order to make space; this is what took the most time of out the whole PCB routing session. All in all, I am ready to start finalizing the draft, and most likely, I am going to ship this project next session....
|
1792651872.2376623
|
1793256672.2376623
|
|
2937
|
Lexicon - Reading Tracker by @SilverCanvas | Stard Lexicon - Reading Tracker by @SilverCanvas | Stardance...
|
SilverCanvas
|
1
|
23.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-08T12:57:17Z", "hours": 23.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made Lexicon - a reading tracking web app to keep track of books. This project allowed me to progress my python skills while also making an application accessible on the web by using the Streamlit python library. This was my first project that I used OOP in, with the use of books as objects of the book class. Additionally this was the first time I used an API, which is used to get the book data including name, author, publication year and cover image. If you want to test the app, head to the search page and add your favourite book. A books tags can be changed from the library page and books tagged as “reading” can have progress added from the homepage.", "repo": "https://github.com/SilverCanvas72/Lexicon-ReadingTracker", "demo": "https://lexiconreadingtracker.streamlit.app"}]...
|
[{"post_id": 41118, "ts": "202 [{"post_id": 41118, "ts": "2026-08-05T03:28:10Z", "hours": 5.2314, "text": "Ive been working on the library page and allowing the books to be filtered. This involved figuring out how to make images clickable which apparently is not a native feature with streamlit. The filtering now works for the book’s statuses but I am yet to fix an error meaning the wrong popup is displayed when clicking on the book from the library page"}, {"post_id": 38182, "ts": "2026-07-31T13:30:36Z", "hours": 6.0869, "text": "I have linked up the input widgets to actually save to the user’s local JSON file. The status input was not displaying properly and was showing the same status for each of the books no matter what was saved, after I fixed this I had a bug relating to the status and tag inputs that had to do with the save not writting properly before the popup was closed, resulting in the user having to double click everything. This is now fixed and the current inputs all work, save and reload properly!"}, {"post_id": 32724, "ts": "2026-07-22T01:45:23Z", "hours": 5.3981, "text": "Layouts for Popups and JSON Storage Functions. I have made the popups layout, though this data does not currently save anywhere. I have also setup the save and load functions so that the users data can be reloaded when they leave and re-enter the site."}, {"post_id": 18841, "ts": "2026-06-30T01:23:03Z", "hours": 1.4942, "text": "Test Data and Book Rendering I created some test data for developing the basic functionality of the app before I try to incorporate the Open Libraries API to import books. I then worked on rendering the books on the homepage how I plan to place them in the currently reading section, this included creating a method to display a books cover given its isbn."}, {"post_id": 17470, "ts": "2026-06-28T08:27:59Z", "hours": 4.485, "text": "Setup, Sidebar Navigation & Classes. I have setup my project and its pages. I am using Streamlit to make this website - something I have not used before. I have implemented a sidebar for navigation between the pages. I then planned out and wrote the basis for the classes and objects for the program. I also figured out how to inject the css to the python file so I can write the css for the application in a seperate file, as well as configuring the fonts for the headings."}]...
|
Title: Lexicon - Reading Tracker by @SilverCanvas Title: Lexicon - Reading Tracker by @SilverCanvas | Stardance
Devlogs:
Setup, Sidebar Navigation & Classes. I have setup my project and its pages. I am using Streamlit to make this website - something I have not used before. I have implemented a sidebar for navigation between the pages. I then planned out and wrote the basis for the classes and objects for the program. I also figured out how to inject the css to the python file so I can write the css for the application in a seperate file, as well as configuring the fonts for the headings.
Test Data and Book Rendering I created some test data for developing the basic functionality of the app before I try to incorporate the Open Libraries API to import books. I then worked on rendering the books on the homepage how I plan to place them in the currently reading section, this included creating a method to display a books cover given its isbn.
Layouts for Popups and JSON Storage Functions. I have made the popups layout, though this data does not currently save anywhere. I have also setup the save and load functions so that the users data can be reloaded when they leave and re-enter the site.
I have linked up the input widgets to actually save to the user’s local JSON file. The status input was not displaying properly and was showing the same status for each of the books no matter what was saved, after I fixed this I had a bug relating to the status and tag inputs that had to do with the save not writting properly before the popup was closed, resulting in the user having to double click everything. This is now fixed and the current inputs all work, save and reload properly!
Ive been working on the library page and allowing the books to be filtered. This involved figuring out how to make images clickable which apparently is not a native feature with streamlit. The filtering now works for the book’s statuses but I am yet to fix an error meaning the wrong popup is displayed when clicking on the book from the library page
Ships:
I made Lexicon - a reading tracking web app to keep track of books. This project allowed me to progress my python skills while also making an application accessible on the web by using the Streamlit python library. This was my first project that I used OOP in, with the use of books as objects of the book class. Additionally this was the first time I used an API, which is used to get the book data including name, author, publication year and cover image. If you want to test the app, head to the search page and add your favourite book. A books tags can be changed from the library page and books tagged as “reading” can have progress added from the homepage....
|
1793148697.8232949
|
1793235097.8232949
|
|
5711
|
gdot 2d game by @jonathanwillner | Stardance
|
jonathanwillner
|
0
|
23.0
|
0
|
[]
|
[{"post_id": 8993, "ts": "2026 [{"post_id": 8993, "ts": "2026-06-15T00:02:13Z", "hours": 15.0, "text": "i dont rember proboly make a careter and trying to get godot 2d to work and failing cus it dislikes me"}, {"post_id": 31360, "ts": "2026-07-19T18:03:06Z", "hours": 1.0, "text": "Goal: Create the foundation for the electricity puzzle game.✅ what i did today Chose Godot 2D as the engine. Decided on a grid-based puzzle system. Planned a simple flat + pixel art style. Created the basic project structure. Designed the gameplay concept: designed Placeing the electrical components. with the current Design The player will: Receive limited components. Place them on a grid. Connect electricity. Solve puzzles."}, {"post_id": 32528, "ts": "2026-07-21T19:20:30Z", "hours": 4.0, "text": "i made the assets for the different components ik thay suck im not good at pixilart art or art"}, {"post_id": 33009, "ts": "2026-07-22T15:37:57Z", "hours": 3.0, "text": "What I got done today Made the assets for the different orientations of the wire Component Placement System Finished the basic component placement system. Components now spawn on the grid where the player clicks. Added support for: 🔋 Battery ➖ Wire 💡 Light 🔘 Switch Component Selection Added toolbar buttons for selecting components. Fixed GameManager communication between: Toolbar Board Components Players can now choose what they want to build before placing it. Placement Preview System Added a ghost preview system. Now when selecting a component: A transparent preview appears. The preview follows the mouse. The preview snaps to the grid. Changing the selected component updates the preview."}]...
|
Title: gdot 2d game by @jonathanwillner | Stardanc Title: gdot 2d game by @jonathanwillner | Stardance
Devlogs:
What I got done today Made the assets for the different orientations of the wire Component Placement System Finished the basic component placement system. Components now spawn on the grid where the player clicks. Added support for: 🔋 Battery ➖ Wire 💡 Light 🔘 Switch Component Selection Added toolbar buttons for selecting components. Fixed GameManager communication between: Toolbar Board Components Players can now choose what they want to build before placing it. Placement Preview System Added a ghost preview system. Now when selecting a component: A transparent preview appears. The preview follows the mouse. The preview snaps to the grid. Changing the selected component updates the preview.
i made the assets for the different components ik thay suck im not good at pixilart art or art
Goal: Create the foundation for the electricity puzzle game.✅ what i did today Chose Godot 2D as the engine. Decided on a grid-based puzzle system. Planned a simple flat + pixel art style. Created the basic project structure. Designed the gameplay concept: designed Placeing the electrical components. with the current Design The player will: Receive limited components. Place them on a grid. Connect electricity. Solve puzzles.
i dont rember proboly make a careter and trying to get godot 2d to work and failing cus it dislikes me...
|
1792885947.2594018
|
1793749947.2594018
|
|
5924
|
stockpanda by @pizzalover125 | Stardance
|
pizzalover125
|
1
|
23.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-27T22:37:57Z", "hours": 23.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Stockpanda is an open-source chess engine made with Python that can be played through a custom web GUI! Creating an engine is extremely technical, so I had to do thorough research on the different alogrithms to make the engine better and better. I’m proud that my GUI has such a smooth user interface, as well as the fact that my engine is extremely strong! Building this was a blast :)", "repo": "https://github.com/pizzalover125/stockpanda", "demo": "https://stockpanda.vercel.app/"}]...
|
[{"post_id": 17212, "ts": "202 [{"post_id": 17212, "ts": "2026-06-27T22:31:42Z", "hours": 0.2747, "text": "did a final run-through of the app, tweaked some settings, deployed, and created a banner in Figma!"}, {"post_id": 17192, "ts": "2026-06-27T22:03:20Z", "hours": 1.6372, "text": "implemented two pieces of polish: victory confetti screen shake + sound effect on illegal moves these changes were not too difficult, but I did run into a couple of bugs. i think i’m ready to ship! not much i think i can add at this point."}, {"post_id": 16620, "ts": "2026-06-27T01:17:03Z", "hours": 1.1508, "text": "implemented difficulty levels! they just adjust the search depth and the maximum time spent. pretty simple to implement!"}, {"post_id": 16383, "ts": "2026-06-26T17:40:00Z", "hours": 1.7242, "text": "made the move history travel-able! now, you can go backwards and forwards through the game’s history. there were bugs with this feature, but it works perfectly now!"}, {"post_id": 15408, "ts": "2026-06-25T01:30:30Z", "hours": 1.8711, "text": "added more customization! there are now more options for customizing the time, board, piece, and now sound themes. this wasn’t too difficult; just tedious."}, {"post_id": 15309, "ts": "2026-06-24T21:19:04Z", "hours": 0.37, "text": "deployed this on Vercel! had to change a couple of things and vercel had some issues with the build, but i got it figured out! go to stockpanda.vercel.app!"}, {"post_id": 15261, "ts": "2026-06-24T19:36:39Z", "hours": 1.3167, "text": "implemented premoves! now you can make moves before the engine makes a move; similar to chess.com and lichess.org. i couldn’t get a screenshot cause it takes some time, so try it out yourself!"}, {"post_id": 15126, "ts": "2026-06-24T16:08:04Z", "hours": 1.1042, "text": "added board annotations! if you’ve ever used chess.com or lichess, you would know you can highlight squares and draw arrows. now, you can do that on stock panda! implementing this was a lot easier than i thought, ngl. pretty smooth sailing."}, {"post_id": 14833, "ts": "2026-06-24T03:00:32Z", "hours": 1.3725, "text": "made it responsive on mobile! i came across a lot of bugs with it not working but i eventually got through the bugs. to accomplish this, i also ended up adding functionality to make moves by clicking instead of dragging. some people like it that way."}, {"post_id": 14605, "ts": "2026-06-23T19:36:28Z", "hours": 0.7114, "text": "implemented a notation system on the side, similar to how chess.com andlichess.org do it. pretty simple, other than visual bugs with weird scrolling problems. super clean tho!"}, {"post_id": 14541, "ts": "2026-06-23T18:07:53Z", "hours": 1.4267, "text": "implemented custom themes! now you can fully customize the look and feel of your chess game against Stock Panda! I love how intuitive the UI/UX is"}, {"post_id": 14128, "ts": "2026-06-23T03:27:51Z", "hours": 0.9108, "text": "implemented a clock! now you can play rapid, blitz, and bullet games with my chess engine!"}, {"post_id": 14014, "ts": "2026-06-23T00:08:18Z", "hours": 1.6136, "text": "transformed the UI of the application. added extremely satisfying sounds that im genuniely so proud of. made it look like chess.com cause people recognize that. also, you can choose to play as black or white, which is really cool! finally, there are now animations for the computer’s moves."}, {"post_id": 5223, "ts": "2026-06-08T22:39:24Z", "hours": 0.5694, "text": "implemented phase-based evaluation! essentially, the engine changes based on the phase of the game (opening, middlegame, endgame). for example, you want to have your king active in the endgame but safe in the opening. thats what this change does!"}, {"post_id": 4539, "ts": "2026-06-07T21:42:44Z", "hours": 0.4444, "text": "implemented endgame tablebases! essentially, chess is solved with 7 pieces or fewer. so instead of trying to calculate the perfect move in a complicated position, we can just look it up in a precomputed database of all positions with 7 pieces or fewer. this is a huge boost for endgame play, and also lets the engine play perfectly in those positions instead of relying on heuristics. the syzygy tablebases are the standard in the chess programming community, so i used them!"}, {"post_id": 4475, "ts": "2026-06-07T20:06:43Z", "hours": 0.6053, "text": "implemented an opening book! essentially, for common openings, the engine has a file of the best moves in those common positions. this makes it a lot better (and faster) at the opening stage. implementing it was pretty difficult because of some issues with the book file, but it eventually worked!"}, {"post_id": 4440, "ts": "2026-06-07T19:18:03Z", "hours": 0.8325, "text": "implemented transition tables! essentially, transition tables cache evaluations to reuse if the position is achieved through a different set of moves (transposition)."}, {"post_id": 3709, "ts": "2026-06-06T19:19:05Z", "hours": 0.8528, "text": "implemented quiessence search! basically, the engine keeps searching until the position becomes stable. for example, lets say the user can trade queens on move 5. it would see that and think that line is winning, but fails to see past move 5 where the opponent can recapture the queen. this 5-depth barrier is known as the horizon effect!"}, {"post_id": 2973, "ts": "2026-06-05T21:50:16Z", "hours": 0.4986, "text": "creating logo for stockpanda! it looks pretty cool to me, ngl. made in Figma. pretty simple but straight to the point. modeled after stockfish logo"}, {"post_id": 2903, "ts": "2026-06-05T20:10:39Z", "hours": 1.1783, "text": "added iterative deepening! essentially, it has a max thinking time and thinks as much as possible in that time. this makes it way faster!"}, {"post_id": 2436, "ts": "2026-06-04T22:38:09Z", "hours": 0.6431, "text": "added alpha-beta pruning! basically, if a branch in the tree is already bad, then my engine stops looking at the line (ex: blunders queen on move one, no need to look at that line). only 26 lines changed, but it was difficult to implement and i kept facing errors."}, {"post_id": 1572, "ts": "2026-06-03T17:49:42Z", "hours": 1.0183, "text": "basic minimax algorithm implemented with piece values and piece square tables to make it decently accurate"}, {"post_id": 1523, "ts": "2026-06-03T16:30:30Z", "hours": 0.8942, "text": "created the board and legal move logic!"}, {"post_id": 1240, "ts": "2026-06-03T02:56:04Z", "hours": 0.3089, "text": "took notes on chess engine design and created a course of action"}]...
|
Title: stockpanda by @pizzalover125 | Stardance
D Title: stockpanda by @pizzalover125 | Stardance
Devlogs:
took notes on chess engine design and created a course of action
created the board and legal move logic!
basic minimax algorithm implemented with piece values and piece square tables to make it decently accurate
added alpha-beta pruning! basically, if a branch in the tree is already bad, then my engine stops looking at the line (ex: blunders queen on move one, no need to look at that line). only 26 lines changed, but it was difficult to implement and i kept facing errors.
added iterative deepening! essentially, it has a max thinking time and thinks as much as possible in that time. this makes it way faster!
creating logo for stockpanda! it looks pretty cool to me, ngl. made in Figma. pretty simple but straight to the point. modeled after stockfish logo
implemented quiessence search! basically, the engine keeps searching until the position becomes stable. for example, lets say the user can trade queens on move 5. it would see that and think that line is winning, but fails to see past move 5 where the opponent can recapture the queen. this 5-depth barrier is known as the horizon effect!
implemented transition tables! essentially, transition tables cache evaluations to reuse if the position is achieved through a different set of moves (transposition).
implemented an opening book! essentially, for common openings, the engine has a file of the best moves in those common positions. this makes it a lot better (and faster) at the opening stage. implementing it was pretty difficult because of some issues with the book file, but it eventually worked!
implemented endgame tablebases! essentially, chess is solved with 7 pieces or fewer. so instead of trying to calculate the perfect move in a complicated position, we can just look it up in a precomputed database of all positions with 7 pieces or fewer. this is a huge boost for endgame play, and also lets the engine play perfectly in those positions instead of relying on heuristics. the syzygy tablebases are the standard in the chess programming community, so i used them!
implemented phase-based evaluation! essentially, the engine changes based on the phase of the game (opening, middlegame, endgame). for example, you want to have your king active in the endgame but safe in the opening. thats what this change does!
transformed the UI of the application. added extremely satisfying sounds that im genuniely so proud of. made it look like chess.com cause people recognize that. also, you can choose to play as black or white, which is really cool! finally, there are now animations for the computer’s moves.
implemented a clock! now you can play rapid, blitz, and bullet games with my chess engine!
implemented custom themes! now you can fully customize the look and feel of your chess game against Stock Panda! I love how intuitive the UI/UX is
implemented a notation system on the side, similar to how chess.com andlichess.org do it. pretty simple, other than visual bugs with weird scrolling problems. super clean tho!
made it responsive on mobile! i came across a lot of bugs with it not working but i eventually got through the bugs. to accomplish this, i also ended up adding functionality to make moves by clicking instead of dragging. some people like it that way.
added board annotations! if you’ve ever used chess.com or lichess, you would know you can highlight squares and draw arrows. now, you can do that on stock panda! implementing this was a lot easier than i thought, ngl. pretty smooth sailing.
implemented premoves! now you can make moves before the engine makes a move; similar to chess.com and lichess.org. i couldn’t get a screenshot cause it takes some time, so try it out yourself!
deployed this on Vercel! had to change a couple of things and vercel had some issues with the build, but i got it figured out! go to stockpanda.vercel.app!
added more customization! there are now more options for customizing the time, board, piece, and now sound themes. this wasn’t too difficult; just tedious.
made the move history travel-able! now, you can go backwards and forwards through the game’s history. there were bugs with this feature, but it works perfectly now!
implemented difficulty levels! they just adjust the search depth and the maximum time spent. pretty simple to implement!
implemented two pieces of polish: victory confetti screen shake + sound effect on illegal moves these changes were not too difficult, but I did run into a couple of bugs. i think i’m ready to ship! not much i think i can add at this point.
did a final run-through of the app, tweaked some settings, deployed, and created a banner in Figma!
Ships:
Stockpanda is an open-source chess engine made with Python that can be played through a custom web GUI! Creating an engine is extremely technical, so I had to do thorough research on the different alogrithms to make the engine better and better. I’m proud that my GUI has such a smooth user interface, as well as the fact that my engine is extremely strong! Building this was a blast :)...
|
1792392445.9440272
|
1793256445.9440272
|
|
6550
|
Leading Zeros Utility by @infinite_silly | Stardan Leading Zeros Utility by @infinite_silly | Stardance...
|
infinite_silly
|
2
|
23.0
|
304
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-07T21:43:33Z", "hours": 17.0, "multiplier": 17.27, "payout": 289, "blessing": "neutral", "text": "Hello everyone! I was working on some Project Euler problems, and I realised that my solutions weren’t sorting correctly because they didn’t have any leading zeros in the numeric portion of their filenames. The same issue happened for my Advent of Code solutions once I hit day 10. I realised I could automate this, and the leading-zero-util was born. It slowly grew from a little, mediocre script to a decently-ish written CLI tool with proper unit tests, a Homebrew tap, a man page, and completions. If you want a better look at the development process than just the devlogs, please check out my commits on GitHub. If you are going to install the LZU, I also recommend that you use the Homebrew tap rather than the crates.io release, the instructions for which are in the README.", "repo": "https://github.com/KaonQuantum/leading-zero-util", "demo": "https://crates.io/crates/leading-zero-util"}, {"ship_num": 2, "ts": "2026-06-10T15:04:30Z", "hours": 6.0, "multiplier": 2.57, "payout": 15, "blessing": "neutral", "text": "I made a utility to change the number of leading zeros in filenames! I was working on Project Euler and had to add a leading zero to all my filenames, which was tedious, so I made this!", "repo": "https://github.com/KaonQuantum/leading-zero-util", "demo": "https://crates.io/crates/leading-zero-util"}]...
|
[{"post_id": 42843, "ts": "202 [{"post_id": 42843, "ts": "2026-08-07T19:41:19Z", "hours": 0.9986, "text": "Drop it Like it’s Hot THIS IS THE FINAL DEVLOG!!!! We got a working release! After my last devlog, I added some unit tests for skip_rename(), and I added the Github default Rust workflow with some modifications to the repo to automatically test any new commits against the test suit, which is most of my codebase. Also added a test workflow to the homebrew tap so it’s easier to see that all is working."}, {"post_id": 42489, "ts": "2026-08-07T08:00:31Z", "hours": 1.3761, "text": "Refactor I’m going to keep this one quick because it just got deleted for being too long. The previously mentioned behaviour of overwriting filenames has been fixed and has it’s own unit test now. It was given an exception before the actual rename. All the rename logic was duplicated between dec and !dec, so I flattened that. I pulled out the pre-rename exception logic into a new helper: skip_rename(). It needs unit tests of its own. Byyyeeeeee!!!"}, {"post_id": 42432, "ts": "2026-08-07T04:14:30Z", "hours": 1.0014, "text": "I’m Smart but I’m Bad at Taking Tests Hello again! You know what they say, new commit, new devlog! “[Test] Torsion” We got MORE UNIT TESTS!!! The get_filenames() fn was formerly the only function in helpers.rs that had no unit tests, so I added 6 unit tests for it. They have about the same general structure as the unit tests for change_leading_zeros(). Beautification I was trying to make my code prettier, and I accidentally screwed up an ownership issue. My unit tests made use of tempdirs with the tempfile crate to test change_leading_zeros() and get_filenames. This is the original pattern for getting the temp dir’s path: let binding = tempdir () .unwrap (); let dir = binding .path (); // stuff can be done with dir now This is what I changed it to: let dir = tempdir () .unwrap () .path () .to_owned (); When the tempdir gets dropped, it also deletes the directory, which makes dir a path to a dir that doesn’t exist. Everything compiles fine, but the code panics because the tempdir doesn’t exist. Override Something I forgot to mention in my last devlog is that if there was the files file1.txt and file01.txt, it (c/w)ould rename over one of the files and silently delete the file written over. I still have to fix this issue. I’ve wanted to learn Zig, so I looked up Zig crash courses on Youtube, and this is from the one I was watching."}, {"post_id": 42339, "ts": "2026-08-07T00:40:04Z", "hours": 2.7222, "text": "Testing Tests Hello again! I can’t believe we’re on devlog #8, considering I have been doing pretty sparse devlogs! if true { allTestsPass } IT’S UNIT TEST TIIIIIME!!! I added 13 unit tests to my big change_leading_zeros() function. They cover most, if not all, possible edge cases. Rename file11 -> file11 I discovered that in change_leading_zeros(), if the resulting new filename was the same as the old, would still do the rename, and it would count as a renamed file, so that the actual number of renamed files would be too large. Hating on for loops as much as the functional bros. I realised that my get_filenames() fn, which still has no unit tests, could be swapped to an iterator structure. old: pub fn get_filenames ( path : & Path ) -> Vec < String > { let mut names = Vec :: new (); if let Ok ( read_dir ) = fs :: read_dir ( path ) { for file in read_dir .flatten () { names .push ( file .file_name () .into_string () .unwrap_or ( \"unknown name\" .into ()), ); } } names } pub fn get_filenames ( path : & Path ) -> Vec < String > { fs :: read_dir ( path ) .into_iter () .flatten () .flatten () .map (| f | f .file_name () .into_string () .unwrap_or ( \"unknown name\" .into ())) .collect () } The two functions behave in exactly the same way, no unnecesary unwrap()s that may cause panics See y’all next devlog!"}, {"post_id": 41806, "ts": "2026-08-06T07:38:58Z", "hours": 2.0653, "text": "Testing, Testing, 1 2 3 Here’s what I’ve been working on to try to get a good, stable release. I Need an Extension I discovered that when doing the normalising add, the one that’s like problem-1.txt, problem-11.rs (-n 1) -> problem-01.txt, problem-11.rs (keeps the same total length of the numeric portion), it actually counts the extension characters, so the result would actually be problem-01.txt, problem-011.rs because the extensions are different lengths. Previously, the find_target() function was like this: pub fn find_target ( filenames : & Vec < String > , count : usize ) -> usize { let mut minimum = usize :: MAX ; for file in filenames { let ( dot_index , cond ) = check_file ( file ); if cond { continue ; } let split_index = find_split_index ( file , dot_index ); minimum = minimum .min ( file [ split_index .. ] .len ()); } minimum + count } Now, it’s pub fn find_target ( filenames : & Vec < String > , count : usize ) -> usize { let mut minimum = usize :: MAX ; let mut is_numeric : bool = false ; for file in filenames { let ( dot_index , cond ) = check_file ( file ); if cond { continue ; } let split_index = find_split_index ( file , dot_index ); minimum = minimum .min ( file [ split_index .. dot_index ] .len ()); is_numeric = true ; } if is_numeric { minimum + count } else { 0 } } Now the target isn’t the shortest number of characters in the numeric portion plus the extension, it’s just the extension. The is_numeric variable is just there so that it doesn’t try to add count to usize::MAX, getting an overflow if there are no files with numeric suffixes. sleep(); sleep(); sleep(); allTestsPass(); The last step before 1.0.0 is UNIT TESTS!!!!!! The easiest unit tests to write are ones for my functions in helpers.rs, including find_target(), check_file(), find_split_index(), and get_filenames(). I wrote 15 unit tests for the first three, and I might write some for get_filenames after I write some for change_leading_zeros(). While writing the unit tests, I stumbled upon the edge case for find_target if there are no applicable files, which is why I added the is_numeric above. The next step is writing the aforementioned unit tests for change_leading_zeros()."}, {"post_id": 41550, "ts": "2026-08-05T20:43:11Z", "hours": 1.3689, "text": "Crack a Brewski with the Boys Much Abrew about Nothing, pt. 2 Got the homebrew tap working! Not much to say, except that it is a tad annoying to have to have a separate repo just for the tap. Compleated Because of the Homebrew tap, I decided to swap the non-nushell completions to a hidden flag, so you can run them with –generate-completions zsh/bash/fish/elvish/powershell to create the completions file, which the tap can do at install time for zsh, bash, and fish. Unfortunately, it can’t do it for elvish, powershell, or nushell, so you have to manually install completions for those three. Man(chester United) Because I now have a homebrew tap, installing man files is much easier. I brought back my old clap_mangen code for build.rs, and added a line to the formula, so now man generation works!"}, {"post_id": 41176, "ts": "2026-08-05T06:57:49Z", "hours": 0.9675, "text": "Much Abrew About Nothing Since the failure that was clap_mangen, I have been considering a homebrew release, because then I can more easily have the man files and completions be installed, and I would do homebrew specifically since it is the main package manager I use, and it kind of works on everything. I was using Claude Code to teach me how to create the tap, but I unfortunately ran through my limit and $100 of usage credits I got for free when Fable 5 dropped off my plan on a separate data entry task running with Claude Chrome, so I need to do some testing of the tap. See y’all next devlog!"}, {"post_id": 40506, "ts": "2026-08-04T02:47:49Z", "hours": 1.2161, "text": "Completionism A few days ago, I looked up clap on crates.io , and realised there were many crates built to add functionality to CLAP, like clap_mangen, clap-version-flag, and more. The two this devlog is about are clap_complete and clap_complete_nushell. These two allow for the generation of shell completions; clap_complete supports Bash, Zsh, Fish, Elvish, and PowerShell; clap_complete_nushell adds nushell support. The standard package has a new (in-development) feature that allows for the binary itself to be the completion script, allowing for more minimal user setup if downloading from crates.io†. The nushell version does not have this feature, so you have to run it with a special flag and save the output to a completions file in ~/.config/nushell/completions/leading-zero-util.nu. † crates.io doesn’t have an install step so it doesn’t look in the OUT_DIR at build time, so it doesn’t pick up files like the completion files. This same issue is why I chose not to use clap_mangen, since I only currently distribute through crates.io. If I later make a Homebrew tap, I’ll probably change the way the completions are done and re-add clap_mangen."}, {"post_id": 40305, "ts": "2026-08-03T18:53:22Z", "hours": 1.7167, "text": "Breaking it up Divide and Conquer When I was setting up my build.rs to use clap_mangen, I had to separate my CLI arg parser construct from the rest of my code and put it in a new file. I also realised that some of my code in my (basically) main function (change_leading_zeros()) was repetitive and could be extracted into functions. My change_leading_zeros() was extremely long and deserved its own file. Even after moving a ton of code into helpers.rs, it’s still 78 lines long, thoroughly violating Uncle Bob’s standards. (Granted, his standards are bad, and Uncle Bob could go trip on a log for all I care) I have never worked in a multi-file project before, not even for my Pong game, which is just 747 lines of code all in one file, and it could have easily been broken up into more files. I have a really fast scrolling speed on my laptop, to the point of it being almost unusable, so scrolling all the code in that project was annoying. Because I have never made a multi-file Rust project before, I had no idea what I was doing. I ran into a ton of errors, including my LSP stopping working, so I didn’t have autocomplete or clippy linting for one of my files for a bit, so I got even more confused. Now, fortunately, everything works now, and I even found some issues in my code (an if condition with an OR in which the first part of the OR was redundant; a for loop that instead could have been an iterator chain; a variable that stayed mutable after mutability was unnecessary), so it was an overall great success! Illiteracymaxxing Previously, I mentioned that the LZU operates off of a target length for file names, so having a schema like file01.txt project02.rs problem03.py wouldn’t work, but I was dead wrong. I haven’t worked on the project in a month and a half, and when reading over my code to see what it does, I mistook target as the target filename length, not the target length of the numeric portion. I thus removed the warnings associated with what I believed to be a behaviour of the LZU from the short help, long help, and README. The lesson is maybe to double-check with a friend or smth when you get confused by your own code."}, {"post_id": 39787, "ts": "2026-08-02T23:58:27Z", "hours": 1.5247, "text": "Google: “How to use leading-zero-util?” A couple things have happened since the last devlog, so let’s go through them! Flatten Until today, and we will get to why, all the code was in src/main.rs, which made it harder to deal with and harder to work with. I moved the Cli struct (the clap parser struct) to a new file, src/cli.rs, so it’s a little more readable now. Man Down! As I mentioned in my last devlog, I was going to use the clap_mangen crate to generate a man file for the leading-zero-util. I set it up and created a build.rs, but realised that crates.io wouldn’t do anything with the man files, so you can’t run man leading-zero-util. This was v0.4.0 (We are now on v0.5.0). The benefit of a man file is minuscule, and I can always add it back to my build.rs. It wasn’t worth the extra dependencies, so I dropped it. Reading the version message explains the version message. I was previously considering the clap-version-flag crate for a better version message, but realised it would add basically nothing, and it isn’t well maintained. I decided instead to use shadow-rs for a better long version. I had deleted my build.rs, so I made a new one and added shadow-rs to the code."}, {"post_id": 39347, "ts": "2026-08-02T08:21:29Z", "hours": 1.7653, "text": "Leading with Zeros, ending with .txt Hello everyone! Dusting off my leading zero utility after finishing up Pong, and there were some issues! The F in BSMRCDF I realised that my utility didn’t work for filenames with extensions (no problem-01.rs or mediocre-01.py), so that needed to be fixed. Look for the helpers The CLI uses a target length for non-basic additions, so it only works on filenames with nonnumeric sections of the same length (target-01.rs, project-11.rs), but not problem-11 & target-01. Consequently, the help sections need to warn about this. I also added some more examples at the bottom of the long help. Man the stall This isn’t as much of an issue as something I just found out about. There is a crate, clap_mangen , THAT LETS YOU GENERATE MAN DOCS, which I feel I feel way more excitement than it warrants. This is the next step for this project. See y’all next devlog!"}, {"post_id": 6262, "ts": "2026-06-10T14:57:57Z", "hours": 5.8289, "text": "Leading Zero Util 0.2.0 is complete!"}]...
|
Title: Leading Zeros Utility by @infinite_silly | Title: Leading Zeros Utility by @infinite_silly | Stardance
Devlogs:
Leading Zero Util 0.2.0 is complete!
Leading with Zeros, ending with .txt Hello everyone! Dusting off my leading zero utility after finishing up Pong, and there were some issues! The F in BSMRCDF I realised that my utility didn’t work for filenames with extensions (no problem-01.rs or mediocre-01.py), so that needed to be fixed. Look for the helpers The CLI uses a target length for non-basic additions, so it only works on filenames with nonnumeric sections of the same length (target-01.rs, project-11.rs), but not problem-11 & target-01. Consequently, the help sections need to warn about this. I also added some more examples at the bottom of the long help. Man the stall This isn’t as much of an issue as something I just found out about. There is a crate, clap_mangen , THAT LETS YOU GENERATE MAN DOCS, which I feel I feel way more excitement than it warrants. This is the next step for this project. See y’all next devlog!
Google: “How to use leading-zero-util?” A couple things have happened since the last devlog, so let’s go through them! Flatten Until today, and we will get to why, all the code was in src/main.rs, which made it harder to deal with and harder to work with. I moved the Cli struct (the clap parser struct) to a new file, src/cli.rs, so it’s a little more readable now. Man Down! As I mentioned in my last devlog, I was going to use the clap_mangen crate to generate a man file for the leading-zero-util. I set it up and created a build.rs, but realised that crates.io wouldn’t do anything with the man files, so you can’t run man leading-zero-util. This was v0.4.0 (We are now on v0.5.0). The benefit of a man file is minuscule, and I can always add it back to my build.rs. It wasn’t worth the extra dependencies, so I dropped it. Reading the version message explains the version message. I was previously considering the clap-version-flag crate for a better version message, but realised it would add basically nothing, and it isn’t well maintained. I decided instead to use shadow-rs for a better long version. I had deleted my build.rs, so I made a new one and added shadow-rs to the code.
Breaking it up Divide and Conquer When I was setting up my build.rs to use clap_mangen, I had to separate my CLI arg parser construct from the rest of my code and put it in a new file. I also realised that some of my code in my (basically) main function (change_leading_zeros()) was repetitive and could be extracted into functions. My change_leading_zeros() was extremely long and deserved its own file. Even after moving a ton of code into helpers.rs, it’s still 78 lines long, thoroughly violating Uncle Bob’s standards. (Granted, his standards are bad, and Uncle Bob could go trip on a log for all I care) I have never worked in a multi-file project before, not even for my Pong game, which is just 747 lines of code all in one file, and it could have easily been broken up into more files. I have a really fast scrolling speed on my laptop, to the point of it being almost unusable, so scrolling all the code in that project was annoying. Because I have never made a multi-file Rust project before, I had no idea what I was doing. I ran into a ton of errors, including my LSP stopping working, so I didn’t have autocomplete or clippy linting for one of my files for a bit, so I got even more confused. Now, fortunately, everything works now, and I even found some issues in my code (an if condition with an OR in which the first part of the OR was redundant; a for loop that instead could have been an iterator chain; a variable that stayed mutable after mutability was unnecessary), so it was an overall great success! Illiteracymaxxing Previously, I mentioned that the LZU operates off of a target length for file names, so having a schema like file01.txt project02.rs problem03.py wouldn’t work, but I was dead wrong. I haven’t worked on the project in a month and a half, and when reading over my code to see what it does, I mistook target as the target filename length, not the target length of the numeric portion. I thus removed the warnings associated with what I believed to be a behaviour of the LZU from the short help, long help, and README. The lesson is maybe to double-check with a friend or smth when you get confused by your own code.
Completionism A few days ago, I looked up clap on crates.io , and realised there were many crates built to add functionality to CLAP, like clap_mangen, clap-version-flag, and more. The two this devlog is about are clap_complete and clap_complete_nushell. These two allow for the generation of shell completions; clap_complete supports Bash, Zsh, Fish, Elvish, and PowerShell; clap_complete_nushell adds nushell support. The standard package has a new (in-development) feature that allows for the binary itself to be the completion script, allowing for more minimal user setup if downloading from crates.io†. The nushell version does not have this feature, so you have to run it with a special flag and save the output to a completions file in ~/.config/nushell/completions/leading-zero-util.nu. † crates.io doesn’t have an install step so it doesn’t look in the OUT_DIR at build time, so it doesn’t pick up files like the completion files. This same issue is why I chose not to use clap_mangen, since I only currently distribute through crates.io. If I later make a Homebrew tap, I’ll probably change the way the completions are done and re-add clap_mangen.
Much Abrew About Nothing Since the failure that was clap_mangen, I have been considering a homebrew release, because then I can more easily have the man files and completions be installed, and I would do homebrew specifically since it is the main package manager I use, and it kind of works on everything. I was using Claude Code to teach me how to create the tap, but I unfortunately ran through my limit and $100 of usage credits I got for free when Fable 5 dropped off my plan on a separate data entry task running with Claude Chrome, so I need to do some testing of the tap. See y’all next devlog!
Crack a Brewski with the Boys Much Abrew about Nothing, pt. 2 Got the homebrew tap working! Not much to say, except that it is a tad annoying to have to have a separate repo just for the tap. Compleated Because of the Homebrew tap, I decided to swap the non-nushell completions to a hidden flag, so you can run them with –generate-completions zsh/bash/fish/elvish/powershell to create the completions file, which the tap can do at install time for zsh, bash, and fish. Unfortunately, it can’t do it for elvish, powershell, or nushell, so you have to manually install completions for those three. Man(chester United) Because I now have a homebrew tap, installing man files is much easier. I brought back my old clap_mangen code for build.rs, and added a line to the formula, so now man generation works!
Testing, Testing, 1 2 3 Here’s what I’ve been working on to try to get a good, stable release. I Need an Extension I discovered that when doing the normalising add, the one that’s like problem-1.txt, problem-11.rs (-n 1) -> problem-01.txt, problem-11.rs (keeps the same total length of the numeric portion), it actually counts the extension characters, so the result would actually be problem-01.txt, problem-011.rs because the extensions are different lengths. Previously, the find_target() function was like this: pub fn find_target ( filenames : & Vec < String > , count : usize ) -> usize { let mut minimum = usize :: MAX ; for file in filenames { let ( dot_index , cond ) = check_file ( file ); if cond { continue ; } let split_index = find_split_index ( file , dot_index ); minimum = minimum .min ( file [ split_index .. ] .len ()); } minimum + count } Now, it’s pub fn find_target ( filenames : & Vec < String > , count : usize ) -> usize { let mut minimum = usize :: MAX ; let mut is_numeric : bool = false ; for file in filenames { let ( dot_index , cond ) = check_file ( file ); if cond { continue ; } let split_index = find_split_index ( file , dot_index ); minimum = minimum .min ( file [ split_index .. dot_index ] .len ()); is_numeric = true ; } if is_numeric { minimum + count } else { 0 } } Now the target isn’t the shortest number of characters in the numeric portion plus the extension, it’s just the extension. The is_numeric variable is just there so that it doesn’t try to add count to usize::MAX, getting an overflow if there are no files with numeric suffixes. sleep(); sleep(); sleep(); allTestsPass(); The last step before 1.0.0 is UNIT TESTS!!!!!! The easiest unit tests to write are ones for my functions in helpers.rs, including find_target(), check_file(), find_split_index(), and get_filenames(). I wrote 15 unit tests for the first three, and I might write some for get_filenames after I write some for change_leading_zeros(). While writing the unit tests, I stumbled upon the edge case for find_target if there are no applicable files, which is why I added the is_numeric above. The next step is writing the aforementioned unit tests for change_leading_zeros().
Testing Tests Hello again! I can’t believe we’re on devlog #8, considering I have been doing pretty sparse devlogs! if true { allTestsPass } IT’S UNIT TEST TIIIIIME!!! I added 13 unit tests to my big change_leading_zeros() function. They cover most, if not all, possible edge cases. Rename file11 -> file11 I discovered that in change_leading_zeros(), if the resulting new filename was the same as the old, would still do the rename, and it would count as a renamed file, so that the actual number of renamed files would be too large. Hating on for loops as much as the functional bros. I realised that my get_filenames() fn, which still has no unit tests, could be swapped to an iterator structure. old: pub fn get_filenames ( path : & Path ) -> Vec < String > { let mut names = Vec :: new (); if let Ok ( read_dir ) = fs :: read_dir ( path ) { for file in read_dir .flatten () { names .push ( file .file_name () .into_string () .unwrap_or ( "unknown name" .into ()), ); } } names } pub fn get_filenames ( path : & Path ) -> Vec < String > { fs :: read_dir ( path ) .into_iter () .flatten () .flatten () .map (| f | f .file_name () .into_string () .unwrap_or ( "unknown name" .into ())) .collect () } The two functions behave in exactly the same way, no unnecesary unwrap()s that may cause panics See y’all next devlog!
I’m Smart but I’m Bad at Taking Tests Hello again! You know what they say, new commit, new devlog! “[Test] Torsion” We got MORE UNIT TESTS!!! The get_filenames() fn was formerly the only function in helpers.rs that had no unit tests, so I added 6 unit tests for it. They have about the same general structure as the unit tests for change_leading_zeros(). Beautification I was trying to make my code prettier, and I accidentally screwed up an ownership issue. My unit tests made use of tempdirs with the tempfile crate to test change_leading_zeros() and get_filenames. This is the original pattern for getting the temp dir’s path: let binding = tempdir () .unwrap (); let dir = binding .path (); // stuff can be done with dir now This is what I changed it to: let dir = tempdir () .unwrap () .path () .to_owned (); When the tempdir gets dropped, it also deletes the directory, which makes dir a path to a dir that doesn’t exist. Everything compiles fine, but the code panics because the tempdir doesn’t exist. Override Something I forgot to mention in my last devlog is that if there was the files file1.txt and file01.txt, it (c/w)ould rename over one of the files and silently delete the file written over. I still have to fix this issue. I’ve wanted to learn Zig, so I looked up Zig crash courses on Youtube, and this is from the one I was watching.
Refactor I’m going to keep this one quick because it just got deleted for being too long. The previously mentioned behaviour of overwriting filenames has been fixed and has it’s own unit test now. It was given an exception before the actual rename. All the rename logic was duplicated between dec and !dec, so I flattened that. I pulled out the pre-rename exception logic into a new helper: skip_rename(). It needs unit tests of its own. Byyyeeeeee!!!
Drop it Like it’s Hot THIS IS THE FINAL DEVLOG!!!! We got a working release! After my last devlog, I added some unit tests for skip_rename(), and I added the Github default Rust workflow with some modifications to the repo to automatically test any new commits against the test suit, which is most of my codebase. Also added a test workflow to the homebrew tap so it’s easier to see that all is working.
Ships:
I made a utility to change the number of leading zeros in filenames! I was working on Project Euler and had to add a leading zero to all my filenames, which was tedious, so I made this!
Hello everyone! I was working on some Project Euler problems, and I realised that my solutions weren’t sorting correctly because they didn’t have any leading zeros in the numeric portion of their filenames. The same issue happened for my Advent of Code solutions once I hit day 10. I realised I could automate this, and the leading-zero-util was born. It slowly grew from a little, mediocre script to a decently-ish written CLI tool with proper unit tests, a Homebrew tap, a man page, and completions. If you want a better look at the development process than just the devlogs, please check out my commits on GitHub. If you are going to install the LZU, I also recommend that you use the Homebrew tap rather than the crates.io release, the instructions for which are in the README....
|
1793134155.5088184
|
1793220555.5088184
|
|
6840
|
Easy Ecosystem by @domst13 | Stardance
|
domst13
|
1
|
23.0
|
272
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-14T00:16:36Z", "hours": 23.0, "multiplier": 12.02, "payout": 272, "blessing": "neutral", "text": "I created a simple Python Ecosystem that I am calling Easy Ecosystem. It features two types of creatures, as well as food and water for both. My biggest challenge throughout this project was making the algorithms work correctly, as this is my first fully complete Python project. I not only learned a lot, but I am super proud of what I created. To test my project, you have to download and extract a zip file. I wish I could have web hosted it, but I experienced issues when trying to bundle it and make it accessible on the web. I hope you can check out my project, and enjoy!!", "repo": "https://github.com/dominicstange13/Ecosystem/", "demo": "https://github.com/dominicstange13/Easy-Ecosystem/releases/tag/v1.0.0"}]...
|
[{"post_id": 8420, "ts": "2026 [{"post_id": 8420, "ts": "2026-06-14T00:10:16Z", "hours": 0.3708, "text": "-Final balancing and making sure no bugs slipped past me -Time to ship baby!!"}, {"post_id": 7898, "ts": "2026-06-13T05:44:50Z", "hours": 2.1303, "text": "-Finished ALL sprites and incorporated them into the code meaning that the project is DONE -All that’s left is to finish up the repository and link everything then it’s shipping time!!! -Ik 0 people have seen any of these devlogs but lets friggin go guys WE did this"}, {"post_id": 7313, "ts": "2026-06-12T05:55:59Z", "hours": 3.9992, "text": "-FINISHED CODING -Started work on sprite drawings and stuff -Done any day now"}, {"post_id": 6641, "ts": "2026-06-11T04:01:03Z", "hours": 2.2789, "text": "-Worked on carnivore AI and did some bug fixing -I expect to be finished with the coding very soon so I can move on to art"}, {"post_id": 6044, "ts": "2026-06-10T04:49:31Z", "hours": 2.6753, "text": "GUYS WE ARE ALMOST DONE WITH THE CODE!!! -Finished herbivore code for plants and water, as well as all water code -Started creating carnivore and got most of the way through making it as it was relatively bug-free (thank God)"}, {"post_id": 5394, "ts": "2026-06-09T04:34:33Z", "hours": 3.7811, "text": "-(hopefully) finished plant tracking algorithm as well as plant spawning -added water spawning but not thirst (yet) -I probably won’t upload anything tomorrow because I’m getting my wisdom teeth removed but hopefully I’ll be back by Wednesday -I’m estimating I can finish the programming part of this project in another day or two but depending on bugs that could change"}, {"post_id": 4702, "ts": "2026-06-08T03:59:29Z", "hours": 2.5825, "text": "I started making the logic that would allow the herbivore to seek out plants and remove plants once eaten, then proceeded to battle with bugs for the next couple of hours Hopefully more progress tomorrow, this project is probably going to take a while because it has proven more difficult that I first imagined, but I’m gonna stick with it and persevere"}, {"post_id": 4384, "ts": "2026-06-07T18:18:08Z", "hours": 2.5878, "text": "Not much, worked on plant spawning and the herbivore calculations to find food"}, {"post_id": 2800, "ts": "2026-06-05T16:47:50Z", "hours": 1.5144, "text": "Added hunger display and made the herbivore move to grab plants"}, {"post_id": 1818, "ts": "2026-06-04T01:19:17Z", "hours": 0.7475, "text": "I created a food rect and animal rect and started experimenting with movement"}]...
|
Title: Easy Ecosystem by @domst13 | Stardance
Dev Title: Easy Ecosystem by @domst13 | Stardance
Devlogs:
I created a food rect and animal rect and started experimenting with movement
Added hunger display and made the herbivore move to grab plants
Not much, worked on plant spawning and the herbivore calculations to find food
I started making the logic that would allow the herbivore to seek out plants and remove plants once eaten, then proceeded to battle with bugs for the next couple of hours Hopefully more progress tomorrow, this project is probably going to take a while because it has proven more difficult that I first imagined, but I’m gonna stick with it and persevere
-(hopefully) finished plant tracking algorithm as well as plant spawning -added water spawning but not thirst (yet) -I probably won’t upload anything tomorrow because I’m getting my wisdom teeth removed but hopefully I’ll be back by Wednesday -I’m estimating I can finish the programming part of this project in another day or two but depending on bugs that could change
GUYS WE ARE ALMOST DONE WITH THE CODE!!! -Finished herbivore code for plants and water, as well as all water code -Started creating carnivore and got most of the way through making it as it was relatively bug-free (thank God)
-Worked on carnivore AI and did some bug fixing -I expect to be finished with the coding very soon so I can move on to art
-FINISHED CODING -Started work on sprite drawings and stuff -Done any day now
-Finished ALL sprites and incorporated them into the code meaning that the project is DONE -All that’s left is to finish up the repository and link everything then it’s shipping time!!! -Ik 0 people have seen any of these devlogs but lets friggin go guys WE did this
-Final balancing and making sure no bugs slipped past me -Time to ship baby!!
Ships:
I created a simple Python Ecosystem that I am calling Easy Ecosystem. It features two types of creatures, as well as food and water for both. My biggest challenge throughout this project was making the algorithms work correctly, as this is my first fully complete Python project. I not only learned a lot, but I am super proud of what I created. To test my project, you have to download and extract a zip file. I wish I could have web hosted it, but I experienced issues when trying to bundle it and make it accessible on the web. I hope you can check out my project, and enjoy!!...
|
1793120025.1022577
|
1793206425.1022577
|
|
6857
|
CITY-41 by @BirotTheBrave | Stardance
|
BirotTheBrave
|
1
|
23.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-23T04:03:57Z", "hours": 23.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I intended to make a game, but ran out of spare time and worked on other projects instead. All I ended up making was a broken first level because i do not understand enemy ai, but the godot project is public and all i did was a save system, a mission system and the player movement", "repo": "https://github.com/birot-the-brave/CITY-41-GODOT", "demo": "https://github.com/birot-the-brave/CITY-41-GODOT/releases/tag/V0.001"}]...
|
[{"post_id": 45098, "ts": "202 [{"post_id": 45098, "ts": "2026-08-11T11:21:59Z", "hours": 7.7197, "text": "hello hi another devlog, not much visually to show BUUUUT… i have made a fair bit of progress, my player movement is a lot cleaner than it was, my mission system works great. and i am working on adding enemies at the moment. i originally planned for this to be an open world game but as this is a very early version, i might make it a linear level-to-level design, then when i remake the game in cryengine, ill make it open world properly c: right now i am trying to get all my main systems working, then i want to polish my level design for the first mission before moving onto the rest of the game. i plan for like half of the game to be done by the end of stardance :3 love y’all"}, {"post_id": 27062, "ts": "2026-07-12T08:36:36Z", "hours": 8.0361, "text": "big log this time lol, needa be more frequent with these. added weapons with their own stats and such (need to add projectile weapons still </3), a modular mission system which lets me easily change if a mission is linear or not, plus it’s tasks, description, if each step autosaves or not, etc. also implemented damage for the weapons, headshots deal more damage than body shots, and damage varies slightly with every shot. idk what else to log, right now i’m trying to get the tutorial area done, and basic enemy ai stuff done, then i’ll focus on my open world and mission structuring."}, {"post_id": 21443, "ts": "2026-07-03T12:16:28Z", "hours": 7.3194, "text": "first devlog! mainly just initial project setup for my game, brief summary is story-driven fast paced fps but blah blah. main stuff i did was setting up a save system, multiple save files in a file select menu, and basic movement/player camera."}]...
|
Title: CITY-41 by @BirotTheBrave | Stardance
Devl Title: CITY-41 by @BirotTheBrave | Stardance
Devlogs:
first devlog! mainly just initial project setup for my game, brief summary is story-driven fast paced fps but blah blah. main stuff i did was setting up a save system, multiple save files in a file select menu, and basic movement/player camera.
big log this time lol, needa be more frequent with these. added weapons with their own stats and such (need to add projectile weapons still </3), a modular mission system which lets me easily change if a mission is linear or not, plus it’s tasks, description, if each step autosaves or not, etc. also implemented damage for the weapons, headshots deal more damage than body shots, and damage varies slightly with every shot. idk what else to log, right now i’m trying to get the tutorial area done, and basic enemy ai stuff done, then i’ll focus on my open world and mission structuring.
hello hi another devlog, not much visually to show BUUUUT… i have made a fair bit of progress, my player movement is a lot cleaner than it was, my mission system works great. and i am working on adding enemies at the moment. i originally planned for this to be an open world game but as this is a very early version, i might make it a linear level-to-level design, then when i remake the game in cryengine, ill make it open world properly c: right now i am trying to get all my main systems working, then i want to polish my level design for the first mission before moving onto the rest of the game. i plan for like half of the game to be done by the end of stardance :3 love y’all
Ships:
I intended to make a game, but ran out of spare time and worked on other projects instead. All I ended up making was a broken first level because i do not understand enemy ai, but the godot project is public and all i did was a save system, a mission system and the player movement...
|
1793152627.3403933
|
1793239027.3403933
|
|
12145
|
Talos V2 by @danielthedev5 | Stardance
|
danielthedev5
|
1
|
23.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-28T23:01:57Z", "hours": 23.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Talos V2 is a student directory manager using react.js and supabase! (See devlogs for more info on development!) To try the project, you can login with the username “Admin” and password “Admin” Criticism is appreciated", "repo": "https://github.com/Danx3mer/TalosV2", "demo": "https://talos-v2-alpha.vercel.app/login"}]...
|
[{"post_id": 36711, "ts": "202 [{"post_id": 36711, "ts": "2026-07-28T22:57:28Z", "hours": 0.9178, "text": "Devlog 5 - React Mumbo Jumbo React is a liar So it turns out that by default react puts the debug component in your main.jsx file. This is really cool, until you actually deploy your site (for me, I do this using github actions to vercel !) The reason for this is that one of the things that strict mode does is mount, unmount, and instantly remount your component so that any race conditions that aren’t properly handled appear to not be a problem. Since I use the useEffect hook to update my dashboard component asynchronously, this was a problem. Tricking liars To solve this, I made a new isMounted boolean. This boolean handles the control flow of the useEffect hook, which mitigates this issue! Attached below is an image of the new useEffect hook! Additonally, this project is now officially shipable, due to it being deployed on vercel! I may add tailwind css for better styling, but for now this is the first actual version of the project!"}, {"post_id": 36232, "ts": "2026-07-28T05:44:18Z", "hours": 8.5031, "text": "Devlog 4 - Supabase! What’s New? The backend of the project has been completely revamped! Instead of now accessing a local json file located on the hosted server, now the need for a server is gone thanks to the migration of the database to Supabase! Implemented authentication using supabase’s built-in auth module Used relational tables to track data about courses and user profiles in conjunction with the authentication system Pretty short devlog this time, but this pretty much summarizes everything done! Supabase is a really cool tool that I am glad to be able to add into my dev stack! View my commit history for commit-by-commit commentary on the code that I modified! Tailwind CSS incoming!"}, {"post_id": 21810, "ts": "2026-07-03T22:53:55Z", "hours": 9.6606, "text": "Devlog 3: React.js! What’s Old? I never got to go in-depth on what this is, so now would be a good time as ever to do that. This project was originally a school assignment which mandated that the legacy python CGI library was used to retrieve the data of forms instead of using something like JS to read the value of the inputs. Here are the features of the original site: Login page which would create a cookie that had user information including the user name, type, and more data pertaining to that particular user Login page would take you to the Home page on login, which would look different based on which of the contexts you were logged in as (this is basically checking if you are a school Admin , Teacher , or Student ) and would update the Navbar to include buttons linking to context -specific pages as well as the Dashboard based on this context Admin view had a Home page which would display overall school statistics Admin specific pages included pages to add or delete a course, or add, delete, or assign/remove a user from a course Teacher view had a Home page which would display courses taught and the amount of students in each course Teacher specific pages were pages to modify the grades of students, and each course would have its own page for editing the grades Student had no specific pages and would see their grades displayed in a table on the Dashboard on the Home page Navbar had a Logout button which deleted the aforementioned cookies by setting their “expires” value to 0 SuccessIndicator Indicated whether a form action succeeded or not by reading a GET request Similar pages were in one .html file and were modified based off a GET request parameter to display appropriate content What’s New? It is important to note that this is a complete rewrite of the project! The code similarity between the current state of the site and the original state (which you can view by going to the Legacy release linked here !) is minimal. I completely remade the project by making a new directory and then rebasing the newly created project onto the previous repository stack. This added my files to the GitHub repo without me having to make a new one, which was convenient. I learned how to rebase using git to do this, expanding my knowledge of git. The project has been rewritten to mostly use .jsx files instead of the mess that was using .html , .css , .js , and .py files for a single page of the website. Now, every single component (whether that be a page, a styled form, or even just a header) has its own file, which makes everything WAY MORE organized! Every single form on the website is now a <FormStyled/> which is a component that I made. To make this work I simply add a JS object which has a key-value pair notation of Input Name - OnChange handler, which makes making forms way faster. Development has overall been way more pleasing as compared to not having react.js due to the amount of new things in react! Every single interaction with things outside the DOM is now in a convenient services/ folder, which includes files such as manageCookies.js and httpRequests.js which allow me to import certain functions anywhere in the code. This is an improvement over me simply copy and pasting the same code over and over again in two different files. Speaking of organization, all files are now organized in the src/ folder by type of component/use. For example, my components which I add to the website at will are in the components/ folder while the overall page layout components are in the pages/ folder View my commit history for commit-by-commit commentary on the code that I modified! SupaBase incoming!"}, {"post_id": 15093, "ts": "2026-06-24T15:04:40Z", "hours": 2.5383, "text": "I finished the main layout of the website and it works using python’s legacy cgi library, but now I am porting it over to use contemporary technologies. Currently, the program is written in HTML, CSS, JS, and Python with no frameworks, and uses 2 JSONs as the database. The plan is to port the project over to use react.js, tailwind css for styling, supabase for the database, and possibly even creating a REST API for retrieving certain user info."}, {"post_id": 7543, "ts": "2026-06-12T16:19:42Z", "hours": 1.3044, "text": "Login page and cookies! I successfully created a cookie retrieval system for my school project. I am creating a school directory management system. The login page stores the login information as a cookie (if successful) and then the home.js file displays it! Next step: display different buttons on the side navbar based on the type of user!"}]...
|
Title: Talos V2 by @danielthedev5 | Stardance
Dev Title: Talos V2 by @danielthedev5 | Stardance
Devlogs:
Login page and cookies! I successfully created a cookie retrieval system for my school project. I am creating a school directory management system. The login page stores the login information as a cookie (if successful) and then the home.js file displays it! Next step: display different buttons on the side navbar based on the type of user!
I finished the main layout of the website and it works using python’s legacy cgi library, but now I am porting it over to use contemporary technologies. Currently, the program is written in HTML, CSS, JS, and Python with no frameworks, and uses 2 JSONs as the database. The plan is to port the project over to use react.js, tailwind css for styling, supabase for the database, and possibly even creating a REST API for retrieving certain user info.
Devlog 3: React.js! What’s Old? I never got to go in-depth on what this is, so now would be a good time as ever to do that. This project was originally a school assignment which mandated that the legacy python CGI library was used to retrieve the data of forms instead of using something like JS to read the value of the inputs. Here are the features of the original site: Login page which would create a cookie that had user information including the user name, type, and more data pertaining to that particular user Login page would take you to the Home page on login, which would look different based on which of the contexts you were logged in as (this is basically checking if you are a school Admin , Teacher , or Student ) and would update the Navbar to include buttons linking to context -specific pages as well as the Dashboard based on this context Admin view had a Home page which would display overall school statistics Admin specific pages included pages to add or delete a course, or add, delete, or assign/remove a user from a course Teacher view had a Home page which would display courses taught and the amount of students in each course Teacher specific pages were pages to modify the grades of students, and each course would have its own page for editing the grades Student had no specific pages and would see their grades displayed in a table on the Dashboard on the Home page Navbar had a Logout button which deleted the aforementioned cookies by setting their “expires” value to 0 SuccessIndicator Indicated whether a form action succeeded or not by reading a GET request Similar pages were in one .html file and were modified based off a GET request parameter to display appropriate content What’s New? It is important to note that this is a complete rewrite of the project! The code similarity between the current state of the site and the original state (which you can view by going to the Legacy release linked here !) is minimal. I completely remade the project by making a new directory and then rebasing the newly created project onto the previous repository stack. This added my files to the GitHub repo without me having to make a new one, which was convenient. I learned how to rebase using git to do this, expanding my knowledge of git. The project has been rewritten to mostly use .jsx files instead of the mess that was using .html , .css , .js , and .py files for a single page of the website. Now, every single component (whether that be a page, a styled form, or even just a header) has its own file, which makes everything WAY MORE organized! Every single form on the website is now a <FormStyled/> which is a component that I made. To make this work I simply add a JS object which has a key-value pair notation of Input Name - OnChange handler, which makes making forms way faster. Development has overall been way more pleasing as compared to not having react.js due to the amount of new things in react! Every single interaction with things outside the DOM is now in a convenient services/ folder, which includes files such as manageCookies.js and httpRequests.js which allow me to import certain functions anywhere in the code. This is an improvement over me simply copy and pasting the same code over and over again in two different files. Speaking of organization, all files are now organized in the src/ folder by type of component/use. For example, my components which I add to the website at will are in the components/ folder while the overall page layout components are in the pages/ folder View my commit history for commit-by-commit commentary on the code that I modified! SupaBase incoming!
Devlog 4 - Supabase! What’s New? The backend of the project has been completely revamped! Instead of now accessing a local json file located on the hosted server, now the need for a server is gone thanks to the migration of the database to Supabase! Implemented authentication using supabase’s built-in auth module Used relational tables to track data about courses and user profiles in conjunction with the authentication system Pretty short devlog this time, but this pretty much summarizes everything done! Supabase is a really cool tool that I am glad to be able to add into my dev stack! View my commit history for commit-by-commit commentary on the code that I modified! Tailwind CSS incoming!
Devlog 5 - React Mumbo Jumbo React is a liar So it turns out that by default react puts the debug component in your main.jsx file. This is really cool, until you actually deploy your site (for me, I do this using github actions to vercel !) The reason for this is that one of the things that strict mode does is mount, unmount, and instantly remount your component so that any race conditions that aren’t properly handled appear to not be a problem. Since I use the useEffect hook to update my dashboard component asynchronously, this was a problem. Tricking liars To solve this, I made a new isMounted boolean. This boolean handles the control flow of the useEffect hook, which mitigates this issue! Attached below is an image of the new useEffect hook! Additonally, this project is now officially shipable, due to it being deployed on vercel! I may add tailwind css for better styling, but for now this is the first actual version of the project!
Ships:
Talos V2 is a student directory manager using react.js and supabase! (See devlogs for more info on development!) To try the project, you can login with the username “Admin” and password “Admin” Criticism is appreciated...
|
1793130742.4993346
|
1793217142.4993346
|
|
13266
|
WebOS by @lilly | Stardance
|
lilly
|
1
|
23.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-30T05:00:04Z", "hours": 23.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I make a working WebOS based of of the guide given to us. I had lots of fun branching out from the points that were given to us and experimenting with what html, js and css could do. The most challenging part was figuring out how to make my notes app add and remove notes, figuring out how to get my timer working and of course lots of bugs. If you try out my WebOS i hope you make sure to check out the notes app and app and remove notes. Or if you wanna look at my stopwatch see what happens when you reach an hour!", "repo": "https://github.com/laelHI/WebOS", "demo": "https://laelhi.github.io/WebOS/"}]...
|
[{"post_id": 18988, "ts": "202 [{"post_id": 18988, "ts": "2026-06-30T04:54:58Z", "hours": 10.4978, "text": "I finally finished all three of my apps! I decided to do the notes app an internet app with buttons and a timer. I think the timer and the notes apps took the longest but they were both fun to make so 😋 This is the last devlog before shipping as well so byee"}, {"post_id": 15997, "ts": "2026-06-25T23:45:07Z", "hours": 10.0297, "text": "Hello again :) So, in the second Devlog, I made some more changes…I probably spent way too much time doing this, but I’m really happy with how it’s turning out! When I started the next part of the project, for some reason, after I split up the CSS and JavaScript files, it wouldn’t let me drag the windows around. After spending forever trying to fix it, I finally resorted to asking Copilot 🥲. They said that I was supposed to be using GitHub Pages instead of the extension I found online to view HTML files. So yeah, that was an experience (very long one) but I was finally satisfied because I could move my windows around again! After that, I started making the notes app and kind of got sidetracked from the tutorial 🫠, but it was fun being creative and stuff. I’m not sure if this happens to icons in general when you hover over them, but I made it so when you hover over the apps, it shows a little highlight thing. The tutorial had you make the style for selected icons first, which I was doing, but then when it came to actually making it work (clickable and stuff)… I found another error 😭. At which point, I asked Copilot again for help. I’m actually not sure what I did wrong in the first place, but after moving the functions around, it worked so yay! (I think it was maybe some functions being inside other functions and not being accessible, along with straight-up not loading or something, idk.) Ok, that’s it. Bye, ig"}, {"post_id": 15171, "ts": "2026-06-24T17:24:55Z", "hours": 2.0669, "text": "Started the first part of the webOS and made the intro page. Spent a bunch of time fixing a mistake with the fonts since i forgot a colon and added an extra plus sign as one point… yeah I’m not that great at this. This isn’t the most recent photo i also started part 2 but i figured i should post a devlog."}]...
|
Title: WebOS by @lilly | Stardance
Devlogs:
Start Title: WebOS by @lilly | Stardance
Devlogs:
Started the first part of the webOS and made the intro page. Spent a bunch of time fixing a mistake with the fonts since i forgot a colon and added an extra plus sign as one point… yeah I’m not that great at this. This isn’t the most recent photo i also started part 2 but i figured i should post a devlog.
Hello again :) So, in the second Devlog, I made some more changes…I probably spent way too much time doing this, but I’m really happy with how it’s turning out! When I started the next part of the project, for some reason, after I split up the CSS and JavaScript files, it wouldn’t let me drag the windows around. After spending forever trying to fix it, I finally resorted to asking Copilot 🥲. They said that I was supposed to be using GitHub Pages instead of the extension I found online to view HTML files. So yeah, that was an experience (very long one) but I was finally satisfied because I could move my windows around again! After that, I started making the notes app and kind of got sidetracked from the tutorial 🫠, but it was fun being creative and stuff. I’m not sure if this happens to icons in general when you hover over them, but I made it so when you hover over the apps, it shows a little highlight thing. The tutorial had you make the style for selected icons first, which I was doing, but then when it came to actually making it work (clickable and stuff)… I found another error 😭. At which point, I asked Copilot again for help. I’m actually not sure what I did wrong in the first place, but after moving the functions around, it worked so yay! (I think it was maybe some functions being inside other functions and not being accessible, along with straight-up not loading or something, idk.) Ok, that’s it. Bye, ig
I finally finished all three of my apps! I decided to do the notes app an internet app with buttons and a timer. I think the timer and the notes apps took the longest but they were both fun to make so 😋 This is the last devlog before shipping as well so byee
Ships:
I make a working WebOS based of of the guide given to us. I had lots of fun branching out from the points that were given to us and experimenting with what html, js and css could do. The most challenging part was figuring out how to make my notes app add and remove notes, figuring out how to get my timer working and of course lots of bugs. If you try out my WebOS i hope you make sure to check out the notes app and app and remove notes. Or if you wanna look at my stopwatch see what happens when you reach an hour!...
|
1793249663.9866796
|
1793336063.9866796
|
|
15699
|
OpenAtlas by @Jack_ | Stardance
|
Jack_
|
1
|
23.0
|
434
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-15T07:17:32Z", "hours": 23.0, "multiplier": 19.03, "payout": 434, "blessing": "neutral", "text": "NOTE: This project is NOT available or usable on mobile. Please skip if you are on mobile. OpenAtlas is a personal knowledge management system I built from scratch. It is both a browser extension that lets you save any webpage you’re viewing with one click, and a full web dashboard where you can organize those saved pages into projects, edit them, and manage your account. It’s built with a Node/Express backend, SQLite for storage, a React frontend, and a vanilla JS browser extension, and the entire thing was built and deployed by me with no templates, frameworks, or otherwise used. The biggest challenges were spread across nearly every layer of the stack. Early on, learning how to build a genuinely secure authentication system was the hardest thing: making sure passwords were properly hashed and never stored or exposed in a vulnerable way. SQL and database design caused a surprising number of headaches later on, to the point where I had to rewrite large chunks of the server and database logic because requests weren’t reliably pushing to or pulling from the database. As the project grew past 40+ files, keeping the codebase organized became challenging, with so many imports and figuring out where things lived started to genuinely be difficuly. Deploying the project also lead to a host of problems: learning what actually has to legally exist in a Terms of Service and Privacy Policy, understanding CORS well enough to configure it correctly rather than just disabling protections, and more. Despite all that, I created this project. I would love for you to give me feedback.", "repo": "https://github.com/Jack-Jacobson/OpenAtlas", "demo": "https://openatlas.jackjacobson2011.com/about"}]...
|
[{"post_id": 28751, "ts": "202 [{"post_id": 28751, "ts": "2026-07-15T06:47:20Z", "hours": 1.965, "text": "OVERVIEW: Most of this time was spent adding detailed documentation. I added a table or api endpoints, detailed info on how to run locally, info on security and the tech stack, and put a lot of work in it. My readme is 300 lines long and I am very proud of it. I also made a file tree with info about it which is pretty cool. Also fixed all bugs I could find. NEXT STEPS: Ship! CHALLENGES: Readmes are hard to write. Making tables are really annoying and take forever."}, {"post_id": 28697, "ts": "2026-07-15T03:16:58Z", "hours": 2.1306, "text": "OVERVIEW: This is a major update with a lot of time working that wasn’t tracked. I have made a projects page for each project, involving editing the project, and viewing more details. Ive updated the UI a bit. Ive added a privacy policy and a TOS. And I redid the organization of the project to include pages (e.g openatlas.jackjacobson2011.com/privacy). I am preparing to launch the project soon, and have applied for the extension in the firefox add on store. I also have double checked security and have published the project on my website, where the frontend and backend now live. NEXT STEPS: Write readme Get on other extension stores CHALLENGES: Learning what legally has to be in a TOS and privacy policy Learning about CORS and its best practices Dealing with firefox"}, {"post_id": 27921, "ts": "2026-07-13T21:01:11Z", "hours": 1.3669, "text": "NOTE ABOUT INACTIVITY: I have had some stuff in my life that has kept me from working on this project. It has been 23 days, but this will get back on track. I cant wait to finish this and release it for everyone! OVERVIEW: Added a working inspector, a lot of bug fixes, and functioning projects. NEXT STEPS: AI Project pages Improved UI CHALLENGES: A lot of bugs I have limited cybersecurity knowledge so I had to do a lot of research to ensure my site is secure"}, {"post_id": 12712, "ts": "2026-06-20T19:21:39Z", "hours": 4.8539, "text": "OVERVIEW: Once again, I am very sorry for the long time between devlogs. This came with a suprising amount of bugs that took a suprising amount of time to fix. But, now the other two pages of OpenAtlas work! You can log out and delete your account, save to projects, sort by projects, and have everything secure and deletable at the click of a button. NEXT STEPS: Make projects page more detailed Make project AI-detectable (waiting on more nest resources for that) General UI improvments Add functionality to inspector CHALLENGES: The majority of problems came from SQL. Had to redo a lot of server and database code because it was having so many issues pulling and pushing to the database with my api. Organization is also starting to prove to be a massive problem as this project grows with 40+ files, its hard to keep track of what is where and imports and such"}, {"post_id": 11059, "ts": "2026-06-18T02:58:24Z", "hours": 1.5622, "text": "OVERVIEW: I have regained motivation, ig the backend just kinda bored me with all the problems and such. But also, made the extension actually good! The styling matches the website now, and you can now login to the extension. I also added so the resources are saved with your user in mind, so you can later recall only your resources, which is vital functionality. NEXT STEPS: Add more UI pages Add categorizing CHALLENGES: Using my API and modifying it to have the correct data has been really fun and interesting. Even further learning about SQL has also been fun."}, {"post_id": 10885, "ts": "2026-06-17T20:53:50Z", "hours": 6.2556, "text": "OVERVIEW: First of all, I apologize for the massive amount of time without a devlog. Recently I have felt a bit burnt out with this project and have been spending a lot of time with only a little bit to show for it. However, that being said, a true signup and sign in system has now been implemented! You can sign up with an account, the password is encrypted so I can’t see it, and it is securely stored in a database where you can now log in with those credentials at any time. I have the framework for preferences set up and more. Also, this stardance platform has had massive improvements these last week or two, so thanks everyone at HackClub for your great work! NEXT STEPS: storing user-specific entries, and connecting the extension to specific accounts Further UI pages Setting to delete your data from the database CHALLENGES: The majority of the reason for this taking so long has been learning how to securely do the system, the last thing i want is to release a project where I can see your password, or where the password itself is stored in a vulnerable way, or where personal info is stored. Learning the right way to do this has been amazing This has also required me to expand my sql skills, and learning how to interact with databases better than I have been"}, {"post_id": 8426, "ts": "2026-06-14T00:23:28Z", "hours": 2.4375, "text": "OVERVIEW: Began work on front end! Nothing is functional atm, and it doesn’t look great, but the framework is there. All of the projects and middle stuff are placeholders. It does look workable though. And also I actually figured out newlines?!?!?!?!?! Thanks random guy on slack NEXT STEPS: Improve looks Other pages Improve extension design CHALLENGES: - Variables in css, they should be helpful for later editing of design, and was very interesting to learn. For this devlog I decided to also highlight some challenges that have been persistent throughout the projects, those are below. Error messages. In an effort to improve the opensource-ness of my project, I have been working to include fallbacks and useful error messages. It is not only helpful for my own debugging, but for everyone else trying to use or replicate my project! Proper naming conventions for variables and functions are also part of this effort for me, in the past I just make everything camel case, but recently have been trying to do better with this."}, {"post_id": 7874, "ts": "2026-06-13T04:16:09Z", "hours": 1.0258, "text": "OVERVIEW: Linked server to a database! I am using sqlite to store all data, which was really fun to learn. Whenever the server receives a packet, it pushes it to the database, which updates in real time. Also set up framework to have get requests from the database, so data can be read. Also turns out I lied about being able to use devlogs correctly, my method for newlines in these devlogs just stopped working, its great. NEXT STEPS: Begin webui, I decided to use react after some research because it appears to be much more useful of a skill than just vanilla html, css, and js, which is what I used for webos. Improve extension design CHALLENGES: I learned a lot about databases which was really interesting, however I found it difficult to figure out how bits worked in the database as well as learning how sql requests work It was also difficult to be able to see the database, it isnt a necessity for the project but is really nice so you can actually see the state of the project data"}, {"post_id": 7796, "ts": "2026-06-13T00:39:16Z", "hours": 1.2139, "text": "OVERVIEW: This time was spent creating the basis for what OpenAtlas will become. I created a basic extension, imported it into firefox, and made it communicate with my server. I learned a lot about how extensions work. It should also be backwards compatible with Chrome. I can’t wait to learn about databases. Also, I finally figured out how to properly format devlogs, HackClub please make this easier, just make newlines be newlines, I am begging you! NEXT STEPS: Create and figure out how to use databases Start WebUI Improve extension design CHALLENGES: Learning how to use a manifest in my extension and how important they are Learning how javascript can interact with a browser through various commands Learning how servers work and can be interacted with"}]...
|
Title: OpenAtlas by @Jack_ | Stardance
Devlogs:
O Title: OpenAtlas by @Jack_ | Stardance
Devlogs:
OVERVIEW: This time was spent creating the basis for what OpenAtlas will become. I created a basic extension, imported it into firefox, and made it communicate with my server. I learned a lot about how extensions work. It should also be backwards compatible with Chrome. I can’t wait to learn about databases. Also, I finally figured out how to properly format devlogs, HackClub please make this easier, just make newlines be newlines, I am begging you! NEXT STEPS: Create and figure out how to use databases Start WebUI Improve extension design CHALLENGES: Learning how to use a manifest in my extension and how important they are Learning how javascript can interact with a browser through various commands Learning how servers work and can be interacted with
OVERVIEW: Linked server to a database! I am using sqlite to store all data, which was really fun to learn. Whenever the server receives a packet, it pushes it to the database, which updates in real time. Also set up framework to have get requests from the database, so data can be read. Also turns out I lied about being able to use devlogs correctly, my method for newlines in these devlogs just stopped working, its great. NEXT STEPS: Begin webui, I decided to use react after some research because it appears to be much more useful of a skill than just vanilla html, css, and js, which is what I used for webos. Improve extension design CHALLENGES: I learned a lot about databases which was really interesting, however I found it difficult to figure out how bits worked in the database as well as learning how sql requests work It was also difficult to be able to see the database, it isnt a necessity for the project but is really nice so you can actually see the state of the project data
OVERVIEW: Began work on front end! Nothing is functional atm, and it doesn’t look great, but the framework is there. All of the projects and middle stuff are placeholders. It does look workable though. And also I actually figured out newlines?!?!?!?!?! Thanks random guy on slack NEXT STEPS: Improve looks Other pages Improve extension design CHALLENGES: - Variables in css, they should be helpful for later editing of design, and was very interesting to learn. For this devlog I decided to also highlight some challenges that have been persistent throughout the projects, those are below. Error messages. In an effort to improve the opensource-ness of my project, I have been working to include fallbacks and useful error messages. It is not only helpful for my own debugging, but for everyone else trying to use or replicate my project! Proper naming conventions for variables and functions are also part of this effort for me, in the past I just make everything camel case, but recently have been trying to do better with this.
OVERVIEW: First of all, I apologize for the massive amount of time without a devlog. Recently I have felt a bit burnt out with this project and have been spending a lot of time with only a little bit to show for it. However, that being said, a true signup and sign in system has now been implemented! You can sign up with an account, the password is encrypted so I can’t see it, and it is securely stored in a database where you can now log in with those credentials at any time. I have the framework for preferences set up and more. Also, this stardance platform has had massive improvements these last week or two, so thanks everyone at HackClub for your great work! NEXT STEPS: storing user-specific entries, and connecting the extension to specific accounts Further UI pages Setting to delete your data from the database CHALLENGES: The majority of the reason for this taking so long has been learning how to securely do the system, the last thing i want is to release a project where I can see your password, or where the password itself is stored in a vulnerable way, or where personal info is stored. Learning the right way to do this has been amazing This has also required me to expand my sql skills, and learning how to interact with databases better than I have been
OVERVIEW: I have regained motivation, ig the backend just kinda bored me with all the problems and such. But also, made the extension actually good! The styling matches the website now, and you can now login to the extension. I also added so the resources are saved with your user in mind, so you can later recall only your resources, which is vital functionality. NEXT STEPS: Add more UI pages Add categorizing CHALLENGES: Using my API and modifying it to have the correct data has been really fun and interesting. Even further learning about SQL has also been fun.
OVERVIEW: Once again, I am very sorry for the long time between devlogs. This came with a suprising amount of bugs that took a suprising amount of time to fix. But, now the other two pages of OpenAtlas work! You can log out and delete your account, save to projects, sort by projects, and have everything secure and deletable at the click of a button. NEXT STEPS: Make projects page more detailed Make project AI-detectable (waiting on more nest resources for that) General UI improvments Add functionality to inspector CHALLENGES: The majority of problems came from SQL. Had to redo a lot of server and database code because it was having so many issues pulling and pushing to the database with my api. Organization is also starting to prove to be a massive problem as this project grows with 40+ files, its hard to keep track of what is where and imports and such
NOTE ABOUT INACTIVITY: I have had some stuff in my life that has kept me from working on this project. It has been 23 days, but this will get back on track. I cant wait to finish this and release it for everyone! OVERVIEW: Added a working inspector, a lot of bug fixes, and functioning projects. NEXT STEPS: AI Project pages Improved UI CHALLENGES: A lot of bugs I have limited cybersecurity knowledge so I had to do a lot of research to ensure my site is secure
OVERVIEW: This is a major update with a lot of time working that wasn’t tracked. I have made a projects page for each project, involving editing the project, and viewing more details. Ive updated the UI a bit. Ive added a privacy policy and a TOS. And I redid the organization of the project to include pages (e.g openatlas.jackjacobson2011.com/privacy). I am preparing to launch the project soon, and have applied for the extension in the firefox add on store. I also have double checked security and have published the project on my website, where the frontend and backend now live. NEXT STEPS: Write readme Get on other extension stores CHALLENGES: Learning what legally has to be in a TOS and privacy policy Learning about CORS and its best practices Dealing with firefox
OVERVIEW: Most of this time was spent adding detailed documentation. I added a table or api endpoints, detailed info on how to run locally, info on security and the tech stack, and put a lot of work in it. My readme is 300 lines long and I am very proud of it. I also made a file tree with info about it which is pretty cool. Also fixed all bugs I could find. NEXT STEPS: Ship! CHALLENGES: Readmes are hard to write. Making tables are really annoying and take forever.
Ships:
NOTE: This project is NOT available or usable on mobile. Please skip if you are on mobile. OpenAtlas is a personal knowledge management system I built from scratch. It is both a browser extension that lets you save any webpage you’re viewing with one click, and a full web dashboard where you can organize those saved pages into projects, edit them, and manage your account. It’s built with a Node/Express backend, SQLite for storage, a React frontend, and a vanilla JS browser extension, and the entire thing was built and deployed by me with no templates, frameworks, or otherwise used. The biggest challenges were spread across nearly every layer of the stack. Early on, learning how to build a genuinely secure authentication system was the hardest thing: making sure passwords were properly hashed and never stored or exposed in a vulnerable way. SQL and database design caused a surprising number of headaches later on, to the point where I had to rewrite large chunks of the server and database logic because requests weren’t reliably pushing to or pulling from the database. As the project grew past 40+ files, keeping the codebase organized became challenging, with so many imports and figuring out where things lived started to genuinely be difficuly. Deploying the project also lead to a host of problems: learning what actually has to legally exist in a Terms of Service and Privacy Policy, understanding CORS well enough to configure it correctly rather than just disabling protections, and more. Despite all that, I created this project. I would love for you to give me feedback....
|
1793220626.472539
|
1793307026.472539
|
|
16838
|
AlpineOS by @ashish-raj-singh | Stardance
|
ashish-raj-singh
|
2
|
23.0
|
72
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-24T08:32:33Z", "hours": 11.0, "multiplier": 6.36, "payout": 72, "blessing": "neutral", "text": "This is AlpineOS 2 (WebOS-2) upgraded from the previous version of AlpineOS 1 (WebOS-2) UPss Window animations are now smoother and more responsive. Introduced Widgets and are draggable anywhere on the desktop screen Truly FullScreen mode is here, previously the fullscreen was still not using the space behind the dock and menu bar at top, now it does Menu Bar improvements, now it has calender, wifi and a brightness slider which actually workd A new Settings app, which now has the personalization settings, and a new Widgets section where you can add widgets to your desktop Auto hide dock is now working, it simply hides the dock and shows on hovering th bottom of the desktop and it can be toggled in the settings app The Challenge? The main hurdle for me was understanding the actual OS, and its working as i hve tried to keep this project as realistic as i could understand other then that, the animations and drag and drop functionality was a bit challenging, so right now drag and drop us not supported as i have my exams coming up ans stardance is also going to end 30 sep to i dont have that much time The Excitement? this project was particularly exiting for me not because of the web technologies like used react heavily i have been a web dev for like a year main thing was the OS part, i have never worked on an OS before and this was a new experience for me, and i really loved it i tried to understand the real Operating System i leanred about scheduling algorithms like FCFS, SJF, memory management,how kernel works and communicated, how things are separated and modularized so much more What can you do? just right click on desktop and try to add a widget try to hide dock from the settings app, and hover at the bottom of the desktop and see the dock appear back try to minimize and maximize the windows and see the animations try increasing and decreasing the brightness from the menu bar", "repo": "https://github.com/ashish757/AlpineOS", "demo": "https://alpine-os-eight.vercel.app"}, {"ship_num": 2, "ts": "2026-06-13T12:16:11Z", "hours": 12.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I built AlpineOS, A fully functional, persistent, browser-based operating system, not just a CSS UI mockup it’s powered by a custom Redux “kernel” that actually manages background processes independently from the visual windows. live Activity Manager that tracks active PIDs and simulated CPU/Memory telemetry. It includes a persistent Virtual File System An draggable Window Manager Terminal engine that interacts with the File System Persistency , File and folders are persistennt and so it the state of the OS, you leave and come back just find that it has retained the state. The Challange? The architecture and state management were incredibly complex. Synchonizing the UI with the actual process mangement in the “kernal” Persistence, making the whole website persistence. Creatin an Task manager was fun and exciting, it felt like a real low level OS feature Excitement??? hell yeah my whole time I have been building, high-level websites and backend. I never tried a low level project, although this is not Low Level but it forced me to explore the architecture and concepts of hoow operating system works at Low level, how terminal connect with the file system. who doesn’t get excited by low level ?? Being able to selec multiple files and folder, not dragable yet, but soon will be What can i do? When you boot it up, don’t just click the icons and look and design and colors, stress test the ARCHITECTURE! Open the Terminal , use cd to change directory and try standard commands like mkdir, touch, ls, and interact with the file system Open the Activity Manager side-by-side with other apps to watch the active processes update and check the live charts (dummy) Right-click the desktop to open Personalization and change the wallpaper. Most importantly: Open a few windows, move them around the screen, and then hard refresh your browser or maybe just restart and Watch the persistence engine drop you right back where you left off.", "repo": "https://github.com/ashish757/AlpineOS", "demo": "https://alpine-os-eight.vercel.app"}]...
|
[{"post_id": 73046, "ts": "202 [{"post_id": 73046, "ts": "2026-09-24T08:31:29Z", "hours": 2.3342, "text": "Devlog 3 Launchpad as promised i have created the launchpad , but the serach functionlity is not working in it sorry i know its just s amll filter thing but i got my exmas this week, im in rush need to feactor the whole assets thing as i wasn initially importing the images but now i have moved it to the public and how just load them all updated the readme and added icon for the launchpad A lot can be done i think, but i am limited with this event ending 30 sep and also my exams are coming up SO BYE FOR NOWW, i really loved this project"}, {"post_id": 72817, "ts": "2026-09-23T19:47:31Z", "hours": 3.2872, "text": "Real OS true now this feels like a real operating system Widgets added widgets to the desktop, can be added from the settings right there are jsut widgets for clock and calander but same design can be used to simply add many more kinds of widgets Menu Bar menu bar now has the brightnes control slider and wifi options (obviously wifi are fake here) Dock can now be auto hidden from settings and only shows up when you hover in the bottom jsut like real macos Integrated the perosnalization in the settings app up next i will add a launch pad, some more little apps, fix a issue related to navigation in finder that i just found out"}, {"post_id": 71881, "ts": "2026-09-21T18:06:25Z", "hours": 1.4678, "text": "Devlog 2 i think i have laid a good foundation for process and window management i am now focusing on the UI and UX of the desktop environment and adding some more app, fetures, and more OS like fell Minimizing and maximizing windows implemented feature to minimize and maxiimize the windows maximizing feature existed but there were some bugs and it wasnt really fullscreen so i fixed that and now it works as expected improve Dock to open or focus the app by detecting wheter app is open or closed or minimized Started improving and adding animations used framer-motion to animate the appearance and disappearance of the windows later i will add transitions to other elements as well Created a settings app to handle the widgets , appearance and general setting all i one place also fixed an infinite render issue in ActivityManagerApp that was caused by the useEffect"}, {"post_id": 70213, "ts": "2026-09-18T18:31:33Z", "hours": 4.1772, "text": "Devlog 1 (after shipping webos1) so its been like 2 months since i last worked on this project so i just revised the whole codebase once Realism so when i decided to build this my main goal was to make it as realistic as possible by realistic i mean to make use of concepts that is used in real linux OS, not just UI but the actual inner workking What went down any application when opened in OS has two parts The window The process Like for notepad app, there is a wrapper window which has the close button and menu options and then there is the actual notepad process which handles things related to the creation and saving of the notes file what was the problem In real OS whenever we try to close a window, the window wrapper simply sends a closing signal to the actual process saying hey process user wants to close you for now. after this the process either saves logs, current changes or show user a confirmation dialog before closing but in my webOS i was jsut closign the process when user clicked the close button on the window wrapper, which is not realistic at all There are three kinds of closing signals that a process can receive SIGTERM SIGKILL SIGQUIT i will not get into the details of these signals but they mean different things , like SIGTERM is a request to terminate the process whereas SIGKILL forces the process to terminate. Solution so i basically added a new property to the window state to track if a window has requested to close the process process actively listen to such state change from the window and replies accordingly and closes the app performs tasks like askeing user to save changes, show warning dialog etc before closing the process there are still some bugs and a lot of things to improve in this thing but i will do that in the next devlog"}, {"post_id": 8020, "ts": "2026-06-13T11:46:24Z", "hours": 3.6642, "text": "#update number 0.0000033 The old man, Terminal Now terminal supports file system operations, can create and delete folders and files Textpad now it can open text files and edit those and save, can create new files as well Activity Manger , task manager Shows the currently running processes in the os, also gives and option to forcefully terminate any process, shows CPU and RAM usage (dummy but mindful of currently running processes) Menu bar menu bar now has specific and dynamic context menu options for each app although its not available yet for each app, but the logic is implemented, I just need to write json config for the ui to display Personalization Right click on desktop and click on Personalization to change wallpaper, will support more customization soon Boot added a cool mock up to mimic shutdown and booting process of OS,"}, {"post_id": 7578, "ts": "2026-06-12T17:50:11Z", "hours": 3.2947, "text": "DevLOG FOURRR What do we got this time well well I now have a complete basic file management system build, I can create text files, edit them, open them, save them in any specific location , delete it, terminal now can run more commands ‘’‘ls, mkdir, rm. touch, echo, clear, etc’’’’ context menus It was time taking and exhausting as every section of the operating system required different type of context menus. It was so much messed up. I ended up creating something central where a single config can decide and make a whole context menu, Desktop is ALIVE Long awaited something I wanted to do is to display what there is in the desktop directory directly onto the desktop after making the complete file system."}, {"post_id": 7422, "ts": "2026-06-12T11:20:38Z", "hours": 0.8694, "text": "Dev Log Threeeee Added a browser as of now only a few websites are accessible like wikipedia.org, other websites reject the connection in a iframe, I am looking for solution to this, I was thinking to maybe compile a rust model web browser using ecmascript and run a browser in browser, looks tough for limited time I have for this project , will definitely give it a shot ( if you guys got any idea let me know ) yayyyy File system is now persistent well despite coolest feature this was fairly easy redux-persistence saved the day, used indexDB as localstorage is synchronous and only allows 5MB of storage -> the files created in desktop folder now show up on the desktop on top of wallpaper NEXT GOAL add some more commands in terminal like ls, touch, mkdir, rm ability to create and save text files make files and folders drag-able (DREAMYYYY) personlization options"}, {"post_id": 7393, "ts": "2026-06-12T10:04:18Z", "hours": 0.6861, "text": "Dev Log 2 Implemented resizing and maximizing of windows (easypzy lemon squeeze) Added some dummy options in the menu bar (will soon make them functional too 😉) Improved UI of file manager (Finder)"}, {"post_id": 7245, "ts": "2026-06-12T02:47:35Z", "hours": 3.4803, "text": "AlpineOS, lightweight web os for study and space research(will be coming soon) The name inspiration come from the alpine images of docker “light weight” I am trying to build is os such that user can sort of study about space. as of now I have build some basic file system, dragable windows, I have setup basic architecture for applications, processes, and files and folders hope fully in my next DEVlog, I will have implemented /fixed resizable windows control panel file and folder persistence some cool apps on space theme preventing windows from going out of screen, will try to make terminal somewhat working improve the UI ability to minimize the windows drag and drop upload of files like text, pdf, word excel etc,"}]...
|
Title: AlpineOS by @ashish-raj-singh | Stardance
Title: AlpineOS by @ashish-raj-singh | Stardance
Devlogs:
AlpineOS, lightweight web os for study and space research(will be coming soon) The name inspiration come from the alpine images of docker “light weight” I am trying to build is os such that user can sort of study about space. as of now I have build some basic file system, dragable windows, I have setup basic architecture for applications, processes, and files and folders hope fully in my next DEVlog, I will have implemented /fixed resizable windows control panel file and folder persistence some cool apps on space theme preventing windows from going out of screen, will try to make terminal somewhat working improve the UI ability to minimize the windows drag and drop upload of files like text, pdf, word excel etc,
Dev Log 2 Implemented resizing and maximizing of windows (easypzy lemon squeeze) Added some dummy options in the menu bar (will soon make them functional too 😉) Improved UI of file manager (Finder)
Dev Log Threeeee Added a browser as of now only a few websites are accessible like wikipedia.org, other websites reject the connection in a iframe, I am looking for solution to this, I was thinking to maybe compile a rust model web browser using ecmascript and run a browser in browser, looks tough for limited time I have for this project , will definitely give it a shot ( if you guys got any idea let me know ) yayyyy File system is now persistent well despite coolest feature this was fairly easy redux-persistence saved the day, used indexDB as localstorage is synchronous and only allows 5MB of storage -> the files created in desktop folder now show up on the desktop on top of wallpaper NEXT GOAL add some more commands in terminal like ls, touch, mkdir, rm ability to create and save text files make files and folders drag-able (DREAMYYYY) personlization options
DevLOG FOURRR What do we got this time well well I now have a complete basic file management system build, I can create text files, edit them, open them, save them in any specific location , delete it, terminal now can run more commands ‘’‘ls, mkdir, rm. touch, echo, clear, etc’’’’ context menus It was time taking and exhausting as every section of the operating system required different type of context menus. It was so much messed up. I ended up creating something central where a single config can decide and make a whole context menu, Desktop is ALIVE Long awaited something I wanted to do is to display what there is in the desktop directory directly onto the desktop after making the complete file system.
#update number 0.0000033 The old man, Terminal Now terminal supports file system operations, can create and delete folders and files Textpad now it can open text files and edit those and save, can create new files as well Activity Manger , task manager Shows the currently running processes in the os, also gives and option to forcefully terminate any process, shows CPU and RAM usage (dummy but mindful of currently running processes) Menu bar menu bar now has specific and dynamic context menu options for each app although its not available yet for each app, but the logic is implemented, I just need to write json config for the ui to display Personalization Right click on desktop and click on Personalization to change wallpaper, will support more customization soon Boot added a cool mock up to mimic shutdown and booting process of OS,
Devlog 1 (after shipping webos1) so its been like 2 months since i last worked on this project so i just revised the whole codebase once Realism so when i decided to build this my main goal was to make it as realistic as possible by realistic i mean to make use of concepts that is used in real linux OS, not just UI but the actual inner workking What went down any application when opened in OS has two parts The window The process Like for notepad app, there is a wrapper window which has the close button and menu options and then there is the actual notepad process which handles things related to the creation and saving of the notes file what was the problem In real OS whenever we try to close a window, the window wrapper simply sends a closing signal to the actual process saying hey process user wants to close you for now. after this the process either saves logs, current changes or show user a confirmation dialog before closing but in my webOS i was jsut closign the process when user clicked the close button on the window wrapper, which is not realistic at all There are three kinds of closing signals that a process can receive SIGTERM SIGKILL SIGQUIT i will not get into the details of these signals but they mean different things , like SIGTERM is a request to terminate the process whereas SIGKILL forces the process to terminate. Solution so i basically added a new property to the window state to track if a window has requested to close the process process actively listen to such state change from the window and replies accordingly and closes the app performs tasks like askeing user to save changes, show warning dialog etc before closing the process there are still some bugs and a lot of things to improve in this thing but i will do that in the next devlog
Devlog 2 i think i have laid a good foundation for process and window management i am now focusing on the UI and UX of the desktop environment and adding some more app, fetures, and more OS like fell Minimizing and maximizing windows implemented feature to minimize and maxiimize the windows maximizing feature existed but there were some bugs and it wasnt really fullscreen so i fixed that and now it works as expected improve Dock to open or focus the app by detecting wheter app is open or closed or minimized Started improving and adding animations used framer-motion to animate the appearance and disappearance of the windows later i will add transitions to other elements as well Created a settings app to handle the widgets , appearance and general setting all i one place also fixed an infinite render issue in ActivityManagerApp that was caused by the useEffect
Real OS true now this feels like a real operating system Widgets added widgets to the desktop, can be added from the settings right there are jsut widgets for clock and calander but same design can be used to simply add many more kinds of widgets Menu Bar menu bar now has the brightnes control slider and wifi options (obviously wifi are fake here) Dock can now be auto hidden from settings and only shows up when you hover in the bottom jsut like real macos Integrated the perosnalization in the settings app up next i will add a launch pad, some more little apps, fix a issue related to navigation in finder that i just found out
Devlog 3 Launchpad as promised i have created the launchpad , but the serach functionlity is not working in it sorry i know its just s amll filter thing but i got my exmas this week, im in rush need to feactor the whole assets thing as i wasn initially importing the images but now i have moved it to the public and how just load them all updated the readme and added icon for the launchpad A lot can be done i think, but i am limited with this event ending 30 sep and also my exams are coming up SO BYE FOR NOWW, i really loved this project
Ships:
I built AlpineOS, A fully functional, persistent, browser-based operating system, not just a CSS UI mockup it’s powered by a custom Redux “kernel” that actually manages background processes independently from the visual windows. live Activity Manager that tracks active PIDs and simulated CPU/Memory telemetry. It includes a persistent Virtual File System An draggable Window Manager Terminal engine that interacts with the File System Persistency , File and folders are persistennt and so it the state of the OS, you leave and come back just find that it has retained the state. The Challange? The architecture and state management were incredibly complex. Synchonizing the UI with the actual process mangement in the “kernal” Persistence, making the whole website persistence. Creatin an Task manager was fun and exciting, it felt like a real low level OS feature Excitement??? hell yeah my whole time I have been building, high-level websites and backend. I never tried a low level project, although this is not Low Level but it forced me to explore the architecture and concepts of hoow operating system works at Low level, how terminal connect with the file system. who doesn’t get excited by low level ?? Being able to selec multiple files and folder, not dragable yet, but soon will be What can i do? When you boot it up, don’t just click the icons and look and design and colors, stress test the ARCHITECTURE! Open the Terminal , use cd to change directory and try standard commands like mkdir, touch, ls, and interact with the file system Open the Activity Manager side-by-side with other apps to watch the active processes update and check the live charts (dummy) Right-click the desktop to open Personalization and change the wallpaper. Most importantly: Open a few windows, move them around the screen, and then hard refresh your browser or maybe just restart and Watch the persistence engine drop you right back where you left off.
This is AlpineOS 2 (WebOS-2) upgraded from the previous version of AlpineOS 1 (WebOS-2) UPss Window animations are now smoother and more responsive. Introduced Widgets and are draggable anywhere on the desktop screen Truly FullScreen mode is here, previously the fullscreen was still not using the space behind the dock and menu bar at top, now it does Menu Bar improvements, now it has calender, wifi and a brightness slider which actually workd A new Settings app, which now has the personalization settings, and a new Widgets section where you can add widgets to your desktop Auto hide dock is now working, it simply hides the dock and shows on hovering th bottom of the desktop and it can be toggled in the settings app The Challenge? The main hurdle for me was understanding the actual OS, and its working as i hve tried to keep this project as realistic as i could understand other then that, the animations and drag and drop functionality was a bit challenging, so right now drag and drop us not supported as i have my exams coming up ans stardance is also going to end 30 sep to i dont have that much time The Excitement? this project was particularly exiting for me not because of the web technologies like used react heavily i have been a web dev for like a year main thing was the OS part, i have never worked on an OS before and this was a new experience for me, and i really loved it i tried to understand the real Operating System i leanred about scheduling algorithms like FCFS, SJF, memory management,how kernel works and communicated, how things are separated and modularized so much more What can you do? just right click on desktop and try to add a widget try to hide dock from the settings app, and hover at the bottom of the desktop and see the dock appear back try to minimize and maximize the windows and see the animations try increasing and decreasing the brightness from the menu bar...
|
1793270952.4341726
|
1793357352.4341726
|
|
16944
|
Pong by @infinite_silly | Stardance
|
infinite_silly
|
1
|
23.0
|
63
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-27T18:01:56Z", "hours": 23.0, "multiplier": 2.78, "payout": 63, "blessing": "neutral", "text": "I built a version of Pong using the Rust game engine Bevy! Bevy is a modular game engine that uses the ECS (Entity, Component, System) paradigm to run games. I followed the TaintedCoders pong tutorial ( https://taintedcoders.com/bevy/tutorials/pong-tutorial ) which let me create a basic pong game with no UI, end, or varied physics. I added randomised collision angles, changed how the AI moved so that it wasn’t perfect at the game, added start and end screens with randomised end messages, and more. There are versions for Apple Silicon Macs, Windows, Linux, and a web playable version.", "repo": "https://github.com/KaonQuantum/bevy-pong", "demo": "https://kaonquantum.github.io/bevy-pong/"}]...
|
[{"post_id": 35917, "ts": "202 [{"post_id": 35917, "ts": "2026-07-27T17:49:00Z", "hours": 1.4794, "text": "Finally got a working desktop release!!! The project is finally done! There were so many issues with this as I had no experience with Github actions or making executables with Rust!"}, {"post_id": 34874, "ts": "2026-07-25T22:55:48Z", "hours": 1.1764, "text": "#Finished Web Demo for Pong I had to do a lot of workflow debugging for this."}, {"post_id": 31340, "ts": "2026-07-19T17:29:25Z", "hours": 3.0556, "text": "End Screens, Colours, and Paddle Collisions This devlog marks the nearing of the end of this project. I made these changes a week ago, but was unable to find time to write a devlog before I went off-grid. Here are the main changes: End Screen I added an end screen with a randomised end message based off of who won (9 messages each) and a Restart button that uses a lot of the same code as the start screen. I also realised that 10 goals was a lot and quite slow, so I dropped it down to 5. Colours I fixed the colour palette by finally swapping the background colour to something within the grand palette. Collisions Hopefully, this is the last collision issue. If the ball hit the top/bottom of a paddle while the paddle had the same v_y direction as the ball, the ball would still swap v_y direction and go DOWN/UP, so this is hopefully taken care of. It doesn’t matter how fast the ball goes because if it hits the top/bottom of a paddle, the point is already lost. The next devlog will probably be with all the build files and such."}, {"post_id": 26248, "ts": "2026-07-10T22:23:03Z", "hours": 1.8286, "text": "Time Delay, Adaptive AI, and Bevy Update Here’s what I’ve done: The AI previously would only move if the ball was a minimum distance away, and it would outpace the ball, stop, the ball would get away, it would outpace it again, and so on because the adaptive AI was increasing speeds. Now it only changes it’s velocity every 0.1s The adaptive AI was also mediocre, so I dropped it and raised the paddle speed. It was really just an AI nerf. I upgraded from Bevy 0.18.1 to 0.19.0 This came with some changes to text and layouts 0.18.1: let font = asset_server.load(\"fonts/PixelifySans-Regular.ttf\"); let label = ( Text::new(\"Start\"), TextFont { font, font_size: 40., ..default() }, TextColor(Color::BLACK), ); 0.19.0: let font = asset_server.load(\"fonts/PixelifySans-Regular.ttf\"); let label = ( Text::new(\"Start\"), TextFont { font: FontSource::Handle(font), font_size: FontSize::Px(40.), ..default() }, TextColor(Color::BLACK), ); among others."}, {"post_id": 25773, "ts": "2026-07-10T07:13:13Z", "hours": 7.1089, "text": "Added a Start Screen and did some Debugging! So I’ve continued improving pong, and here’s what I’ve done since the last devlog. Fine-Tuned Adaptivity Added a Start Screen!!! Fixed Ball Velocity Magnitude Issues (annoying Pythagorean theorem math, and I like math) Made the font Pixelify Sans for the new start button and the scoreboard. There are only two more things I need to do before shipping! [] Make the AI a time delay instead of a space delay Right now the AI moves when the ball is a certain distance from the paddle. This makes it jittery when it is fast due to adaptivity I want to make it only check the ball’s position every second of half-second or so. -This will hopefully eliminate jitter [] Make an end and restart screen The game should end at 10 points It will probably have “Game Over” for a loss and “You Win” for a, you guessed it, a win."}, {"post_id": 13916, "ts": "2026-06-22T20:25:40Z", "hours": 3.2844, "text": "Finished the tutorial and working on my own mods! I started this as a way to learn how to use the basics of 2D game dev with Bevy before I make my Chrome Dino clone Gleebo Run (I know, so original). Continuing this project will help me grasp more of the basics. I Added: AI nerfs Randomness to collisions and ball respawns Ball respawns towards the scoring player Adaptive difficulty AI To Add Game Finish (10 points I think) Start and end screens To Fix New clipping & collision issues Jittery AI paddle Ball velocity magnitude non-consistency issues"}, {"post_id": 8221, "ts": "2026-06-13T17:53:01Z", "hours": 4.83, "text": "I finished step 17 of the tutorial!"}]...
|
Title: Pong by @infinite_silly | Stardance
Devlog Title: Pong by @infinite_silly | Stardance
Devlogs:
I finished step 17 of the tutorial!
Finished the tutorial and working on my own mods! I started this as a way to learn how to use the basics of 2D game dev with Bevy before I make my Chrome Dino clone Gleebo Run (I know, so original). Continuing this project will help me grasp more of the basics. I Added: AI nerfs Randomness to collisions and ball respawns Ball respawns towards the scoring player Adaptive difficulty AI To Add Game Finish (10 points I think) Start and end screens To Fix New clipping & collision issues Jittery AI paddle Ball velocity magnitude non-consistency issues
Added a Start Screen and did some Debugging! So I’ve continued improving pong, and here’s what I’ve done since the last devlog. Fine-Tuned Adaptivity Added a Start Screen!!! Fixed Ball Velocity Magnitude Issues (annoying Pythagorean theorem math, and I like math) Made the font Pixelify Sans for the new start button and the scoreboard. There are only two more things I need to do before shipping! [] Make the AI a time delay instead of a space delay Right now the AI moves when the ball is a certain distance from the paddle. This makes it jittery when it is fast due to adaptivity I want to make it only check the ball’s position every second of half-second or so. -This will hopefully eliminate jitter [] Make an end and restart screen The game should end at 10 points It will probably have “Game Over” for a loss and “You Win” for a, you guessed it, a win.
Time Delay, Adaptive AI, and Bevy Update Here’s what I’ve done: The AI previously would only move if the ball was a minimum distance away, and it would outpace the ball, stop, the ball would get away, it would outpace it again, and so on because the adaptive AI was increasing speeds. Now it only changes it’s velocity every 0.1s The adaptive AI was also mediocre, so I dropped it and raised the paddle speed. It was really just an AI nerf. I upgraded from Bevy 0.18.1 to 0.19.0 This came with some changes to text and layouts 0.18.1: let font = asset_server.load("fonts/PixelifySans-Regular.ttf"); let label = ( Text::new("Start"), TextFont { font, font_size: 40., ..default() }, TextColor(Color::BLACK), ); 0.19.0: let font = asset_server.load("fonts/PixelifySans-Regular.ttf"); let label = ( Text::new("Start"), TextFont { font: FontSource::Handle(font), font_size: FontSize::Px(40.), ..default() }, TextColor(Color::BLACK), ); among others.
End Screens, Colours, and Paddle Collisions This devlog marks the nearing of the end of this project. I made these changes a week ago, but was unable to find time to write a devlog before I went off-grid. Here are the main changes: End Screen I added an end screen with a randomised end message based off of who won (9 messages each) and a Restart button that uses a lot of the same code as the start screen. I also realised that 10 goals was a lot and quite slow, so I dropped it down to 5. Colours I fixed the colour palette by finally swapping the background colour to something within the grand palette. Collisions Hopefully, this is the last collision issue. If the ball hit the top/bottom of a paddle while the paddle had the same v_y direction as the ball, the ball would still swap v_y direction and go DOWN/UP, so this is hopefully taken care of. It doesn’t matter how fast the ball goes because if it hits the top/bottom of a paddle, the point is already lost. The next devlog will probably be with all the build files and such.
#Finished Web Demo for Pong I had to do a lot of workflow debugging for this.
Finally got a working desktop release!!! The project is finally done! There were so many issues with this as I had no experience with Github actions or making executables with Rust!
Ships:
I built a version of Pong using the Rust game engine Bevy! Bevy is a modular game engine that uses the ECS (Entity, Component, System) paradigm to run games. I followed the TaintedCoders pong tutorial ( https://taintedcoders.com/bevy/tutorials/pong-tutorial ) which let me create a basic pong game with no UI, end, or varied physics. I added randomised collision angles, changed how the AI moved so that it wasn’t perfect at the game, added start and end screens with randomised end messages, and more. There are versions for Apple Silicon Macs, Windows, Linux, and a web playable version....
|
1793141329.9295013
|
1793227729.9295013
|
|
18791
|
NemOS (ARG) by @Nemo_Donut | Stardance
|
Nemo_Donut
|
1
|
23.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-19T21:59:50Z", "hours": 23.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "What did you make? I made NemOS , a browser-based operating system experience built with HTML, CSS, and JavaScript. It starts as a retro desktop environment with draggable windows, a boot sequence, desktop icons, and a file explorer, but it’s also the beginning of a narrative horror project. Players explore recovered files belonging to a person known as Nemo and slowly uncover the story behind Project NULL, a mysterious subject called 13, and a corrupted archive full of missing memories. Lore incomplete right now will come back in webOS part 2! What was challenging? The most challenging part was creating a desktop environment from scratch without using any frameworks. I had to build window dragging, resizing, focus management, icon selection, application launching, file viewing, and the boot sequence myself. I also spent a lot of time making the UI behave like a real operating system while keeping everything inside a web browser. Designing a system that could later support a branching story and unlockable files was another challenge. What are you proud of? I’m proud that I turned a simple webOS project into something with its own identity and story. Instead of making only a desktop simulator, I built a frikin lore lmao this for an interactive archive where the operating system itself becomes part of the narrative. I’m also proud that most of the functionality was built from scratch, including the window system, archive explorer, boot loader, and lore-driven interface. What should people know so they can test your project? When the website loads, wait for the boot sequence to finish and respond to the access prompt. After entering the desktop, open README_FIRST.txt by double-clicking it. Reading and closing that file unlocks ARCHIVE_EXPLORER.exe , which contains the recovered archive records. The current build is Part 1 of a larger project, so it focuses on the desktop environment, archive system, and the beginning of the story rather than the complete narrative.", "repo": "https://github.com/adonutartist/NemOS", "demo": "https://nemos-rose.vercel.app/"}]...
|
[{"post_id": 12167, "ts": "202 [{"post_id": 12167, "ts": "2026-06-19T21:33:05Z", "hours": 4.4411, "text": "DEVLOG #5 Hello ya’ll I am back with good new and well a smol bad news ;-; So first good news is that i am done with part 1 of the webOS so I will ship this project today! Bad news is that the lore is very incomplete right now ;-; I plan to continue this in the webOS part 2!! Today i polished the file explorer kind of app added all necessary functions too… edited the not files too for more lore immersion… I hope it gets reviewed soon so that I can start working on part 2 of this project! Cyaaa Goooodnight!"}, {"post_id": 11608, "ts": "2026-06-18T22:02:56Z", "hours": 4.6942, "text": "DEVLOG #4 Hello everyone!! I am back again with a crazy idea!!!! So I saw so many people creating webOS its just sooo common so I added a twisterrrr to my one!! I added a lore to the webOS yep yep you heard that right a frikin lore to a WebOS!!!! So I have this oc of mine I created he has a pretty disturbing backstory and so I am gonna integrate that into the webOS not gonna spoil any story elements here so that you try it out yourself when I release it! I added bootscreen too to make it looks so daaammmm cooolio! I changed the welcome message and also added new app which is a file explorer still needs more work but yeh its in development!! I am thinking to ship it as my submission for webOS 1 with like half of the lore and then in webOS 2 imma ship it with the other half combined! Pretty excited with this idea lmao!!!! Cyaaaa! Goooodnight!!!"}, {"post_id": 10920, "ts": "2026-06-17T21:53:42Z", "hours": 4.8289, "text": "DEVLOG #3 Hello y’all! I am back again with yet another devlog and again laaaaats of progress which included first app making and some quality of life feature :3! So firstly I have completed part 4 of the WebOS 1 guide and hence tomorrow I may ship this project lmao xD I feel like I am speedrunning this xDDD I created a note taking app called txt.nemo it has a icon which u can single click to select and double click to open, it also has local storage so if u close the app or refresh browser or reopen browser then it will still save your notes. I also made a selection box for single click. I added dragging boundaries so that the windows can’t be dragged out of the screen, this also solves the bug of window being stuck if under top bar. I added resize feature to the windows too and also min height and width for each window! I am really happy with what i have till now xD I never knew I could HTML and css and javascript stuff so easily lol xD its so fun!!!! Cyaaaaa!! Gooooodnight!!"}, {"post_id": 10237, "ts": "2026-06-16T21:21:57Z", "hours": 4.2569, "text": "DEVLOG #2 Hello y’all! I am back with yet another devlog and lots of progress which included bug fixing some pixel art making etc etc! So first I downloaded VS code for windows then I cloned the NemOS repo to my computer and started working on it through VS code because this feels much easier! I can easily see preview of my webOS anytime I want and I don’t need to bash my brain over a silly lil bug of codespace lol xD I completed part 3 of the WebOS 1 guide! Now i have a draggable window, close and open buttons and both have cool pixel art I made for them on piskel :3 I am trying to figure out how to add minimize and resize features as they’re not given on the guide… hopefully I am able to implement those features tomorrow :p Now enjoy this screenshot of my webOS it features my best background art!!! Cyaaaa!! Gooooodnight!!!!"}, {"post_id": 9509, "ts": "2026-06-15T21:29:07Z", "hours": 4.4247, "text": "DEVLOG #1 Hello y’all!! I am back lol yeh I didn’t take even a single day of break after shipping DONUT PAD and started working on this new project called the NemOS :] I am following the WebOS 1 guide and I am done with the first 2 sections but sadly had to stop there because of this frikin big error which didn’t come from the code but the extension itself ;-; So basically I was using github codespace to make this and if you know about it even a lil bit then you would know that you need to preview your website after every smoool change. For this I was using the live preview extension made by microsoft but after like using it for like 3 hours it crashed or whatever you wanna call it ;-; it kept showing me some typo error and IP address when i tried to preview my website which was so dayummm annoying I searched google reddit etc etc no cure people have reported such problems before but no cure available ;-; I don’t know what to do now I really wanted to show y’all my cool art pieces I added as wallpaper and stuff but this frikin errror ruined my day xd Imma try to come back to this tomorrow with a fresh mind ;-; so cya for now ;-; Gudnight!"}]...
|
Title: NemOS (ARG) by @Nemo_Donut | Stardance
Dev Title: NemOS (ARG) by @Nemo_Donut | Stardance
Devlogs:
DEVLOG #1 Hello y’all!! I am back lol yeh I didn’t take even a single day of break after shipping DONUT PAD and started working on this new project called the NemOS :] I am following the WebOS 1 guide and I am done with the first 2 sections but sadly had to stop there because of this frikin big error which didn’t come from the code but the extension itself ;-; So basically I was using github codespace to make this and if you know about it even a lil bit then you would know that you need to preview your website after every smoool change. For this I was using the live preview extension made by microsoft but after like using it for like 3 hours it crashed or whatever you wanna call it ;-; it kept showing me some typo error and IP address when i tried to preview my website which was so dayummm annoying I searched google reddit etc etc no cure people have reported such problems before but no cure available ;-; I don’t know what to do now I really wanted to show y’all my cool art pieces I added as wallpaper and stuff but this frikin errror ruined my day xd Imma try to come back to this tomorrow with a fresh mind ;-; so cya for now ;-; Gudnight!
DEVLOG #2 Hello y’all! I am back with yet another devlog and lots of progress which included bug fixing some pixel art making etc etc! So first I downloaded VS code for windows then I cloned the NemOS repo to my computer and started working on it through VS code because this feels much easier! I can easily see preview of my webOS anytime I want and I don’t need to bash my brain over a silly lil bug of codespace lol xD I completed part 3 of the WebOS 1 guide! Now i have a draggable window, close and open buttons and both have cool pixel art I made for them on piskel :3 I am trying to figure out how to add minimize and resize features as they’re not given on the guide… hopefully I am able to implement those features tomorrow :p Now enjoy this screenshot of my webOS it features my best background art!!! Cyaaaa!! Gooooodnight!!!!
DEVLOG #3 Hello y’all! I am back again with yet another devlog and again laaaaats of progress which included first app making and some quality of life feature :3! So firstly I have completed part 4 of the WebOS 1 guide and hence tomorrow I may ship this project lmao xD I feel like I am speedrunning this xDDD I created a note taking app called txt.nemo it has a icon which u can single click to select and double click to open, it also has local storage so if u close the app or refresh browser or reopen browser then it will still save your notes. I also made a selection box for single click. I added dragging boundaries so that the windows can’t be dragged out of the screen, this also solves the bug of window being stuck if under top bar. I added resize feature to the windows too and also min height and width for each window! I am really happy with what i have till now xD I never knew I could HTML and css and javascript stuff so easily lol xD its so fun!!!! Cyaaaaa!! Gooooodnight!!
DEVLOG #4 Hello everyone!! I am back again with a crazy idea!!!! So I saw so many people creating webOS its just sooo common so I added a twisterrrr to my one!! I added a lore to the webOS yep yep you heard that right a frikin lore to a WebOS!!!! So I have this oc of mine I created he has a pretty disturbing backstory and so I am gonna integrate that into the webOS not gonna spoil any story elements here so that you try it out yourself when I release it! I added bootscreen too to make it looks so daaammmm cooolio! I changed the welcome message and also added new app which is a file explorer still needs more work but yeh its in development!! I am thinking to ship it as my submission for webOS 1 with like half of the lore and then in webOS 2 imma ship it with the other half combined! Pretty excited with this idea lmao!!!! Cyaaaa! Goooodnight!!!
DEVLOG #5 Hello ya’ll I am back with good new and well a smol bad news ;-; So first good news is that i am done with part 1 of the webOS so I will ship this project today! Bad news is that the lore is very incomplete right now ;-; I plan to continue this in the webOS part 2!! Today i polished the file explorer kind of app added all necessary functions too… edited the not files too for more lore immersion… I hope it gets reviewed soon so that I can start working on part 2 of this project! Cyaaa Goooodnight!
Ships:
What did you make? I made NemOS , a browser-based operating system experience built with HTML, CSS, and JavaScript. It starts as a retro desktop environment with draggable windows, a boot sequence, desktop icons, and a file explorer, but it’s also the beginning of a narrative horror project. Players explore recovered files belonging to a person known as Nemo and slowly uncover the story behind Project NULL, a mysterious subject called 13, and a corrupted archive full of missing memories. Lore incomplete right now will come back in webOS part 2! What was challenging? The most challenging part was creating a desktop environment from scratch without using any frameworks. I had to build window dragging, resizing, focus management, icon selection, application launching, file viewing, and the boot sequence myself. I also spent a lot of time making the UI behave like a real operating system while keeping everything inside a web browser. Designing a system that could later support a branching story and unlockable files was another challenge. What are you proud of? I’m proud that I turned a simple webOS project into something with its own identity and story. Instead of making only a desktop simulator, I built a frikin lore lmao this for an interactive archive where the operating system itself becomes part of the narrative. I’m also proud that most of the functionality was built from scratch, including the window system, archive explorer, boot loader, and lore-driven interface. What should people know so they can test your project? When the website loads, wait for the boot sequence to finish and respond to the access prompt. After entering the desktop, open README_FIRST.txt by double-clicking it. Reading and closing that file unlocks ARCHIVE_EXPLORER.exe , which contains the recovered archive records. The current build is Part 1 of a larger project, so it focuses on the desktop environment, archive system, and the beginning of the story rather than the complete narrative....
|
1793224276.4774845
|
1793310676.4774845
|
|
20366
|
HydraCoaster by @dxnkey | Stardance
|
dxnkey
|
1
|
23.0
|
116
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-13T04:15:23Z", "hours": 23.0, "multiplier": 5.0, "payout": 116, "blessing": "neutral", "text": "I made a “HydraCoaster”, a smart drink coaster that tracks how much you drink, reminds you when you’ve gone too long without water, and adjusts your hydration goal based on the weather! It connects to a full iOS app where you can see your daily progress, streaks, badges, drink history, and even sync everything with Apple Health! The hardest part was making the coaster reliable when the phone wasn’t connected. I had to fix Bluetooth timing issues, recover offline sips, improve weight accuracy, and make sure celebrations only triggered after the coaster confirmed they actually played. I’m most proud that this started as a basic ESP32 prototype and turned into something that feels like a real product. It’s fully wireless, has a custom enclosure, supports over-the-air updates, logs drinks automatically, and even celebrates when you hit your goal! I’d really appreciate if you could give me all 9s because this took forever to make. Thank you!", "repo": "https://github.com/guptaronav/HydraCoaster", "demo": ""}]...
|
[{"post_id": 27496, "ts": "202 [{"post_id": 27496, "ts": "2026-07-13T03:35:01Z", "hours": 1.9564, "text": "Devlog #8 – HydraCoaster V3 IS HERE!!!! THE PARTY ALWAYS ARRIVES Shipping a celebration and reliably delivering one turn out to be different problems. V2 marked your once-a-day celebration as used the moment the phone sent the command — so if the coaster rejected it or the reply got lost in the air, the day burned with nothing played, and it never retried. Now the day is only recorded when the coaster confirms the flourish actually ran; a bad or lost reply clears the pending marker and the next qualifying sip simply sends it again. Crossing 100% away from the coaster counts too. Log a glass at a restaurant, walk in the door, and the celebration fires the moment the coaster reconnects — no waiting for another sip. Amber pulses and ascending chirps, right on cue. NO MORE VANISHING SIPS The nastiest bug of the release: the app called itself “connected” the instant Bluetooth linked, before it had discovered where writes actually go. Everything that fires on connect — including the request for sips the coaster logged while your phone was away — hit a not-ready guard and was silently dropped. Offline sips just never backfilled. “Connected” now means ready-to-write, and a failed discovery disconnects for a clean retry. Every phone-free sip lands in your history on the next reconnect, every time. A RING WITH A PULSE The Today ring traded flat ink for an angular gradient with a liquid sheen, progress moves on a spring, and the first time it fills each day it does a quick scale pulse and pins a sparkly “goal reached” under the number — the on-phone echo of the coaster’s flourish. The streak flame bounces when your streak grows. The Awards tab got tinted icon circles on the stat tiles, earned badges on accent-washed gradient cards, badge symbols that bounce when unlocked, and a cascading entrance. Turn on Reduce Motion and all of it politely sits still. PUSH TO PARTY A Celebration Test button now lives in Settings, right under Buzz Test. Unlike Buzz Test, it respects your Sound and Light toggles, so it exercises the exact path a real goal celebration takes. A checkmark plus silence means your toggles are off — not that something’s broken."}, {"post_id": 25723, "ts": "2026-07-10T04:54:31Z", "hours": 5.1506, "text": "Devlog #7 – HydraCoaster V2 IS HERE!!!! SMARTER GOALS Your daily goal can now be computed from weight, height, and activity level instead of picked from a wheel, and it scales up on hot or dry days using the same OpenWeatherMap feed that already drives reminder pacing. The Today ring shows the weather bump as a caption so a bigger goal never looks like a bug. Streaks and badges always judge against your base goal, since past days’ weather isn’t stored — that’s deliberate and documented in the code. REAL DRINK TRACKING A 61-drink catalog across 9 categories, each with a hydration factor — water is 1.0, espresso less, beer much less. Log drinks manually with the + button, or reclassify any coaster-detected sip after the fact. Apple Health entries are replaced in place when you reclassify, so Health always agrees with the app. SLEEP-AWARE QUIET HOURS The coaster no longer buzzes at 3am. Quiet hours come in three modes: off, manual times, or derived from your Health sleep data — a 14-day median of bedtime and wake, with naps filtered out and a noon-centered median so bedtimes straddling midnight don’t average to lunchtime. The phone converts your local window to UTC and rewrites it to the coaster on every connect and every half-hour weather tick, which means daylight-saving shifts fix themselves within one cycle and the firmware never learns what a timezone is. A reminder suppressed overnight isn’t lost — it fires on the first check after the window ends. Phone-side, notifications defer to fifteen minutes after wake, reminders got a snooze button, and three presets (Gentle, Standard, Persistent) scale how hard the whole system nags. One casualty: the “Respect Focus” toggle. Apple’s Focus-status entitlement can’t ride on a free personal-team provisioning profile, so the feature is compiled out behind a flag with a note on how to restore it if the project ever gets a paid developer account. STREAKS, BADGES, AWARDS A fourth tab. Today’s hydration score, current streak, and longest streak up top; below, ten badges from First Sip to a 30-day streak, a lifetime 50 liters, an early-bird sip before 8am, and a perfect calendar week. Everything is recomputed from sip history on demand — nothing is stored, so the numbers can never drift from the data. A small flame chip appears on Today once you’re two days deep. DEEPER HISTORY Week and month chart ranges, a GitHub-style heatmap of the last twelve weday got to goal, a per-category drink breakdown, and CSV export of yourentire sip history from the share button — RFC-4180 quoted, ISO-8601 dates, ready for a spreadsheet. THEMES AND A WIDGET Four color themes — Aqua (the original), Sunset, Forest, Mono — plus a light/dark override, all applied live. A home-screen and lock-screen widget shows the progress ring and streak, updated through an App Group the moment a sip lands. THE COASTER CELEBRATES WITH YOU New firmware command: the first time you hit 100% in a day, the coaster pirps with amber LED pulses — deliberately distinct from the reminder alertby both ear and eye. It respects your sound and light preferences, fires once per day, and triggers against the same weather-scaled goal the ring shows."}, {"post_id": 25158, "ts": "2026-07-09T06:26:19Z", "hours": 5.3192, "text": "Devlog #6 – HydraCoaster Today, I setup HydraCoaster with BLE and made a full-fledged iOS app! The whole reminder system is now onboard: sip detection, automatic zero-drift correction, and self-timed buzz reminders now run on the ESP32 with no computer anywhere. Sips get logged to flash and served over a custom BLE service: live weight streaming, history backfill, time sync, calibration commands, battery. The product build is BLE-only, but a dev build keeps WiFi OTA so reflashing stays cable-free. The app has a sixty-second onboarding (pair + set a goal), Today screen with a goal ring and live weight, 14-day history chart, Settings with sound/light/reminder toggles, buzz test, notification test, reset data button, and a guided recalibration flow. Sips sync into SwiftData, write to Apple Health with their real timestamps, and the phone mirrors the coaster’s reminder as a local notification."}, {"post_id": 24555, "ts": "2026-07-08T06:15:02Z", "hours": 5.3839, "text": "Devlog #5 – HydraCoaster Printed and converted to V2 of the hardware enclosure (images not attached)! New CAD has an added cork base, and had to add the hardware for a buzzer as well. Made HydraCoaster fully wireless! It now streams weight over WiFi (UDP), reflashes over the air, and the USB cable is optional. I also built a notification system: a piezo buzzer plays a three-tone alert (low for hearing loss, mid for loudness, high to beat noise-cancelling), with the onboard LED flashing white in sync. The server detects sips from weight drops, and buzzes the coaster when you haven’t drunk for too long — 20 min base, shortened in hot/dry weather (OpenWeatherMap), relaxed after a good drinking session. Dashboard got a console showing location/temp/humidity/interval, a test buzz button, and persistent toggles for sound, LED, and reminders."}, {"post_id": 23818, "ts": "2026-07-06T23:51:44Z", "hours": 1.1592, "text": "Devlog #4 – HydraCoaster I tested V1 of the enclosure and created a proof of concept software to test the basic hydration session system. The electronics fit perfectly but the strain gauge is offset and has less accurate readings in this coaster. I also printed the TPU cover on the wrong build plate, causing for small imperfections in the print. I plan to reprint the TPU cover and the outer wall of the coaster to be a bit taller so that there’s more wiggle room for the strain gauge. The software is measuring values that are really wrong, but the start and end values are equally wrong. This means the session drinking amounts are really right and I’m happy with that for now!"}, {"post_id": 23259, "ts": "2026-07-06T03:15:11Z", "hours": 2.3414, "text": "Devlog #3 – HydraCoaster I designed V1 of the HydraCoaster’s enclosure/case and tried my best to house the electronics as well as possible. I definitely will need future iterations to fix the weight mechanism and also include more features like LEDs, vibration motors, buzzers, etc. I’m really happy with what I’ve got so far and can’t wait to see this through!"}, {"post_id": 22508, "ts": "2026-07-05T00:42:40Z", "hours": 1.2089, "text": "Devlog #2 – HydraCoaster I switched from the FSR402s to a proper 1kg Load Cell that has much higher accuracy when connected to an Adafruit NAU7802. After some testing, the load cell returned values with accuracy down to the tenth of a gram. With the right code and design, this is the perfect component for a compact smart coaster!"}, {"post_id": 10296, "ts": "2026-06-16T22:49:15Z", "hours": 0.7628, "text": "Devlog #1 – HydraCoaster Hi everyone! This is my second hardware project on Stardance and I think it might be my favorite. The goal of this project is to eventually make something with a sleek form factor and the potential of being scaled into a real product. I envision a PCB, meaning I need to learn PCB design and production. However, for now, I’m prototyping with a breadboard and perf board just to learn the basics. I’ve wired an ESP 32 C6 Feather with two FSR402 pressure sensors and a passive buzzer. I’ve coded a basic OWM pull with PlatformIO and Arduino framework. It adapts drinking intervals using the temperature from OWM and buzzes accordingly. That’s all I have for now!"}]...
|
Title: HydraCoaster by @dxnkey | Stardance
Devlog Title: HydraCoaster by @dxnkey | Stardance
Devlogs:
Devlog #1 – HydraCoaster Hi everyone! This is my second hardware project on Stardance and I think it might be my favorite. The goal of this project is to eventually make something with a sleek form factor and the potential of being scaled into a real product. I envision a PCB, meaning I need to learn PCB design and production. However, for now, I’m prototyping with a breadboard and perf board just to learn the basics. I’ve wired an ESP 32 C6 Feather with two FSR402 pressure sensors and a passive buzzer. I’ve coded a basic OWM pull with PlatformIO and Arduino framework. It adapts drinking intervals using the temperature from OWM and buzzes accordingly. That’s all I have for now!
Devlog #2 – HydraCoaster I switched from the FSR402s to a proper 1kg Load Cell that has much higher accuracy when connected to an Adafruit NAU7802. After some testing, the load cell returned values with accuracy down to the tenth of a gram. With the right code and design, this is the perfect component for a compact smart coaster!
Devlog #3 – HydraCoaster I designed V1 of the HydraCoaster’s enclosure/case and tried my best to house the electronics as well as possible. I definitely will need future iterations to fix the weight mechanism and also include more features like LEDs, vibration motors, buzzers, etc. I’m really happy with what I’ve got so far and can’t wait to see this through!
Devlog #4 – HydraCoaster I tested V1 of the enclosure and created a proof of concept software to test the basic hydration session system. The electronics fit perfectly but the strain gauge is offset and has less accurate readings in this coaster. I also printed the TPU cover on the wrong build plate, causing for small imperfections in the print. I plan to reprint the TPU cover and the outer wall of the coaster to be a bit taller so that there’s more wiggle room for the strain gauge. The software is measuring values that are really wrong, but the start and end values are equally wrong. This means the session drinking amounts are really right and I’m happy with that for now!
Devlog #5 – HydraCoaster Printed and converted to V2 of the hardware enclosure (images not attached)! New CAD has an added cork base, and had to add the hardware for a buzzer as well. Made HydraCoaster fully wireless! It now streams weight over WiFi (UDP), reflashes over the air, and the USB cable is optional. I also built a notification system: a piezo buzzer plays a three-tone alert (low for hearing loss, mid for loudness, high to beat noise-cancelling), with the onboard LED flashing white in sync. The server detects sips from weight drops, and buzzes the coaster when you haven’t drunk for too long — 20 min base, shortened in hot/dry weather (OpenWeatherMap), relaxed after a good drinking session. Dashboard got a console showing location/temp/humidity/interval, a test buzz button, and persistent toggles for sound, LED, and reminders.
Devlog #6 – HydraCoaster Today, I setup HydraCoaster with BLE and made a full-fledged iOS app! The whole reminder system is now onboard: sip detection, automatic zero-drift correction, and self-timed buzz reminders now run on the ESP32 with no computer anywhere. Sips get logged to flash and served over a custom BLE service: live weight streaming, history backfill, time sync, calibration commands, battery. The product build is BLE-only, but a dev build keeps WiFi OTA so reflashing stays cable-free. The app has a sixty-second onboarding (pair + set a goal), Today screen with a goal ring and live weight, 14-day history chart, Settings with sound/light/reminder toggles, buzz test, notification test, reset data button, and a guided recalibration flow. Sips sync into SwiftData, write to Apple Health with their real timestamps, and the phone mirrors the coaster’s reminder as a local notification.
Devlog #7 – HydraCoaster V2 IS HERE!!!! SMARTER GOALS Your daily goal can now be computed from weight, height, and activity level instead of picked from a wheel, and it scales up on hot or dry days using the same OpenWeatherMap feed that already drives reminder pacing. The Today ring shows the weather bump as a caption so a bigger goal never looks like a bug. Streaks and badges always judge against your base goal, since past days’ weather isn’t stored — that’s deliberate and documented in the code. REAL DRINK TRACKING A 61-drink catalog across 9 categories, each with a hydration factor — water is 1.0, espresso less, beer much less. Log drinks manually with the + button, or reclassify any coaster-detected sip after the fact. Apple Health entries are replaced in place when you reclassify, so Health always agrees with the app. SLEEP-AWARE QUIET HOURS The coaster no longer buzzes at 3am. Quiet hours come in three modes: off, manual times, or derived from your Health sleep data — a 14-day median of bedtime and wake, with naps filtered out and a noon-centered median so bedtimes straddling midnight don’t average to lunchtime. The phone converts your local window to UTC and rewrites it to the coaster on every connect and every half-hour weather tick, which means daylight-saving shifts fix themselves within one cycle and the firmware never learns what a timezone is. A reminder suppressed overnight isn’t lost — it fires on the first check after the window ends. Phone-side, notifications defer to fifteen minutes after wake, reminders got a snooze button, and three presets (Gentle, Standard, Persistent) scale how hard the whole system nags. One casualty: the “Respect Focus” toggle. Apple’s Focus-status entitlement can’t ride on a free personal-team provisioning profile, so the feature is compiled out behind a flag with a note on how to restore it if the project ever gets a paid developer account. STREAKS, BADGES, AWARDS A fourth tab. Today’s hydration score, current streak, and longest streak up top; below, ten badges from First Sip to a 30-day streak, a lifetime 50 liters, an early-bird sip before 8am, and a perfect calendar week. Everything is recomputed from sip history on demand — nothing is stored, so the numbers can never drift from the data. A small flame chip appears on Today once you’re two days deep. DEEPER HISTORY Week and month chart ranges, a GitHub-style heatmap of the last twelve weday got to goal, a per-category drink breakdown, and CSV export of yourentire sip history from the share button — RFC-4180 quoted, ISO-8601 dates, ready for a spreadsheet. THEMES AND A WIDGET Four color themes — Aqua (the original), Sunset, Forest, Mono — plus a light/dark override, all applied live. A home-screen and lock-screen widget shows the progress ring and streak, updated through an App Group the moment a sip lands. THE COASTER CELEBRATES WITH YOU New firmware command: the first time you hit 100% in a day, the coaster pirps with amber LED pulses — deliberately distinct from the reminder alertby both ear and eye. It respects your sound and light preferences, fires once per day, and triggers against the same weather-scaled goal the ring shows.
Devlog #8 – HydraCoaster V3 IS HERE!!!! THE PARTY ALWAYS ARRIVES Shipping a celebration and reliably delivering one turn out to be different problems. V2 marked your once-a-day celebration as used the moment the phone sent the command — so if the coaster rejected it or the reply got lost in the air, the day burned with nothing played, and it never retried. Now the day is only recorded when the coaster confirms the flourish actually ran; a bad or lost reply clears the pending marker and the next qualifying sip simply sends it again. Crossing 100% away from the coaster counts too. Log a glass at a restaurant, walk in the door, and the celebration fires the moment the coaster reconnects — no waiting for another sip. Amber pulses and ascending chirps, right on cue. NO MORE VANISHING SIPS The nastiest bug of the release: the app called itself “connected” the instant Bluetooth linked, before it had discovered where writes actually go. Everything that fires on connect — including the request for sips the coaster logged while your phone was away — hit a not-ready guard and was silently dropped. Offline sips just never backfilled. “Connected” now means ready-to-write, and a failed discovery disconnects for a clean retry. Every phone-free sip lands in your history on the next reconnect, every time. A RING WITH A PULSE The Today ring traded flat ink for an angular gradient with a liquid sheen, progress moves on a spring, and the first time it fills each day it does a quick scale pulse and pins a sparkly “goal reached” under the number — the on-phone echo of the coaster’s flourish. The streak flame bounces when your streak grows. The Awards tab got tinted icon circles on the stat tiles, earned badges on accent-washed gradient cards, badge symbols that bounce when unlocked, and a cascading entrance. Turn on Reduce Motion and all of it politely sits still. PUSH TO PARTY A Celebration Test button now lives in Settings, right under Buzz Test. Unlike Buzz Test, it respects your Sound and Light toggles, so it exercises the exact path a real goal celebration takes. A checkmark plus silence means your toggles are off — not that something’s broken.
Ships:
I made a “HydraCoaster”, a smart drink coaster that tracks how much you drink, reminds you when you’ve gone too long without water, and adjusts your hydration goal based on the weather! It connects to a full iOS app where you can see your daily progress, streaks, badges, drink history, and even sync everything with Apple Health! The hardest part was making the coaster reliable when the phone wasn’t connected. I had to fix Bluetooth timing issues, recover offline sips, improve weight accuracy, and make sure celebrations only triggered after the coaster confirmed they actually played. I’m most proud that this started as a basic ESP32 prototype and turned into something that feels like a real product. It’s fully wireless, has a custom enclosure, supports over-the-air updates, logs drinks automatically, and even celebrates when you hit your goal! I’d really appreciate if you could give me all 9s because this took forever to make. Thank you!...
|
1793246016.8914316
|
1793332416.8914316
|
|
21478
|
BodyAtlas by @yashasvib | Stardance
|
yashasvib
|
3
|
23.0
|
302
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-07T10:09:19Z", "hours": 1.0, "multiplier": 9.85, "payout": 12, "blessing": "neutral", "text": "hi guys !! (read the other ships before to know but the project) this is going to be short cuz i only wanted to increase the data base and its quite easy …but I added Only very very few question because i have EXAMS !! but its okay ill manage in future .. so i guess that’s all !! BYE !!", "repo": "https://github.com/yashasvi-2012-star/BodyAtlas", "demo": "https://bodyatlas-omega.vercel.app/"}, {"ship_num": 2, "ts": "2026-07-01T08:22:47Z", "hours": 13.0, "multiplier": 14.35, "payout": 185, "blessing": "neutral", "text": "HEY !!! this is a webs.. that lets you explore human body and it is called BodyAtlas .when opened it first land on a landing page where date , day, time are displayed and there is also a section about this project . then it takes you to main page where there is a main screen with a left , right panel , dock at bottom . in the main screen initially i thought to add maybe like a 3d body which can rotate and do cool stuff but there were no free options so i had to change my plan and do a 2d one . tho I’m not that disappointed how good 2-d also looks !!! RIGHT? . i have also added spots (HOTSPOTS ) where when you click opens there information in the right side located info panel witch have a inbuilt the database for source . the bottom dock have options for organ which you can visit . the left panel is the most important because it have two part the medicines hub and body system . when you select a body system from the given option the respective organs glow telling you about the organs involved . in the medicine hub there are two options the quiz (YAS !! actually working quiz )and a how does it work ? option when opened takes you to a screen where you can explore the various things like diseases , medicines , medical tests, surgeries , body processes and instrument using animated video which are taken frame Youtube and the credits goes to their respective owners . i have also added a challenge mode where you can select difficulty and topic and it will give you questions , for each answer you gain points and for each wrong answer your points are deducted this project has been a important part of my whole stardance journey hope you like it !!! BYE !!!", "repo": "https://github.com/yashasvi-2012-star/BodyAtlas", "demo": "https://bodyatlas-omega.vercel.app/"}, {"ship_num": 3, "ts": "2026-06-25T12:38:05Z", "hours": 9.0, "multiplier": 12.05, "payout": 105, "blessing": "neutral", "text": "HEY !!! this is a webs.. that lets you explore human body and it is called BodyAtlas .when opened it first land on a landing page where date , day, time are displayed and there is also a section about this project . then it takes you to main page where there is a main screen with a left , right panel , dock at bottom . in the main screen initially i thought to add maybe like a 3d body which can rotate and do cool stuff but there were no free options so i had to change my plan and do a 2d one . tho I’m not that disappointed how good 2-d also looks !!! RIGHT? . i have also added spots (HOTSPOTS ) where when you click opens there information in the right side located info panel witch have a inbuilt the database for source . the bottom dock have options for organ which you can visit . the left panel is the most important because it have two part the medicines hub and body system . when you select a body system from the given option the respective organs glow telling you about the organs involved . in the medicine hub there are two options the quiz (YAS !! actually working quiz )and a how does it work ? option when opened takes you to a screen where you can explore the various things like diseases , medicines , medical tests, surgeries , body processes and instrument using animated video which are taken frame Youtube and the credits goes to their respective owners . this project has been a important part of my whole stardance journey hope you like it !!! BYE !!!", "repo": "https://github.com/yashasvi-2012-star/BodyAtlas", "demo": "https://bodyatlas-omega.vercel.app/"}]...
|
[{"post_id": 27049, "ts": "202 [{"post_id": 27049, "ts": "2026-07-12T07:38:18Z", "hours": 1.1708, "text": "HI GUYS !! i noticed or you can say realized that i totally forgot to expand my data base and shipped it with less questions so if i choose specific field from the challenge mode it display either one or two question because no questions related to those mode will be found within the database ."}, {"post_id": 19859, "ts": "2026-07-01T08:19:52Z", "hours": 0.3072, "text": "hey !!! this time i did some debugging , changed UI ,and wrote the final README . this is a short update !! bye !!"}, {"post_id": 19831, "ts": "2026-07-01T06:54:08Z", "hours": 2.06, "text": "hi guys !! this time, i just try to fix all the error and bugs as i could and not only the one thought who create a problem those also which were found by my fellow friends !!"}, {"post_id": 18267, "ts": "2026-06-29T11:03:41Z", "hours": 3.1489, "text": "hey guys I just PURIFIED the competitive mode and it took a lot of time and I also added the popups for .. u can see below I’m sleepy , ’kay bye !!"}, {"post_id": 17463, "ts": "2026-06-28T07:59:21Z", "hours": 4.0928, "text": "hey !!! I changed all the wallpapers turn the body transparent with no background and re did all the logic part of challenge mode and today was a easy but time consuming day !! I’m happy it’s coming alive .. BYE !!"}, {"post_id": 16782, "ts": "2026-06-27T07:50:13Z", "hours": 0.9897, "text": "heyy guys this is an update on body atlas and from now on less updates will be posted . ok so I added other screen and and arranged hotspots using percen rather than px so it stays stable regardless of the condition . I have made js part also which controls the question appearing and timer and points and all the interface is basic and I will upgrade it soon . and I want a opinion from you all , should I add this game in the medicines hub or at the front screen top bar or any other place ?"}, {"post_id": 16376, "ts": "2026-06-26T17:25:07Z", "hours": 1.5144, "text": "HEY !!! I just thought why not keep BodyAtlas going ? so here I am with just another super duper starry feature … drum rolls please …… its a competitive mode where you can chose the level and topic you wanna get it on and the press ‘lets go’ button and then you see a brandnew page with question .. but what makes it diffrent from normal quiz section present in just the main BodyAtlas .. its that it have a timer and you get points for each correct answers and it also takes away some points for wrong answer and when you collect a specific number of point you unlock access to special animated video of how does it work !! ad you can power up your level the more u play .. it a whole diffrent animal (game)…..built inside my webs.. tho its still ongoing I will try my best to make it more interactive and …sugar honey ice tea….BYE !!!"}, {"post_id": 15789, "ts": "2026-06-25T17:45:06Z", "hours": 0.8197, "text": "hi everybody , I shipped my project and just got the review saying that my project looks too much AI . is it so ? I don’t think so cause I did several things on my own and yes I agree I took help of AI in many places of my project even for debugging and all those errors I could not understand . but the reviewer also said I should add features of my own ! I did everything ! each and feature is my own ! what do you think , that AI can up with those ideas , it was me who thought of each and everything from the theme to the content, from the howdoesitwork? to the quiz section . I am not writting this to go against the reviewer but i wanna have honest opinions on my project guys !!"}, {"post_id": 15619, "ts": "2026-06-25T12:24:18Z", "hours": 2.8192, "text": "HEYY !!! I CAN FINALLY SAY NOW MY PROJECT IS COMPLETED !!! I AM SO HAPPY IT TURNED OUT BETTER THAN HOW I IMAGINED IT !! AND NOW IT EVEN HAVE ANIMATED VIDEO FOR CONCEPT !! I GUESS NOT ITS TIME FOR ME TO SIGN OFF !!!"}, {"post_id": 15496, "ts": "2026-06-25T05:56:45Z", "hours": 0.8694, "text": "HEY !!! this is the new update on BodyAtlas . i have put the videos for better explanation in bodyatlas’s how does it work , i took all the video from youtube so the credit goes to respective owners and i think i just completed my project and i’m so HAPPPPYY i just turned out how i imagened it and maybee even better !!!! BYE !!!"}, {"post_id": 14924, "ts": "2026-06-24T07:25:24Z", "hours": 0.3047, "text": "Hey !! this is the maybee sixth update on body atlas and i have added the front page for ’how it works ’ . this is the step from where the main haed part begins , and i will make sure to put double efforts here !!"}, {"post_id": 14921, "ts": "2026-06-24T07:01:20Z", "hours": 0.6619, "text": "hey guyss this is gonna be short but i did add the quiz section in the BodyAtlas and again changed the medical hub from mediceine and diesease explorar to how it works . i added the another page and all which i will be sharing in other devlog !! BYE !!"}, {"post_id": 14456, "ts": "2026-06-23T16:12:26Z", "hours": 0.5658, "text": "heyyy !! this the fifth update on my webs.. BodyAtlas . so i did completed all the data feeding and if i really say i took help of ai to collect all the data it would centuries . and i did a did of editind in interface , i changed the quickbar to medical hub . next i’ll be working on quiz system and this project is really testing my patience !! but i will really be happy when this project will be completed !! BYE !!!<3"}, {"post_id": 14234, "ts": "2026-06-23T07:45:00Z", "hours": 1.1094, "text": "HEY !!!!! this is my fourth update on BodyAtlas and today i have added the database !! HURRAY !! which means that if you click on a hotspot it will show lot of information about that particular thing in the info panel . i had to do it manually so feeding all the data for only 4 organs (which i did ) took 1 hours and there are approx 11-12 more left so don’t know how much time it will take and i have also reduced the side of hotspot cuz it was looking messy and they are still left to be positioned . sope that’s all i did in this session and next update will come in the evening !!BYE !!! i hope i get to see awesome projects from you all !!!"}, {"post_id": 13813, "ts": "2026-06-22T17:09:43Z", "hours": 1.8347, "text": "HEYY!!!!!this is the third update on BodyAtlas and i’m so sleepy right now !! ‘kay so this time, i have added the human body . initially i thought to add maybe like a 3d body which can rotate and do cool stuff but there were no free options so i had to change my plan and do a 2d one . tho i’m not that dissappointed how good 2-d also looks !!! RIGHT? . i have also added spots (HOTSPOTS )(its looking really messy !!) where when you click opens there information in the right side located info panel i’m currently working on feeding the database(the example in the screen shot is short i will surely make it more precise !!) and its really hard to manage all the stuff at the same time . i don’t want to bore you with my talking so that’s all !!B’BYE !!!"}, {"post_id": 12958, "ts": "2026-06-21T06:35:47Z", "hours": 0.4228, "text": "heyyy!!!!this is the second update of bodyatlas and i have added the first page . this is the landing page of bodyatlas . i did try making it kinda simple and easy tho !! i am still trying hard to make it simple , usable , and perfect with all majar info !!so thats all for today !! bye !!!"}, {"post_id": 11153, "ts": "2026-06-18T07:27:24Z", "hours": 0.3128, "text": "hey !!! i have started my new project and it is called BodyAtlas here you can see human bodies in a 3d ways and interact with them and you will see exactly how human body work , how a diseases ACTUALLY effect our body and how a medicine ACTUALLY treats us !!!!. i have completed the first inter face and basic way how my new project will look and there is is frame in the middle section where i am just testing how 3d bodies would behave . BYEEE !!! and i will make sure to keep u all updated !!!"}]...
|
Title: BodyAtlas by @yashasvib | Stardance
Devlog Title: BodyAtlas by @yashasvib | Stardance
Devlogs:
hey !!! i have started my new project and it is called BodyAtlas here you can see human bodies in a 3d ways and interact with them and you will see exactly how human body work , how a diseases ACTUALLY effect our body and how a medicine ACTUALLY treats us !!!!. i have completed the first inter face and basic way how my new project will look and there is is frame in the middle section where i am just testing how 3d bodies would behave . BYEEE !!! and i will make sure to keep u all updated !!!
heyyy!!!!this is the second update of bodyatlas and i have added the first page . this is the landing page of bodyatlas . i did try making it kinda simple and easy tho !! i am still trying hard to make it simple , usable , and perfect with all majar info !!so thats all for today !! bye !!!
HEYY!!!!!this is the third update on BodyAtlas and i’m so sleepy right now !! ‘kay so this time, i have added the human body . initially i thought to add maybe like a 3d body which can rotate and do cool stuff but there were no free options so i had to change my plan and do a 2d one . tho i’m not that dissappointed how good 2-d also looks !!! RIGHT? . i have also added spots (HOTSPOTS )(its looking really messy !!) where when you click opens there information in the right side located info panel i’m currently working on feeding the database(the example in the screen shot is short i will surely make it more precise !!) and its really hard to manage all the stuff at the same time . i don’t want to bore you with my talking so that’s all !!B’BYE !!!
HEY !!!!! this is my fourth update on BodyAtlas and today i have added the database !! HURRAY !! which means that if you click on a hotspot it will show lot of information about that particular thing in the info panel . i had to do it manually so feeding all the data for only 4 organs (which i did ) took 1 hours and there are approx 11-12 more left so don’t know how much time it will take and i have also reduced the side of hotspot cuz it was looking messy and they are still left to be positioned . sope that’s all i did in this session and next update will come in the evening !!BYE !!! i hope i get to see awesome projects from you all !!!
heyyy !! this the fifth update on my webs.. BodyAtlas . so i did completed all the data feeding and if i really say i took help of ai to collect all the data it would centuries . and i did a did of editind in interface , i changed the quickbar to medical hub . next i’ll be working on quiz system and this project is really testing my patience !! but i will really be happy when this project will be completed !! BYE !!!<3
hey guyss this is gonna be short but i did add the quiz section in the BodyAtlas and again changed the medical hub from mediceine and diesease explorar to how it works . i added the another page and all which i will be sharing in other devlog !! BYE !!
Hey !! this is the maybee sixth update on body atlas and i have added the front page for ’how it works ’ . this is the step from where the main haed part begins , and i will make sure to put double efforts here !!
HEY !!! this is the new update on BodyAtlas . i have put the videos for better explanation in bodyatlas’s how does it work , i took all the video from youtube so the credit goes to respective owners and i think i just completed my project and i’m so HAPPPPYY i just turned out how i imagened it and maybee even better !!!! BYE !!!
HEYY !!! I CAN FINALLY SAY NOW MY PROJECT IS COMPLETED !!! I AM SO HAPPY IT TURNED OUT BETTER THAN HOW I IMAGINED IT !! AND NOW IT EVEN HAVE ANIMATED VIDEO FOR CONCEPT !! I GUESS NOT ITS TIME FOR ME TO SIGN OFF !!!
hi everybody , I shipped my project and just got the review saying that my project looks too much AI . is it so ? I don’t think so cause I did several things on my own and yes I agree I took help of AI in many places of my project even for debugging and all those errors I could not understand . but the reviewer also said I should add features of my own ! I did everything ! each and feature is my own ! what do you think , that AI can up with those ideas , it was me who thought of each and everything from the theme to the content, from the howdoesitwork? to the quiz section . I am not writting this to go against the reviewer but i wanna have honest opinions on my project guys !!
HEY !!! I just thought why not keep BodyAtlas going ? so here I am with just another super duper starry feature … drum rolls please …… its a competitive mode where you can chose the level and topic you wanna get it on and the press ‘lets go’ button and then you see a brandnew page with question .. but what makes it diffrent from normal quiz section present in just the main BodyAtlas .. its that it have a timer and you get points for each correct answers and it also takes away some points for wrong answer and when you collect a specific number of point you unlock access to special animated video of how does it work !! ad you can power up your level the more u play .. it a whole diffrent animal (game)…..built inside my webs.. tho its still ongoing I will try my best to make it more interactive and …sugar honey ice tea….BYE !!!
heyy guys this is an update on body atlas and from now on less updates will be posted . ok so I added other screen and and arranged hotspots using percen rather than px so it stays stable regardless of the condition . I have made js part also which controls the question appearing and timer and points and all the interface is basic and I will upgrade it soon . and I want a opinion from you all , should I add this game in the medicines hub or at the front screen top bar or any other place ?
hey !!! I changed all the wallpapers turn the body transparent with no background and re did all the logic part of challenge mode and today was a easy but time consuming day !! I’m happy it’s coming alive .. BYE !!
hey guys I just PURIFIED the competitive mode and it took a lot of time and I also added the popups for .. u can see below I’m sleepy , ’kay bye !!
hi guys !! this time, i just try to fix all the error and bugs as i could and not only the one thought who create a problem those also which were found by my fellow friends !!
hey !!! this time i did some debugging , changed UI ,and wrote the final README . this is a short update !! bye !!
HI GUYS !! i noticed or you can say realized that i totally forgot to expand my data base and shipped it with less questions so if i choose specific field from the challenge mode it display either one or two question because no questions related to those mode will be found within the database .
Ships:
HEY !!! this is a webs.. that lets you explore human body and it is called BodyAtlas .when opened it first land on a landing page where date , day, time are displayed and there is also a section about this project . then it takes you to main page where there is a main screen with a left , right panel , dock at bottom . in the main screen initially i thought to add maybe like a 3d body which can rotate and do cool stuff but there were no free options so i had to change my plan and do a 2d one . tho I’m not that disappointed how good 2-d also looks !!! RIGHT? . i have also added spots (HOTSPOTS ) where when you click opens there information in the right side located info panel witch have a inbuilt the database for source . the bottom dock have options for organ which you can visit . the left panel is the most important because it have two part the medicines hub and body system . when you select a body system from the given option the respective organs glow telling you about the organs involved . in the medicine hub there are two options the quiz (YAS !! actually working quiz )and a how does it work ? option when opened takes you to a screen where you can explore the various things like diseases , medicines , medical tests, surgeries , body processes and instrument using animated video which are taken frame Youtube and the credits goes to their respective owners . this project has been a important part of my whole stardance journey hope you like it !!! BYE !!!
HEY !!! this is a webs.. that lets you explore human body and it is called BodyAtlas .when opened it first land on a landing page where date , day, time are displayed and there is also a section about this project . then it takes you to main page where there is a main screen with a left , right panel , dock at bottom . in the main screen initially i thought to add maybe like a 3d body which can rotate and do cool stuff but there were no free options so i had to change my plan and do a 2d one . tho I’m not that disappointed how good 2-d also looks !!! RIGHT? . i have also added spots (HOTSPOTS ) where when you click opens there information in the right side located info panel witch have a inbuilt the database for source . the bottom dock have options for organ which you can visit . the left panel is the most important because it have two part the medicines hub and body system . when you select a body system from the given option the respective organs glow telling you about the organs involved . in the medicine hub there are two options the quiz (YAS !! actually working quiz )and a how does it work ? option when opened takes you to a screen where you can explore the various things like diseases , medicines , medical tests, surgeries , body processes and instrument using animated video which are taken frame Youtube and the credits goes to their respective owners . i have also added a challenge mode where you can select difficulty and topic and it will give you questions , for each answer you gain points and for each wrong answer your points are deducted this project has been a important part of my whole stardance journey hope you like it !!! BYE !!!
hi guys !! (read the other ships before to know but the project) this is going to be short cuz i only wanted to increase the data base and its quite easy …but I added Only very very few question because i have EXAMS !! but its okay ill manage in future .. so i guess that’s all !! BYE !!...
|
1793123526.4150498
|
1793209926.4150498
|
|
23049
|
My Personal Website by @michellee | Stardance
|
michellee
|
1
|
23.0
|
249
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-30T02:58:17Z", "hours": 23.0, "multiplier": 10.76, "payout": 249, "blessing": "neutral", "text": "This is my portfolio website! It is something basic, but at least you can get to know me. It’s my first project, and I learned a lot throughout the time, and I will learn more", "repo": "https://github.com/michelleebe/portfolio", "demo": "https://michelleebe.github.io/portfolio/index.html"}]...
|
[{"post_id": 18901, "ts": "202 [{"post_id": 18901, "ts": "2026-06-30T02:55:56Z", "hours": 2.8878, "text": "Im finally finished, it is shorter than what it was initially meant to be, but I am fine with it. I removed the skills page. I didn’t really think I needed it, and decided to add some photos on the about me page because it looked empty, and maybe people would feel more connected in a sense. For my first project, I think it’s not too bad???"}, {"post_id": 16048, "ts": "2026-06-26T02:24:54Z", "hours": 6.5203, "text": "I didn’t finish my projects page or my about me page fully. There are some things that I would still like to add, but I think you guys might understand the theme a little more now because im from New York and yk like the train theme and everything. But yeah, Im one page away from being done with my first projectt!!!"}, {"post_id": 14789, "ts": "2026-06-24T01:00:28Z", "hours": 4.9992, "text": "I completely changed the concept of my home page, and I like it much better now!! I had a certain concept in mind, but it can be up for interpretation, honestly."}, {"post_id": 14003, "ts": "2026-06-22T23:45:08Z", "hours": 8.7817, "text": "This is my very first experience with coding, and after A LOT of trial and error im somewhat satisfied with the home page of my portfolio website. Im just getting the hang of it but I will probably change this whole thing to fit my vibe a little better."}]...
|
Title: My Personal Website by @michellee | Stardan Title: My Personal Website by @michellee | Stardance
Devlogs:
This is my very first experience with coding, and after A LOT of trial and error im somewhat satisfied with the home page of my portfolio website. Im just getting the hang of it but I will probably change this whole thing to fit my vibe a little better.
I completely changed the concept of my home page, and I like it much better now!! I had a certain concept in mind, but it can be up for interpretation, honestly.
I didn’t finish my projects page or my about me page fully. There are some things that I would still like to add, but I think you guys might understand the theme a little more now because im from New York and yk like the train theme and everything. But yeah, Im one page away from being done with my first projectt!!!
Im finally finished, it is shorter than what it was initially meant to be, but I am fine with it. I removed the skills page. I didn’t really think I needed it, and decided to add some photos on the about me page because it looked empty, and maybe people would feel more connected in a sense. For my first project, I think it’s not too bad???
Ships:
This is my portfolio website! It is something basic, but at least you can get to know me. It’s my first project, and I learned a lot throughout the time, and I will learn more...
|
1793253393.2044938
|
1793339793.2044938
|
|
23084
|
StarBrowser by @jphwb | Stardance
|
jphwb
|
1
|
23.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-18T12:01:14Z", "hours": 23.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a web browser from scratch in Rust. I made my own networking code, it can fetch HTTP and HTTPS websites, and it can parse the HTML itself. The challenging part was getting the websites to actually show up since everytime I tried to get it to work it kept showing No Response. I was able to fix this by rewriting my client.rs file and changing the way the app connects to websites. I am proud of this whole thing as I was still a sort of ‘intermediate beginner’ to rust but I got the hang of it by watching a bunch of youtube videos at 3am in the morning and learning from w3schools as well as getting documentation from the Mozilla docs. To run the project you just need to run the windows exe. For macOS and Linux I cannot test those executables so I am not 100% sure but the windows exe works. Just make sure that on some websites like google.com you need the www subdomain first. All websites require http:// or https:// at the start. Other websites like github.com dont need the www. I was initially going to add working CSS styling however due to Stardance ending soon and I was on holiday for majority of the time I just didn’t have time.", "repo": "https://github.com/jphwba/StarBrowser", "demo": "https://github.com/jphwba/StarBrowser/releases/tag/v1.0.0"}]...
|
[{"post_id": 80645, "ts": "202 [{"post_id": 80645, "ts": "2026-10-18T11:52:41Z", "hours": 1.6633, "text": "This is a short change, initially I was working on making working CSS styling however I don’t have the time for it so all I did was create a release workflow (which took longer than expected) and I made a README going through all the features and limitations as well as a rundown of the app. I have made 3 executables. One for Windows, Linux and MacOS. All are x86_64 not ARM. I am unable to test the Linux and MacOS executables however the windows one works."}, {"post_id": 79769, "ts": "2026-10-15T10:04:18Z", "hours": 4.1039, "text": "First in the UI and Rendering architecture I added a 2010 style chrome colour palette. I also implemented new vertex, rect and ui structs with layout_ui() to calculate and position the tab strip, address bat, navi buttons and the content viewport. I also made a new WGSL shader pipeline and vertex buffer for rendering flat colour rectangles. I then added normalise_url(), fetch_page(), navigate(), go_history() and reload(). Then I updated the core State struct, removed the raw display_text stering and replaced it with rectangle pipelines, address input state, focus flags, document title tracking, history stacks, scroll offsets and mouse tracking. I rewrote window_event() and app resume logic to handle the mouse movements, vlivks, wheel scrolling and keyboard typing including Enter backspace and shortcuts with ctrl and alt. I also removed the esc to quit application and it now just refocuses onto the addrtess bar. And render() draws the UI rectabgles first, then the address text, tabs buttons and page text with clipping and scroll offsets on a white background. I also made a new HTML Parser module. With tokenisation and scanning, it includfes void/raw text element lists, entitity decoding with &, &nbdp, etc, character scanning and attribute parsing. parse() constructs the existing HTMLDocument and HTMLNode types from client.rs which handles comments, doctypes, closing tags and script/style. With DOM Utils it includfes is_block_level(), extract_visible_text() which skips , , and tags while infecting liner breaks around block elements and nodewalking and title extraction (find_title()). I also deleted cssrom.rs whcih I originally had plans for but I just merged them into parser.rs and cascade.rs. My current limitations are rendering since the pages only display as plain text so no images, hyperlinks, styling or CSS in general. There is also network bliocking where page fetching is synchronus and blocks the UI window while loading."}, {"post_id": 77540, "ts": "2026-10-07T12:06:19Z", "hours": 8.0286, "text": "I can guarantee you I am not dead even though its been like 3 months. I build about the entire css engine. I can now display the web page’s html onto the app. In the app you can’t scroll down as I still need to implement that but this is progress. A lot of the functionality is there in my code but it is unused since I need to do a whole lot more work on it but this devlog is already 8 hours and I don’t want to go over 10 so I’m making a devlog here. tokenise.rs is a css level 3 tokeniser and is pretty much the architecture. units.rs is just simple unit and angle conversion. colour.rs is just colour parsing. colours.rs is mostly just the colour-name hex table. selectors.rs is the full selector parser. parser.rs is the component valuesa dn declarations into a Stylesheet model. cascade.rs matches an element against a stylesheet and sorts it by specificity/order. box_model.rs and layout.rs just set the layout of the app’s edges/borders/padding/margin and a block-layout pass decoupled from font types that dont exist in the app natively. I would write a lot more and style the devlog better but this new stardance thing with the animations everywhere make it almost impossible to type properly and I’m on a gaming laptop"}, {"post_id": 16945, "ts": "2026-06-27T14:50:30Z", "hours": 2.6572, "text": "Added Protocol::connect_tls() method using rustls::StreamOwned<rustls::ClientConnection, TcpStream>. Created AllowAnyVerifier implementing rustls::client::danger::ServerCertVerifier to accept any certificate AddedClient::connect_tls() that loads ca-certificates.crt if present otherwise falls back to system certs TLS now works for HTTP1_1 and HTTP2_0 protocols New DNSCache struct with Arc<Mutex<HashMap<String, DNSCacheEntry»> thread-safe, TTL-based DNSCacheEntry stores resolved SocketAddr list + expiry timestamp resolve_dns() now uses trust_dns_resolver::Resolver::from_system_conf() for proper DNS lookups, with fallback to ToSocketAddrs parse_url() extracts the host, port, and TLS flag from http:// or https:// URLs Handles explicit ports (example.com:8080) and defaults (80/443) connect_to() now calls resolve_and_connect() which uses DNS cache + TLS decision logic Client now tracks redirect_count send_request() detects 3xx status codes, reads location header, and follows redirects HTMLTag -enum of all standard HTML5 tags HTMLAttribute -name/value pairs HTMLNode - tag + attributes + children + optional text content HTMLDocument -doctype + root node HTMLTag::from_string() - case-insensitive parser for all tags"}, {"post_id": 14312, "ts": "2026-06-23T12:16:35Z", "hours": 1.6106, "text": "I added text rendering to the wgpu window so it displays the HTTP status code instead of just printing it to the console. The window now shows “Status: 200” (or whatever the server returns)"}, {"post_id": 13879, "ts": "2026-06-22T19:03:58Z", "hours": 2.2364, "text": "I added response decoding and support for http0.9 1.0 and 1.1. These guides: browser.engineering , firefox guides and servo were amazing resources for learning how HTTP works and with encoding/decoding requests and responses. I mostly just followed along with how firefox worked and built my way away from it but the code formatting went a bit off in the middle (it was 4:30am I have an exam in 4 hours I was tired) Next I want to print everything in the UI instead of terminal"}, {"post_id": 13080, "ts": "2026-06-21T12:20:07Z", "hours": 0.5225, "text": "Added the initial browser engine foundataion. I added basic support for http protocol and implemented http request encoding."}, {"post_id": 13036, "ts": "2026-06-21T10:04:14Z", "hours": 2.2739, "text": "I created the basic app here but it just shows a colour right now. I was following a tutorial on basic rust because I’m still learning it."}]...
|
Title: StarBrowser by @jphwb | Stardance
Devlogs: Title: StarBrowser by @jphwb | Stardance
Devlogs:
I created the basic app here but it just shows a colour right now. I was following a tutorial on basic rust because I’m still learning it.
Added the initial browser engine foundataion. I added basic support for http protocol and implemented http request encoding.
I added response decoding and support for http0.9 1.0 and 1.1. These guides: browser.engineering , firefox guides and servo were amazing resources for learning how HTTP works and with encoding/decoding requests and responses. I mostly just followed along with how firefox worked and built my way away from it but the code formatting went a bit off in the middle (it was 4:30am I have an exam in 4 hours I was tired) Next I want to print everything in the UI instead of terminal
I added text rendering to the wgpu window so it displays the HTTP status code instead of just printing it to the console. The window now shows “Status: 200” (or whatever the server returns)
Added Protocol::connect_tls() method using rustls::StreamOwned<rustls::ClientConnection, TcpStream>. Created AllowAnyVerifier implementing rustls::client::danger::ServerCertVerifier to accept any certificate AddedClient::connect_tls() that loads ca-certificates.crt if present otherwise falls back to system certs TLS now works for HTTP1_1 and HTTP2_0 protocols New DNSCache struct with Arc<Mutex<HashMap<String, DNSCacheEntry»> thread-safe, TTL-based DNSCacheEntry stores resolved SocketAddr list + expiry timestamp resolve_dns() now uses trust_dns_resolver::Resolver::from_system_conf() for proper DNS lookups, with fallback to ToSocketAddrs parse_url() extracts the host, port, and TLS flag from http:// or https:// URLs Handles explicit ports (example.com:8080) and defaults (80/443) connect_to() now calls resolve_and_connect() which uses DNS cache + TLS decision logic Client now tracks redirect_count send_request() detects 3xx status codes, reads location header, and follows redirects HTMLTag -enum of all standard HTML5 tags HTMLAttribute -name/value pairs HTMLNode - tag + attributes + children + optional text content HTMLDocument -doctype + root node HTMLTag::from_string() - case-insensitive parser for all tags
I can guarantee you I am not dead even though its been like 3 months. I build about the entire css engine. I can now display the web page’s html onto the app. In the app you can’t scroll down as I still need to implement that but this is progress. A lot of the functionality is there in my code but it is unused since I need to do a whole lot more work on it but this devlog is already 8 hours and I don’t want to go over 10 so I’m making a devlog here. tokenise.rs is a css level 3 tokeniser and is pretty much the architecture. units.rs is just simple unit and angle conversion. colour.rs is just colour parsing. colours.rs is mostly just the colour-name hex table. selectors.rs is the full selector parser. parser.rs is the component valuesa dn declarations into a Stylesheet model. cascade.rs matches an element against a stylesheet and sorts it by specificity/order. box_model.rs and layout.rs just set the layout of the app’s edges/borders/padding/margin and a block-layout pass decoupled from font types that dont exist in the app natively. I would write a lot more and style the devlog better but this new stardance thing with the animations everywhere make it almost impossible to type properly and I’m on a gaming laptop
First in the UI and Rendering architecture I added a 2010 style chrome colour palette. I also implemented new vertex, rect and ui structs with layout_ui() to calculate and position the tab strip, address bat, navi buttons and the content viewport. I also made a new WGSL shader pipeline and vertex buffer for rendering flat colour rectangles. I then added normalise_url(), fetch_page(), navigate(), go_history() and reload(). Then I updated the core State struct, removed the raw display_text stering and replaced it with rectangle pipelines, address input state, focus flags, document title tracking, history stacks, scroll offsets and mouse tracking. I rewrote window_event() and app resume logic to handle the mouse movements, vlivks, wheel scrolling and keyboard typing including Enter backspace and shortcuts with ctrl and alt. I also removed the esc to quit application and it now just refocuses onto the addrtess bar. And render() draws the UI rectabgles first, then the address text, tabs buttons and page text with clipping and scroll offsets on a white background. I also made a new HTML Parser module. With tokenisation and scanning, it includfes void/raw text element lists, entitity decoding with &, &nbdp, etc, character scanning and attribute parsing. parse() constructs the existing HTMLDocument and HTMLNode types from client.rs which handles comments, doctypes, closing tags and script/style. With DOM Utils it includfes is_block_level(), extract_visible_text() which skips , , and tags while infecting liner breaks around block elements and nodewalking and title extraction (find_title()). I also deleted cssrom.rs whcih I originally had plans for but I just merged them into parser.rs and cascade.rs. My current limitations are rendering since the pages only display as plain text so no images, hyperlinks, styling or CSS in general. There is also network bliocking where page fetching is synchronus and blocks the UI window while loading.
This is a short change, initially I was working on making working CSS styling however I don’t have the time for it so all I did was create a release workflow (which took longer than expected) and I made a README going through all the features and limitations as well as a rundown of the app. I have made 3 executables. One for Windows, Linux and MacOS. All are x86_64 not ARM. I am unable to test the Linux and MacOS executables however the windows one works.
Ships:
I made a web browser from scratch in Rust. I made my own networking code, it can fetch HTTP and HTTPS websites, and it can parse the HTML itself. The challenging part was getting the websites to actually show up since everytime I tried to get it to work it kept showing No Response. I was able to fix this by rewriting my client.rs file and changing the way the app connects to websites. I am proud of this whole thing as I was still a sort of ‘intermediate beginner’ to rust but I got the hang of it by watching a bunch of youtube videos at 3am in the morning and learning from w3schools as well as getting documentation from the Mozilla docs. To run the project you just need to run the windows exe. For macOS and Linux I cannot test those executables so I am not 100% sure but the windows exe works. Just make sure that on some websites like google.com you need the www subdomain first. All websites require http:// or https:// at the start. Other websites like github.com dont need the www. I was initially going to add working CSS styling however due to Stardance ending soon and I was on holiday for majority of the time I just didn’t have time....
|
1793155931.340221
|
1793242331.340221
|
|
23852
|
CyberScore by @Ashu-cipher | Stardance
|
Ashu-cipher
|
1
|
23.0
|
97
|
[{"ship_num": 1, "hours": 23.0, [{"ship_num": 1, "hours": 23.0, "multiplier": 9.67, "payout": 97, "blessing": "neutral", "text": "i made a cyber security assessment tool called CyberScore, this tool basically gives you some scenarios and you choose an option based on which your points increase or decrease, also after testing you get to know about your weak spots along with result. which you can fix. also you don't need to know anything to test this project, just go to site, complete test, and know your weak spots, i am proud that it is helping some people to be more aware about these cyber threats. i hope you like it. thanks for your time.", "repo": "https://github.com/Ashu-Cipher/CyberScore", "demo": "https://ashu-cipher.github.io/CyberScore", "ts": "2026-06-22T13:01:39Z"}]...
|
[{"post_id": 13667, "ts": "202 [{"post_id": 13667, "ts": "2026-06-22T12:54:27Z", "hours": 23.0, "text": "Introducing CyberScore, this is a web based assessment tool that gives you 40 real world scenarios and ask to pick an option, if correct, you get some point, if wrong, you lose some point, i have included some common attack that have large attack surface and can happen to anyone, also i made its scoring system like CIBIL, i mean atleast i tried to do so, also at lasy you get your quiz summary and get to know your weak spot. you can only fix the problem when you know what the problem is. i hope you have a good day, thanks. Also i didn’t uploaded devlog as i thought i would upload it to somewhere else, but i changed my mind. 😀"}]...
|
Title: CyberScore by @Ashu-cipher | Stardance
Dev Title: CyberScore by @Ashu-cipher | Stardance
Devlogs:
Introducing CyberScore, this is a web based assessment tool that gives you 40 real world scenarios and ask to pick an option, if correct, you get some point, if wrong, you lose some point, i have included some common attack that have large attack surface and can happen to anyone, also i made its scoring system like CIBIL, i mean atleast i tried to do so, also at lasy you get your quiz summary and get to know your weak spot. you can only fix the problem when you know what the problem is. i hope you have a good day, thanks. Also i didn’t uploaded devlog as i thought i would upload it to somewhere else, but i changed my mind. 😀
Ships:
i made a cyber security assessment tool called CyberScore, this tool basically gives you some scenarios and you choose an option based on which your points increase or decrease, also after testing you get to know about your weak spots along with result. which you can fix. also you don't need to know anything to test this project, just go to site, complete test, and know your weak spots, i am proud that it is helping some people to be more aware about these cyber threats. i hope you like it. thanks for your time....
|
1792878826.0948997
|
1793742826.0948997
|
|
25782
|
Asa Chan by @yearcakes | Stardance
|
yearcakes
|
4
|
23.0
|
124
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-03T09:34:54Z", "hours": 14.0, "multiplier": 6.02, "payout": 82, "blessing": "neutral", "text": "DM @Asa Chan and type /asachan-start to get started, or use /asachan-settings anytime to manage your settings through an interactive modal! AI enhancement prompts may be delayed by up to 2 minutes.", "repo": "https://github.com/zhaozhuoran/asa-chan-open", "demo": "https://hackclub.enterprise.slack.com/archives/C0BCZ65V1M1/p1785735586304359"}, {"ship_num": 2, "ts": "2026-07-09T11:55:29Z", "hours": 4.0, "multiplier": 5.49, "payout": 22, "blessing": "neutral", "text": "If you have any questions or run into any issues, feel free to DM me.", "repo": "https://github.com/zhaozhuoran/asa-chan-open", "demo": "https://hackclub.enterprise.slack.com/archives/C0BCZ65V1M1/p1785735586304359"}, {"ship_num": 3, "ts": "2026-07-01T11:22:46Z", "hours": 2.0, "multiplier": 5.64, "payout": 14, "blessing": "neutral", "text": "Known Issues Weather reports may be inaccurate in some regions outside East Asia due to limitations of the current weather data provider. I am actively looking for a better weather provider to improve global coverage and accuracy.", "repo": "https://github.com/zhaozhuoran/asa-chan-open", "demo": "https://hackclub.enterprise.slack.com/archives/C0BCZ65V1M1/p1785735586304359"}, {"ship_num": 4, "ts": "2026-06-27T03:39:29Z", "hours": 3.0, "multiplier": 1.79, "payout": 6, "blessing": "neutral", "text": "DM @Asa Chan and type /asachan-start to get started!", "repo": "https://github.com/zhaozhuoran/asa-chan-open", "demo": "https://hackclub.enterprise.slack.com/archives/C0BCZ65V1M1/p1785735586304359"}]...
|
[{"post_id": 39957, "ts": "202 [{"post_id": 39957, "ts": "2026-08-03T09:13:37Z", "hours": 2.3228, "text": "This update mainly focuses on improving the logging system to make operations and maintenance much easier. Logs are now more structured and include more useful context. Commit"}, {"post_id": 39273, "ts": "2026-08-02T04:21:38Z", "hours": 4.465, "text": "I added /asachan-settings, now you can configure AsaChan through a Slack modal instead of using multiple commands. This update also brings AQI, sunrise/sunset, and weather warning support, plus a new /asachan-admin command for basic debugging and more detailed stats for admins. I also added automatic timezone detection from city geocoding. Commit"}, {"post_id": 38840, "ts": "2026-08-01T12:24:11Z", "hours": 5.0344, "text": "I redesigned the settings using Slack Modals. Before, you had to use several different commands to configure everything. Now, you can just run /asachan-settings to open the settings page and manage everything in one place. It’s much easier to use now. Next, I’m planning to improve AQI display and weather alerts display, and fix a few small issues that don’t affect functionality but still aren’t quite perfect."}, {"post_id": 38082, "ts": "2026-07-31T09:24:34Z", "hours": 1.7953, "text": "I just got an idea. I saw Slack’s Modal feature, and I think using it could make the bot cleaner and more interesting. Here’s the official documentation: https://docs.slack.dev/surfaces/modals/"}, {"post_id": 25248, "ts": "2026-07-09T11:51:15Z", "hours": 1.4569, "text": "Added better logging."}, {"post_id": 24652, "ts": "2026-07-08T11:38:28Z", "hours": 2.5253, "text": "Added automatic fallback model support! If a model goes down or becomes unavailable, the bot seamlessly switches to a backup model to keep things running. I also tested and picked better default models, so the overall experience is now much more stable. Added usage statistics so I can better monitor service health and know when it’s time to scale resources. Based on feedback, I added support for another weather provider. Use /asachan-setsource to switch providers and get more reliable weather data, especially outside East Asia."}, {"post_id": 19924, "ts": "2026-07-01T11:14:29Z", "hours": 0.2672, "text": "I found out that the weather report is not accurate outside East Asia. I think this is due to the weather information provider I’m currently using. I’m looking for a better provider. If you know any good alternatives, please let me know!"}, {"post_id": 17049, "ts": "2026-06-27T17:56:26Z", "hours": 1.6486, "text": "🚀 New Features 🤖 AI Weather Fusion Transforms raw weather data into personalized, cozy responses. Use /asachan-mode to toggle it on or off (check out the Cute Mode preview!). 🐾 🌐 Localization Now fully supports Simplified Chinese ( zh ) and English ( en ). Hack Clubbers around the world are welcome to contribute additional languages! ✨ Final checks will be completed tomorrow, followed by an immediate push to the public repository."}, {"post_id": 16767, "ts": "2026-06-27T07:14:05Z", "hours": 0.5222, "text": "Implemented a full migration from JSON-based persistence to SQLite. Added automated daily SQLite backups to improve reliability, data safety, and long-term maintainability."}, {"post_id": 16677, "ts": "2026-06-27T03:30:53Z", "hours": 3.2714, "text": "Today I finished the first usable version of Asa Chan for Slack. 🎉"}]...
|
Title: Asa Chan by @yearcakes | Stardance
Devlogs Title: Asa Chan by @yearcakes | Stardance
Devlogs:
Today I finished the first usable version of Asa Chan for Slack. 🎉
Implemented a full migration from JSON-based persistence to SQLite. Added automated daily SQLite backups to improve reliability, data safety, and long-term maintainability.
🚀 New Features 🤖 AI Weather Fusion Transforms raw weather data into personalized, cozy responses. Use /asachan-mode to toggle it on or off (check out the Cute Mode preview!). 🐾 🌐 Localization Now fully supports Simplified Chinese ( zh ) and English ( en ). Hack Clubbers around the world are welcome to contribute additional languages! ✨ Final checks will be completed tomorrow, followed by an immediate push to the public repository.
I found out that the weather report is not accurate outside East Asia. I think this is due to the weather information provider I’m currently using. I’m looking for a better provider. If you know any good alternatives, please let me know!
Added automatic fallback model support! If a model goes down or becomes unavailable, the bot seamlessly switches to a backup model to keep things running. I also tested and picked better default models, so the overall experience is now much more stable. Added usage statistics so I can better monitor service health and know when it’s time to scale resources. Based on feedback, I added support for another weather provider. Use /asachan-setsource to switch providers and get more reliable weather data, especially outside East Asia.
Added better logging.
I just got an idea. I saw Slack’s Modal feature, and I think using it could make the bot cleaner and more interesting. Here’s the official documentation: https://docs.slack.dev/surfaces/modals/
I redesigned the settings using Slack Modals. Before, you had to use several different commands to configure everything. Now, you can just run /asachan-settings to open the settings page and manage everything in one place. It’s much easier to use now. Next, I’m planning to improve AQI display and weather alerts display, and fix a few small issues that don’t affect functionality but still aren’t quite perfect.
I added /asachan-settings, now you can configure AsaChan through a Slack modal instead of using multiple commands. This update also brings AQI, sunrise/sunset, and weather warning support, plus a new /asachan-admin command for basic debugging and more detailed stats for admins. I also added automatic timezone detection from city geocoding. Commit
This update mainly focuses on improving the logging system to make operations and maintenance much easier. Logs are now more structured and include more useful context. Commit
Ships:
DM @Asa Chan and type /asachan-start to get started!
Known Issues Weather reports may be inaccurate in some regions outside East Asia due to limitations of the current weather data provider. I am actively looking for a better weather provider to improve global coverage and accuracy.
If you have any questions or run into any issues, feel free to DM me.
DM @Asa Chan and type /asachan-start to get started, or use /asachan-settings anytime to manage your settings through an interactive modal! AI enhancement prompts may be delayed by up to 2 minutes....
|
1793253209.4793315
|
1793339609.4793315
|
|
29884
|
Singularity by @twinx | Stardance
|
twinx
|
1
|
23.0
|
82
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-12T03:47:19Z", "hours": 23.0, "multiplier": 12.57, "payout": 82, "blessing": "neutral", "text": "Singularity is the one application for youtube and music , it also has some cool features , privacy features and much more just need to explore. It enables user to get the data they explore not to any another big companies selling your data. Features: ad free playback customization music + video in same app terminal support API that can be used anywhere private and distraction free features.", "repo": "https://github.com/Philast-015/Singularity", "demo": "https://github.com/Philast-015/Singularity/releases"}]...
|
[{"post_id": 26984, "ts": "202 [{"post_id": 26984, "ts": "2026-07-12T03:38:10Z", "hours": 2.7086, "text": "Made this demo video and fixed video mode as it didn’t worked before so yeah it works now also uploaded to PyPi to install it using pip install singularity-twinx . Do check out that also this is i think last devlogs as i am gonna ship this project."}, {"post_id": 26401, "ts": "2026-07-11T05:34:20Z", "hours": 1.4461, "text": "Devlogs after many days i think 4 cause there was a personal reason but made the following things: fixed the audio bug it played audio still after pausing the video made this logo used in favicon it now has 3 layout for search view , the img is of full view mode"}, {"post_id": 23518, "ts": "2026-07-06T15:15:53Z", "hours": 1.7653, "text": "So this is going too far beyond my initial plan , i planned to keep it like simple but adding more features and more features which are really useful like: terminal search play song without any video probably for those who get distracted i do kept the music+video but also this a separate video player probably for those who want to see just one video , distraction free added api integration so local agents just curl so you can get some video searching using my api also you can use it in some apps no need to create one added background api running so no one terminal reserved for one api just run it and close the terminal , easy! Also another setup ! Enjoy and give feedback please"}, {"post_id": 23320, "ts": "2026-07-06T06:22:52Z", "hours": 1.6689, "text": "Here you go my setup reveled ! Coming to the point here what i have added : improvements in UI by adding blur or say glass effects added more settings options like user can delete data was from starting but this time added the folder path so user get extra privacy type features. fixed some bugs but wasn’t able to fix webview not able to play videos using source so thinking what can i do. fixed auto tag extractor to exclude common things like : “youtube-video” , “music” , “shorts” , “trending” .etc"}, {"post_id": 22901, "ts": "2026-07-05T15:20:14Z", "hours": 3.0, "text": "major improvement on ui but time was not fully recorded as i tried to code in neovim instead of Zed😭 Okay so new features plan: maybe switch between modern and this ui design making youtube less blocking by telling user to open just a youtube tab , that works because youtube gets cookies some times making it think like some user is sending request OR a cookies based system that auto generates a fake cookies."}, {"post_id": 22628, "ts": "2026-07-05T05:45:53Z", "hours": 1.7639, "text": "Made many things in this ~1hr as i already had those projects like Wave and flow from which i copied the API and UI so i will work on ui next and also music mode as it is important and new feature. Btw i already added suggestion or auto-play from flow."}, {"post_id": 22131, "ts": "2026-07-04T13:07:36Z", "hours": 1.2022, "text": "As per the plan web version is completed but sadly not all songs are present only songs which are on saavan I am planing to add more things in future but for now it completed will publish it on github , link https://philast-015.github.io/Singularity-Web/"}, {"post_id": 22070, "ts": "2026-07-04T10:01:25Z", "hours": 1.5975, "text": "News : I know that i told i would make a full browser based app but due to youtube being too much restricted to server IP i needed to use proxy and residential IP a bit costly for me but i have a good news — > I have figured out how to play music so it is just music in web and full features available on desktop app. [API repo] : ( https://github.com/Philast-015/Singularity-api-saavan )"}, {"post_id": 21502, "ts": "2026-07-03T14:24:53Z", "hours": 8.04, "text": "Hello everyone! I am a bit sad but no worries cause total time in not what is here somehow hacktime didn’t registered that time. What i did today ? Made an api using Nest and fastAPI , you can visit and test the api by going to : teenapi What were the difficulties ? To be honest nothing except deciding to add auth or not , i decided no. API to test api locally type curl https://teenapi.dino.icu/s = <query> OR going to teenapi-test"}]...
|
Title: Singularity by @twinx | Stardance
Devlogs: Title: Singularity by @twinx | Stardance
Devlogs:
Hello everyone! I am a bit sad but no worries cause total time in not what is here somehow hacktime didn’t registered that time. What i did today ? Made an api using Nest and fastAPI , you can visit and test the api by going to : teenapi What were the difficulties ? To be honest nothing except deciding to add auth or not , i decided no. API to test api locally type curl https://teenapi.dino.icu/s = <query> OR going to teenapi-test
News : I know that i told i would make a full browser based app but due to youtube being too much restricted to server IP i needed to use proxy and residential IP a bit costly for me but i have a good news — > I have figured out how to play music so it is just music in web and full features available on desktop app. [API repo] : ( https://github.com/Philast-015/Singularity-api-saavan )
As per the plan web version is completed but sadly not all songs are present only songs which are on saavan I am planing to add more things in future but for now it completed will publish it on github , link https://philast-015.github.io/Singularity-Web/
Made many things in this ~1hr as i already had those projects like Wave and flow from which i copied the API and UI so i will work on ui next and also music mode as it is important and new feature. Btw i already added suggestion or auto-play from flow.
major improvement on ui but time was not fully recorded as i tried to code in neovim instead of Zed😭 Okay so new features plan: maybe switch between modern and this ui design making youtube less blocking by telling user to open just a youtube tab , that works because youtube gets cookies some times making it think like some user is sending request OR a cookies based system that auto generates a fake cookies.
Here you go my setup reveled ! Coming to the point here what i have added : improvements in UI by adding blur or say glass effects added more settings options like user can delete data was from starting but this time added the folder path so user get extra privacy type features. fixed some bugs but wasn’t able to fix webview not able to play videos using source so thinking what can i do. fixed auto tag extractor to exclude common things like : “youtube-video” , “music” , “shorts” , “trending” .etc
So this is going too far beyond my initial plan , i planned to keep it like simple but adding more features and more features which are really useful like: terminal search play song without any video probably for those who get distracted i do kept the music+video but also this a separate video player probably for those who want to see just one video , distraction free added api integration so local agents just curl so you can get some video searching using my api also you can use it in some apps no need to create one added background api running so no one terminal reserved for one api just run it and close the terminal , easy! Also another setup ! Enjoy and give feedback please
Devlogs after many days i think 4 cause there was a personal reason but made the following things: fixed the audio bug it played audio still after pausing the video made this logo used in favicon it now has 3 layout for search view , the img is of full view mode
Made this demo video and fixed video mode as it didn’t worked before so yeah it works now also uploaded to PyPi to install it using pip install singularity-twinx . Do check out that also this is i think last devlogs as i am gonna ship this project.
Ships:
Singularity is the one application for youtube and music , it also has some cool features , privacy features and much more just need to explore. It enables user to get the data they explore not to any another big companies selling your data. Features: ad free playback customization music + video in same app terminal support API that can be used anywhere private and distraction free features....
|
1793109057.2356284
|
1793195457.2356284
|
|
30522
|
Lauren's Project Portfolio by @Lauren_hackalic Lauren's Project Portfolio by @Lauren_hackalicious | Stardance...
|
Lauren_hackalicious
|
1
|
23.0
|
297
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-19T17:41:42Z", "hours": 23.0, "multiplier": 13.05, "payout": 297, "blessing": "neutral", "text": "I created a project portfolio and personal website. You can learn a little about me as it pertains to my coding journey and involvement at school. I learned how to animate objects on screen and create variations of the same thing, for example, the banners. They all carry the same essence. And I learned how to create a slideshow effect. Users can swipe on the About Me page to view three different pictures relating to my after-school activities. I would like readers to know that they, depending on the size of their screen, zoom out by 25% for a proper viewing experience. This project was created on a MacBook Neo, so I had to zoom my screen out to program this website. I recommend users enable autoplay because this website automatically plays music on the landing and project pages. The last thing I would like to mention is to interact with my website! A lot of things have “overflow: scroll” enabled, so try to find everything that would require you to scroll. P.S. If you’re having a hard time navigating the website, click the Word , as it contains the href attributes.", "repo": "https://github.com/example0d1n/Portfolio", "demo": "https://example0d1n.github.io/Portfolio/"}]...
|
[{"post_id": 50485, "ts": "202 [{"post_id": 50485, "ts": "2026-08-19T17:27:32Z", "hours": 0.7914, "text": "Read.Me discretion. Zoom out your screen by 25% for a proper website viewing experience. If you don’t, unfortunately, elements will appear squished together. If I had more time this summer, I would create a more responsive layout. The picture linked to this devlog is the result of the website if it isn’t zoomed out enough for the proper viewing experience. I also had to replace all the videos on the project page with screenshots because the files were too large, over 100 MB, to push into a GitHub repository. This saddens me because it did make that page less static. PLEASE take the time to read the README."}, {"post_id": 50041, "ts": "2026-08-19T02:14:49Z", "hours": 3.9425, "text": "Website complete…for now I added music that plays automatically on the landing and projects page | I started and finished the About Me tab. It features a Linktree to all my socials. Beneath is a music player featuring my favorite songs from Olivia Rodrigo, Beabadoobee, KATSEYE, and Laufey. On the right, I briefly discuss my involvement at my school. I finished adding the captions to all my projects on the projects page. I decided to pause my progress on this website as school starts up for me, and I need to begin reviewing core subjects for my classes. I had fun creating this website and hope to continue working on it outside of Stardance."}, {"post_id": 48657, "ts": "2026-08-17T04:24:56Z", "hours": 1.6494, "text": "About Me update: I only began structuring the layout of how I want my Linktree to appear in this section of the website. The styling is NOWHERE near complete, especially since there will be a lot more I place under the Linktree to talk about what I do in school that relates to STEM/Computer science. The koi fish image is actually a gif"}, {"post_id": 47796, "ts": "2026-08-15T23:54:31Z", "hours": 3.0403, "text": "Project page complete for now!! I worked tirelessly to complete this page today because school starts soon, and I won’t have much time to work on any more huge web projects until my next seasonal break. I added 5 of my completed summer projects and included the portfolio website because it’ll be my biggest project yet! I recorded a live demo of each project that automatically plays upon opening the page, so users can see what each website is about without reading the bio. I also attached the live link just in case users want to try out the website for themselves. (I really wish I could attach a video to this devlog, but Stardance isn’t working with me when it comes to the videos"}, {"post_id": 47282, "ts": "2026-08-15T04:03:28Z", "hours": 1.4347, "text": "Landing page complete!: | aligned an ocean gif with the update logs to keep the layout consistent (balanced). I added a spinning dolphin because it was so funny to me and fit the Frutiger Aero theme anyway, so I was like… why not? I FINALLY updated the navigation buttons on the side because they were looking pretty plain compared to the rest of the page. In the next devlog, I will have worked on the project. The dolphin IS spinning"}, {"post_id": 46640, "ts": "2026-08-14T01:18:45Z", "hours": 0.6122, "text": "I’ve been having issues posting a devlog today due to this error. I’m going to edit this devlog once this stops appearing on my screen. I can’t find the screenshot of the original update to my website, but I did fix the unevenness of the pixel background widget and updated the weather widget! Check out my most recent devlog to see the changes; I’m having issues uploading videos to Stardance devlogs."}, {"post_id": 46115, "ts": "2026-08-13T03:36:37Z", "hours": 2.395, "text": "Center section complete…for now 1. I added a GIF with a scenic pixel background to lessen the static feel of the area! I matched the banner with the update log for consistency. 2. I moved on to the right side of the container. It took about 30 minutes to figure out how to place items on the right side because the way I programmed the container didn’t account for the layout. I went back and forth between moving divs around and asking GitHub Copilot how to fix the issue. I concluded that creating a separate div within the container div, outside the “main” div, resolved the issue. 3. After debugging, I added a live clock (in military time) and inserted a weather widget."}, {"post_id": 45506, "ts": "2026-08-12T01:27:56Z", "hours": 2.0222, "text": "Big big things todayyyy I finished customizing the welcome textbox by aligning the h1 tag to the left (horayy). I added an infinite carousel with things that I like/am interested in. The update log is primarily for future updates after I ship this portfolio and to keep up with the progress I make, even if it seems minimal. The Update log uses the CSS element “overflow: scroll”."}, {"post_id": 44992, "ts": "2026-08-11T03:55:44Z", "hours": 3.0992, "text": "Changed the theme again lol 😭 I made my portfolio website Frutiger Aero because it’s bright and easier for me to style!! I had to delete my original code since it made customizing the content inside the main container difficult! My fav thing about this version is the banner at the top of the main container."}, {"post_id": 44252, "ts": "2026-08-09T21:40:01Z", "hours": 2.3014, "text": "HUGE REVAMP I was inspired by early 2000s-themed websites and redesigned my portfolio to show more of my personality. The old version was too corporate for me. In the new design, I am incorporating themes of My Little Pony, one of my childhood shows! It is pretty bare-bones right now. To get the layout, I used Figma! I recommend this website as it really helps get the ball rolling. The colors are all over the place because I’m still trying to figure out how exactly I want everything placed. AKA, these are not the final colors/fonts/style."}, {"post_id": 21889, "ts": "2026-07-04T02:00:02Z", "hours": 1.44, "text": "1st Devlog I decided it was finally time to create a webpage dedicated to storing all my projects! As an aspiring computer science major, I feel this is crucial to have on deck. I played around with how I wanted things to be laid out and ended up with this design. Is it plain? Yes. Is it also straight to the point? Also yes. This will be amongst my shorter projects since all I need to do is fill out the template I created in HTML."}]...
|
Title: Lauren's Project Portfolio by @Lauren_h Title: Lauren's Project Portfolio by @Lauren_hackalicious | Stardance
Devlogs:
1st Devlog I decided it was finally time to create a webpage dedicated to storing all my projects! As an aspiring computer science major, I feel this is crucial to have on deck. I played around with how I wanted things to be laid out and ended up with this design. Is it plain? Yes. Is it also straight to the point? Also yes. This will be amongst my shorter projects since all I need to do is fill out the template I created in HTML.
HUGE REVAMP I was inspired by early 2000s-themed websites and redesigned my portfolio to show more of my personality. The old version was too corporate for me. In the new design, I am incorporating themes of My Little Pony, one of my childhood shows! It is pretty bare-bones right now. To get the layout, I used Figma! I recommend this website as it really helps get the ball rolling. The colors are all over the place because I’m still trying to figure out how exactly I want everything placed. AKA, these are not the final colors/fonts/style.
Changed the theme again lol 😭 I made my portfolio website Frutiger Aero because it’s bright and easier for me to style!! I had to delete my original code since it made customizing the content inside the main container difficult! My fav thing about this version is the banner at the top of the main container.
Big big things todayyyy I finished customizing the welcome textbox by aligning the h1 tag to the left (horayy). I added an infinite carousel with things that I like/am interested in. The update log is primarily for future updates after I ship this portfolio and to keep up with the progress I make, even if it seems minimal. The Update log uses the CSS element “overflow: scroll”.
Center section complete…for now 1. I added a GIF with a scenic pixel background to lessen the static feel of the area! I matched the banner with the update log for consistency. 2. I moved on to the right side of the container. It took about 30 minutes to figure out how to place items on the right side because the way I programmed the container didn’t account for the layout. I went back and forth between moving divs around and asking GitHub Copilot how to fix the issue. I concluded that creating a separate div within the container div, outside the “main” div, resolved the issue. 3. After debugging, I added a live clock (in military time) and inserted a weather widget.
I’ve been having issues posting a devlog today due to this error. I’m going to edit this devlog once this stops appearing on my screen. I can’t find the screenshot of the original update to my website, but I did fix the unevenness of the pixel background widget and updated the weather widget! Check out my most recent devlog to see the changes; I’m having issues uploading videos to Stardance devlogs.
Landing page complete!: | aligned an ocean gif with the update logs to keep the layout consistent (balanced). I added a spinning dolphin because it was so funny to me and fit the Frutiger Aero theme anyway, so I was like… why not? I FINALLY updated the navigation buttons on the side because they were looking pretty plain compared to the rest of the page. In the next devlog, I will have worked on the project. The dolphin IS spinning
Project page complete for now!! I worked tirelessly to complete this page today because school starts soon, and I won’t have much time to work on any more huge web projects until my next seasonal break. I added 5 of my completed summer projects and included the portfolio website because it’ll be my biggest project yet! I recorded a live demo of each project that automatically plays upon opening the page, so users can see what each website is about without reading the bio. I also attached the live link just in case users want to try out the website for themselves. (I really wish I could attach a video to this devlog, but Stardance isn’t working with me when it comes to the videos
About Me update: I only began structuring the layout of how I want my Linktree to appear in this section of the website. The styling is NOWHERE near complete, especially since there will be a lot more I place under the Linktree to talk about what I do in school that relates to STEM/Computer science. The koi fish image is actually a gif
Website complete…for now I added music that plays automatically on the landing and projects page | I started and finished the About Me tab. It features a Linktree to all my socials. Beneath is a music player featuring my favorite songs from Olivia Rodrigo, Beabadoobee, KATSEYE, and Laufey. On the right, I briefly discuss my involvement at my school. I finished adding the captions to all my projects on the projects page. I decided to pause my progress on this website as school starts up for me, and I need to begin reviewing core subjects for my classes. I had fun creating this website and hope to continue working on it outside of Stardance.
Read.Me discretion. Zoom out your screen by 25% for a proper website viewing experience. If you don’t, unfortunately, elements will appear squished together. If I had more time this summer, I would create a more responsive layout. The picture linked to this devlog is the result of the website if it isn’t zoomed out enough for the proper viewing experience. I also had to replace all the videos on the project page with screenshots because the files were too large, over 100 MB, to push into a GitHub repository. This saddens me because it did make that page less static. PLEASE take the time to read the README.
Ships:
I created a project portfolio and personal website. You can learn a little about me as it pertains to my coding journey and involvement at school. I learned how to animate objects on screen and create variations of the same thing, for example, the banners. They all carry the same essence. And I learned how to create a slideshow effect. Users can swipe on the About Me page to view three different pictures relating to my after-school activities. I would like readers to know that they, depending on the size of their screen, zoom out by 25% for a proper viewing experience. This project was created on a MacBook Neo, so I had to zoom my screen out to program this website. I recommend users enable autoplay because this website automatically plays music on the landing and project pages. The last thing I would like to mention is to interact with my website! A lot of things have “overflow: scroll” enabled, so try to find everything that would require you to scroll. P.S. If you’re having a hard time navigating the website, click the Word , as it contains the href attributes....
|
1793137969.1185343
|
1793224369.1185343
|