|
55049
|
SmartBin by @Vedant_Daga | Stardance
|
Vedant_Daga
|
0
|
11.41
|
0
|
[]
|
[{"post_id": 80748, "ts": "202 [{"post_id": 80748, "ts": "2026-10-18T18:14:17Z", "hours": 1.5514, "text": "Devlog 4 - Smart Bin i used a ton of AI to help me find the right parts for the cheapest dollar amount possible and then ordered them using the grant approval and they finally all shipped going to start lapsing me soldering the things (starting with pi headers etc)"}, {"post_id": 68931, "ts": "2026-09-16T02:05:39Z", "hours": 0.9875, "text": "Devlog 3 - Smart Bin got some feedback from the hardware reviewer said that my costs were too high and that I should switch to AliExpress and other sources for cheaper things looked into AliExpress and digikey for cheaper sources delivery fees are really high, so I swapped only the things that were free delievery cut down around 80 dollars from the BOM"}, {"post_id": 58591, "ts": "2026-08-31T02:00:40Z", "hours": 2.22, "text": "Devlog 2 - Smart Bin ml pipeline 6 modules, tensorflow only, three dependencies. cut it from 629 lines to 308, and the old one trained in pytorch then converted to tflite for the pi, so it needed both frameworks the split is by session, not by frame. frames from one session are near-duplicates, so a random split puts near-copies of your training data in the test set and the accuracy number means nothing evaluate.py prints both numbers and the gap. the frame-split one is there as the number not to believe firmware 11 files. trigger, weigh, light, capture, classify, decide, tilt, log, serve the safety rule is enforced twice: a confidence gate at runtime, and a config check that refuses to start if the rules file would ever send an unidentified item to recycling weight adjusts the result too. paper over 40 g is probably wet, so it goes to trash bom priced everything out, then checked the parts against my own schematic. found five problems: the mcp3208 had nothing to measure. its only connected input is the battery divider, and there’s no 12 V source in the build, so i dropped it the load cell “kit” ships an hx711 module. my hat already has an hx711 on it, and those modules run at 5 V where mine is deliberately at 3.3 V. bought the bare IC instead camera module 3 at $36 to module 2 at $9.49. autofocus is pointless when the camera and the pan never move relative to each other before: $283.52 now: $195.19"}, {"post_id": 57719, "ts": "2026-08-29T23:40:35Z", "hours": 6.6492, "text": "Devlog 1 - Smart Bin why: recycling bins get contaminated easily, and one bad load can get the whole bin rejected and landfilled. every recycling project i’ve seen is an app telling you which bin to use. i wanted the bin to just do it. schematic 34 components, 26 nets: pi header, load cell (hx711), battery sense (mcp3208), servo rail, led driver, break-beam hx711 runs at 3.3 v so both signals are pi-safe, which deletes 4 level-shifting parts servo has its own ground meeting pi ground at one 0r link. a shared return browns out the pi and corrupts the sd card caught a real bug: led on gpio18 and servo on gpio12 are both pwm0 board 65 × 45 mm, 2 layers, pi zero hat footprint. fully routed, ground plane poured. gerbers exported. cad 7 parts on a base plate: pan, hub, idler, servo mount, bearing block, pi mount, plate. it couldn’t move. pivot sat 16 mm above the plate, but the pan is 180 mm wide, so at 45° the edges swing 65 mm down and cut through it. raised the pivot to 70 mm also measured my actual mg996r instead of trusting the spec (it was actually 39.9 not 40.7 mm, shaft 10.95 off centre not 10.35) FYI i accidently cadded on fusion and forgot to lapse (there goes like 4 hours of my life) and i imported to onshape so u can see it"}]...
|
Title: SmartBin by @Vedant_Daga | Stardance
Devlo Title: SmartBin by @Vedant_Daga | Stardance
Devlogs:
Devlog 1 - Smart Bin why: recycling bins get contaminated easily, and one bad load can get the whole bin rejected and landfilled. every recycling project i’ve seen is an app telling you which bin to use. i wanted the bin to just do it. schematic 34 components, 26 nets: pi header, load cell (hx711), battery sense (mcp3208), servo rail, led driver, break-beam hx711 runs at 3.3 v so both signals are pi-safe, which deletes 4 level-shifting parts servo has its own ground meeting pi ground at one 0r link. a shared return browns out the pi and corrupts the sd card caught a real bug: led on gpio18 and servo on gpio12 are both pwm0 board 65 × 45 mm, 2 layers, pi zero hat footprint. fully routed, ground plane poured. gerbers exported. cad 7 parts on a base plate: pan, hub, idler, servo mount, bearing block, pi mount, plate. it couldn’t move. pivot sat 16 mm above the plate, but the pan is 180 mm wide, so at 45° the edges swing 65 mm down and cut through it. raised the pivot to 70 mm also measured my actual mg996r instead of trusting the spec (it was actually 39.9 not 40.7 mm, shaft 10.95 off centre not 10.35) FYI i accidently cadded on fusion and forgot to lapse (there goes like 4 hours of my life) and i imported to onshape so u can see it
Devlog 2 - Smart Bin ml pipeline 6 modules, tensorflow only, three dependencies. cut it from 629 lines to 308, and the old one trained in pytorch then converted to tflite for the pi, so it needed both frameworks the split is by session, not by frame. frames from one session are near-duplicates, so a random split puts near-copies of your training data in the test set and the accuracy number means nothing evaluate.py prints both numbers and the gap. the frame-split one is there as the number not to believe firmware 11 files. trigger, weigh, light, capture, classify, decide, tilt, log, serve the safety rule is enforced twice: a confidence gate at runtime, and a config check that refuses to start if the rules file would ever send an unidentified item to recycling weight adjusts the result too. paper over 40 g is probably wet, so it goes to trash bom priced everything out, then checked the parts against my own schematic. found five problems: the mcp3208 had nothing to measure. its only connected input is the battery divider, and there’s no 12 V source in the build, so i dropped it the load cell “kit” ships an hx711 module. my hat already has an hx711 on it, and those modules run at 5 V where mine is deliberately at 3.3 V. bought the bare IC instead camera module 3 at $36 to module 2 at $9.49. autofocus is pointless when the camera and the pan never move relative to each other before: $283.52 now: $195.19
Devlog 3 - Smart Bin got some feedback from the hardware reviewer said that my costs were too high and that I should switch to AliExpress and other sources for cheaper things looked into AliExpress and digikey for cheaper sources delivery fees are really high, so I swapped only the things that were free delievery cut down around 80 dollars from the BOM
Devlog 4 - Smart Bin i used a ton of AI to help me find the right parts for the cheapest dollar amount possible and then ordered them using the grant approval and they finally all shipped going to start lapsing me soldering the things (starting with pi headers etc)...
|
1793137736.1972406
|
1793742536.1972406
|
|
66318
|
maxx by @wnxvra011 | Stardance
|
wnxvra011
|
1
|
6.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-18T18:20:58Z", "hours": 6.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "yea i got with the live web very hard one to make it online ,after many errors in the code and made a high UI,I am feeling great for this work,every one can use this so they can get very fast answers", "repo": "https://github.com/spyx011/maxx", "demo": "https://maxx-l17d.onrender.com/"}]...
|
[{"post_id": 80749, "ts": "202 [{"post_id": 80749, "ts": "2026-10-18T18:16:19Z", "hours": 2.1669, "text": "guy’s the last one but not the endddddd see you in another project"}, {"post_id": 75277, "ts": "2026-09-29T16:57:25Z", "hours": 1.8589, "text": "GUY’S this is my updated version and guy’s try this AI, this version has much more bright colour’s and i have add ML/AI to this so it can cook."}, {"post_id": 74910, "ts": "2026-09-28T16:12:39Z", "hours": 1.1817, "text": "i see around ans see that ai is taking every thing we can make and every one think how an ai works so guy’s not muuch but i also want to know so i just build this “ THE MAXX”"}, {"post_id": 74532, "ts": "2026-09-27T16:02:53Z", "hours": 0.5017, "text": "MAXX — hloo there this is the start"}]...
|
Title: maxx by @wnxvra011 | Stardance
Devlogs:
MA Title: maxx by @wnxvra011 | Stardance
Devlogs:
MAXX — hloo there this is the start
i see around ans see that ai is taking every thing we can make and every one think how an ai works so guy’s not muuch but i also want to know so i just build this “ THE MAXX”
GUY’S this is my updated version and guy’s try this AI, this version has much more bright colour’s and i have add ML/AI to this so it can cook.
guy’s the last one but not the endddddd see you in another project
Ships:
yea i got with the live web very hard one to make it online ,after many errors in the code and made a high UI,I am feeling great for this work,every one can use this so they can get very fast answers...
|
1793008264.8874235
|
1793094664.8874235
|
|
13382
|
Rova by @kittendevv | Stardance
|
kittendevv
|
0
|
1.65
|
0
|
[]
|
[{"post_id": 8075, "ts": "2026 [{"post_id": 8075, "ts": "2026-06-13T14:11:13Z", "hours": 1.6489, "text": "Created most of the basic endpoints, for the backend I chose to use Bun + ElysiaJS and I am using Drizzle ORM to interface with my db."}]...
|
Title: Rova by @kittendevv | Stardance
Devlogs:
C Title: Rova by @kittendevv | Stardance
Devlogs:
Created most of the basic endpoints, for the backend I chose to use Bun + ElysiaJS and I am using Drizzle ORM to interface with my db....
|
1792756286.1184804
|
1793361086.1184804
|
|
45836
|
NRF24L01+PA+LNA by @DhruvJ | Stardance
|
DhruvJ
|
0
|
7.24
|
0
|
[]
|
[{"post_id": 80761, "ts": "202 [{"post_id": 80761, "ts": "2026-10-18T18:27:12Z", "hours": 7.2444, "text": "Tasks accomplished: Made a schematic. Made an enclosure for the Radio. The radio is supposed to powered by the phone and use the phones microphone and speaker as the interface, the goal is to practically compare ESP-NOW communication protocol and the 2.4ghz transceiver module and adaptively transition or switch to either protocol but there is a caveat, they communicate at the same frequency band and can interfere but we can only test it to know more"}]...
|
Title: NRF24L01+PA+LNA by @DhruvJ | Stardance
Dev Title: NRF24L01+PA+LNA by @DhruvJ | Stardance
Devlogs:
Tasks accomplished: Made a schematic. Made an enclosure for the Radio. The radio is supposed to powered by the phone and use the phones microphone and speaker as the interface, the goal is to practically compare ESP-NOW communication protocol and the 2.4ghz transceiver module and adaptively transition or switch to either protocol but there is a caveat, they communicate at the same frequency band and can interfere but we can only test it to know more...
|
1792637726.0985286
|
1793242526.0985286
|
|
69903
|
Angrybirds in Geogebra by @sqnder_ | Stardance
|
sqnder_
|
0
|
9.14
|
0
|
[]
|
[{"post_id": 80764, "ts": "202 [{"post_id": 80764, "ts": "2026-10-18T18:35:05Z", "hours": 2.0922, "text": "Ok I refactored the whole game (only js) to use node so I can have multiple js files. Node then bundles them and automatically builds the .ggb file for me. Lof you node <3. Then for the physics I added some stuff like: Blocks Blocks can fall If you hit a falling block it flies further and you bounce back You can bounce on blocks This stuff is hella cool I won’t go in the technical details cause I would write a whole darn book about them. But I’ll go deeper into it on my readme."}, {"post_id": 80647, "ts": "2026-10-18T11:57:18Z", "hours": 7.0472, "text": "I’ve done a lot like a lot lot. First I had to figure out how I would even set the game up. After a lot of just playing around with geogebra. I got set up with a circle with inside a point, if I move that point inside, it makes a parabolic move around. That’s like the core mechanic of the game so it was nice to have that. I was doing that stuff with lapse and then I noticed I can unzip the .ggb files that geogebra provides you with when you press download, so I of course unzipped it to see for myself what’s in there. At it core it comes down to 2 files. geogebra.xml and geogebra_javascript.js the xml file just stores all your variables and stuff an the javascript file is used to run some javascript. I started coding in js and noticed that it’s running a sandboxed js which means I didn’t hat access to timer.setinterval and stuff. At a certain point the mechanic of making the image move over the curve was working, but I didn’t feel satisfied enough, so I moved everything over to js. All items are first seeded by js. Then I started to create classes for everything ’cause I have multiple entities etc for this. I had to use a slider that updates at ticks geogebra provides me but god nows how long such a tick takes so I need to calculate time between ticks with dates to get some sort of consistency in my physics engine. Currently when you launch the bird, it just sets it speed upwards and gives it a forward speed, then it always calculates the current position based on the previous position and the time elapsed during 2 ticks. So I can work with some kind of vectors. Next up is building a tower to hit and adding physics to destroy that tower. Oh btw I also added a timer when the bird is on the ground for 3s it just resets ‘cause otherwise the bird just lies down and you’d have to reopen the file to shoot again. Also keep in mind that this is a calculator and not even a complete html/css/js setup."}]...
|
Title: Angrybirds in Geogebra by @sqnder_ | Starda Title: Angrybirds in Geogebra by @sqnder_ | Stardance
Devlogs:
I’ve done a lot like a lot lot. First I had to figure out how I would even set the game up. After a lot of just playing around with geogebra. I got set up with a circle with inside a point, if I move that point inside, it makes a parabolic move around. That’s like the core mechanic of the game so it was nice to have that. I was doing that stuff with lapse and then I noticed I can unzip the .ggb files that geogebra provides you with when you press download, so I of course unzipped it to see for myself what’s in there. At it core it comes down to 2 files. geogebra.xml and geogebra_javascript.js the xml file just stores all your variables and stuff an the javascript file is used to run some javascript. I started coding in js and noticed that it’s running a sandboxed js which means I didn’t hat access to timer.setinterval and stuff. At a certain point the mechanic of making the image move over the curve was working, but I didn’t feel satisfied enough, so I moved everything over to js. All items are first seeded by js. Then I started to create classes for everything ’cause I have multiple entities etc for this. I had to use a slider that updates at ticks geogebra provides me but god nows how long such a tick takes so I need to calculate time between ticks with dates to get some sort of consistency in my physics engine. Currently when you launch the bird, it just sets it speed upwards and gives it a forward speed, then it always calculates the current position based on the previous position and the time elapsed during 2 ticks. So I can work with some kind of vectors. Next up is building a tower to hit and adding physics to destroy that tower. Oh btw I also added a timer when the bird is on the ground for 3s it just resets ‘cause otherwise the bird just lies down and you’d have to reopen the file to shoot again. Also keep in mind that this is a calculator and not even a complete html/css/js setup.
Ok I refactored the whole game (only js) to use node so I can have multiple js files. Node then bundles them and automatically builds the .ggb file for me. Lof you node <3. Then for the physics I added some stuff like: Blocks Blocks can fall If you hit a falling block it flies further and you bounce back You can bounce on blocks This stuff is hella cool I won’t go in the technical details cause I would write a whole darn book about them. But I’ll go deeper into it on my readme....
|
1792918160.7354968
|
1793522960.7354968
|
|
69823
|
Workbot by @Kinza | Stardance
|
Kinza
|
0
|
3.24
|
0
|
[]
|
[{"post_id": 80765, "ts": "202 [{"post_id": 80765, "ts": "2026-10-18T18:45:07Z", "hours": 0.6789, "text": "Finallyyy its workinggg!!! I was using the wrong model and there were some errors in the code that were causing failure so 40 mins of more detailing fixed it. I guess its ready to submit now. It can do a lot of things now like summarize your text, generate meeting minutes, break projects into tasks, extract action items and owners, create project status report and more…"}, {"post_id": 80467, "ts": "2026-10-17T18:48:53Z", "hours": 1.8689, "text": "Facing errors :( My Workbot aint working. Its been 2 hours but I am still stuck I hope I figure it out quickly."}, {"post_id": 79820, "ts": "2026-10-15T15:15:28Z", "hours": 0.6903, "text": "Just made my first slackbot. The workbot. Right now I myself dont know whats the progress but I have the end result in my mind. I want to make a summarizer and I will try to use groq api and integrate it. I am not a very active slack user so I dont know how all this pinging system works but its still in progress… let me know if anyone has any ideas for it."}]...
|
Title: Workbot by @Kinza | Stardance
Devlogs:
Jus Title: Workbot by @Kinza | Stardance
Devlogs:
Just made my first slackbot. The workbot. Right now I myself dont know whats the progress but I have the end result in my mind. I want to make a summarizer and I will try to use groq api and integrate it. I am not a very active slack user so I dont know how all this pinging system works but its still in progress… let me know if anyone has any ideas for it.
Facing errors :( My Workbot aint working. Its been 2 hours but I am still stuck I hope I figure it out quickly.
Finallyyy its workinggg!!! I was using the wrong model and there were some errors in the code that were causing failure so 40 mins of more detailing fixed it. I guess its ready to submit now. It can do a lot of things now like summarize your text, generate meeting minutes, break projects into tasks, extract action items and owners, create project status report and more…...
|
1792860493.1801746
|
1793465293.1801746
|
|
35149
|
Wingspan for Pterodactyl by @brahmtejsawhney | Sta Wingspan for Pterodactyl by @brahmtejsawhney | Stardance...
|
brahmtejsawhney
|
2
|
38.44
|
680
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-17T07:32:22Z", "hours": 14.0, "multiplier": 17.93, "payout": 246, "blessing": "neutral", "text": "Hello! If you are new here, welcome! This is my flagship project called Wingspan, It’s used by system administrators and infrastructure managers to manage their virtual servers in bulk rather than one by one. This project works in the terminal with AMAZING Terminal UI! This is my second ship. I have worked on making the Server Purge Function, to easily delete servers in large quantities. In my previous ships, I worked on making the basics of the code and functions to index and search the database. I have received extremely positive comments for this project, and i’m really proud of making it! Do star it on github if you like this one!", "repo": "https://github.com/brahmtej2009/wingspan", "demo": "https://github.com/brahmtej2009/Wingspan/blob/main/SHIPWRIGHTS.md"}, {"ship_num": 2, "ts": "2026-09-23T10:49:52Z", "hours": 24.0, "multiplier": 18.44, "payout": 434, "blessing": "neutral", "text": "Welcome to WingSpan, A project to bulk manage your self hosted hardware on pterodactyl. Easily search through servers, get detailed information, export lists based on precise filtering and more! It is made for people like me, who manage hundreds of servers daily, and need to perform bulk actions on them. Its posted on frictionless mission because it would make my life really easy as it automates a lot of my work and would save me a LOT of clicks! cant wait for you to try it out! <3", "repo": "https://github.com/brahmtej2009/wingspan", "demo": "https://github.com/brahmtej2009/Wingspan/blob/main/SHIPWRIGHTS.md"}]...
|
[{"post_id": 80768, "ts": "202 [{"post_id": 80768, "ts": "2026-10-18T18:48:38Z", "hours": 0.4375, "text": "ps: not an official devlog, just an update Show and Tell + Super Star This was another great show and tell, and OMG SUPER STAR! Thanks @Lazyllama ❤️ Ty guys, rly grateful!! Image shows me submitting to Show and Tell and 2nd Image showing my Super Star!"}, {"post_id": 80312, "ts": "2026-10-17T07:27:32Z", "hours": 2.9072, "text": "Devlog 19 Show and Tell #1 WINNER Project! 🏆 Progress Done Purge function has been completely created. I have worked on API Request Error Catching in duration of this devlog. I have integrated all the standard practices and error catching which is required, and now the program displays the error and a solution to fix it. Also, it tracks if there are any errors due to wingspan itself, and provides resolution! Great Stuff! I also started work on User Purge Function, which i’ll release in the ship after shipping Server Purge. There was a bug in the release file, which prevented auto update in windows. Fixed that. Features Added/Worked on Better API Requests to Pterodactyl Rate Limit detector and queue Error Catching and Resolution Server Purge Function Completed Started work on User Purge What new I learnt I learnt to work with industry standard error catching I learnt to make better API systems I learnt to work with queues and rate limiters I learnt to use DELETE Protocol What I would be working on Completing Documentation till here Shipping till Server Purge AI Declaration Claude was used to find out bug in release file only. No AI was used in code during the span of this devlog. All places where AI was used in code, is mentioned properly in the source code. The attached image shows the Release Page of the project, project homepage and some lovely previous votes screenshots."}, {"post_id": 79114, "ts": "2026-10-12T18:33:47Z", "hours": 2.0575, "text": "Devlog 18 Progress Done Purge feature is now functional. Server purges are working as expected. I have added 4 purge methods. Parameters are Forced/Unforced, and Verified and Unverified.So, FV,FU,UV,UU. When you choose unforced method, it would ensure a clean deletion, and ensure the entire data is wiped. On a forced delete, it would delete it from frontend, and only attempt to clean it entirely. Force method is useful to delete servers whose nodes have been discontinued, or conditions where unforced wouldnt work. Verified feature ensures that the purge process goes as close to the expected outcome as possible, and if anything is detected which shouldnt be so, wingspan would prompt you there, so you can take manual action right there on the spot while it purges. Unverified means that wingspan would try its best to delete all the servers given in the importlist and would not prompt the user in case of discrepancies. Features Added/Worked on Import Verification Server Name Live Verification Completed Beta Purge Function Updated Menu to allow Purge Function Wingspan now needs an Admin API key with Full Perms (Readonly no longer works) What I would be working on Bugchecking all the features I made Attempting to delete some servers in massive quantities. Starting work on User Purge Function Do changes in README.md for the new purge function documentation. Find a good reliable Pterodactyl API Docs Website. AI Declaration No AI was used in code in the duration of this devlog. All places where AI was used in code, is mentioned properly in the source code. The attached image shows the Graphical UI of the Purge Function along with the questions it asks."}, {"post_id": 78414, "ts": "2026-10-10T18:32:47Z", "hours": 3.1958, "text": "Devlog 17 Show and Tell #1 WINNER Project! 🏆 Progress Done Ship Approved! Yay! Also, Show and Tell Winner! So, during the span of this devlog, I have worked on creating release files for this project, in a way that they do not have to be updated everr! Also, I have worked on the Purge Function, and have completed the server list import, and have made major changes in server list export function, which now exports minimally required data only for security reasons. Also, I have made quite a lot of confirmations that the person has to fill in order for the servers to actually get deleted, which is a good practice so a person doesnt anciently delete their entire pterodactyl. Also, I have worked on advanced logging in the import system and a very smart directory checker. Also, exporting now adds the panel’s URL on top of the export file, so a wingspan session linked to another panel does not perform critical actions on wrong servers. It properly verifies the import file and gives a clear warning if needed. Features Added/Worked on Export Function Major Changes New Import Function Improved logging Purge Function Increased security and confirmations before taking critical actions. What new I learnt I learnt to export files I learnt to import files I learnt security and integrity tactics to prevent unwanted destruction I learnt to do better logging What I would be working on Completing server purge function Starting work on user purge function AI Declaration No AI was used in code in the duration of this devlog. All places where AI was used in code, is mentioned properly in the source code. The attached file shows and older video I recorded of me using the project."}, {"post_id": 77037, "ts": "2026-10-05T13:23:55Z", "hours": 5.5469, "text": "Devlog 16 Progress Done The project is still on its reviewing stage, in the meantime, I have worked on releasing the executable release for both windows and linux. The executables are internally dynamic, so it updates to the latest wingspan version on every boot. Alongside, I have also worked on a lot of bugfixes, added more detailed logging, Autoboot after Setup and more. I have also worked on the purge function, specifically on the server purge feature. I have completed the export function and import function for the server lists. So server lists could be imported to action functions. I have also worked on reducing the boot time for linux, and on a fresh install, its as little as 5 seconds for the complete install and setup. I’ll be releasing more things after the ship gets approved! Features Added/Worked on Enhanced Logging System Added Release Executables/Binaries Added Auto Updater Added Importer Function for exported server-lists Fixed bugs and slight performance enhancement for windows Massive performance enhancement for linux What new I learnt I learnt to make a formal logging system I learnt to create binaries of python I learnt how to export and import and edit csv I learnt to optimize code on linux I learnt to make Auto Updaters and Version Checkers What I would be working on Completing server purge function Improving performance for windows systems Adding verification of exports while importing them Warnings before destructive action AI Declaration No AI was used in code in the duration of this devlog. AI was used in helping me with creating the executables from the code. All places where AI was used in code, is mentioned properly in the source code. The attached image shows the Release Page of the project, Purge Window Screenshots and Export File Content Screenshots."}, {"post_id": 72609, "ts": "2026-09-23T10:33:51Z", "hours": 2.5994, "text": "Changelog Repo Created on Git, Code Uploaded. V1: Added: Server & Info Fn. Welcome to wingspan folks! <3"}, {"post_id": 71935, "ts": "2026-09-21T20:20:07Z", "hours": 4.2222, "text": "Devlog 14 Progress Done I know this is a very delayed devlog, I had my exams mid way. I’m into the 20th hour of the project, most of the stuff is made. API System is ready, most of the code which would be shared across multiple functions is ready. First function, of Bulk Search and server lookup is also complete. Server lookup function has a really cool UI. Alongside with that, I have also added export option to the Bulk Server Search, you can use the exported file on other functions which take actions on server. Features Added/Worked on Completed Bulk Search and Server Lookup Added server list export Added Shipwrights Docs (Readme for shipwrights) Worked on fixing bugs and README What new I learnt I learnt to work with CSV files I learnt to spoof responses to provide hardcoded outputs (For shipwrights testing) I learnt how to read and save data into json and env I learnt to add images into my Readme AI Declaration A little bit AI was used in CSV saving mechanics, so its saved in a way so could be read back easily for processing later. Server Lookup’s UI was heavily created with help of AI, as I was not able to achieve that high information density without use of AI. Rest, updates in README and SHIPWRIGHTS.md were all done by hand with 0% AI. The attached image shows the new Server Lookup UI, new readme with banner and terminal header, shipwrights file, csv file output."}, {"post_id": 36602, "ts": "2026-07-28T20:22:42Z", "hours": 0.5042, "text": "Devlog 13 Progress Done I did not do much today as the schedule was really busy, I have done a little bit of debugging and bughunting by testing with different kinds of server eggs and parameters on pterodactyl. I have not found any major issue yet, there were some little issues with server search function where some parameters would not show up, that is fixed. Rest, I also am working on the server info function and the readme. Features Added/Worked on Finished with Server Search Worked on CSV Export Started work on Server Info Function AI Declaration No AI Used for this devlog period The attached photos show the new updates to the readme and docs."}, {"post_id": 36001, "ts": "2026-07-27T20:15:25Z", "hours": 1.0306, "text": "Devlog 12 Progress Done I am now making the Server Info function, which provides all the server information in one very well managed panel. Thanks to my fellow developer @stef [U0823APHVK7], I got to know that most of the pterodactyl API docs out there are AI generated and are mostly inaccurate. The accurate one is: https://pterodactyl-api.redbanana.dev I have also experienced issues with Pterodactyl itself, not working right with parameter based data fetching, Il work more on it as most likely its some my side issue. I am also working on adding some kind of live table display right into the terminal to beautifully display the data from the Server Info function. Features Added/Worked on Finished with Server Search Worked on CSV Export Started work on Server Info Function AI Declaration No AI Used for this devlog period The attached video show the preview pics of the new Server Info function."}, {"post_id": 35424, "ts": "2026-07-26T20:28:47Z", "hours": 0.6428, "text": "Devlog 11 Progress Done Im in the 14th Hour of the project, and I have worked on the readme. I have written installation process, and scopes of this project. Also, I have added credits as required. All content is human written, no AI used. Features Added/Worked on Added Readme AI Declaration No AI Used for this devlog period The attached video show the preview pics of the readme."}, {"post_id": 34748, "ts": "2026-07-25T18:37:48Z", "hours": 1.3872, "text": "Devlog 10 Progress Done Im in the 13th hour of the project, and have completely finished the first feature of Searching and Indexing servers. This feature allows you to search from bulk server lists and filter out servers based on all the parameters. It also works with any extension which you may add in future which adds more parameters in the panel, its universally compatible. Next, I would be working on the Purge function, on which we would be using the Search and Info function, to export a csv list and import it into the purgetool to eliminate servers. Features Added/Worked on Refined menus and controls Added more colors Added support for complete universal API [Explained above] Finished with the first function of the software What new I learnt I learnt to work with APIs I learnt to manage big data I learnt to make really complicated nested loops I learnt to convert Json and Lists from 2D to 1D AI Declaration A little bit of AI was used to automate repetitive tasks to save time in the search and info function, where filter rules had to be created for each datatype separately and code was mostly same as I written by hand. AI was used to just change variable names and fit it for other datatypes. AI was also used for debugging and checking if everything works alright. Wherever AI was used, has an AI marker in the source code. The attached video show the first working function which is filtering servers based on user inputs."}, {"post_id": 34235, "ts": "2026-07-24T19:23:32Z", "hours": 0.445, "text": "Devlog 9 Progress Done Im working on the final parts of the first function, that is filtering and exporting. Next I would be moving onto purge manager and related functions which are more useful in real life. Input of the ID parameter was giving vague errors when provided with ranges, It took me a lot of debugging to find the source of the issue, and that was a string was being compared to an int (str<int) in a part of code where I didnt typecast. That is fixed now. AI Declaration Close to None AI was used for this devlog. The attached images show the accepted input of the ID field when put with a range."}, {"post_id": 33694, "ts": "2026-07-23T20:23:16Z", "hours": 0.3294, "text": "Devlog 8 Progress Done Im done with Search and Info function’s basics. Only export options and other advanced options are left to be created. This is a really little 15 minute devlog to mark the achievement of the first actual usable feature in the program, which took me about 11 hours, and this project would be having about 20 of such large functions, making this an extremely detailed and big project. In this devlog, I also want to thank each and every follower of mine, for taking interest in my project and supporting me! Thankyou. AI Declaration Close to None AI was used for this devlog. Everything was done by hand for self learning and improvement. The attached images show the Banner of project."}, {"post_id": 33143, "ts": "2026-07-22T19:44:20Z", "hours": 1.6344, "text": "Devlog 7 Progress Done Im into the 12th hour of the project, and I have done a lot of progress on the first function, which is search and info. I have worked on the parameter search option which is an extremely bulky work as im making it compatible with future upgrades and any extra addons that the user may have which cause changes in the API, I’m adding dynamic automatic support for new fields too for search, while taking all inputs and performing operations in the terminal. I am completely AVOIDING AI for this devlog, and focusing on complete self improvement and understanding of such deeply nested code structures. This is a partial devlog, meaning it doesnt mark a completion of a feature. AI Declaration Close to None AI was used for this devlog. Everything was done by hand for self learning and improvement. The attached images show the home page, followed by the new Search from Parameters Mode…"}, {"post_id": 32494, "ts": "2026-07-21T18:30:08Z", "hours": 3.0075, "text": "Devlog 6 Progress Done Its the 11th hour into the project and the progress is booming! I have started working on the interactive menus of the program. I have also started work on the first function, which is “Search and Info”, in which you can select parameters to search from, and it performs bulk search for you, which you can export to a file, or use in the program internally to trigger actions, or get detailed info about. I have also added terminal ui from curses in this, for the parameter selector, and it looks really good! I also worked on algorithms which convert data from pterodactyl to a usable format for mass bulk searching. I am making it in a way that some of the load is shared on the pterodactyl server side for filtering, and the rest is done on machine running this program, so I can minimize the rate limiting and divide load among both the machines for bulk processing and improve speed. For example, basic filter arguments are run on pterodactyl server’s side (Handled built in by pterodactyl), whereas advanced parameter searches are done on user side as generally user’s own system has more threads and is much better than the pterodactyl webserver. Features Added/Worked on Made menus and sections for first function Worked on algorithms to convert api responses to filterable data Worked on UI by adding curses based parameter selector Made first function, Search and Info What new I learnt I learnt to work with massive data and make algorithms to convert to usable data I learnt to make my first usable intractable terminal UI from curses I learnt to divide operations and perform load balancing for such bulk data AI Declaration Close to None AI was used for this devlog. All the algorithms which were made, where made completely by hand. AI was used for research purposes for curses as its a new field for me. All code blocks where AI has been used are marked in source code! The attached images show the home page, followed by new menus, along with the parameter selector and more…"}, {"post_id": 31424, "ts": "2026-07-19T19:41:27Z", "hours": 1.7656, "text": "Devlog 5 Progress Done Its about the 8th hour into the project, Since around the past 1 hour, I have been reading and understanding the entire pterodactyl API. Learning everything from sending requests to sorting data according to needs. Not much progress was done on the main project, though I did a lot of testing in temp files and had a lot of learning. What new I learnt I learnt to use RestJS API system of Pterodactyl I learnt to use Requests in Python I learnt to capture data and filter/manipulate it from APIs I learnt to manage rate limits and error codes Sources Pterodactyl API Docs: https://pterodactyl-api-docs.netvpx.com/docs/intro AI Declaration No AI was used for the period of this devlog. Most of the work was only done for understanding and learning purposes which was done in temp files which is essential for the project’s development. The attached images show the pterodactyl AI docs which I am reading and testing."}, {"post_id": 30613, "ts": "2026-07-18T10:19:26Z", "hours": 2.2778, "text": "Devlog 4 Progress Done Its about the 6th hour into the project, I have worked on making a terminal UI on which you can click up and down arrows and space button to select servers from a list to do actions. I did not work on actual API yet, thats kept for the last, currently I am working on data sorting and filter functions and more. I also made a cool banner for the project! Sorry for the late devlog, took a lot of time debugging and learning this one. Features Added/Worked on Made a cool image banner on canva [No AI] Worked on filtering functions Worked on a better terminal UI with curses Made HomePage What new I learnt I learnt Graphic Design with Canva I learnt to work with Curses to make terminal UI I learnt to capture button clicks on terminal for functions AI Declaration Close to None AI was used for this devlog. I used AI to understand how the curses library works and how to make it perform actions on button clicks. Also, the tech-pterodactyl symbol on the banner was made with AI as I couldnt find a similar icon on the internet. The attached images show the new banner, followed by the homepage and terminal selector UI demo."}, {"post_id": 28897, "ts": "2026-07-15T14:28:47Z", "hours": 1.6511, "text": "Devlog 3 Progress Done Its the 3rd hour into the project, and I have worked on adding args feature (specifically for linux users) and have worked on the project’s banner and interactive setup menu. I have also added verification in the setup fields to ensure that the user fills in correct information, and even guides the user if wrong keys are entered after 2 tries. Alongside with it, I added colors and made a cool ASCII banner. I also added the system to make venv automatically on first boot (supported on both linux/windows) for those who are running the code directly uncompiled. Features Added/Worked on Added Colorful ASCII Banner [Check Attached Image] Added field verification for setup- Added Args support, Eg. wingspan setup Improved POST Added Auto Venv and Dependency Installer What new I learnt I learnt to work with ASCII Color Codes I learnt to make args on python I learnt how to work with Venv I learnt to work with Terminal Commands from python to install dependencies AI Declaration AI was used for this devlog period for generating the automatic venv and dependencies installer, and making it compatible for both linux and windows at the same time. AI was also used to help with the Args function as I have not had any experience with it before. The attached images show the program running on both Linux and Windows. First screenshot shows the automatic dependencies installer in action, followed by images of the new banner and guide text if the user enters wrong api key multiple times."}, {"post_id": 28503, "ts": "2026-07-14T19:58:23Z", "hours": 1.5825, "text": "Devlog 2 Progress Done Its been about the first hour into the project, and I have well planned everything and have started working on execution. I have started with the linux versions (CMD ONLY), because I dont have experience with GUI Apps and compiling to executables. I have started on configuration tool, which asks the user for all required API Keys and creates the config files and sets up the installation. I have also worked on a standard automatic dependency downloader, so it runs its own venv on boot, downloads its dependencies there, and runs normally. I would not be compiling it into an executable, so you can take and run it on linux, and copy paste it and run it on windows without any platform change issues. I also set up python library, “logging”, to provide proper logs of every action, because it would be important for the users if anything goes wrong or they need history of the tool’s actions. I have also added an entire system testing feature (POST) which triggers when the program is turned on. This is to ensure that no issues come while critical server actions are being performed by the software. It also checks if all the configs are built right. Features Added/Worked on Added Logging System Added Self Config tool Added dependency resolver Added a POST Test What new I learnt I learnt to work with logging library I learnt different logging levels I learnt how to read and save data into json and env I learnt to work with venv & auto pip installers I learnt that stardance has a 4000 char limit on devlogs I learnt to make a cool startup animation with ASCII I learnt to make a cool looking UI in terminal for config page AI Declaration AI was used to make a big empty blueprint list of all functions which I have to code, which makes the work easy as it allows me to visualize the functions pending to create and those which are done. AI was used in ASCII Animation’s character generation. The attached image shows the ASCII Animation, and then some pics of the AutoConfig window, asking the user to enter the details to perform setup."}, {"post_id": 28444, "ts": "2026-07-14T18:06:10Z", "hours": 0.4731, "text": "Devlog 1 Project Details 1. The point/scope of this project So, this is going to be a project for all the hosting owners and homelab operators, who have to manually control/edit each server on pterodactyl to do basic actions which is the same to be done on multiple servers. If you dont know, Pterodactyl is a game/server hosting control panel which gives you a good UI to make your stuff easier to control and all.. but it does lack bulk change features, and there arent much addons for it, and addons also dont work well and get deleted everytime we upgrade the panel, which is a mess. 2. My Solution for the problem I would be making a standalone windows app + a linux cmd app which uses pterodactyl API to perform actions. It would provide a very comprehensive UI to specifically allow for bulk actions and add features which arent there in normal pterodactyl. 3. Features of my project After extensive planning and discussion with several other hosting/homelab owners, I have gathered a list of features which everyone require and would use on a regular basis if there was an app for it. So, my app would have the following features: Bulk Suspend/Unsuspend Bulk Delete Selective Purge Backup download Bulk resource change, or Copy 1 server’s resources and paste to multiple servers. Bulk Reinstall Bulk Transfer Settings page for storing api keys and more. Email notifications to notify users for bulk actions if scheduled. [Planned for a later stage, to be released with other matching updates] Make a management tab in which all node’s real specs are shown, and heavy overloading or other parameter of servers are shown. Il take suggestions from UI of Proxmox and Proxmox Datacenter manager as thats a really good UI with a lot of pterodactyl usable features. User management features like Bulk Email, Bulk user delete, Specific User Purge (Like delete those without any server), User Clear (Clear all servers of a user) The complete flagship feature of panel speed booster, which does all required purges and makes panel faster Update monitor, so users can safely and reliably update their wingspan installation and get prompted whenever a new release is put. 4. Who am I/What do I do? I am Brahmtej Singh, a Python Developer, usually working with devops projects like automations and things, so this kinda project is a perfect fit of what I like to do! Im the founder of HostingKarle, I started with a pledge of providing a safe place to my customers. There are a lot LOT of scams out there in IT/Hosting sector, and I wish to change that. I always prioritized customer experience and trust building, and I also support developers by providing Free hosting services to support their development and projects! AI Use in Project and Other Details I am always very clear with AI Use, I believe to use it as a helping tool to navigate through complex logic building and automate repetitive tasks. All my AI use is properly logged and would be attached in every devlog, though I try my best to write what I know by hand. If you ever wish to contribute or to provide feedback on my work, please feel free to conact me on slack, ID: U0AJ2DDJ996 I always write all my devlogs by hand, every single detail is hand written and not passed through any AI tool, not even for grammatical or syntaxial fixing. My devlogs are mainly formatted like this: Introduction to what I did What new I learnt Project Impact / Upcoming Changes AI Use Declaration Attached Photo Description Thankyou for taking interest in my project. The attached image shows a screenshot of my current and future targets, written and planned out. This much text wouldnt fit in the text space, so had to attach a screenshot of the text planning. (First 15 Minutes into creation)"}]...
|
Title: Wingspan for Pterodactyl by @brahmtejsawhne Title: Wingspan for Pterodactyl by @brahmtejsawhney | Stardance
Devlogs:
Devlog 1 Project Details 1. The point/scope of this project So, this is going to be a project for all the hosting owners and homelab operators, who have to manually control/edit each server on pterodactyl to do basic actions which is the same to be done on multiple servers. If you dont know, Pterodactyl is a game/server hosting control panel which gives you a good UI to make your stuff easier to control and all.. but it does lack bulk change features, and there arent much addons for it, and addons also dont work well and get deleted everytime we upgrade the panel, which is a mess. 2. My Solution for the problem I would be making a standalone windows app + a linux cmd app which uses pterodactyl API to perform actions. It would provide a very comprehensive UI to specifically allow for bulk actions and add features which arent there in normal pterodactyl. 3. Features of my project After extensive planning and discussion with several other hosting/homelab owners, I have gathered a list of features which everyone require and would use on a regular basis if there was an app for it. So, my app would have the following features: Bulk Suspend/Unsuspend Bulk Delete Selective Purge Backup download Bulk resource change, or Copy 1 server’s resources and paste to multiple servers. Bulk Reinstall Bulk Transfer Settings page for storing api keys and more. Email notifications to notify users for bulk actions if scheduled. [Planned for a later stage, to be released with other matching updates] Make a management tab in which all node’s real specs are shown, and heavy overloading or other parameter of servers are shown. Il take suggestions from UI of Proxmox and Proxmox Datacenter manager as thats a really good UI with a lot of pterodactyl usable features. User management features like Bulk Email, Bulk user delete, Specific User Purge (Like delete those without any server), User Clear (Clear all servers of a user) The complete flagship feature of panel speed booster, which does all required purges and makes panel faster Update monitor, so users can safely and reliably update their wingspan installation and get prompted whenever a new release is put. 4. Who am I/What do I do? I am Brahmtej Singh, a Python Developer, usually working with devops projects like automations and things, so this kinda project is a perfect fit of what I like to do! Im the founder of HostingKarle, I started with a pledge of providing a safe place to my customers. There are a lot LOT of scams out there in IT/Hosting sector, and I wish to change that. I always prioritized customer experience and trust building, and I also support developers by providing Free hosting services to support their development and projects! AI Use in Project and Other Details I am always very clear with AI Use, I believe to use it as a helping tool to navigate through complex logic building and automate repetitive tasks. All my AI use is properly logged and would be attached in every devlog, though I try my best to write what I know by hand. If you ever wish to contribute or to provide feedback on my work, please feel free to conact me on slack, ID: U0AJ2DDJ996 I always write all my devlogs by hand, every single detail is hand written and not passed through any AI tool, not even for grammatical or syntaxial fixing. My devlogs are mainly formatted like this: Introduction to what I did What new I learnt Project Impact / Upcoming Changes AI Use Declaration Attached Photo Description Thankyou for taking interest in my project. The attached image shows a screenshot of my current and future targets, written and planned out. This much text wouldnt fit in the text space, so had to attach a screenshot of the text planning. (First 15 Minutes into creation)
Devlog 2 Progress Done Its been about the first hour into the project, and I have well planned everything and have started working on execution. I have started with the linux versions (CMD ONLY), because I dont have experience with GUI Apps and compiling to executables. I have started on configuration tool, which asks the user for all required API Keys and creates the config files and sets up the installation. I have also worked on a standard automatic dependency downloader, so it runs its own venv on boot, downloads its dependencies there, and runs normally. I would not be compiling it into an executable, so you can take and run it on linux, and copy paste it and run it on windows without any platform change issues. I also set up python library, “logging”, to provide proper logs of every action, because it would be important for the users if anything goes wrong or they need history of the tool’s actions. I have also added an entire system testing feature (POST) which triggers when the program is turned on. This is to ensure that no issues come while critical server actions are being performed by the software. It also checks if all the configs are built right. Features Added/Worked on Added Logging System Added Self Config tool Added dependency resolver Added a POST Test What new I learnt I learnt to work with logging library I learnt different logging levels I learnt how to read and save data into json and env I learnt to work with venv & auto pip installers I learnt that stardance has a 4000 char limit on devlogs I learnt to make a cool startup animation with ASCII I learnt to make a cool looking UI in terminal for config page AI Declaration AI was used to make a big empty blueprint list of all functions which I have to code, which makes the work easy as it allows me to visualize the functions pending to create and those which are done. AI was used in ASCII Animation’s character generation. The attached image shows the ASCII Animation, and then some pics of the AutoConfig window, asking the user to enter the details to perform setup.
Devlog 3 Progress Done Its the 3rd hour into the project, and I have worked on adding args feature (specifically for linux users) and have worked on the project’s banner and interactive setup menu. I have also added verification in the setup fields to ensure that the user fills in correct information, and even guides the user if wrong keys are entered after 2 tries. Alongside with it, I added colors and made a cool ASCII banner. I also added the system to make venv automatically on first boot (supported on both linux/windows) for those who are running the code directly uncompiled. Features Added/Worked on Added Colorful ASCII Banner [Check Attached Image] Added field verification for setup- Added Args support, Eg. wingspan setup Improved POST Added Auto Venv and Dependency Installer What new I learnt I learnt to work with ASCII Color Codes I learnt to make args on python I learnt how to work with Venv I learnt to work with Terminal Commands from python to install dependencies AI Declaration AI was used for this devlog period for generating the automatic venv and dependencies installer, and making it compatible for both linux and windows at the same time. AI was also used to help with the Args function as I have not had any experience with it before. The attached images show the program running on both Linux and Windows. First screenshot shows the automatic dependencies installer in action, followed by images of the new banner and guide text if the user enters wrong api key multiple times.
Devlog 4 Progress Done Its about the 6th hour into the project, I have worked on making a terminal UI on which you can click up and down arrows and space button to select servers from a list to do actions. I did not work on actual API yet, thats kept for the last, currently I am working on data sorting and filter functions and more. I also made a cool banner for the project! Sorry for the late devlog, took a lot of time debugging and learning this one. Features Added/Worked on Made a cool image banner on canva [No AI] Worked on filtering functions Worked on a better terminal UI with curses Made HomePage What new I learnt I learnt Graphic Design with Canva I learnt to work with Curses to make terminal UI I learnt to capture button clicks on terminal for functions AI Declaration Close to None AI was used for this devlog. I used AI to understand how the curses library works and how to make it perform actions on button clicks. Also, the tech-pterodactyl symbol on the banner was made with AI as I couldnt find a similar icon on the internet. The attached images show the new banner, followed by the homepage and terminal selector UI demo.
Devlog 5 Progress Done Its about the 8th hour into the project, Since around the past 1 hour, I have been reading and understanding the entire pterodactyl API. Learning everything from sending requests to sorting data according to needs. Not much progress was done on the main project, though I did a lot of testing in temp files and had a lot of learning. What new I learnt I learnt to use RestJS API system of Pterodactyl I learnt to use Requests in Python I learnt to capture data and filter/manipulate it from APIs I learnt to manage rate limits and error codes Sources Pterodactyl API Docs: https://pterodactyl-api-docs.netvpx.com/docs/intro AI Declaration No AI was used for the period of this devlog. Most of the work was only done for understanding and learning purposes which was done in temp files which is essential for the project’s development. The attached images show the pterodactyl AI docs which I am reading and testing.
Devlog 6 Progress Done Its the 11th hour into the project and the progress is booming! I have started working on the interactive menus of the program. I have also started work on the first function, which is “Search and Info”, in which you can select parameters to search from, and it performs bulk search for you, which you can export to a file, or use in the program internally to trigger actions, or get detailed info about. I have also added terminal ui from curses in this, for the parameter selector, and it looks really good! I also worked on algorithms which convert data from pterodactyl to a usable format for mass bulk searching. I am making it in a way that some of the load is shared on the pterodactyl server side for filtering, and the rest is done on machine running this program, so I can minimize the rate limiting and divide load among both the machines for bulk processing and improve speed. For example, basic filter arguments are run on pterodactyl server’s side (Handled built in by pterodactyl), whereas advanced parameter searches are done on user side as generally user’s own system has more threads and is much better than the pterodactyl webserver. Features Added/Worked on Made menus and sections for first function Worked on algorithms to convert api responses to filterable data Worked on UI by adding curses based parameter selector Made first function, Search and Info What new I learnt I learnt to work with massive data and make algorithms to convert to usable data I learnt to make my first usable intractable terminal UI from curses I learnt to divide operations and perform load balancing for such bulk data AI Declaration Close to None AI was used for this devlog. All the algorithms which were made, where made completely by hand. AI was used for research purposes for curses as its a new field for me. All code blocks where AI has been used are marked in source code! The attached images show the home page, followed by new menus, along with the parameter selector and more…
Devlog 7 Progress Done Im into the 12th hour of the project, and I have done a lot of progress on the first function, which is search and info. I have worked on the parameter search option which is an extremely bulky work as im making it compatible with future upgrades and any extra addons that the user may have which cause changes in the API, I’m adding dynamic automatic support for new fields too for search, while taking all inputs and performing operations in the terminal. I am completely AVOIDING AI for this devlog, and focusing on complete self improvement and understanding of such deeply nested code structures. This is a partial devlog, meaning it doesnt mark a completion of a feature. AI Declaration Close to None AI was used for this devlog. Everything was done by hand for self learning and improvement. The attached images show the home page, followed by the new Search from Parameters Mode…
Devlog 8 Progress Done Im done with Search and Info function’s basics. Only export options and other advanced options are left to be created. This is a really little 15 minute devlog to mark the achievement of the first actual usable feature in the program, which took me about 11 hours, and this project would be having about 20 of such large functions, making this an extremely detailed and big project. In this devlog, I also want to thank each and every follower of mine, for taking interest in my project and supporting me! Thankyou. AI Declaration Close to None AI was used for this devlog. Everything was done by hand for self learning and improvement. The attached images show the Banner of project.
Devlog 9 Progress Done Im working on the final parts of the first function, that is filtering and exporting. Next I would be moving onto purge manager and related functions which are more useful in real life. Input of the ID parameter was giving vague errors when provided with ranges, It took me a lot of debugging to find the source of the issue, and that was a string was being compared to an int (str<int) in a part of code where I didnt typecast. That is fixed now. AI Declaration Close to None AI was used for this devlog. The attached images show the accepted input of the ID field when put with a range.
Devlog 10 Progress Done Im in the 13th hour of the project, and have completely finished the first feature of Searching and Indexing servers. This feature allows you to search from bulk server lists and filter out servers based on all the parameters. It also works with any extension which you may add in future which adds more parameters in the panel, its universally compatible. Next, I would be working on the Purge function, on which we would be using the Search and Info function, to export a csv list and import it into the purgetool to eliminate servers. Features Added/Worked on Refined menus and controls Added more colors Added support for complete universal API [Explained above] Finished with the first function of the software What new I learnt I learnt to work with APIs I learnt to manage big data I learnt to make really complicated nested loops I learnt to convert Json and Lists from 2D to 1D AI Declaration A little bit of AI was used to automate repetitive tasks to save time in the search and info function, where filter rules had to be created for each datatype separately and code was mostly same as I written by hand. AI was used to just change variable names and fit it for other datatypes. AI was also used for debugging and checking if everything works alright. Wherever AI was used, has an AI marker in the source code. The attached video show the first working function which is filtering servers based on user inputs.
Devlog 11 Progress Done Im in the 14th Hour of the project, and I have worked on the readme. I have written installation process, and scopes of this project. Also, I have added credits as required. All content is human written, no AI used. Features Added/Worked on Added Readme AI Declaration No AI Used for this devlog period The attached video show the preview pics of the readme.
Devlog 12 Progress Done I am now making the Server Info function, which provides all the server information in one very well managed panel. Thanks to my fellow developer @stef [U0823APHVK7], I got to know that most of the pterodactyl API docs out there are AI generated and are mostly inaccurate. The accurate one is: https://pterodactyl-api.redbanana.dev I have also experienced issues with Pterodactyl itself, not working right with parameter based data fetching, Il work more on it as most likely its some my side issue. I am also working on adding some kind of live table display right into the terminal to beautifully display the data from the Server Info function. Features Added/Worked on Finished with Server Search Worked on CSV Export Started work on Server Info Function AI Declaration No AI Used for this devlog period The attached video show the preview pics of the new Server Info function.
Devlog 13 Progress Done I did not do much today as the schedule was really busy, I have done a little bit of debugging and bughunting by testing with different kinds of server eggs and parameters on pterodactyl. I have not found any major issue yet, there were some little issues with server search function where some parameters would not show up, that is fixed. Rest, I also am working on the server info function and the readme. Features Added/Worked on Finished with Server Search Worked on CSV Export Started work on Server Info Function AI Declaration No AI Used for this devlog period The attached photos show the new updates to the readme and docs.
Devlog 14 Progress Done I know this is a very delayed devlog, I had my exams mid way. I’m into the 20th hour of the project, most of the stuff is made. API System is ready, most of the code which would be shared across multiple functions is ready. First function, of Bulk Search and server lookup is also complete. Server lookup function has a really cool UI. Alongside with that, I have also added export option to the Bulk Server Search, you can use the exported file on other functions which take actions on server. Features Added/Worked on Completed Bulk Search and Server Lookup Added server list export Added Shipwrights Docs (Readme for shipwrights) Worked on fixing bugs and README What new I learnt I learnt to work with CSV files I learnt to spoof responses to provide hardcoded outputs (For shipwrights testing) I learnt how to read and save data into json and env I learnt to add images into my Readme AI Declaration A little bit AI was used in CSV saving mechanics, so its saved in a way so could be read back easily for processing later. Server Lookup’s UI was heavily created with help of AI, as I was not able to achieve that high information density without use of AI. Rest, updates in README and SHIPWRIGHTS.md were all done by hand with 0% AI. The attached image shows the new Server Lookup UI, new readme with banner and terminal header, shipwrights file, csv file output.
Changelog Repo Created on Git, Code Uploaded. V1: Added: Server & Info Fn. Welcome to wingspan folks! <3
Devlog 16 Progress Done The project is still on its reviewing stage, in the meantime, I have worked on releasing the executable release for both windows and linux. The executables are internally dynamic, so it updates to the latest wingspan version on every boot. Alongside, I have also worked on a lot of bugfixes, added more detailed logging, Autoboot after Setup and more. I have also worked on the purge function, specifically on the server purge feature. I have completed the export function and import function for the server lists. So server lists could be imported to action functions. I have also worked on reducing the boot time for linux, and on a fresh install, its as little as 5 seconds for the complete install and setup. I’ll be releasing more things after the ship gets approved! Features Added/Worked on Enhanced Logging System Added Release Executables/Binaries Added Auto Updater Added Importer Function for exported server-lists Fixed bugs and slight performance enhancement for windows Massive performance enhancement for linux What new I learnt I learnt to make a formal logging system I learnt to create binaries of python I learnt how to export and import and edit csv I learnt to optimize code on linux I learnt to make Auto Updaters and Version Checkers What I would be working on Completing server purge function Improving performance for windows systems Adding verification of exports while importing them Warnings before destructive action AI Declaration No AI was used in code in the duration of this devlog. AI was used in helping me with creating the executables from the code. All places where AI was used in code, is mentioned properly in the source code. The attached image shows the Release Page of the project, Purge Window Screenshots and Export File Content Screenshots.
Devlog 17 Show and Tell #1 WINNER Project! 🏆 Progress Done Ship Approved! Yay! Also, Show and Tell Winner! So, during the span of this devlog, I have worked on creating release files for this project, in a way that they do not have to be updated everr! Also, I have worked on the Purge Function, and have completed the server list import, and have made major changes in server list export function, which now exports minimally required data only for security reasons. Also, I have made quite a lot of confirmations that the person has to fill in order for the servers to actually get deleted, which is a good practice so a person doesnt anciently delete their entire pterodactyl. Also, I have worked on advanced logging in the import system and a very smart directory checker. Also, exporting now adds the panel’s URL on top of the export file, so a wingspan session linked to another panel does not perform critical actions on wrong servers. It properly verifies the import file and gives a clear warning if needed. Features Added/Worked on Export Function Major Changes New Import Function Improved logging Purge Function Increased security and confirmations before taking critical actions. What new I learnt I learnt to export files I learnt to import files I learnt security and integrity tactics to prevent unwanted destruction I learnt to do better logging What I would be working on Completing server purge function Starting work on user purge function AI Declaration No AI was used in code in the duration of this devlog. All places where AI was used in code, is mentioned properly in the source code. The attached file shows and older video I recorded of me using the project.
Devlog 18 Progress Done Purge feature is now functional. Server purges are working as expected. I have added 4 purge methods. Parameters are Forced/Unforced, and Verified and Unverified.So, FV,FU,UV,UU. When you choose unforced method, it would ensure a clean deletion, and ensure the entire data is wiped. On a forced delete, it would delete it from frontend, and only attempt to clean it entirely. Force method is useful to delete servers whose nodes have been discontinued, or conditions where unforced wouldnt work. Verified feature ensures that the purge process goes as close to the expected outcome as possible, and if anything is detected which shouldnt be so, wingspan would prompt you there, so you can take manual action right there on the spot while it purges. Unverified means that wingspan would try its best to delete all the servers given in the importlist and would not prompt the user in case of discrepancies. Features Added/Worked on Import Verification Server Name Live Verification Completed Beta Purge Function Updated Menu to allow Purge Function Wingspan now needs an Admin API key with Full Perms (Readonly no longer works) What I would be working on Bugchecking all the features I made Attempting to delete some servers in massive quantities. Starting work on User Purge Function Do changes in README.md for the new purge function documentation. Find a good reliable Pterodactyl API Docs Website. AI Declaration No AI was used in code in the duration of this devlog. All places where AI was used in code, is mentioned properly in the source code. The attached image shows the Graphical UI of the Purge Function along with the questions it asks.
Devlog 19 Show and Tell #1 WINNER Project! 🏆 Progress Done Purge function has been completely created. I have worked on API Request Error Catching in duration of this devlog. I have integrated all the standard practices and error catching which is required, and now the program displays the error and a solution to fix it. Also, it tracks if there are any errors due to wingspan itself, and provides resolution! Great Stuff! I also started work on User Purge Function, which i’ll release in the ship after shipping Server Purge. There was a bug in the release file, which prevented auto update in windows. Fixed that. Features Added/Worked on Better API Requests to Pterodactyl Rate Limit detector and queue Error Catching and Resolution Server Purge Function Completed Started work on User Purge What new I learnt I learnt to work with industry standard error catching I learnt to make better API systems I learnt to work with queues and rate limiters I learnt to use DELETE Protocol What I would be working on Completing Documentation till here Shipping till Server Purge AI Declaration Claude was used to find out bug in release file only. No AI was used in code during the span of this devlog. All places where AI was used in code, is mentioned properly in the source code. The attached image shows the Release Page of the project, project homepage and some lovely previous votes screenshots.
ps: not an official devlog, just an update Show and Tell + Super Star This was another great show and tell, and OMG SUPER STAR! Thanks @Lazyllama ❤️ Ty guys, rly grateful!! Image shows me submitting to Show and Tell and 2nd Image showing my Super Star!
Ships:
Welcome to WingSpan, A project to bulk manage your self hosted hardware on pterodactyl. Easily search through servers, get detailed information, export lists based on precise filtering and more! It is made for people like me, who manage hundreds of servers daily, and need to perform bulk actions on them. Its posted on frictionless mission because it would make my life really easy as it automates a lot of my work and would save me a LOT of clicks! cant wait for you to try it out! <3
Hello! If you are new here, welcome! This is my flagship project called Wingspan, It’s used by system administrators and infrastructure managers to manage their virtual servers in bulk rather than one by one. This project works in the terminal with AMAZING Terminal UI! This is my second ship. I have worked on making the Server Purge Function, to easily delete servers in large quantities. In my previous ships, I worked on making the basics of the code and functions to index and search the database. I have received extremely positive comments for this project, and i’m really proud of making it! Do star it on github if you like this one!...
|
1793004924.442677
|
1793091324.442677
|
|
63129
|
Bloggy by @pwohlfahrt | Stardance
|
pwohlfahrt
|
1
|
22.0
|
138
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-18T18:58:13Z", "hours": 22.0, "multiplier": 6.22, "payout": 138, "blessing": "neutral", "text": "Easy to host website for your own blog, because art of the blogging is slowly dying. Your own custom blog is just one command away.", "repo": "https://github.com/pwohlfahrt/Bloggy", "demo": "https://homelab.taila52305.ts.net"}]...
|
[{"post_id": 80770, "ts": "202 [{"post_id": 80770, "ts": "2026-10-18T18:52:00Z", "hours": 1.625, "text": "Devlog 5 - Readme, Docker & Ship!!! I`ve managed to bring back my homelab to life, so this time i decided to use docker to not screw everything up. After some trouble docker was ready. For some reason It worked on my machine, but on homelab it had some problems, but it sure works now. Then quickly adding readme, bc shipping requires to and it was ready to be funneled onto the internet. And thanks God for tailscale bc my beloved ISP wont let me port forward on my router. The app is finally ready so you can give it a try here: https://homelab.taila52305.ts.net/ It was really fun project and I think thanks to this my coding burn out is no more. Thank you all for this amazing journey. See you next time."}, {"post_id": 79998, "ts": "2026-10-15T20:37:14Z", "hours": 6.98, "text": "Devlog 4 - Comments & Polishing. It’s been a long time since the last post, but I’ve made great progress on the app and I think it’s finally ready to ship. I patched a few security flaws, squashed some bugs, and wrote a discussion page for blogs, so readers can share their thoughts after reading. There’s no sign-up page, and yes - you can type your name and be anyone, but I think that’s what makes the internet better."}, {"post_id": 72765, "ts": "2026-09-23T18:12:57Z", "hours": 7.0047, "text": "Devlog 3 - Admin panel. It took kinda long but i managed to make flask run two apps with access to each other. So admin panel is going to have separate port from the app. Also, now you can create plugins, and add them just by dropping a file into the folder. Finally, Ive added a bit of statistics so you can now see how well your blog is doing. Let me know in the comments what else youd like to see"}, {"post_id": 72254, "ts": "2026-09-22T15:17:07Z", "hours": 1.7642, "text": "Devlog 2 - Photos. I have made a gallery so you can share that nice picture of a tree with rest of the world. And the world can give you feed back by the comment section! Maybe its time to talk a little bit of my tech stack. So i choosed to go with easiest technology on the market: flask as fastest framework to build with. peewee as easiest to implement database. and as a frontend some html & css with a bit of help can do the job kinda well. Let me know what you think about this"}, {"post_id": 72169, "ts": "2026-09-22T11:08:34Z", "hours": 4.875, "text": "HI, Im starting a new project called bloggy. I was gonna do it anyways, but Im going to use stardance as a way to force myself into making it. Its going to be just a minimalistic website for blogs and showing to the world my other artistic work. Ive been planning to host it on my homelab via tailscale funnel, so weill see how it will work. For now only raw blog pages are created, so theres still some work. Gonna keep u updated"}]...
|
Title: Bloggy by @pwohlfahrt | Stardance
Devlogs: Title: Bloggy by @pwohlfahrt | Stardance
Devlogs:
HI, Im starting a new project called bloggy. I was gonna do it anyways, but Im going to use stardance as a way to force myself into making it. Its going to be just a minimalistic website for blogs and showing to the world my other artistic work. Ive been planning to host it on my homelab via tailscale funnel, so weill see how it will work. For now only raw blog pages are created, so theres still some work. Gonna keep u updated
Devlog 2 - Photos. I have made a gallery so you can share that nice picture of a tree with rest of the world. And the world can give you feed back by the comment section! Maybe its time to talk a little bit of my tech stack. So i choosed to go with easiest technology on the market: flask as fastest framework to build with. peewee as easiest to implement database. and as a frontend some html & css with a bit of help can do the job kinda well. Let me know what you think about this
Devlog 3 - Admin panel. It took kinda long but i managed to make flask run two apps with access to each other. So admin panel is going to have separate port from the app. Also, now you can create plugins, and add them just by dropping a file into the folder. Finally, Ive added a bit of statistics so you can now see how well your blog is doing. Let me know in the comments what else youd like to see
Devlog 4 - Comments & Polishing. It’s been a long time since the last post, but I’ve made great progress on the app and I think it’s finally ready to ship. I patched a few security flaws, squashed some bugs, and wrote a discussion page for blogs, so readers can share their thoughts after reading. There’s no sign-up page, and yes - you can type your name and be anyone, but I think that’s what makes the internet better.
Devlog 5 - Readme, Docker & Ship!!! I`ve managed to bring back my homelab to life, so this time i decided to use docker to not screw everything up. After some trouble docker was ready. For some reason It worked on my machine, but on homelab it had some problems, but it sure works now. Then quickly adding readme, bc shipping requires to and it was ready to be funneled onto the internet. And thanks God for tailscale bc my beloved ISP wont let me port forward on my router. The app is finally ready so you can give it a try here: https://homelab.taila52305.ts.net/ It was really fun project and I think thanks to this my coding burn out is no more. Thank you all for this amazing journey. See you next time.
Ships:
Easy to host website for your own blog, because art of the blogging is slowly dying. Your own custom blog is just one command away....
|
1793008251.3458753
|
1793094651.3458753
|
|
4687
|
HAND CV by @DhruvJ | Stardance
|
DhruvJ
|
0
|
4.9
|
0
|
[]
|
[{"post_id": 80774, "ts": "202 [{"post_id": 80774, "ts": "2026-10-18T19:04:58Z", "hours": 4.9042, "text": "First Devlog My Project idea seems really basic and simple and I thought so to! so, I broke down the idea into 3 parts: 1)Pre Processing (turning to grayscale and popping out the notes more) 2)actual CV model 3)converting and displaying into text So i began with the first part and realised there are so many factors 1)Resolution: -Photo needs resolution to make out actual keystrokes 2)Aspect ratio and resizing (I wasn’t aware, but models can only take in a fixed size) 3)Inconsistent Skew and orientation could really affect recognition of the same stroke 4)Different lightings in photos: I realized preprocessing on one image can be perfect but be blurry on another 5) fine turning the model So, in this devlog I was learning about different factors do account for and realised that even jpeg and png can have different outputs my first version works really bad in my attempt to making the notes pop I converted it to grayscale which wasn’t enough so I tried a per-pixel intensity remap CLAHE which I still don’t understand how it works but the other methods with gaussian blur and median type blur wasn’t helpful."}]...
|
Title: HAND CV by @DhruvJ | Stardance
Devlogs:
Fi Title: HAND CV by @DhruvJ | Stardance
Devlogs:
First Devlog My Project idea seems really basic and simple and I thought so to! so, I broke down the idea into 3 parts: 1)Pre Processing (turning to grayscale and popping out the notes more) 2)actual CV model 3)converting and displaying into text So i began with the first part and realised there are so many factors 1)Resolution: -Photo needs resolution to make out actual keystrokes 2)Aspect ratio and resizing (I wasn’t aware, but models can only take in a fixed size) 3)Inconsistent Skew and orientation could really affect recognition of the same stroke 4)Different lightings in photos: I realized preprocessing on one image can be perfect but be blurry on another 5) fine turning the model So, in this devlog I was learning about different factors do account for and realised that even jpeg and png can have different outputs my first version works really bad in my attempt to making the notes pop I converted it to grayscale which wasn’t enough so I tried a per-pixel intensity remap CLAHE which I still don’t understand how it works but the other methods with gaussian blur and median type blur wasn’t helpful....
|
1792626653.5686443
|
1793231453.5686443
|
|
47350
|
ReadBear by @Tulis | Stardance
|
Tulis
|
0
|
98.26
|
0
|
[]
|
[{"post_id": 80776, "ts": "202 [{"post_id": 80776, "ts": "2026-10-18T19:07:09Z", "hours": 5.1525, "text": "Devlog 17 I am so sorry for no devlogs! What did I do? i am still working on folders! they require a whole ui rewrite unfortunately! i got in contact with an artist, we are preparing some new logos and backgrounds! check samples in the pictures a lot of files changed (and I mean a lot - see in pictures) got everyting i18n-ated (all changelogs etc) file migrations (and custom screen!) What I will do next? folders. I will hopefully finish them to the next devlog! work on the custom logos and backgrounds! F-Droid: v0.8.1 Github: v0.8.1 Logo author: Castellon Artz"}, {"post_id": 79481, "ts": "2026-10-14T07:42:50Z", "hours": 6.3367, "text": "Devlog 16 What did I do in all this time? a lot of in-between things - for example githooks with tests (I pushed a bad build to f-droid, I need to learn on my mistakes ) a huge db migration - i am working on folders dates are in the ui (last read time, created at) you can now edit booktype-specific data working on folders! (a hugely big amount of work :<) What am I doing next? folders, snippet folders probably more tests update languages add some icons (a nice artist reached out to me!) See you in the next one! Get it on GitHub or F-Droid"}, {"post_id": 76833, "ts": "2026-10-04T19:20:07Z", "hours": 5.5144, "text": "Devlog 15 What have I been cooking in this much time? snippets! they are so pretty, you can zoom, see them pinterest-style, edit (with validation) and the cherry on top - you can now edit the selection! a lot of code updates and refactors added dates to DB (will add to UI in a sec!) file rename (almost all files had to be changed ) fixed a lot of random bugs fixed fdroid logo What will I do next? some suggestions from my friends :> fix bugs notes! local rating! local saving! a lot of customization! Github: v0.7.4 F-Droid: v0.7.4"}, {"post_id": 75623, "ts": "2026-09-30T16:08:55Z", "hours": 5.4036, "text": "Devlog 14 What have I done? (I am so happy ) I FIXED A BUG THAT WAS THERE FOR OVER A MONTH. It turns out I really had to thing outside-the-box (gosh I am so funny - cause yk - jetpack compose has boxes). The bug was caused when you press the back button quickly as it fades (as on video) a huge code refactor removed a bunch of bugs added viewing snippets, and saving them again i would want to empathize how happy I am and how much work the first one took XD got my website verificated with my signature I added an abstraction layer to menu - to help extend it further What I am working on? snippets (going back to the source) editing snippet details Thanks so much for reading this, I am so happy rn."}, {"post_id": 74893, "ts": "2026-09-28T15:18:42Z", "hours": 3.5053, "text": "Devlog 13 What changed? my code. really, most of the changes are to the quality of the code fixed covers not changing fixed editing (still working on it) added empty pages info (a pretty card) split pdf reading into 3 files (much more readable and maintainable code) moved navigation bar hiding/showing into separate file fixed random bugs still debuging the random empty page bug! What I am working on next? debuging random bugs! my todolist (currently bookmarks/editing) I also released the next version on F-Droid, with the updated logo! Github: v0.7.4 F-Droid: v0.7.4"}, {"post_id": 71896, "ts": "2026-09-21T18:34:38Z", "hours": 4.1192, "text": "Devlog 12 What changed? I moved out of vibecoded pdf library (sorry to say that, but it was terrible) snippets work now! there won’t be quotes as selecting in cbz’s and pdf is hard/non existable on mobile, but you can have cool snippets! attributions in snippets database migrations debuging, debuging and a lot of additional debuging fixed some bugs On what I will focus next? modifing snippets/deleting viewing a lot of code optimisations! On F-Droid: v0.7.2"}, {"post_id": 71095, "ts": "2026-09-20T09:05:52Z", "hours": 3.7536, "text": "Devlog 11 What changed? my app is now on F-Droid and the logo is clear (not blurry from my skill issue) new navigation menu zooming CBZs! working on quotes! fixed a library that i use for pdfs (hopefully they will accept the change XD) thinking how to do quotes for image-pdfs What I will focus on next? quotes bookmarks Release: v0.7.2 On F-Droid: v0.7.2 Please spread the beary news! See you in the next one"}, {"post_id": 67888, "ts": "2026-09-14T05:56:04Z", "hours": 3.195, "text": "Devlog 10 What changed? my app is now on F-Droid! we have tasty themes automatic translation credits fixed repo authors my icon on F-Droid is blurry What am I doing next: bookmarks quotes support for more formats? Thanks for sticking with me :) If you have any thoughts on themes (adding more!), create an issue! Release v0.7.0 F-Droid: https://f-droid.org/pl/packages/dev.tulis.readbear/"}, {"post_id": 66461, "ts": "2026-09-12T09:35:56Z", "hours": 3.2914, "text": "Devlog 9 MY APP GOT MERGED TO F-DROID! Yes, as you can see, I am a bit happy :) What changed: a lot of small changes to get my submition accepted you can select theme mode (dark, light, system) translation credits are now automatically added with GitHub actions added shrink options, my apk is now only ~25mb instead of 50mb! working on custom themes - catppuccin! relases are now stable! data migrations will be now in the repo What I am working on next: bookmarks and quotes collections/folders movable order of books (this is gonna be hard) adding the app to Google Play (at the end) Thanks for sticking with me! I am so happy that I got into F-Droid, after the merge in around 1-2 days you can go search ReadBear! (I will add the badge too) Relase: v0.6.3"}, {"post_id": 64869, "ts": "2026-09-09T15:44:35Z", "hours": 11.4844, "text": "Devlog 8 (a huge two i am so funny hahahahaha) What changed? epubs! (oh the horrors, this was so hard) three languages now: Polish, English and Russian i am in the process of adding my app to F-Droid (like it to help me!) Merge Request a lot of improvements to GitHub actions (caching, 4m build time reduced to ~30s!) reproducible builds and signing tasteful theme selection we don’t talk about the red cover. What is going on next? improving epubs we talk about the red cover. adding it to F-Droid adding the app to google play store :)"}, {"post_id": 62158, "ts": "2026-09-05T12:39:19Z", "hours": 7.8414, "text": "Devlog 7 (a huge one ) What changed? a beautiful new vector logo! app info page and proper versioning tests on github actions on translation fix translation to properly use plurals working on polish translation Gradle build now bundles translation credits from Weblate settings on pdf reader and an abstraction layer before it (easier future coding) fix a lot of bugs and memory leaks (who said that?) added a bunch of customization options added a split page function for funky pdfs What I will be working on next? Epubs Fixing visual bugs Release v0.3.0 See you in the next one!"}, {"post_id": 60437, "ts": "2026-09-02T19:27:39Z", "hours": 3.1744, "text": "Devlog 6 What I changed? added a configurable reading layout option for PDFs added a new book info page (so pretty!) fixed bugs and i18n issues there will be English, Russian, Polish translations! fixed code quality (a lot!) What am I doing next? Epubs More configurable options for PDFs and Epubs! Thanks for reading! Release v0.2.0"}, {"post_id": 60287, "ts": "2026-09-02T15:45:34Z", "hours": 7.0028, "text": "Devlog 5 (sorry for so little devlogs, hackatime was down ) What changed? Releases! Now the actions build and sign the app for releases (prereleases for now but yes) Pdf support! Full db rewrite More configurable options (and even more coming) A lot of bug fixes Got weblate set up for translating Bookmarks for PDFs A lot of metadata and info page! What am I doing next? Epubs - it is confirmed and doable :) More custom features and themes Make the info page human? Release: v0.1.0 See you in then next one!"}, {"post_id": 53837, "ts": "2026-08-24T15:09:45Z", "hours": 3.7392, "text": "Devlog 4 What have I changed? I created a Github actions builder that publishes the latest version to artifacts (releases later, as they are not ready XD) created lovely art and letterpaper (banner) also this tasty background changing depending on the theme) I am in the middle of completely changing the db structure to accommodate PDFs and EPUBs many code optimisations I will focus on? PDFs for now more themes See you in the next one!"}, {"post_id": 52541, "ts": "2026-08-22T18:20:20Z", "hours": 2.9881, "text": "Devlog 3 What have I done? full i18n-ation (every text is in strings file, so it can be translated), english as of now (russian and polish are coming) you can zoom the panels so you can adore all the details settings now has tabs so more options can be added settings popout extends all the way instead of a akward middleway settings are actually saved when pressing the “Save” button (yes they were discarded when saving, and saved when pressing somewhere else 🤭) What I will be working on? hopefully epubs removing all the bugs 🐛 making it even more customizable (custom backgrounds and themes are coming!) See you in the next one!"}, {"post_id": 50473, "ts": "2026-08-19T17:14:15Z", "hours": 10.8378, "text": "Devlog 2 (omg I am writing this third time, I need to copy it this time) What I changed? added bookmarks (auto remembering where you last read) added beautiful coffee theme added customization options added rereading (am I the only one to reread books/mangas all the time?) fixed bugs and memory leaks (memory leaks in an android app, I know) On what I will focus now? writing more frequent devlogs I18N - aside from polish, english and probably russian maybe EPUBS 💀 fix some annoying bugs (such as the cover sometimes not changing) I created a Github repo! See you in the next one!"}, {"post_id": 46229, "ts": "2026-08-13T10:11:01Z", "hours": 10.9167, "text": "Devlog 1, what it is? ReadBear is a cute app for reading Comics (.cbz) and hopefully EPUB books! It is written in Jetpack Compose and will be Android only. What have I done? I made importing the comics/mangas through file, adding it to database and indexing for reading. You can click on the comic/manga and start to read it! There is some customising options but not that many as I would like in the finished product This is my first Android app! I really love the Material Design and UI so I am happy to use Compose! This is my first time in Kotlin (coming from Java) so it is a bit confusing, but I like it! Ooopsies! I forgot to create a project and post devlogs on this app!"}]...
|
Title: ReadBear by @Tulis | Stardance
Devlogs:
De Title: ReadBear by @Tulis | Stardance
Devlogs:
Devlog 1, what it is? ReadBear is a cute app for reading Comics (.cbz) and hopefully EPUB books! It is written in Jetpack Compose and will be Android only. What have I done? I made importing the comics/mangas through file, adding it to database and indexing for reading. You can click on the comic/manga and start to read it! There is some customising options but not that many as I would like in the finished product This is my first Android app! I really love the Material Design and UI so I am happy to use Compose! This is my first time in Kotlin (coming from Java) so it is a bit confusing, but I like it! Ooopsies! I forgot to create a project and post devlogs on this app!
Devlog 2 (omg I am writing this third time, I need to copy it this time) What I changed? added bookmarks (auto remembering where you last read) added beautiful coffee theme added customization options added rereading (am I the only one to reread books/mangas all the time?) fixed bugs and memory leaks (memory leaks in an android app, I know) On what I will focus now? writing more frequent devlogs I18N - aside from polish, english and probably russian maybe EPUBS 💀 fix some annoying bugs (such as the cover sometimes not changing) I created a Github repo! See you in the next one!
Devlog 3 What have I done? full i18n-ation (every text is in strings file, so it can be translated), english as of now (russian and polish are coming) you can zoom the panels so you can adore all the details settings now has tabs so more options can be added settings popout extends all the way instead of a akward middleway settings are actually saved when pressing the “Save” button (yes they were discarded when saving, and saved when pressing somewhere else 🤭) What I will be working on? hopefully epubs removing all the bugs 🐛 making it even more customizable (custom backgrounds and themes are coming!) See you in the next one!
Devlog 4 What have I changed? I created a Github actions builder that publishes the latest version to artifacts (releases later, as they are not ready XD) created lovely art and letterpaper (banner) also this tasty background changing depending on the theme) I am in the middle of completely changing the db structure to accommodate PDFs and EPUBs many code optimisations I will focus on? PDFs for now more themes See you in the next one!
Devlog 5 (sorry for so little devlogs, hackatime was down ) What changed? Releases! Now the actions build and sign the app for releases (prereleases for now but yes) Pdf support! Full db rewrite More configurable options (and even more coming) A lot of bug fixes Got weblate set up for translating Bookmarks for PDFs A lot of metadata and info page! What am I doing next? Epubs - it is confirmed and doable :) More custom features and themes Make the info page human? Release: v0.1.0 See you in then next one!
Devlog 6 What I changed? added a configurable reading layout option for PDFs added a new book info page (so pretty!) fixed bugs and i18n issues there will be English, Russian, Polish translations! fixed code quality (a lot!) What am I doing next? Epubs More configurable options for PDFs and Epubs! Thanks for reading! Release v0.2.0
Devlog 7 (a huge one ) What changed? a beautiful new vector logo! app info page and proper versioning tests on github actions on translation fix translation to properly use plurals working on polish translation Gradle build now bundles translation credits from Weblate settings on pdf reader and an abstraction layer before it (easier future coding) fix a lot of bugs and memory leaks (who said that?) added a bunch of customization options added a split page function for funky pdfs What I will be working on next? Epubs Fixing visual bugs Release v0.3.0 See you in the next one!
Devlog 8 (a huge two i am so funny hahahahaha) What changed? epubs! (oh the horrors, this was so hard) three languages now: Polish, English and Russian i am in the process of adding my app to F-Droid (like it to help me!) Merge Request a lot of improvements to GitHub actions (caching, 4m build time reduced to ~30s!) reproducible builds and signing tasteful theme selection we don’t talk about the red cover. What is going on next? improving epubs we talk about the red cover. adding it to F-Droid adding the app to google play store :)
Devlog 9 MY APP GOT MERGED TO F-DROID! Yes, as you can see, I am a bit happy :) What changed: a lot of small changes to get my submition accepted you can select theme mode (dark, light, system) translation credits are now automatically added with GitHub actions added shrink options, my apk is now only ~25mb instead of 50mb! working on custom themes - catppuccin! relases are now stable! data migrations will be now in the repo What I am working on next: bookmarks and quotes collections/folders movable order of books (this is gonna be hard) adding the app to Google Play (at the end) Thanks for sticking with me! I am so happy that I got into F-Droid, after the merge in around 1-2 days you can go search ReadBear! (I will add the badge too) Relase: v0.6.3
Devlog 10 What changed? my app is now on F-Droid! we have tasty themes automatic translation credits fixed repo authors my icon on F-Droid is blurry What am I doing next: bookmarks quotes support for more formats? Thanks for sticking with me :) If you have any thoughts on themes (adding more!), create an issue! Release v0.7.0 F-Droid: https://f-droid.org/pl/packages/dev.tulis.readbear/
Devlog 11 What changed? my app is now on F-Droid and the logo is clear (not blurry from my skill issue) new navigation menu zooming CBZs! working on quotes! fixed a library that i use for pdfs (hopefully they will accept the change XD) thinking how to do quotes for image-pdfs What I will focus on next? quotes bookmarks Release: v0.7.2 On F-Droid: v0.7.2 Please spread the beary news! See you in the next one
Devlog 12 What changed? I moved out of vibecoded pdf library (sorry to say that, but it was terrible) snippets work now! there won’t be quotes as selecting in cbz’s and pdf is hard/non existable on mobile, but you can have cool snippets! attributions in snippets database migrations debuging, debuging and a lot of additional debuging fixed some bugs On what I will focus next? modifing snippets/deleting viewing a lot of code optimisations! On F-Droid: v0.7.2
Devlog 13 What changed? my code. really, most of the changes are to the quality of the code fixed covers not changing fixed editing (still working on it) added empty pages info (a pretty card) split pdf reading into 3 files (much more readable and maintainable code) moved navigation bar hiding/showing into separate file fixed random bugs still debuging the random empty page bug! What I am working on next? debuging random bugs! my todolist (currently bookmarks/editing) I also released the next version on F-Droid, with the updated logo! Github: v0.7.4 F-Droid: v0.7.4
Devlog 14 What have I done? (I am so happy ) I FIXED A BUG THAT WAS THERE FOR OVER A MONTH. It turns out I really had to thing outside-the-box (gosh I am so funny - cause yk - jetpack compose has boxes). The bug was caused when you press the back button quickly as it fades (as on video) a huge code refactor removed a bunch of bugs added viewing snippets, and saving them again i would want to empathize how happy I am and how much work the first one took XD got my website verificated with my signature I added an abstraction layer to menu - to help extend it further What I am working on? snippets (going back to the source) editing snippet details Thanks so much for reading this, I am so happy rn.
Devlog 15 What have I been cooking in this much time? snippets! they are so pretty, you can zoom, see them pinterest-style, edit (with validation) and the cherry on top - you can now edit the selection! a lot of code updates and refactors added dates to DB (will add to UI in a sec!) file rename (almost all files had to be changed ) fixed a lot of random bugs fixed fdroid logo What will I do next? some suggestions from my friends :> fix bugs notes! local rating! local saving! a lot of customization! Github: v0.7.4 F-Droid: v0.7.4
Devlog 16 What did I do in all this time? a lot of in-between things - for example githooks with tests (I pushed a bad build to f-droid, I need to learn on my mistakes ) a huge db migration - i am working on folders dates are in the ui (last read time, created at) you can now edit booktype-specific data working on folders! (a hugely big amount of work :<) What am I doing next? folders, snippet folders probably more tests update languages add some icons (a nice artist reached out to me!) See you in the next one! Get it on GitHub or F-Droid
Devlog 17 I am so sorry for no devlogs! What did I do? i am still working on folders! they require a whole ui rewrite unfortunately! i got in contact with an artist, we are preparing some new logos and backgrounds! check samples in the pictures a lot of files changed (and I mean a lot - see in pictures) got everyting i18n-ated (all changelogs etc) file migrations (and custom screen!) What I will do next? folders. I will hopefully finish them to the next devlog! work on the custom logos and backgrounds! F-Droid: v0.8.1 Github: v0.8.1 Logo author: Castellon Artz...
|
1792511584.1076407
|
1793116384.1076407
|
|
7422
|
Weird looking f1 car by @leg1231 | Stardance
|
leg1231
|
0
|
113.42
|
0
|
[]
|
[{"post_id": 80777, "ts": "202 [{"post_id": 80777, "ts": "2026-10-18T19:11:39Z", "hours": 16.7047, "text": "IT FINALLY WORKS!!!! still have alot to do but it can move and steer on its own."}, {"post_id": 74742, "ts": "2026-09-28T03:32:28Z", "hours": 10.2919, "text": "Its starting to look Cool!!!! you can now see why i called it wierd looking f1 car, half the engine area is just a motor"}, {"post_id": 72962, "ts": "2026-09-24T03:40:43Z", "hours": 9.1639, "text": "It only looks a little sus. next thing to do is finish the body and work on wiring. I was about to do the first full test then realized the battery was dead. ILL BE BACK"}, {"post_id": 70401, "ts": "2026-09-19T03:29:14Z", "hours": 8.9811, "text": "I replaced the 3d printed axles with steel rods, then remade the main chassy to be more sturdy, then the front stearring broke. so much fun : |"}, {"post_id": 59979, "ts": "2026-09-02T02:03:37Z", "hours": 8.6339, "text": "This is the full size of it. i ran the motors and the rear axel limitedly snapped. It couldn’t handle the torque :("}, {"post_id": 52740, "ts": "2026-08-23T02:11:12Z", "hours": 9.2153, "text": "Fully assembled front stearing. V1"}, {"post_id": 47193, "ts": "2026-08-14T22:34:32Z", "hours": 7.8606, "text": "hopefully done with the steering and front wheel base"}, {"post_id": 45155, "ts": "2026-08-11T13:48:51Z", "hours": 5.0683, "text": "Working on the front stearing struts and part of the body( this is half, ill mirror it once I like how it is working)"}, {"post_id": 33204, "ts": "2026-07-22T22:06:48Z", "hours": 8.1108, "text": "Started working on front steering. Each wheel will steer individually so that i can test both postive ackermen and reverse ackermen stearing"}, {"post_id": 30489, "ts": "2026-07-18T03:16:27Z", "hours": 10.4411, "text": "from a cad file to physical"}, {"post_id": 17314, "ts": "2026-06-28T01:15:18Z", "hours": 18.9447, "text": "drive train of car, all 3d printed"}]...
|
Title: Weird looking f1 car by @leg1231 | Stardanc Title: Weird looking f1 car by @leg1231 | Stardance
Devlogs:
drive train of car, all 3d printed
from a cad file to physical
Started working on front steering. Each wheel will steer individually so that i can test both postive ackermen and reverse ackermen stearing
Working on the front stearing struts and part of the body( this is half, ill mirror it once I like how it is working)
hopefully done with the steering and front wheel base
Fully assembled front stearing. V1
This is the full size of it. i ran the motors and the rear axel limitedly snapped. It couldn’t handle the torque :(
I replaced the 3d printed axles with steel rods, then remade the main chassy to be more sturdy, then the front stearring broke. so much fun : |
It only looks a little sus. next thing to do is finish the body and work on wiring. I was about to do the first full test then realized the battery was dead. ILL BE BACK
Its starting to look Cool!!!! you can now see why i called it wierd looking f1 car, half the engine area is just a motor
IT FINALLY WORKS!!!! still have alot to do but it can move and steer on its own....
|
1792558215.3520005
|
1793163015.3520005
|
|
61542
|
The Bemicro by @fortuna | Stardance
|
fortuna
|
0
|
10.07
|
0
|
[]
|
[{"post_id": 80778, "ts": "202 [{"post_id": 80778, "ts": "2026-10-18T19:17:01Z", "hours": 0.7139, "text": "flashed firmware i flashed the xiao, now that i have parts. i attempted to digitally prototype a breadboard in the meantime but the platform was quite buggy. heres as far as i got. waiting for circuit boards to arrive, movement has been quite slow. once i get my hands on a breadboard, hopefully today, im gonna work on programming the rotary encoder to a good turn length, and code the oled display."}, {"post_id": 72074, "ts": "2026-09-22T03:32:32Z", "hours": 1.3664, "text": "WE ARE ON GITHUB LETS GOOOOO submission pending identity verification… which i have some things to say about… but ill hold my tongue."}, {"post_id": 72043, "ts": "2026-09-22T01:51:53Z", "hours": 0.7167, "text": "error removal just removed some errors that prevented compiling with qmk. the green is pure neuron activation."}, {"post_id": 71856, "ts": "2026-09-21T17:37:41Z", "hours": 0.4636, "text": "FIRMWARE the thing has firmware now. MAN qmk is a headache to get started with, but now that i have something working maybe itll kinda work. submission soon hopefully. i wanna make the most of this long weekend. (actual work was longer than 27 mins, but the hackatime i tried to do was over-representative of the work done, so i decided to not include it)"}, {"post_id": 69892, "ts": "2026-09-18T00:57:00Z", "hours": 0.6536, "text": "woah, a case!! (some of this didnt get lapsed) so this case is gonna be pretty simple i think, as long as its within the rules i dont wanna complete the top until i have all the parts, if i complete it at all. most likely the case will stay open top, because theres a lot of small gaps to work around and itd look a bit crap. the board is mounted on the two screw-holes, and i plan to put some kind of foam in the gap underneath, for stability’s sake. there is also a “turntable”. its designed like that so it can be out of the way of the keys, but still be an adequate size. after finalizing the stability of the turntable, onto firmware!!"}, {"post_id": 68844, "ts": "2026-09-15T21:04:58Z", "hours": 0.9703, "text": "OMG OMG OMG finally at the modeling stage. did some work yesterday but didnt remember to lapse it. this is THE final design, i have decided. added a small silkscreen and mounting holes (m3). added 3c models to kicad, to aid in 3d modeling. attempted to use fusion but it said my graphics driver needed to be updated, which i dont have time for rn. made a very simple box in onshape, to hold the pcb. design going into modeling (this is mostly so i remember). id like to have the top exposed above the xiao, if i can print it id like a translucent portion above the leds, unsure about the screen. the scratch wheel is going to be a bit hard, as its quite close and (assuming a consistent diameter) will be 2 cm across (not good). my planned solution for this is to have half of it be short (to not interfere with the keys), and the other half be a suitable size (and hanging off the board)"}, {"post_id": 67780, "ts": "2026-09-14T00:57:49Z", "hours": 1.8053, "text": "wow there goes my sunday i blinked and i have a circuit board on the screen, but i lost like 4 hours in the process . pcb is mostly done, hopefully no more changes are needed, please i dont wanna wire it again. next is case and scratchwheel design."}, {"post_id": 67642, "ts": "2026-09-13T19:52:47Z", "hours": 1.1458, "text": "ugh progress slowing, going to go at it slower, to avoid burning out on this. tentative layout, ill have to move the encoder at some point as i fine tune the scratch wheel size and distance from keys."}, {"post_id": 67489, "ts": "2026-09-13T16:33:25Z", "hours": 1.0742, "text": "progress progress progress!! more progress on the schematic of the hackpad. due to the limited amount of pins i will only have 8 buttons (including the rotary encoder button), screen, chain of neopixels, and rotary encoder. next will be finalizing, error checking, and then onto pcb design."}, {"post_id": 67021, "ts": "2026-09-13T02:01:17Z", "hours": 1.1619, "text": "Beatmania (or similar staggered-key rhythm game) hackpad! In the end, this will have 7 (maybe 12) keys, staggered like that of a piano. a small turntable (a la beatmania). a screen mirroring the secondary lcd screen of early beatmania IIDX cabinets. and lights, if i still have energy by then. space allowing i may use the leftover keys and encoder as a seperate macropad section. this would be to avoid layers in the firmware, keeping it less complicated. image is of a very bad keyboard matrix test."}]...
|
Title: The Bemicro by @fortuna | Stardance
Devlog Title: The Bemicro by @fortuna | Stardance
Devlogs:
Beatmania (or similar staggered-key rhythm game) hackpad! In the end, this will have 7 (maybe 12) keys, staggered like that of a piano. a small turntable (a la beatmania). a screen mirroring the secondary lcd screen of early beatmania IIDX cabinets. and lights, if i still have energy by then. space allowing i may use the leftover keys and encoder as a seperate macropad section. this would be to avoid layers in the firmware, keeping it less complicated. image is of a very bad keyboard matrix test.
progress progress progress!! more progress on the schematic of the hackpad. due to the limited amount of pins i will only have 8 buttons (including the rotary encoder button), screen, chain of neopixels, and rotary encoder. next will be finalizing, error checking, and then onto pcb design.
ugh progress slowing, going to go at it slower, to avoid burning out on this. tentative layout, ill have to move the encoder at some point as i fine tune the scratch wheel size and distance from keys.
wow there goes my sunday i blinked and i have a circuit board on the screen, but i lost like 4 hours in the process . pcb is mostly done, hopefully no more changes are needed, please i dont wanna wire it again. next is case and scratchwheel design.
OMG OMG OMG finally at the modeling stage. did some work yesterday but didnt remember to lapse it. this is THE final design, i have decided. added a small silkscreen and mounting holes (m3). added 3c models to kicad, to aid in 3d modeling. attempted to use fusion but it said my graphics driver needed to be updated, which i dont have time for rn. made a very simple box in onshape, to hold the pcb. design going into modeling (this is mostly so i remember). id like to have the top exposed above the xiao, if i can print it id like a translucent portion above the leds, unsure about the screen. the scratch wheel is going to be a bit hard, as its quite close and (assuming a consistent diameter) will be 2 cm across (not good). my planned solution for this is to have half of it be short (to not interfere with the keys), and the other half be a suitable size (and hanging off the board)
woah, a case!! (some of this didnt get lapsed) so this case is gonna be pretty simple i think, as long as its within the rules i dont wanna complete the top until i have all the parts, if i complete it at all. most likely the case will stay open top, because theres a lot of small gaps to work around and itd look a bit crap. the board is mounted on the two screw-holes, and i plan to put some kind of foam in the gap underneath, for stability’s sake. there is also a “turntable”. its designed like that so it can be out of the way of the keys, but still be an adequate size. after finalizing the stability of the turntable, onto firmware!!
FIRMWARE the thing has firmware now. MAN qmk is a headache to get started with, but now that i have something working maybe itll kinda work. submission soon hopefully. i wanna make the most of this long weekend. (actual work was longer than 27 mins, but the hackatime i tried to do was over-representative of the work done, so i decided to not include it)
error removal just removed some errors that prevented compiling with qmk. the green is pure neuron activation.
WE ARE ON GITHUB LETS GOOOOO submission pending identity verification… which i have some things to say about… but ill hold my tongue.
flashed firmware i flashed the xiao, now that i have parts. i attempted to digitally prototype a breadboard in the meantime but the platform was quite buggy. heres as far as i got. waiting for circuit boards to arrive, movement has been quite slow. once i get my hands on a breadboard, hopefully today, im gonna work on programming the rotary encoder to a good turn length, and code the oled display....
|
1793040682.2231698
|
1793645482.2231698
|
|
53831
|
contrast by @a-fun-gi | Stardance
|
a-fun-gi
|
2
|
27.0
|
291
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-24T19:24:40Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "This is the second ship of the project, and the final ship to Stardance. I added most of the things people mentioned in review and a couple other things that will make development smoother in the future. I am planning on developing the full version of the game for another competition after stardance ends. Hopefully you guys had fun seeing this project evolve (ik i did :)) and follow my github or itch if you want to see how it goes!! Thank you!!", "repo": "https://github.com/a-fun-gi/contrast", "demo": "https://a-fun-gi.itch.io/contrast-demo"}, {"ship_num": 2, "ts": "2026-10-04T01:06:39Z", "hours": 24.0, "multiplier": 12.26, "payout": 291, "blessing": "neutral", "text": "Contrast Contrast is a monochrome metroidvania involving light, shadows, and getting lost in the dark built in Godot. The Idea I was once doodling in my journal and I made a cute little character that I liked. I was like, “hey I should put that into a video game!”. So I started to draw different iterations of it digitally, but one block I kept running into was that I wasn’t sure how to add color to it, because I always doodle in black and white. After thinking about that for quite a bit, I decided, “you know what? I don’t even need color, I’ll just make a completely monochrome game!” (not a real quote, but basically my train of thought). I eventually landed on a version that I drew in GIMP and animated using Skeleton2D in Godot. So at this point I had a character and… nothing else, but that was enough to build off of. The Development I knew I would be making the game in Godot from the start, because my computer would die if I tried running Unreal Engine, and I don’t know how to use Unity. After making the character I basically made the rest of the game as I went, adding bits of terrain, playing with shaders, and all of that fun stuff. What I learned Making this game felt very spiritual for me. I even started to have dreams set in the world of the game. And I learned SO MUCH. I feel like I was having to google something every other minute, but that’s okay because of the sheer amount of information I took in. Overall This was such an amazing journey and process, especially documenting my progress in Stardance. Whoever is reading this, thank you for rating my project!!!", "repo": "https://github.com/a-fun-gi/contrast", "demo": "https://a-fun-gi.itch.io/contrast-demo"}]...
|
[{"post_id": 80779, "ts": "202 [{"post_id": 80779, "ts": "2026-10-18T19:18:43Z", "hours": 2.5447, "text": "Devlog # 5: Hi, I’m back Hello everyone, back with another devlog!! I loved reading everyone’s feedback so thank you to whoever rated my project! In this iteration I was mainly fixing all of the bugs that the raters mentioned with a couple additions of my own. Bug Fixes: I removed the debug function that brings your health down when you press space. I realise that that’s probably super confusing for people so sorry for that. On that note I also updated the controls to be much more intuitive, most common configurations should work. The pause menu also works in the last level now. Improvements: I removed the LoopManager nodes and transferred all of their functionality to the GameManager, which is less confusing for me and hopefully others too. I also added a focus, which means you don’t have to use a mouse to click the buttons. Additions: There were a few requests for a tutorial, so I expanded the first level a little bit and added hints of what to do. There was also a suggestion to add an option menu, so I did. So far there is only volume and another thing there, but I will add more in the future. While I was making that, I decided to tackle saving, just to save the settings, but now that I have that framework lain it will be easier development later on. Other News I made a web playable version! Hopefully it works well. Also, to whoever did this review: It is a classical platformer story elements would make it more interesting but as you said it is a first demo, the addition of the light/inverted bar thingi makes it a bit more original but there is still a lot to add like lore. I would like to see future additions in story area especially ?horror?. … GIVE ME LOOOREE! :)… I hear your pleas for lore (loud and clear), but it appears that I have… writer’s block???!??! Basically I can’t think of anything, but my purpose of saying this is to let whoever’s reading this know that my DMs are very open and I NEED ideas!!!"}, {"post_id": 76572, "ts": "2026-10-04T00:37:49Z", "hours": 8.7278, "text": "Devlog # 4: Possibly the final devlog!! Wow, I apologized for the length of the last devlog, and here I am with a 7 hour one!! The time just keeps on ticking… A lot has changed since the last devlog so bear with me. Improvements: I’ve added a source button to the title screen that redirects to the Github . There is now a pause menu when you press escape that can quit to the main menu. I successfully made the “unstable zone”, so there is a bar at the top of the hud that moves back and forth depending on whether the player is inverted or not. The idea is that you have to balance between light and dark. If the bar gets to one end, you get damaged every one second. Additions: I added a death animation so death actually happens now instead of an error that says you can’t have negative health . I also added a portal to go between levels and a whole second level with gpu particle rain!! I also improved the GameManager’s level switching so it’s much more adaptive now. There is also now an end, as this is just a demo. Bug fixes: Most bugs I had to fix were from the new additions and didn’t exist in the previous version of the game. So idk In other news… I have the game published on itch.io !!!!! Pleasepleaseplease check it out and leave a nice comment if you are capable!! 🙏 expect a ship soon and i love all of you guys sosososo much thank you everyone for an amazing event ❤️ ❤️ ❤️"}, {"post_id": 70915, "ts": "2026-09-20T01:06:40Z", "hours": 5.0072, "text": "Devlog # 3: Visual fx galore Hello everyone! I apologize for doing such a long devlog, but those hours really slip by Without further ado: let’s jump into it Improvements: I’ve added a few more moving elements to the terrain, but I’ve been mostly focusing on gameplay instead of actual length at this point. I also made the title screen look better and the “quit” button actually quit. I made the life counter actually work , for now it only goes down when you fall off the edge of something. You reset to the last safe place you were standing. Additions: I was having fun playing with shaders and added a glitch effect to the character when you enter/exit an inverted zone I also added a ripple shader that has no purpose at the moment but it will don’t worry No bug fixes this time What’s Next: Next I am planning on using that ripple shader to make sort of a “unstable zone” where you have to balance between light and dark. Stardance is ending soon though so we’ll see how much is done when I ship peace"}, {"post_id": 63194, "ts": "2026-09-06T21:16:06Z", "hours": 4.1097, "text": "Devlog # 2: Terrain, shaders, and a really annoying bug Improvements: I made the terrain much more flexible by using seperate objects that I could just place wherever, instead of the tilemap, but that was really just for showing that the character worked. Also I made a moving element. Additions: I added a title screen, a life counter (not implemented yet, but it’s there ), and a shader that inverts colors. The shader will probably be involved in a gameplay thingy later, but for now, it’s just to look nice. Making the shader was really hard, actually even though it was really simple… Bug Fixes: Sooo I was going to post this devlog yesterday, but then I realised that my whole scene loading everything was horrible and some really weird things happened. SO I spent another hour and a half fixing it . HOWEVER I did also learn some valuable lessons, and made a GameManager, so I don’t think it was a complete waste What’s Next Next up will be making the title screen look more interesting, and I have some ideas for game mechanics and new characters that I will explore. Stay tuned! (or not )"}, {"post_id": 56889, "ts": "2026-08-28T21:37:23Z", "hours": 5.8878, "text": "Devlog # 1: Back With a New Project What’s up folks! I am back with another project, having shipped the vent alien. This is a monochrome metroidvania involving light, shadows, and getting lost in the dark . (Clearly still need to figure out some lore) However, I finished drawing, rigging, and animating the main character in this devlog. I also made some mediocre background graphics to show the character moving. What’s Next Mainly worldbuilding, which will take a while. I am also planning on making a neat banner for the project! stay tuned!!"}]...
|
Title: contrast by @a-fun-gi | Stardance
Devlogs: Title: contrast by @a-fun-gi | Stardance
Devlogs:
Devlog # 1: Back With a New Project What’s up folks! I am back with another project, having shipped the vent alien. This is a monochrome metroidvania involving light, shadows, and getting lost in the dark . (Clearly still need to figure out some lore) However, I finished drawing, rigging, and animating the main character in this devlog. I also made some mediocre background graphics to show the character moving. What’s Next Mainly worldbuilding, which will take a while. I am also planning on making a neat banner for the project! stay tuned!!
Devlog # 2: Terrain, shaders, and a really annoying bug Improvements: I made the terrain much more flexible by using seperate objects that I could just place wherever, instead of the tilemap, but that was really just for showing that the character worked. Also I made a moving element. Additions: I added a title screen, a life counter (not implemented yet, but it’s there ), and a shader that inverts colors. The shader will probably be involved in a gameplay thingy later, but for now, it’s just to look nice. Making the shader was really hard, actually even though it was really simple… Bug Fixes: Sooo I was going to post this devlog yesterday, but then I realised that my whole scene loading everything was horrible and some really weird things happened. SO I spent another hour and a half fixing it . HOWEVER I did also learn some valuable lessons, and made a GameManager, so I don’t think it was a complete waste What’s Next Next up will be making the title screen look more interesting, and I have some ideas for game mechanics and new characters that I will explore. Stay tuned! (or not )
Devlog # 3: Visual fx galore Hello everyone! I apologize for doing such a long devlog, but those hours really slip by Without further ado: let’s jump into it Improvements: I’ve added a few more moving elements to the terrain, but I’ve been mostly focusing on gameplay instead of actual length at this point. I also made the title screen look better and the “quit” button actually quit. I made the life counter actually work , for now it only goes down when you fall off the edge of something. You reset to the last safe place you were standing. Additions: I was having fun playing with shaders and added a glitch effect to the character when you enter/exit an inverted zone I also added a ripple shader that has no purpose at the moment but it will don’t worry No bug fixes this time What’s Next: Next I am planning on using that ripple shader to make sort of a “unstable zone” where you have to balance between light and dark. Stardance is ending soon though so we’ll see how much is done when I ship peace
Devlog # 4: Possibly the final devlog!! Wow, I apologized for the length of the last devlog, and here I am with a 7 hour one!! The time just keeps on ticking… A lot has changed since the last devlog so bear with me. Improvements: I’ve added a source button to the title screen that redirects to the Github . There is now a pause menu when you press escape that can quit to the main menu. I successfully made the “unstable zone”, so there is a bar at the top of the hud that moves back and forth depending on whether the player is inverted or not. The idea is that you have to balance between light and dark. If the bar gets to one end, you get damaged every one second. Additions: I added a death animation so death actually happens now instead of an error that says you can’t have negative health . I also added a portal to go between levels and a whole second level with gpu particle rain!! I also improved the GameManager’s level switching so it’s much more adaptive now. There is also now an end, as this is just a demo. Bug fixes: Most bugs I had to fix were from the new additions and didn’t exist in the previous version of the game. So idk In other news… I have the game published on itch.io !!!!! Pleasepleaseplease check it out and leave a nice comment if you are capable!! 🙏 expect a ship soon and i love all of you guys sosososo much thank you everyone for an amazing event ❤️ ❤️ ❤️
Devlog # 5: Hi, I’m back Hello everyone, back with another devlog!! I loved reading everyone’s feedback so thank you to whoever rated my project! In this iteration I was mainly fixing all of the bugs that the raters mentioned with a couple additions of my own. Bug Fixes: I removed the debug function that brings your health down when you press space. I realise that that’s probably super confusing for people so sorry for that. On that note I also updated the controls to be much more intuitive, most common configurations should work. The pause menu also works in the last level now. Improvements: I removed the LoopManager nodes and transferred all of their functionality to the GameManager, which is less confusing for me and hopefully others too. I also added a focus, which means you don’t have to use a mouse to click the buttons. Additions: There were a few requests for a tutorial, so I expanded the first level a little bit and added hints of what to do. There was also a suggestion to add an option menu, so I did. So far there is only volume and another thing there, but I will add more in the future. While I was making that, I decided to tackle saving, just to save the settings, but now that I have that framework lain it will be easier development later on. Other News I made a web playable version! Hopefully it works well. Also, to whoever did this review: It is a classical platformer story elements would make it more interesting but as you said it is a first demo, the addition of the light/inverted bar thingi makes it a bit more original but there is still a lot to add like lore. I would like to see future additions in story area especially ?horror?. … GIVE ME LOOOREE! :)… I hear your pleas for lore (loud and clear), but it appears that I have… writer’s block???!??! Basically I can’t think of anything, but my purpose of saying this is to let whoever’s reading this know that my DMs are very open and I NEED ideas!!!
Ships:
Contrast Contrast is a monochrome metroidvania involving light, shadows, and getting lost in the dark built in Godot. The Idea I was once doodling in my journal and I made a cute little character that I liked. I was like, “hey I should put that into a video game!”. So I started to draw different iterations of it digitally, but one block I kept running into was that I wasn’t sure how to add color to it, because I always doodle in black and white. After thinking about that for quite a bit, I decided, “you know what? I don’t even need color, I’ll just make a completely monochrome game!” (not a real quote, but basically my train of thought). I eventually landed on a version that I drew in GIMP and animated using Skeleton2D in Godot. So at this point I had a character and… nothing else, but that was enough to build off of. The Development I knew I would be making the game in Godot from the start, because my computer would die if I tried running Unreal Engine, and I don’t know how to use Unity. After making the character I basically made the rest of the game as I went, adding bits of terrain, playing with shaders, and all of that fun stuff. What I learned Making this game felt very spiritual for me. I even started to have dreams set in the world of the game. And I learned SO MUCH. I feel like I was having to google something every other minute, but that’s okay because of the sheer amount of information I took in. Overall This was such an amazing journey and process, especially documenting my progress in Stardance. Whoever is reading this, thank you for rating my project!!!
This is the second ship of the project, and the final ship to Stardance. I added most of the things people mentioned in review and a couple other things that will make development smoother in the future. I am planning on developing the full version of the game for another competition after stardance ends. Hopefully you guys had fun seeing this project evolve (ik i did :)) and follow my github or itch if you want to see how it goes!! Thank you!!...
|
1793008112.6112535
|
1793094512.6112535
|
|
68261
|
ai smart mirror by @mayaO | Stardance
|
mayaO
|
0
|
0.43
|
0
|
[]
|
[{"post_id": 80780, "ts": "202 [{"post_id": 80780, "ts": "2026-10-18T19:20:07Z", "hours": 0.4333, "text": "removing the casing of my moniter screen - so stressful"}]...
|
Title: ai smart mirror by @mayaO | Stardance
Devl Title: ai smart mirror by @mayaO | Stardance
Devlogs:
removing the casing of my moniter screen - so stressful...
|
1793119877.742453
|
1793724677.742453
|
|
46223
|
MALLOW - REV2 by @mallow_dev | Stardance
|
mallow_dev
|
1
|
54.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-19T22:42:11Z", "hours": 54.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "hello everyone! it’s finally time to ship! i made a handheld gaming device inspired by Nintendo’s Game Boy that runs off of custom cartridges made by YOU! my goals were to make it affordable, run custom games, and learn a lot in the process, and i’d say i met all of them! the most challenging part of this project was definitely the programming, though i learned a lot in the process of doing so: it’s important to read documentation, even though it’s boring. i dont care whether it’s hardware or software, you gotta do it. SPI lines are sick! it’s just a bunch of timing with 1s and 0s. what ground planes are, as well as stitching vias. advanced C syntax (did you know structs can hold functions? neither did i)", "repo": "https://github.com/twentyfivefishinthetoilet/mallow", "demo": ""}]...
|
[{"post_id": 80781, "ts": "202 [{"post_id": 80781, "ts": "2026-10-18T19:34:11Z", "hours": 5.7589, "text": "final update before shipping mallow has finally been assembled and tested, and everything i programmed it to do is working fine. it can run different cartridges, all the buttons work fine, and the POWER PAK on the back works… decently. look, it’s not the prettiest, but it gets the job done. im gonna upload everything to github shortly, throw together a demonstration video, and then i should be ready to ship!"}, {"post_id": 80025, "ts": "2026-10-16T00:26:26Z", "hours": 5.5167, "text": "chassis for mallow + POWER PAK (power supply) the chassis took a bit more than the 5:30 i logged, but i would rather tank some hours than keep turning on lapse every few runs to the 3d printer. back to the model: all of these parts can be disassembled: the controller, the motherboard, and game cartridge. the POWER PAK snaps onto the back. (chose the name POWER PAK because it sounds like something out of the 80s) all i need are the electronics (that should ship soon ) then i can ship"}, {"post_id": 77975, "ts": "2026-10-09T02:46:11Z", "hours": 4.7514, "text": "revision 2.3 update well, i mean, it works! the video shows it running a game cartridge, the second image shows it recognizing that there’s no cartridge in the slot (i threw that screen together in krita in under a minute). seems like everything is working great until you look at the mess of tape and jumpers on the back. for some reason, the screen wasnt receiving power, and to this day, i still dont know why. the only way i was able to get it to work was by soldering a wire from the voltage regulator output to the screen’s LED_A (anode) pin and the general power pin. in the new, and TRULY final circuit board, i tried to make thicker wires. who knows, maybe it was a manufacturing issue, maybe it was some math i dont understand. whatever it was, i hope it works. if it doesnt, i added bare pads for be to easily connect a jumper wire again. i also added an fpc slot for the touch controls cable too. in the meantime, im going to finish up the programming and prototype a basic game for it in raylib. thanks for reading"}, {"post_id": 64568, "ts": "2026-09-09T02:29:57Z", "hours": 1.2956, "text": "while i wait for my circuit boards, im stuck programming and designing the shell for mallow. this is gonna be a short update because it’s not much of an update at all, rather a todo list. the first screenshot: my todo list the x means it’s done already, the - means it’s halfway done, and nothing at all means that i have yet to start that. in short, i have to complete some draw functions, lua(?), flash memory, and the sd card (all in the respective order of easy to hard ) the second screenshot: ifdefs i got inspiration from the TFT_eSPI UserSetup.h file where you uncomment the settings you want. in this case, im just gonna swap back and forth. ifdef just checks if the macro is defined, so BREADBOARD or PCB doesnt hold a value. the third screenshot: new way of handling flash i connected the CS pins to an mcp23017 since CS is just high or low values. little did i know, this would make using spi lines harder than it already is flash is easy: set the mcp pin to output, add helper functions to drive the CS pin high or low, call it before every spi transaction. sd cards on the other hand are along the same line now that i think about it. i just say it’s a pain because i need to do exactly what i did for the flash memory again, except for sd card commands. time to read through more documentation other: + i think i mentioned this somewhere in my code, but it wouldnt be a shame if the sd card slot doesnt work. i just need it to read from flash memory. i can always flash the game cartridges on my breadboard system. + i used carbon for my fancy code screenshots ( https://carbon.now.sh )"}, {"post_id": 61910, "ts": "2026-09-05T02:37:06Z", "hours": 6.4267, "text": "the final circuit board … for revision 2 CHANGES: + micro sd card wiring + new screen! instead of using the i80 parallel bus, im using a screen in spi mode. there’s two fpc connectors: one for the screen, one for touch controls + controller layout and wiring + new game cartridge OTHER: + i made a shell for mallow to show an example of how i want the project to look fully assembled. + PCB ART!!!!!! check the slack art channel if you wanna see it + while i wait for these circuit boards to come in, im going to rewrite my program to suit the pcb wiring rather than the breadboard wiring. + i really hope this screen works, because if it doesnt, i dont have a backup plan + my mallow neocities website is under construction. i forgot i had that on my circuit board."}, {"post_id": 55290, "ts": "2026-08-27T00:55:20Z", "hours": 5.3547, "text": "the debug board was… a flop let’s get the bad out of the way first: the screen won’t work and the wires heat up. i don’t know why, i followed the pinout and checked for shorts on the circuit board. only the backlight goes on. i think i might try another raw screen, but plan for another failure and have a slot for a pre-built module. no audio. i followed the schematic of a pre-built module and, when testing, i couldn’t figure out why audio wouldn’t come out of the speaker. there are no shorts on the amp, all the pins i used to wire it up are valid. maybe it’s a programming issue, or everything i just listed into one. all i know is that i might use another pre-built module for the sake of shipping my project in time. the final version will have an embedded screen and amp, im just starting to get on a strict time frame with only a month left of this challenge. okay, those are the failures. im happy to announce that the buttons and gpio expander work fine! i didn’t test out the flash memory yet, as well as the micro sd card slot. a few issues with the pin configuration for the controller (image 4), but so far it’s working good. in short: im going to shoot my shot with another raw screen, but if that doesn’t work, im using a pre-built module, as well as the same for the amp. we’ll see if the micro sd card works tomorrow when i get the slot in, as well as flash. im almost finished with the breadboard mallow configuration, it’s just the pcb that’s driving me nuts. ps: the esp32 s3 module on the main board is a temp solution. im getting another s3 wroom 1u, the one without the antenna. as always, thanks for reading. i hope to come back with good news next devlog"}, {"post_id": 54137, "ts": "2026-08-24T23:26:47Z", "hours": 3.7481, "text": "a little bit of this, a little bit of that: yet another programming update (except i locked in today) today was a long day. after almost 4 hours, i finally got images working. a quick way to describe what i did was making a little file system to work with. i also quickly added a few lines of code that checks if a flash_update.txt file exists before flashing the program. if it doesn’t, it’ll just read from the cartridge. this is so it doesn’t wear out the flash chip and so i dont have to wait 3 minutes for it to load. hopefully by the next time i upload another devlog, i’ll have audio and images working better. right now, i need to go into the esp-idf code and tell the code what files to flash (instead of it flashing everything inside of the images directory automatically). loading audio into flash memory will probably be interesting, i never even thought about it before. i attached a video of carbuncle from puyo puyo dancing. the raw binary files of the frames are on my github if, for some odd reason, anyone wants them."}, {"post_id": 53518, "ts": "2026-08-24T03:10:46Z", "hours": 5.3236, "text": "programming update (8/23/26): added a workflow closer to mallow revision 1.4’s i added an sd card slot to the flash spi line for uploading lua files easier. before, it was just a small const char* script = \"print(\\\"hi\\\")\"; expression. it works, but it gets messy for long scripts. now, a main.lua file can be stored on the sd card and flashed to memory with ease. rant about the sd card and sending lua files to flash one thing that’s cool about the sd card system is that once it’s mounted, you can use plain old fopen expressions like you would on a computer. to load the lua file onto flash memory, i used fseek to get the length of the file. i then used that length to malloc that file size + 1 byte for the string null terminator. then it sends the fseek pointer back to the start of the file, iterates through each character, and loads that into a buffer. the buffer is sent to flash with my flash_write_script function from last time (just check my github page. you’ll see it at programs/08_23_26.) something that is worth mentioning that i forgot about is that multiple devices can have the same spi line, just different CS pins. there’s 3 hosts for the esp32 s3: SPI1_HOST for internal ram and SPI2/SPI3_HOST for external devices. another thing i love about this sd card is that i can just easily edit the main.lua file on the sd card and pop it back into the card slot. it’s way easier than reflashing the esp32 s3 just to get a new rectangle on the screen. tomorrow im gonna work on trying to make a makeshift file system for loading up image files into flash and displaying them on screen via lua."}, {"post_id": 50690, "ts": "2026-08-20T00:30:34Z", "hours": 3.7864, "text": "programming update: implemented most of the flash memory into my program, as well as some (SOME) lua. flash memory took the longest. reading through documentation is boring but informative. i got a better understanding of how SPI works, and if not that, how the chip itself works. they have these diagrams of the MISO, MOSI, CS, and SCK lines which shows how data gets transferred. i attached a picture of one of those diagrams below. regarding lua: it didn’t take that long because i’ve experimented with it before in mallow revision 1.4. lua is interesting since, using the lua VM in C at least, it’s stack-based, using pop and push functions. it reminds me of the time i tried learning assembly. i need to try to push an actual file so i dont need to write down files like this… // i'll probably need to store the length of the script somewhere. // a script struct is probably going to be used for organization const char *script = \"local counter = 0\\n\" \"function update() end\\n\" \"function render()\\n\" \"if counter >= 0.5 then\\n\" \"draw_rect_filled(5, 5, 310, 230, 0xf81f)\\n\" \"display_fb()\\n\" \"counter = 0\\n\" \"end\\n\" \"counter = counter + delta_time\\n\" \"end\\n\"; …it works for now, but it’s gonna get messy if i were to push an actual game file. i need to also figure out how to push image data to flash. here’s an example of popping stuff in lua (from my program on 8/19/26: // get and call update lua_getglobal(L, \"update\"); if (lua_isfunction(L, -1)){ if (lua_pcall(L, 0, 0, 0) != LUA_OK){ printf(\"ERR CALLING UPDATE: %s\\n\", lua_tostring(L, -1)); lua_pop(L, 1); } } else { lua_pop(L, 1); } when you get the function, it pushes it to the top of the stack. then it checks if what you got was a function, as well as actually calling the code inside the function. if something goes wrong, it print’s the error. either way, it pops the function from the stack since we dont need it any more for that while loop cycle. this is the same process for render . if anyone actually decided to read through all of this, tell me about your own project. idk if im yapping into the void or not. i cant wait for my pcbs to come in, programming gets boring sometimes 🥹"}, {"post_id": 47262, "ts": "2026-08-15T02:28:37Z", "hours": 3.7411, "text": "over the span of today and some of yesterday, i designed the rest of mallow revision 2.2 and a controller for it. this board is haphazardly laid out, these aren’t the final component placements. on the back of the main board (image 2), there’s pads that i can solder to for debugging. let’s say i wired something up to the wrong pin in the schematics. i can just cut the trace and solder a wire from point A to point B to make up for that mistake. i probably could have just used a bunch of 0ohm resistors for this instead of cutting the trace, but idk cutting traces is more fun. the controller port is really just a 2.54mm 2x10 pin female header that the male header pins connect into. i couldn’t find the footprint for what i was looking for, so i just laid out through holes, making my own footprint essentially. long story short, this is just a debugging board and a test run"}, {"post_id": 46018, "ts": "2026-08-12T22:03:33Z", "hours": 5.94, "text": "there’s gonna be two parts of this devlog: the hardware and software. regarding the software, i just ran the draw_rect_filled function from my draw_functions.h header that i worked on yesterday and alternated the colors (see the gif) hardware is where everything started to fall apart. the good news is that the esp32 s3 works fine: no shorts, no errors when plugging it in. the main issues are the screen and the speaker. the screen is a cheap one i got off of aliexpress. it had an unusual pinout, or at least not the standard miso, mosi, etc that im used to. for anyone curious, it’s an i80 parallel spi interface. the pinout can be found here for the audio module, i already know that’s not gonna work. it was only during my debugging session last night that i realized this: GPIO37 is reserved for PSRAM, and i connected my audio module to pins GPIO35-39. what this means for future revisions: revision 2.2 is going to be a debugging board. there’s going to be a through hole for every component’s pins so i can cut traces and wire to another gpio/pin if i wanted to. that’s what i did with mallow rev 1.4. im going to start mallow revision 2.2 tonight! edit: the gif didnt work, just take my word for it 😭"}, {"post_id": 44883, "ts": "2026-08-10T22:31:34Z", "hours": 2.2317, "text": "DEVLOG 1: programming day 1 today i crossed off a little from my roadmap today: // TODO: // FLASH MEMORY [] - https://www.pjrc.com/teensy/W25Q128FV.pdf // ESP_LCD [x] // DRAW FUNCTIONS/VISUALS [-] // LUA INTEGRATION [] // BUTTONS [x] this is at the top of every main.c file i have on my github page. you can find today’s work here on my github page. some things i learned today: how to make header files. this one was actually kind of fun. i liked writing the descriptions for the functions and seeing them show up when i hover over the function in vscode. it’s a good way of organizing different functions. i was originally going to use a struct or something to hold all of the functions, like how a class would, but header files seemed like the better choice. how to use pointers. not fun at all, but it had to be done. learned from this video the most: https://www.youtube.com/watch?v=2ybLD6_2gKM&t=438s . i used that for my get_button_press function those are the major things i learned. tomorrow i plan on using littlefs for the flash memory so i don’t need to set raw memory addresses and break stuff. i wrote this kind of program before, so that’s why i was able to do this on the faster side. tomorrow will probably be a much slower day since im learning something completely new (littlefs). i really hope stardance allows me to timelapse my drawing process, that would be an easy day off…….👀 the first image shows my wiring, the second shows the program actually running. i dont know why i chose that gross color, let’s just pretend i did yellow for a star for stardance"}]...
|
Title: MALLOW - REV2 by @mallow_dev | Stardance
D Title: MALLOW - REV2 by @mallow_dev | Stardance
Devlogs:
DEVLOG 1: programming day 1 today i crossed off a little from my roadmap today: // TODO: // FLASH MEMORY [] - https://www.pjrc.com/teensy/W25Q128FV.pdf // ESP_LCD [x] // DRAW FUNCTIONS/VISUALS [-] // LUA INTEGRATION [] // BUTTONS [x] this is at the top of every main.c file i have on my github page. you can find today’s work here on my github page. some things i learned today: how to make header files. this one was actually kind of fun. i liked writing the descriptions for the functions and seeing them show up when i hover over the function in vscode. it’s a good way of organizing different functions. i was originally going to use a struct or something to hold all of the functions, like how a class would, but header files seemed like the better choice. how to use pointers. not fun at all, but it had to be done. learned from this video the most: https://www.youtube.com/watch?v=2ybLD6_2gKM&t=438s . i used that for my get_button_press function those are the major things i learned. tomorrow i plan on using littlefs for the flash memory so i don’t need to set raw memory addresses and break stuff. i wrote this kind of program before, so that’s why i was able to do this on the faster side. tomorrow will probably be a much slower day since im learning something completely new (littlefs). i really hope stardance allows me to timelapse my drawing process, that would be an easy day off…….👀 the first image shows my wiring, the second shows the program actually running. i dont know why i chose that gross color, let’s just pretend i did yellow for a star for stardance
there’s gonna be two parts of this devlog: the hardware and software. regarding the software, i just ran the draw_rect_filled function from my draw_functions.h header that i worked on yesterday and alternated the colors (see the gif) hardware is where everything started to fall apart. the good news is that the esp32 s3 works fine: no shorts, no errors when plugging it in. the main issues are the screen and the speaker. the screen is a cheap one i got off of aliexpress. it had an unusual pinout, or at least not the standard miso, mosi, etc that im used to. for anyone curious, it’s an i80 parallel spi interface. the pinout can be found here for the audio module, i already know that’s not gonna work. it was only during my debugging session last night that i realized this: GPIO37 is reserved for PSRAM, and i connected my audio module to pins GPIO35-39. what this means for future revisions: revision 2.2 is going to be a debugging board. there’s going to be a through hole for every component’s pins so i can cut traces and wire to another gpio/pin if i wanted to. that’s what i did with mallow rev 1.4. im going to start mallow revision 2.2 tonight! edit: the gif didnt work, just take my word for it 😭
over the span of today and some of yesterday, i designed the rest of mallow revision 2.2 and a controller for it. this board is haphazardly laid out, these aren’t the final component placements. on the back of the main board (image 2), there’s pads that i can solder to for debugging. let’s say i wired something up to the wrong pin in the schematics. i can just cut the trace and solder a wire from point A to point B to make up for that mistake. i probably could have just used a bunch of 0ohm resistors for this instead of cutting the trace, but idk cutting traces is more fun. the controller port is really just a 2.54mm 2x10 pin female header that the male header pins connect into. i couldn’t find the footprint for what i was looking for, so i just laid out through holes, making my own footprint essentially. long story short, this is just a debugging board and a test run
programming update: implemented most of the flash memory into my program, as well as some (SOME) lua. flash memory took the longest. reading through documentation is boring but informative. i got a better understanding of how SPI works, and if not that, how the chip itself works. they have these diagrams of the MISO, MOSI, CS, and SCK lines which shows how data gets transferred. i attached a picture of one of those diagrams below. regarding lua: it didn’t take that long because i’ve experimented with it before in mallow revision 1.4. lua is interesting since, using the lua VM in C at least, it’s stack-based, using pop and push functions. it reminds me of the time i tried learning assembly. i need to try to push an actual file so i dont need to write down files like this… // i'll probably need to store the length of the script somewhere. // a script struct is probably going to be used for organization const char *script = "local counter = 0\n" "function update() end\n" "function render()\n" "if counter >= 0.5 then\n" "draw_rect_filled(5, 5, 310, 230, 0xf81f)\n" "display_fb()\n" "counter = 0\n" "end\n" "counter = counter + delta_time\n" "end\n"; …it works for now, but it’s gonna get messy if i were to push an actual game file. i need to also figure out how to push image data to flash. here’s an example of popping stuff in lua (from my program on 8/19/26: // get and call update lua_getglobal(L, "update"); if (lua_isfunction(L, -1)){ if (lua_pcall(L, 0, 0, 0) != LUA_OK){ printf("ERR CALLING UPDATE: %s\n", lua_tostring(L, -1)); lua_pop(L, 1); } } else { lua_pop(L, 1); } when you get the function, it pushes it to the top of the stack. then it checks if what you got was a function, as well as actually calling the code inside the function. if something goes wrong, it print’s the error. either way, it pops the function from the stack since we dont need it any more for that while loop cycle. this is the same process for render . if anyone actually decided to read through all of this, tell me about your own project. idk if im yapping into the void or not. i cant wait for my pcbs to come in, programming gets boring sometimes 🥹
programming update (8/23/26): added a workflow closer to mallow revision 1.4’s i added an sd card slot to the flash spi line for uploading lua files easier. before, it was just a small const char* script = "print(\"hi\")"; expression. it works, but it gets messy for long scripts. now, a main.lua file can be stored on the sd card and flashed to memory with ease. rant about the sd card and sending lua files to flash one thing that’s cool about the sd card system is that once it’s mounted, you can use plain old fopen expressions like you would on a computer. to load the lua file onto flash memory, i used fseek to get the length of the file. i then used that length to malloc that file size + 1 byte for the string null terminator. then it sends the fseek pointer back to the start of the file, iterates through each character, and loads that into a buffer. the buffer is sent to flash with my flash_write_script function from last time (just check my github page. you’ll see it at programs/08_23_26.) something that is worth mentioning that i forgot about is that multiple devices can have the same spi line, just different CS pins. there’s 3 hosts for the esp32 s3: SPI1_HOST for internal ram and SPI2/SPI3_HOST for external devices. another thing i love about this sd card is that i can just easily edit the main.lua file on the sd card and pop it back into the card slot. it’s way easier than reflashing the esp32 s3 just to get a new rectangle on the screen. tomorrow im gonna work on trying to make a makeshift file system for loading up image files into flash and displaying them on screen via lua.
a little bit of this, a little bit of that: yet another programming update (except i locked in today) today was a long day. after almost 4 hours, i finally got images working. a quick way to describe what i did was making a little file system to work with. i also quickly added a few lines of code that checks if a flash_update.txt file exists before flashing the program. if it doesn’t, it’ll just read from the cartridge. this is so it doesn’t wear out the flash chip and so i dont have to wait 3 minutes for it to load. hopefully by the next time i upload another devlog, i’ll have audio and images working better. right now, i need to go into the esp-idf code and tell the code what files to flash (instead of it flashing everything inside of the images directory automatically). loading audio into flash memory will probably be interesting, i never even thought about it before. i attached a video of carbuncle from puyo puyo dancing. the raw binary files of the frames are on my github if, for some odd reason, anyone wants them.
the debug board was… a flop let’s get the bad out of the way first: the screen won’t work and the wires heat up. i don’t know why, i followed the pinout and checked for shorts on the circuit board. only the backlight goes on. i think i might try another raw screen, but plan for another failure and have a slot for a pre-built module. no audio. i followed the schematic of a pre-built module and, when testing, i couldn’t figure out why audio wouldn’t come out of the speaker. there are no shorts on the amp, all the pins i used to wire it up are valid. maybe it’s a programming issue, or everything i just listed into one. all i know is that i might use another pre-built module for the sake of shipping my project in time. the final version will have an embedded screen and amp, im just starting to get on a strict time frame with only a month left of this challenge. okay, those are the failures. im happy to announce that the buttons and gpio expander work fine! i didn’t test out the flash memory yet, as well as the micro sd card slot. a few issues with the pin configuration for the controller (image 4), but so far it’s working good. in short: im going to shoot my shot with another raw screen, but if that doesn’t work, im using a pre-built module, as well as the same for the amp. we’ll see if the micro sd card works tomorrow when i get the slot in, as well as flash. im almost finished with the breadboard mallow configuration, it’s just the pcb that’s driving me nuts. ps: the esp32 s3 module on the main board is a temp solution. im getting another s3 wroom 1u, the one without the antenna. as always, thanks for reading. i hope to come back with good news next devlog
the final circuit board … for revision 2 CHANGES: + micro sd card wiring + new screen! instead of using the i80 parallel bus, im using a screen in spi mode. there’s two fpc connectors: one for the screen, one for touch controls + controller layout and wiring + new game cartridge OTHER: + i made a shell for mallow to show an example of how i want the project to look fully assembled. + PCB ART!!!!!! check the slack art channel if you wanna see it + while i wait for these circuit boards to come in, im going to rewrite my program to suit the pcb wiring rather than the breadboard wiring. + i really hope this screen works, because if it doesnt, i dont have a backup plan + my mallow neocities website is under construction. i forgot i had that on my circuit board.
while i wait for my circuit boards, im stuck programming and designing the shell for mallow. this is gonna be a short update because it’s not much of an update at all, rather a todo list. the first screenshot: my todo list the x means it’s done already, the - means it’s halfway done, and nothing at all means that i have yet to start that. in short, i have to complete some draw functions, lua(?), flash memory, and the sd card (all in the respective order of easy to hard ) the second screenshot: ifdefs i got inspiration from the TFT_eSPI UserSetup.h file where you uncomment the settings you want. in this case, im just gonna swap back and forth. ifdef just checks if the macro is defined, so BREADBOARD or PCB doesnt hold a value. the third screenshot: new way of handling flash i connected the CS pins to an mcp23017 since CS is just high or low values. little did i know, this would make using spi lines harder than it already is flash is easy: set the mcp pin to output, add helper functions to drive the CS pin high or low, call it before every spi transaction. sd cards on the other hand are along the same line now that i think about it. i just say it’s a pain because i need to do exactly what i did for the flash memory again, except for sd card commands. time to read through more documentation other: + i think i mentioned this somewhere in my code, but it wouldnt be a shame if the sd card slot doesnt work. i just need it to read from flash memory. i can always flash the game cartridges on my breadboard system. + i used carbon for my fancy code screenshots ( https://carbon.now.sh )
revision 2.3 update well, i mean, it works! the video shows it running a game cartridge, the second image shows it recognizing that there’s no cartridge in the slot (i threw that screen together in krita in under a minute). seems like everything is working great until you look at the mess of tape and jumpers on the back. for some reason, the screen wasnt receiving power, and to this day, i still dont know why. the only way i was able to get it to work was by soldering a wire from the voltage regulator output to the screen’s LED_A (anode) pin and the general power pin. in the new, and TRULY final circuit board, i tried to make thicker wires. who knows, maybe it was a manufacturing issue, maybe it was some math i dont understand. whatever it was, i hope it works. if it doesnt, i added bare pads for be to easily connect a jumper wire again. i also added an fpc slot for the touch controls cable too. in the meantime, im going to finish up the programming and prototype a basic game for it in raylib. thanks for reading
chassis for mallow + POWER PAK (power supply) the chassis took a bit more than the 5:30 i logged, but i would rather tank some hours than keep turning on lapse every few runs to the 3d printer. back to the model: all of these parts can be disassembled: the controller, the motherboard, and game cartridge. the POWER PAK snaps onto the back. (chose the name POWER PAK because it sounds like something out of the 80s) all i need are the electronics (that should ship soon ) then i can ship
final update before shipping mallow has finally been assembled and tested, and everything i programmed it to do is working fine. it can run different cartridges, all the buttons work fine, and the POWER PAK on the back works… decently. look, it’s not the prettiest, but it gets the job done. im gonna upload everything to github shortly, throw together a demonstration video, and then i should be ready to ship!
Ships:
hello everyone! it’s finally time to ship! i made a handheld gaming device inspired by Nintendo’s Game Boy that runs off of custom cartridges made by YOU! my goals were to make it affordable, run custom games, and learn a lot in the process, and i’d say i met all of them! the most challenging part of this project was definitely the programming, though i learned a lot in the process of doing so: it’s important to read documentation, even though it’s boring. i dont care whether it’s hardware or software, you gotta do it. SPI lines are sick! it’s just a bunch of timing with 1s and 0s. what ground planes are, as well as stitching vias. advanced C syntax (did you know structs can hold functions? neither did i)...
|
1793047992.0723903
|
1793134392.0723903
|
|
37327
|
HackClub OS by @Faiz | Stardance
|
Faiz
|
1
|
2.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-18T19:48:35Z", "hours": 2.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a HACKLUB themed OS!! It includes cool little easter eggs and icons that resemble hackclub, and I even added a little orpheus that follows your pointer :) Check it out!!", "repo": "https://github.com/FaizKhanv7/HackClubOS", "demo": "https://hackclubos.netlify.app"}]...
|
[{"post_id": 80786, "ts": "202 [{"post_id": 80786, "ts": "2026-10-18T19:47:26Z", "hours": 0.4186, "text": "Added a little orpheus that follows your pointer! This is the third iteration of the HackClub themed OS, I added little white indicator dots beneath the apps to show which ones are active, and I also added an orpheus that follows your pointer!! All pretty small changes but looks really polished now."}, {"post_id": 80766, "ts": "2026-10-18T18:47:08Z", "hours": 0.2564, "text": "Updated Styles + Added Icons I’ve been working on an OS that is hackclub themed! I just added some styling and icons to make everything look more polished. I will probably add a few cool/unique features next because right now its kinda bland."}, {"post_id": 72939, "ts": "2026-09-24T02:32:48Z", "hours": 1.0053, "text": "Here is the first version of HackClubOS!! Just finished the guide, everything looks kind of basic right now, I will spend the rest of my time polishing it and adding cool features! Hopefully hackclub will like it lol :)"}]...
|
Title: HackClub OS by @Faiz | Stardance
Devlogs:
Title: HackClub OS by @Faiz | Stardance
Devlogs:
Here is the first version of HackClubOS!! Just finished the guide, everything looks kind of basic right now, I will spend the rest of my time polishing it and adding cool features! Hopefully hackclub will like it lol :)
Updated Styles + Added Icons I’ve been working on an OS that is hackclub themed! I just added some styling and icons to make everything look more polished. I will probably add a few cool/unique features next because right now its kinda bland.
Added a little orpheus that follows your pointer! This is the third iteration of the HackClub themed OS, I added little white indicator dots beneath the apps to show which ones are active, and I also added an orpheus that follows your pointer!! All pretty small changes but looks really polished now.
Ships:
I made a HACKLUB themed OS!! It includes cool little easter eggs and icons that resemble hackclub, and I even added a little orpheus that follows your pointer :) Check it out!!...
|
1793051334.9929845
|
1793137734.9929845
|
|
69834
|
Productivity-Tracker by @bananayt294 | Stardance
|
bananayt294
|
1
|
4.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-18T19:57:27Z", "hours": 4.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a new chrome tab page that is Deployed And has a Database,it is a minimalistic page as i dont like my chrome page to cluttered up and use too many resources. The hardest Part was adding the database functionality for everything. To use the project visit the demo link shared.", "repo": "https://github.com/Bananayt294/Tab-Page", "demo": "https://tabpage.vercel.app/"}]...
|
[{"post_id": 80789, "ts": "202 [{"post_id": 80789, "ts": "2026-10-18T19:52:15Z", "hours": 1.5292, "text": "Added a Delete And Search Bar Functionality"}, {"post_id": 79984, "ts": "2026-10-15T18:58:34Z", "hours": 0.8156, "text": "Working on Connecting A supbase Database. This is my second devlog and i am making a chrome tab page. I am currently trying to connect this to a database and implement get and post request."}, {"post_id": 79868, "ts": "2026-10-15T17:48:35Z", "hours": 1.1725, "text": "I just Configured and Set up Everything to begin my Project for the Tab Page that i am making i plan to make it like a productivity Tracker that keeps track of everything you have done and have left to do using todolist,cards,TimeTable and etc And have a very basic Website going."}]...
|
Title: Productivity-Tracker by @bananayt294 | Star Title: Productivity-Tracker by @bananayt294 | Stardance
Devlogs:
I just Configured and Set up Everything to begin my Project for the Tab Page that i am making i plan to make it like a productivity Tracker that keeps track of everything you have done and have left to do using todolist,cards,TimeTable and etc And have a very basic Website going.
Working on Connecting A supbase Database. This is my second devlog and i am making a chrome tab page. I am currently trying to connect this to a database and implement get and post request.
Added a Delete And Search Bar Functionality
Ships:
I made a new chrome tab page that is Deployed And has a Database,it is a minimalistic page as i dont like my chrome page to cluttered up and use too many resources. The hardest Part was adding the database functionality for everything. To use the project visit the demo link shared....
|
1793008362.1156578
|
1793094762.1156578
|
|
69555
|
Hackpad by @makeme44 | Stardance
|
makeme44
|
0
|
12.9
|
0
|
[]
|
[{"post_id": 80794, "ts": "202 [{"post_id": 80794, "ts": "2026-10-18T20:08:07Z", "hours": 1.2661, "text": "some git hub preping"}, {"post_id": 80484, "ts": "2026-10-17T20:22:33Z", "hours": 1.8975, "text": "added some final tuches to my cad and started uploading it to git hub next is adding some pictures to the pcb and uploading it to then writing a read me and im done"}, {"post_id": 80439, "ts": "2026-10-17T16:56:44Z", "hours": 0.4508, "text": "made the knob"}, {"post_id": 80423, "ts": "2026-10-17T16:24:26Z", "hours": 4.0458, "text": "started making the cad just the knob left"}, {"post_id": 80348, "ts": "2026-10-17T10:51:58Z", "hours": 1.0675, "text": "made the PCB feels great the microcontroler position is a lil goofy"}, {"post_id": 80072, "ts": "2026-10-16T04:58:07Z", "hours": 3.0317, "text": "I made an actual pcb sadly o forgit to screenshot it so here is my new schematic i chalieplexed switches"}, {"post_id": 79420, "ts": "2026-10-13T21:51:34Z", "hours": 1.1414, "text": "i made the pcb i have no idea what im doing"}]...
|
Title: Hackpad by @makeme44 | Stardance
Devlogs:
Title: Hackpad by @makeme44 | Stardance
Devlogs:
i made the pcb i have no idea what im doing
I made an actual pcb sadly o forgit to screenshot it so here is my new schematic i chalieplexed switches
made the PCB feels great the microcontroler position is a lil goofy
started making the cad just the knob left
made the knob
added some final tuches to my cad and started uploading it to git hub next is adding some pictures to the pcb and uploading it to then writing a read me and im done
some git hub preping...
|
1792857117.7542348
|
1793461917.7542348
|
|
66445
|
The Trolley Problem by @j4y_boi | Stardance
|
j4y_boi
|
0
|
9.58
|
0
|
[]
|
[{"post_id": 80795, "ts": "202 [{"post_id": 80795, "ts": "2026-10-18T20:14:39Z", "hours": 1.6417, "text": "Working on game mechanics, also found out that you can actually generate meshes with CSG 3D objects. I don’t even need to learn Blender for this project at this rate! (Though, it would be nice to learn) The GUI looks pretty horrendous at the moment, but it’s still a WIP."}, {"post_id": 80002, "ts": "2026-10-15T21:14:34Z", "hours": 1.8017, "text": "Changes: Added a dummy save file screen started work on a dialog system started work on first 3D level you can now skip the opening logo’s implemented save management system Gameplay won’t be finished for a bit, I got a rough concept and storyline plotted out, but only time will tell how much will actually be implemented."}, {"post_id": 76725, "ts": "2026-10-04T12:50:47Z", "hours": 1.5519, "text": "web demo is up and running, starting work on gameplay now"}, {"post_id": 76555, "ts": "2026-10-03T22:38:13Z", "hours": 3.0181, "text": "main menu work, also currently trying to get a demo up"}, {"post_id": 76060, "ts": "2026-10-02T07:14:07Z", "hours": 1.5639, "text": "Made a Godot project, also started making the main menu theme first for some reason"}]...
|
Title: The Trolley Problem by @j4y_boi | Stardance Title: The Trolley Problem by @j4y_boi | Stardance
Devlogs:
Made a Godot project, also started making the main menu theme first for some reason
main menu work, also currently trying to get a demo up
web demo is up and running, starting work on gameplay now
Changes: Added a dummy save file screen started work on a dialog system started work on first 3D level you can now skip the opening logo’s implemented save management system Gameplay won’t be finished for a bit, I got a rough concept and storyline plotted out, but only time will tell how much will actually be implemented.
Working on game mechanics, also found out that you can actually generate meshes with CSG 3D objects. I don’t even need to learn Blender for this project at this rate! (Though, it would be nice to learn) The GUI looks pretty horrendous at the moment, but it’s still a WIP....
|
1793098378.8749132
|
1793703178.8749132
|
|
41782
|
BIOSnake by @Duck | Stardance
|
Duck
|
1
|
32.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-19T23:24:25Z", "hours": 32.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "This is snake written in x86 assembly, running directly on the CPU with BIOS interrupt calls without an operating system, in under 3KB. It also includes comfort features like input buffering and thin snake drawing. It was challenging to get started programming in assembly, but once you get used to it it becomes a lot easier.", "repo": "https://github.com/duckdood/biosnake", "demo": "https://duckdood.github.io/asm_snake"}]...
|
[{"post_id": 80796, "ts": "202 [{"post_id": 80796, "ts": "2026-10-18T20:18:04Z", "hours": 0.6553, "text": "Palettes Devlog #8 Firstly I made the initial seed for for apple to be based on the current time (so it’s randomized every time you boot it up), and I added some color palettes that you can switch between with the E key."}, {"post_id": 69115, "ts": "2026-09-16T12:23:52Z", "hours": 2.6669, "text": "Miscellaneous stuff Devlog #7 I added input buffering, centered the screen, and added an end animation. I don’t really remember if I added anything else because I haven’t worked on this project in about a month and reading assembly is kinda hard."}, {"post_id": 43158, "ts": "2026-08-08T08:28:59Z", "hours": 9.6006, "text": "t h i n s n a k e Devlog #6 Thin Snake! Finally made the snake thin so it doesn’t turn into a blob. It should NOT have taken 9 hours, but it really does take a long time to program in assembly. In order to figure out how to bend the snake, it checks the segment in front of the snake, packs the info into 2 bits, and then does the same thing for the segment behind the snake. Then, it does a switch statement (At least, the closest thing to a switch statement in assembly) of the 16 possible values from those 4 bits packed together and then hardcodes drawing the segment. This implementation is definitely a bit strange and not the best way to do it, but it was the first one that worked and I didn’t want to keep trying different methods (doing anything in assembly isn’t very pleasant) (If the video looks super blurry, that’s because I recorded it at the original 320*240 resolution)"}, {"post_id": 39291, "ts": "2026-08-02T05:15:37Z", "hours": 2.0097, "text": "Nearly Finished! Devlog #5 Apples! The snake now has some food that appears on the screen. Not much to say here about the feature, it’s snake! But the implementation is a little bit more interesting. In computers, random numbers aren’t much of a thing, so you’ll usually have to settle for pseudo random numbers, but, CPUs today have an RDRAND instruction for generating random numbers from thermal noise and whatnot inside the CPU. but even though it’s on practically every chip today, I still opted not to use it, because Unseeded, so you can’t make a game seed or stuff like that, and They aren’t present on processors before 2012! And we want this snake to be able to run on the original i386, don’t we? So instead I decided to use a simple pseudo random number generator I just whipped up on the spot by multiply the seed by some big numbers and xor’ing it with itself a couple times. it’s definitely not cryptographically secure, but it’s snake, so whatever. What next? Now that the game is done, I’m gonna add a couple more features just so the game is a bit more more comfortable to play. I plan on adding: Centering the game screen (For obvious reasons) Restart button (so you don’t have to reboot the emulator) (Or if anyone runs this bare metal for some reason, the computer) Choosing colors (Because fun!) Button queuing (for convenience) Maybe some visual flair (like drawing the snake as thin, some sprites if I can figure those out, and stuff like that)"}, {"post_id": 38792, "ts": "2026-08-01T11:07:25Z", "hours": 5.5558, "text": "Hungry snake :( Devlog #4 Sadly there’s no apple yet so the snake is getting pretty hungry. The snake moves! I made the snake finally able to get longer than 1 segment through a circular style array for keeping track of the head. This means that there is an array for all the segments that store the X and Y, and the head slithers through the array overwriting the tail segment so that you don’t need to copy the whole array forward every time the snake moves. Copy problems With this way of implementing the snake, you need to shift forward all the segments in front of the snake’s head in memory so that it creates a free space in front of the head, and so the head can move into the free space instead of overwriting the tail. It’s a pretty simple concept, but I had a lot of trouble enacting this in assembly. Having to think about individual bytes isn’t something I’m used to from having data types handled automatically by higher level languages like C."}, {"post_id": 38097, "ts": "2026-07-31T09:47:36Z", "hours": 3.6206, "text": "This snake is devouring disk space Devlog #3 Reading more sectors As I was writing more assembly, I noticed a moment when whenever I added any more instructions, the screen would just go black. I knew I might be scooching up to the 512 byte limit, so I ndisasm’d the binary and found out that, sure enough, I only had 2 more bytes left! I was preparing to have use more than 512 bytes for my program, so I knew roughly what I needed to do. You just need one bios interrupt to read a couple sectors (512 byte chunks) into memory, and moved some code around, and now I have practically unlimited (a couple thousand bytes) to work with!"}, {"post_id": 37499, "ts": "2026-07-30T09:11:11Z", "hours": 1.4617, "text": "New Snake Habitats near You Devlog #2 Drawing the grid I drew a grid for the snake to move on. The code for the nested loop is not readable at all, but then again, it’s in assembly, no matter how you write it it’s unreadable. CAUTION: Please do not touch or feed snakes, or the DX register. I had an issue with the rectangle size being 0, because the size is passed to the drawing function through the DX register and I forgot that the MUL instruction doesn’t just store the result in AX, but also the DX register. This part sounds a bit weird but the stardance devlog guide says to “Include the friction” Dull Devlogs I know these devlogs may seem uneventful or dull, but writing anything in assembly is a hard task. It took me over an hour to draw a grid!"}, {"post_id": 37435, "ts": "2026-07-30T05:17:47Z", "hours": 5.9428, "text": "I have a rectangle and I’m not afraid to use it Devlog #1 Introduction This is my first devlog of making (or at least trying to make) snake without an operating system using BIOS interrupts and 16 bit x86 real mode assembly. I’ve made my functions for clearing the screen and drawing a rectangle, and it only took 5 hours to do! A lot of was also researching calling conventions, which registers can do what, and wondering why you can’t access memory with the stack pointer register (???? why cant you it LITERALLY has the word pointer in its name)"}]...
|
Title: BIOSnake by @Duck | Stardance
Devlogs:
I h Title: BIOSnake by @Duck | Stardance
Devlogs:
I have a rectangle and I’m not afraid to use it Devlog #1 Introduction This is my first devlog of making (or at least trying to make) snake without an operating system using BIOS interrupts and 16 bit x86 real mode assembly. I’ve made my functions for clearing the screen and drawing a rectangle, and it only took 5 hours to do! A lot of was also researching calling conventions, which registers can do what, and wondering why you can’t access memory with the stack pointer register (???? why cant you it LITERALLY has the word pointer in its name)
New Snake Habitats near You Devlog #2 Drawing the grid I drew a grid for the snake to move on. The code for the nested loop is not readable at all, but then again, it’s in assembly, no matter how you write it it’s unreadable. CAUTION: Please do not touch or feed snakes, or the DX register. I had an issue with the rectangle size being 0, because the size is passed to the drawing function through the DX register and I forgot that the MUL instruction doesn’t just store the result in AX, but also the DX register. This part sounds a bit weird but the stardance devlog guide says to “Include the friction” Dull Devlogs I know these devlogs may seem uneventful or dull, but writing anything in assembly is a hard task. It took me over an hour to draw a grid!
This snake is devouring disk space Devlog #3 Reading more sectors As I was writing more assembly, I noticed a moment when whenever I added any more instructions, the screen would just go black. I knew I might be scooching up to the 512 byte limit, so I ndisasm’d the binary and found out that, sure enough, I only had 2 more bytes left! I was preparing to have use more than 512 bytes for my program, so I knew roughly what I needed to do. You just need one bios interrupt to read a couple sectors (512 byte chunks) into memory, and moved some code around, and now I have practically unlimited (a couple thousand bytes) to work with!
Hungry snake :( Devlog #4 Sadly there’s no apple yet so the snake is getting pretty hungry. The snake moves! I made the snake finally able to get longer than 1 segment through a circular style array for keeping track of the head. This means that there is an array for all the segments that store the X and Y, and the head slithers through the array overwriting the tail segment so that you don’t need to copy the whole array forward every time the snake moves. Copy problems With this way of implementing the snake, you need to shift forward all the segments in front of the snake’s head in memory so that it creates a free space in front of the head, and so the head can move into the free space instead of overwriting the tail. It’s a pretty simple concept, but I had a lot of trouble enacting this in assembly. Having to think about individual bytes isn’t something I’m used to from having data types handled automatically by higher level languages like C.
Nearly Finished! Devlog #5 Apples! The snake now has some food that appears on the screen. Not much to say here about the feature, it’s snake! But the implementation is a little bit more interesting. In computers, random numbers aren’t much of a thing, so you’ll usually have to settle for pseudo random numbers, but, CPUs today have an RDRAND instruction for generating random numbers from thermal noise and whatnot inside the CPU. but even though it’s on practically every chip today, I still opted not to use it, because Unseeded, so you can’t make a game seed or stuff like that, and They aren’t present on processors before 2012! And we want this snake to be able to run on the original i386, don’t we? So instead I decided to use a simple pseudo random number generator I just whipped up on the spot by multiply the seed by some big numbers and xor’ing it with itself a couple times. it’s definitely not cryptographically secure, but it’s snake, so whatever. What next? Now that the game is done, I’m gonna add a couple more features just so the game is a bit more more comfortable to play. I plan on adding: Centering the game screen (For obvious reasons) Restart button (so you don’t have to reboot the emulator) (Or if anyone runs this bare metal for some reason, the computer) Choosing colors (Because fun!) Button queuing (for convenience) Maybe some visual flair (like drawing the snake as thin, some sprites if I can figure those out, and stuff like that)
t h i n s n a k e Devlog #6 Thin Snake! Finally made the snake thin so it doesn’t turn into a blob. It should NOT have taken 9 hours, but it really does take a long time to program in assembly. In order to figure out how to bend the snake, it checks the segment in front of the snake, packs the info into 2 bits, and then does the same thing for the segment behind the snake. Then, it does a switch statement (At least, the closest thing to a switch statement in assembly) of the 16 possible values from those 4 bits packed together and then hardcodes drawing the segment. This implementation is definitely a bit strange and not the best way to do it, but it was the first one that worked and I didn’t want to keep trying different methods (doing anything in assembly isn’t very pleasant) (If the video looks super blurry, that’s because I recorded it at the original 320*240 resolution)
Miscellaneous stuff Devlog #7 I added input buffering, centered the screen, and added an end animation. I don’t really remember if I added anything else because I haven’t worked on this project in about a month and reading assembly is kinda hard.
Palettes Devlog #8 Firstly I made the initial seed for for apple to be based on the current time (so it’s randomized every time you boot it up), and I added some color palettes that you can switch between with the E key.
Ships:
This is snake written in x86 assembly, running directly on the CPU with BIOS interrupt calls without an operating system, in under 3KB. It also includes comfort features like input buffering and thin snake drawing. It was challenging to get started programming in assembly, but once you get used to it it becomes a lot easier....
|
1793008316.0778568
|
1793094716.0778568
|
|
7806
|
Crooked Rails by @AllInTw0 | Stardance
|
AllInTw0
|
0
|
119.84
|
0
|
[]
|
[{"post_id": 80798, "ts": "202 [{"post_id": 80798, "ts": "2026-10-18T20:21:48Z", "hours": 9.9678, "text": "Thirteenth devlog of the game! I added/changed various stuff so here is a list of changes: -Added a new weapon - Flamethrower! -Added a debuff system! Currently only has the fire debuff from the flamethrower addition. -Added Xray vision to enemies that are dealing damage. (This mostly so that the player can quickly locate the cause of damage to the train) -Changed how code handles structure spawning. (doesn’t change anything gameplay wise) -Other small improvements/fixes I was also experimenting with better movement around the train, but dont have anything to show for it currently. Here are two videos showcasing the Flamethrower and the Xray!"}, {"post_id": 76847, "ts": "2026-10-04T20:10:21Z", "hours": 9.9686, "text": "Twelfth devlog of the game! As I am getting closer and closer to the first ship I decided to make a lobby system so that multiple sessions can be going at once rather than the forced one session for playtesting. Before that I also made a new crane railcar model that also visually lifts the payload to be loaded on to the train for the payload minigame. Here are two videos for each major change plus a image of how the crane car looks on the job preview."}, {"post_id": 72727, "ts": "2026-09-23T16:29:21Z", "hours": 9.4689, "text": "Eleventh devlog of the game! I continued work on the payload escort minigame. List of changes: -Added basic structures to the generation. (The goal is a western mining town) -Added the ability for props to spawn on terrain. -Added enemy wave spawning specific to the payload. (enemies use the structures as spawn points) -Added a crane rail car that picks up the payload to be delivered to the station. (Probably a new model for it next devlog) -Added a new station section where you will be able to pick special additional jobs with a starting fee but if successful a returning pay. -Improved how the uppercutter enemy calculates the trajectory. -Improved movement for both player and enemies -Other tiny changes Still have some issues with the terrain where the track sinks into the ground and the surrounding terrain around structures looking odd. Dont know if ill ever fully fix it. Here is a video showcasing the current state of the payload escort and the prototype special job monitor. I didnt fully play through the escort before recording the video and I was pretty surprised how fun it actually felt and its not even finished. Hope others will think its fun to."}, {"post_id": 70635, "ts": "2026-09-19T14:22:16Z", "hours": 9.2675, "text": "Tenth devlog of the game! I decided to start making an idea I had from the beginning of the project. The idea is that you have to escort a minecart payload through a randomly generated town in return for bonus money. Its basically the main game but around a smaller train which allows for a higher number enemies all going for one target and more interesting generation. So far I made the very basics. The track gen (took the most of time) where it can also go over the main train tracks and the payload prototype that moves if a player is nearby. If an enemy attacks it, it gets stunned not being able to move for a second or so. I also improved the new enemy AI around how it handles enemy-enemy targeting so two uppercutters dont go to the same enemy. I also fixed a spline mesh bug that was in the game since the beginning of the project. Here is a video showcasing the payload plus some pictures of interesting bugs."}, {"post_id": 69814, "ts": "2026-09-17T20:36:15Z", "hours": 11.4131, "text": "Ninth devlog of the game! This devlog is mostly three things. Firstly, I finally added new enemies! Their descriptions: Healer: heals nearby enemies by tethering itself to the target. I plan on adding a passive effect that reduces the targets incoming damage. The Uppercuter: punches melee enemies forward to their target. To accommodate this I lowered the melee enemy walk speed. Secondly, I improved the inventory UI to highlight the selected item more by adding a scaling animation and a cyan tint. Finally, I added a display boards on all railcars that show the health of the railcar and the cargo. Other changes: -Fixed some multiplayer bugs Here is a video showcasing the inventory and enemies as well as a picture of the display board."}, {"post_id": 50556, "ts": "2026-08-19T19:22:54Z", "hours": 9.5303, "text": "Eighth devlog of the game! I finally finished syncing all of the games features/mechanics! Of course with the help of my friend we held the first multiplayer playtest of the game! It went about as expected - quite a few bugs… But it was still playable and I had fun. List Of Changes: -Added a starting shop -Fixed the blur that sometimes appeared on papers + improved paper visuals -Implemented Spectating -Synced Game Over -Synced Bucket Item -Synced Teleporter Item -Synced Sentry -Synced Railcar Derailing -Improved enemy health sync. (Had an issue in the playtest where the client thought the enemy was dead, but it was still alive for the host) -Synced explosive tankcar -Other tiny stuff GIF of a funny moment from the playtest. Plus the new starting shop and some bugs from the playtest."}, {"post_id": 42041, "ts": "2026-08-06T16:31:33Z", "hours": 10.925, "text": "Seventh devlog of the game! Continuing heavy work on multiplayer - now touching up the few last things left to sync between host & client. I believe next devlog or two the game will be fully converted to work in multiplayer! List of changes: -Synced health script (Used in various areas beyond player & enemy health. For example: tender’s fuel and water level) -Synced water tower -Synced train upgrades -Synced foliage spawning -Synced items - health kit & backpack expander -Implemented a basic enemy sync Here is a video showcasing the water tower and the train upgrades. Left is client, right is host. Did not notice i went over the 10h mark… how fun."}, {"post_id": 40643, "ts": "2026-08-04T10:08:05Z", "hours": 9.8547, "text": "Sixth devlog of the game! Continued work on multiplayer - this time syncing everything in the station. Showcased changes: -Synced hauling job monitors (the 3 at the entrance) -Synced railcar spawning and despawning -Synced shops -Synced sell station -Synced unlock station Possibly unnoticeable changes: -Improved player movement sync -Improved locomotive control syncing Here is a video showcasing the changes. Right is client, left is host. Next up i plan on syncing enemies."}, {"post_id": 32858, "ts": "2026-07-22T09:06:29Z", "hours": 10.0806, "text": "Fifth devlog of the game! This time i went all over the place working on stuff that doesn’t contain a lot of multiplayer. Why? Because I was waiting for my order of 16GB of RAM to arrive so my laptop doesn’t crash with two games running at once. Now its running smoothly and I can continue working on multiplayer! Here are the showcased changes: -Started work on a new starting location -Added a train ride intro -Added train sounds Not showcased changes: -Started work on syncing the station, hauling jobs and rail-car spawning/despawning for multiplayer"}, {"post_id": 20816, "ts": "2026-07-02T14:59:07Z", "hours": 10.1861, "text": "Fourth devlog of the game! Continuing to work on multiplayer. This time focusing on the world and train by syncing train movement and controls and by syncing the world seed and generated structures. Here is a video showcasing being able to control the train from a client and some screenshots showcasing the host view (top) and the client view (bottom). There are still some things that are not synced fully. Maybe you can spot some differences"}, {"post_id": 7387, "ts": "2026-06-12T09:54:39Z", "hours": 8.6583, "text": "Third devlog of the game! I am finally adding MULTIPLAYER!!! :D I added the ability to host and join sessions across the world. Currently only movement, inventory, item physics and interactions with guns is synced. Still a lot of work needs to be done to convert he whole game. Here is a video showcasing it running locally from the client’s perspective in a testing scene."}, {"post_id": 5647, "ts": "2026-06-09T14:56:26Z", "hours": 10.2222, "text": "Second devlog of the game! Worked on quite different stuff. Showcased changes: -Added a camera shake -Modeled a swamp-like tree -Added tank car explosion + visually damaged model. -Improved scene lighting a bit. (Still need to mess around more) Not showcased: -Improved code behind shops and added support for rerolls."}, {"post_id": 2667, "ts": "2026-06-05T10:41:42Z", "hours": 0.3011, "text": "First (eighteenth) devlog of the game! Since this is a continuation of a project from Flavortown and before hand here are the things I changed since Flavortown: -Added a companion robot. Follows the player and attacks enemies -Added a teleporter. The player can carry it and use it for easier travel between important locations -Experimented with different types of foliage -The rails finally are crooked and not perfect curves! To fit the name -Added a groundwork texture around the rails Changes not showcased: -Improved player and enemy movement -Track that transitions from the station and playable space will avoid going into mountains -Improved navigation mesh generation If you wish to see the gameplay of the game: https://youtu.be/yDcuscI8zDo Flavortown project: https://flavortown.hackclub.com//projects/10071"}]...
|
Title: Crooked Rails by @AllInTw0 | Stardance
Dev Title: Crooked Rails by @AllInTw0 | Stardance
Devlogs:
First (eighteenth) devlog of the game! Since this is a continuation of a project from Flavortown and before hand here are the things I changed since Flavortown: -Added a companion robot. Follows the player and attacks enemies -Added a teleporter. The player can carry it and use it for easier travel between important locations -Experimented with different types of foliage -The rails finally are crooked and not perfect curves! To fit the name -Added a groundwork texture around the rails Changes not showcased: -Improved player and enemy movement -Track that transitions from the station and playable space will avoid going into mountains -Improved navigation mesh generation If you wish to see the gameplay of the game: https://youtu.be/yDcuscI8zDo Flavortown project: https://flavortown.hackclub.com//projects/10071
Second devlog of the game! Worked on quite different stuff. Showcased changes: -Added a camera shake -Modeled a swamp-like tree -Added tank car explosion + visually damaged model. -Improved scene lighting a bit. (Still need to mess around more) Not showcased: -Improved code behind shops and added support for rerolls.
Third devlog of the game! I am finally adding MULTIPLAYER!!! :D I added the ability to host and join sessions across the world. Currently only movement, inventory, item physics and interactions with guns is synced. Still a lot of work needs to be done to convert he whole game. Here is a video showcasing it running locally from the client’s perspective in a testing scene.
Fourth devlog of the game! Continuing to work on multiplayer. This time focusing on the world and train by syncing train movement and controls and by syncing the world seed and generated structures. Here is a video showcasing being able to control the train from a client and some screenshots showcasing the host view (top) and the client view (bottom). There are still some things that are not synced fully. Maybe you can spot some differences
Fifth devlog of the game! This time i went all over the place working on stuff that doesn’t contain a lot of multiplayer. Why? Because I was waiting for my order of 16GB of RAM to arrive so my laptop doesn’t crash with two games running at once. Now its running smoothly and I can continue working on multiplayer! Here are the showcased changes: -Started work on a new starting location -Added a train ride intro -Added train sounds Not showcased changes: -Started work on syncing the station, hauling jobs and rail-car spawning/despawning for multiplayer
Sixth devlog of the game! Continued work on multiplayer - this time syncing everything in the station. Showcased changes: -Synced hauling job monitors (the 3 at the entrance) -Synced railcar spawning and despawning -Synced shops -Synced sell station -Synced unlock station Possibly unnoticeable changes: -Improved player movement sync -Improved locomotive control syncing Here is a video showcasing the changes. Right is client, left is host. Next up i plan on syncing enemies.
Seventh devlog of the game! Continuing heavy work on multiplayer - now touching up the few last things left to sync between host & client. I believe next devlog or two the game will be fully converted to work in multiplayer! List of changes: -Synced health script (Used in various areas beyond player & enemy health. For example: tender’s fuel and water level) -Synced water tower -Synced train upgrades -Synced foliage spawning -Synced items - health kit & backpack expander -Implemented a basic enemy sync Here is a video showcasing the water tower and the train upgrades. Left is client, right is host. Did not notice i went over the 10h mark… how fun.
Eighth devlog of the game! I finally finished syncing all of the games features/mechanics! Of course with the help of my friend we held the first multiplayer playtest of the game! It went about as expected - quite a few bugs… But it was still playable and I had fun. List Of Changes: -Added a starting shop -Fixed the blur that sometimes appeared on papers + improved paper visuals -Implemented Spectating -Synced Game Over -Synced Bucket Item -Synced Teleporter Item -Synced Sentry -Synced Railcar Derailing -Improved enemy health sync. (Had an issue in the playtest where the client thought the enemy was dead, but it was still alive for the host) -Synced explosive tankcar -Other tiny stuff GIF of a funny moment from the playtest. Plus the new starting shop and some bugs from the playtest.
Ninth devlog of the game! This devlog is mostly three things. Firstly, I finally added new enemies! Their descriptions: Healer: heals nearby enemies by tethering itself to the target. I plan on adding a passive effect that reduces the targets incoming damage. The Uppercuter: punches melee enemies forward to their target. To accommodate this I lowered the melee enemy walk speed. Secondly, I improved the inventory UI to highlight the selected item more by adding a scaling animation and a cyan tint. Finally, I added a display boards on all railcars that show the health of the railcar and the cargo. Other changes: -Fixed some multiplayer bugs Here is a video showcasing the inventory and enemies as well as a picture of the display board.
Tenth devlog of the game! I decided to start making an idea I had from the beginning of the project. The idea is that you have to escort a minecart payload through a randomly generated town in return for bonus money. Its basically the main game but around a smaller train which allows for a higher number enemies all going for one target and more interesting generation. So far I made the very basics. The track gen (took the most of time) where it can also go over the main train tracks and the payload prototype that moves if a player is nearby. If an enemy attacks it, it gets stunned not being able to move for a second or so. I also improved the new enemy AI around how it handles enemy-enemy targeting so two uppercutters dont go to the same enemy. I also fixed a spline mesh bug that was in the game since the beginning of the project. Here is a video showcasing the payload plus some pictures of interesting bugs.
Eleventh devlog of the game! I continued work on the payload escort minigame. List of changes: -Added basic structures to the generation. (The goal is a western mining town) -Added the ability for props to spawn on terrain. -Added enemy wave spawning specific to the payload. (enemies use the structures as spawn points) -Added a crane rail car that picks up the payload to be delivered to the station. (Probably a new model for it next devlog) -Added a new station section where you will be able to pick special additional jobs with a starting fee but if successful a returning pay. -Improved how the uppercutter enemy calculates the trajectory. -Improved movement for both player and enemies -Other tiny changes Still have some issues with the terrain where the track sinks into the ground and the surrounding terrain around structures looking odd. Dont know if ill ever fully fix it. Here is a video showcasing the current state of the payload escort and the prototype special job monitor. I didnt fully play through the escort before recording the video and I was pretty surprised how fun it actually felt and its not even finished. Hope others will think its fun to.
Twelfth devlog of the game! As I am getting closer and closer to the first ship I decided to make a lobby system so that multiple sessions can be going at once rather than the forced one session for playtesting. Before that I also made a new crane railcar model that also visually lifts the payload to be loaded on to the train for the payload minigame. Here are two videos for each major change plus a image of how the crane car looks on the job preview.
Thirteenth devlog of the game! I added/changed various stuff so here is a list of changes: -Added a new weapon - Flamethrower! -Added a debuff system! Currently only has the fire debuff from the flamethrower addition. -Added Xray vision to enemies that are dealing damage. (This mostly so that the player can quickly locate the cause of damage to the train) -Changed how code handles structure spawning. (doesn’t change anything gameplay wise) -Other small improvements/fixes I was also experimenting with better movement around the train, but dont have anything to show for it currently. Here are two videos showcasing the Flamethrower and the Xray!...
|
1792504468.309998
|
1793109268.309998
|
|
2805
|
FPEeee by @Duck | Stardance
|
Duck
|
2
|
191.0
|
1850
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-24T04:30:31Z", "hours": 58.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "This is an updated version of my physics engine, using a new simulation method called XPBD! It was a bit challenging learning the basics of vector calculus, but it was worth it for the added flexibility of XPBD constraints and integration. I’m also really proud of getting OpenGL rendering working for some of the demos, because making an 3D renderer could be a project in and of itself! (Not this renderer though, it’s pretty barebones.) I’m especially happy with the cloth demo, with the best 3D rendering and (in my opinion) the best showcase of the engine’s features! (Also the least laggy of them all? I know why but it’s still kinda weird, being the most complex demo.) Writing it in C was a probably a bit harder than using a higher level language like C++, but being able to compile the entire project from source in less than two seconds on my machine was a big plus! I hope you enjoy playing with the physics demos! I worked really hard on this project!!", "repo": "https://github.com/duckdood/fpeeee", "demo": "https://duckdood.github.io/physics_demo"}, {"ship_num": 2, "ts": "2026-09-06T04:53:48Z", "hours": 133.0, "multiplier": 16.74, "payout": 1850, "blessing": "neutral", "text": "This is a position-based physics engine made all in C for portability and versatility. It had many challenging moments when making it, such as triangle collisions, spatial partitioning, performance optimization, and more, but I had a lot of fun building it, showing it off to my friends and family, and learning more about physics.", "repo": "https://github.com/duckdood/fpeeee", "demo": "https://duckdood.github.io/physics_demo"}]...
|
[{"post_id": 80800, "ts": "202 [{"post_id": 80800, "ts": "2026-10-18T20:26:33Z", "hours": 1.6025, "text": "Devlog #22 (I just realized that I accidentally did two devlog #15s but it’s too late now) Getting ready for another ship I edited some constraints to be more stable, edited the website to be a bit more clear of where the controls are if your screen is too small to fit them, and had a NIGHTMARE fiddling with ffmpeg to try and replace the video on the README to not be too laggy or low quality but also not too big. I also tried to do some performance optimizations for phones, but I couldn’t figure it out. This is the mp4 version animated WebP that I eventually got ffmpeg to spit out. For some reason animated WebPs don’t work in devlogs."}, {"post_id": 79264, "ts": "2026-10-13T08:10:35Z", "hours": 2.3019, "text": "Devlog #21 MERGING I’ve been rewriting a lot of the physics engine for XPBD (eXtended Position Based Dynamics) since the last ship, but on a separate branch so that if I broke anything too bad it wouldn’t show up on the website, but today I finally merged the xpbd branch into main. Sadly, it is a fair bit slower than the previous verlet integration (at least for my simple demos), but it’s a far more flexible integration and constraint scheme and I think the tradeoff is worth it. (I am a bit disappointed with the performance on the website though, I swear it was faster before I merged it! It’s a lot faster natively!)"}, {"post_id": 78023, "ts": "2026-10-09T07:13:56Z", "hours": 4.0489, "text": "Devlog #20 Another constraint, and another failed side project. Boundary constraint I added a constraint that I named a “boundary constraint”, that confines a particle to being on the specific side of a line e.g. making four lines around the edges of the screen and making sure the particle is on the side which is visible on screen. This is different from a wall because walls have two sides (and also zero thickness) which can cause a particle that’s going super fast to completely pass through to the other side of the wall in a single physics step, whereas with a boundary it will always snap it back to the correct side of the line. (If this was a bad explanation, I’m sorry). Failed lua integration I suppose the word ‘failed’ is a bit harsh in this scenario, I was just dipping my toes into integrating a little lua shell into the demos that would let you spawn particles and stuff programatically, but I decided it wasn’t worth it for small demos that aren’t meant to be super duper flexible anyway because they’re just meant to show off cool features the engine can do. throwing balls very quickly at the wall, which don’t clip through VVV"}, {"post_id": 75992, "ts": "2026-10-01T22:09:53Z", "hours": 10.0394, "text": "Devlog #19 Optimization and Interaction I’ve optimized the triangle collision code to use the spatial partitioning I implemented before for collisions. It goes through each triangle and checks what balls are in its bounding box with the collision grid, and completely skips any balls that aren’t close. This allows for about a thousand balls in a scene (at least on my computer), which is a lot better than the hundred or so you’d get with just bounding box checks and the tens or so you would get with a naive approach. Sadly, this change is only on the XPBD branch for now, meaning it won’t reflect on the website, but you’d still probably have to be spawning balls for a while for that to slow down, depending on the computer. I’ve also added far better interaction to the cloth, using some matrix multiplication and some raycast tests, you can now drag the cloth around with your mouse! This change was on the main branch too, so this is right on the website , right now! I did try to implement a system for having the cloth tear when it was under stress, but it would have required me to rework a lot of stuff and it didn’t quite work out. :("}, {"post_id": 74317, "ts": "2026-09-27T05:22:56Z", "hours": 11.4481, "text": "Devlog #18 Fluid simulation For a couple days I’ve been researching and trying to implement a PBF (position based fluid) fluid simulation, but there are barely any resources on the topic that I’ve been able to find, and the ones I have found are very math oriented with evil cryptic symbols that take a while to wrap my head around. The fluid simulation does work, but it’s much laggier, a lot finickier, and not a lot better (if at all better) than just chucking a couple thousand balls together and having them collide normally."}, {"post_id": 72994, "ts": "2026-09-24T05:51:47Z", "hours": 9.7506, "text": "Devlog #17 OpenGL integration I spend the last couple days integrating OpenGL rendering into a couple of the projects, meaning the graphics will be a lot better and rendered on the GPU instead of being rendered on the CPU, as well as speeding up the demos because even with the added visual complexity, the GPU is just so much faster at rendering! I made these changes of the main branch so that they would reflect on the website sooner, but git’s merge system is actually super good and it took no more than 15 minutes to merge the OpenGL rendering to the XPBD branch. I’ve only migrated over the cloth and fluid demos, but they’re the ones that needed it the most, and it’s not too hard to add it to more demos after I’ve had most of the OpenGL boilerplate implemented."}, {"post_id": 70439, "ts": "2026-09-19T06:17:10Z", "hours": 8.4, "text": "Devlog #16 I migrated the XPBD stuff to 3D and moved all the demos to work with it as well, not much interesting to talk about though. Here’s a demo of it working though"}, {"post_id": 66409, "ts": "2026-09-12T07:11:52Z", "hours": 10.2822, "text": "Devlog #15: Rebuilding because why not A bit before shipping, I heard about another physics method called XPBD (extended position based dynamics) that’s a lot more powerful and flexible, and I decided, after I would ship, I would try to convert my engine to that. I kinda have to remake almost all of the physics stuff I already made, but I can recycle a lot of the older code, just making it fit the new framework, and being a lot more educated about physics simulation stuff than when I started this project, it wasn’t too hard to rewrite some new stuff. Right now I have ported over my ball pit thingy, not a lot to show that’s different from old devlogs, but hey, it’s the inside that counts, right?"}, {"post_id": 62664, "ts": "2026-09-06T04:32:53Z", "hours": 6.1839, "text": "Devlog #15: shipping! Super small devlog, just editing the website and the README and stuff like that, really want to ship now! It just took a while to add messages to all the different demos and I may have tried a little bit of engine stuff but it just didn’t work out."}, {"post_id": 59457, "ts": "2026-09-01T10:01:32Z", "hours": 10.425, "text": "Devlog #14 I added edge detection for 3D triangles and other miscellaneous stuff, like improving the website, adding VSync to the demos, but that stuff’s boring so I’m just going to show off the new demo! It might be the coolest one so far, but it was one of the easiest to make. I’m planning on shipping real soon though, just wanna add a few things to the website and readme!"}, {"post_id": 56613, "ts": "2026-08-28T13:09:26Z", "hours": 10.6511, "text": "Devlog #13 I added triangle-walls which vertices are 3 dynamic spheres, which can collide with other particles and have all 4 particles update with their own velocities! This makes the engine a lot more flexible, so you don’t have to make big grids of spheres if you want to be able to have walls that can move, instead of being static. And it makes rigidbodies (probably) possible! (Press enter to spawn balls) Demo! This devlog is a bit long, sorry! I didn’t want to go too far over 10 hours like a did a couple devlogs ago. 2D 2D is, of course, simpler than 3D, and the length of the function for these walls definitely show that (~40 lines). I used the same algorithm to find the closest position on a line to another position as I used for detecting collisions on the edges of the static 3D walls a while ago. It gives you a lerpable value from from the first point to the second point of the line, and you can use that to find the point you are looking for. Comparing it to the circle you’re checking against, will give the distance and the normal of the collision. You can use that information to move the circle out of the wall, and push the wall away, using the value to lerp between as the ratio to push each of the points that the wall is made of away. 3D This function is a bit more complicated, being about 80 lines long, but a lot of the information in the 2D version is applicable here too. Here, instead of trying to find the closest point, we are trying to find the barycentric coordinates of the point, which is similar to the value to lerp between the two points in 2D, but for 3D (It’s basically just 3 numbers which tell you how close you are to each vertex of a triangle, and can describe any point on the triangle). This involves find the triangle’s area that you are checking against using the cross product, getting the distance of the point inward to the triangle for each edge, and calculating some inverse areas, which magically (not really) give you the barycentric coordinates. We then use these coordinates, as long as the distance to the triangle face using the dot product, to figure out whether the ball is colliding with the face, and if so, moving the ball outside of the triangle and moving the 3 vertices away as well, of course using each barycentric coordinate as a weight for how much to move each individual vertex. I haven’t implemented detections with the edges of the triangles exactly yet though, only the faces, but I will try to implement it soon!"}, {"post_id": 50030, "ts": "2026-08-19T01:48:43Z", "hours": 11.2506, "text": "Devlog #12 I improved the website to include multiple demos, and I made a couple improvements to the performance of the spatial partitioning detection, but I’ve mostly just been doing tinkering and testing with the engine some more."}, {"post_id": 31654, "ts": "2026-07-20T07:22:53Z", "hours": 7.2706, "text": "Devlog #11: Not a huge devlog, I’ve mostly been having fun with this little parachute demo I made! I definitely spent too much time just playing with it. I’ve also been experimenting a bit with multithreading, but it’s not in a stable or performant enough state right now to showcase. mp4 compression will hate this"}, {"post_id": 27421, "ts": "2026-07-12T23:48:38Z", "hours": 6.1297, "text": "Devlog #10: I ported the spatial partitioning to 3D! It’s definitely a lot laggier in the 3D environment, because it needs to check 3x the partitions per ball, but it’s still a lot better than having no spatial partitioning at all. One of the problems I encountered when transitioning to 3D was lag, but not in the expected “It’s going to be laggy when you have a lot of balls” way. For some strange reason, the framerate was still below 60 even when there were no balls in the world! It turned out to be an issue with needing to calloc a big region of memory everytime it would sort the balls into their partitions, but I was able to fix it by keeping the allocation throughout the lifetime of the partition grid. I also fixed it in the 2D version, even though it wasn’t really a problem there, it also wasn’t really a problem to fix either. (In the video you will notice the balls disappearing, the sample I whipped up for the devlog just automatically despawns balls when they leave the partitioning grid. Also some balls fly off when spawning, because sometimes the balls spawn inside one another) I’m getting a bit burnt out from this project though, I might ship after maybe adding multithreading, creating the README, and maybe making some more demos. I’ve been watching some videos on real rigidbody physics, and I want to try that out too!"}, {"post_id": 24090, "ts": "2026-07-07T13:02:59Z", "hours": 25.6289, "text": "Devlog #9: Intro I added spatial partitioning to the engine to speed up collisions when you have a lot of balls in a scene. Partitioning explanation Spatial partitioning is an optimization that divides the world into a grid, so balls only check other balls that are in close cells, instead of every ball checking all others, which is O(n^2). It seems pretty simple, but I tried 4 different ways before getting a good result. Judging by the time logged, I struggled. First Attempt (Dense grid) I first tried a naive implementation, which was making a big grid, with each cell having a list of pointers to balls that are in it. The problem is, each cell needs to have the total amount of balls that could be in it allocated. For the best performance, each grid cell should be the same size as a ball, and for the size I use here, you need the grid dimensions to be in the 100s. with 1000 balls, and with 64 bit pointers, you could have 1000 * 8 * 300 * 300 bytes allocated total, ~720 MB. You can get away with a lot less pointers, but that still wasn’t satisfying, or flexible. Second Attempt (Sparse grid) My second try was a grid, but you only store cells which have balls in them. This doesn’t solve the high number of pointers per cell, but it uses less cells overall. It should’ve been easier, but C doesn’t have any built in hashmaps. The physics code doesn’t use many libraries, and I didn’t want to rely on more, so I had the bright idea to make my own hashmap. It didn’t work and I gave up, and that was the end of the sparse grid. Third Attempt (Resizable arrays) The third attempt was like the first, but I decided to try allocating the memory on the fly, when balls moved around, but it didn’t work out. Working Attempt!! (Sorting) The most successful attempt was a grid, every cell is allocated, and yet, uses the least memory. Instead of storing pointers, each cell only stores two things: An offset and a length. Just indices into the ball array, which sounds easy, but then you realize - the balls are in a random order. To fix this, when updating the grid, you sort the balls into the cell they’re in. You may think that going into the dark cave of sorting is a bad idea, but here, it’s just a counting sort. Then it sets each cell’s fields, and you have your partitions. Detecting Collisions Collisions are easier than constructing the grid, you just check every ball, find its cell, check balls in close cells, then you’re done. Struggles There was a lot of friction with memory errors. To fix them, I learned GDB, and learnt about sanitizers, which detect lots of hard to catch memory errors. One time the program would randomly crash, and it was really hard to fix, but a sanitizer detected an easy out of bounds error when rendering. Not even a physics thing. :( Sorry!! Sorry for the long post, and the time it took me to post it, The devlog guide says to keep it short and post often, but I fell down a rabbit hole with optimizing, and was putting off writing as I knew it would be unwieldy in length. I haven’t implemented partitioning in 3d yet, but it should be easy to transfer over. It’s hard to see the balls in the video, but I want to keep the video smaller. It gets laggy in the video as well, but there are 7000 balls in the scene at the end, and I check collisions 15 times per frame, I am also recording too. Try it out If you read all the way down here, you might want to try the engine. I have a build on my pages , but it’s kinda slow on web. Click to attract P to set where the balls shoot to when spawned Enter to spawn balls Scroll to change spawn speed (at least until I change the demo). On some screens the simulation doesn’t show up until you click fullscreen. Sorry for weird wording, max devlog size is 4k characters."}, {"post_id": 13602, "ts": "2026-06-22T09:10:49Z", "hours": 9.5267, "text": "Devlog #8: I added a function that generates wheels (kinda lame), but I also added a GitHub action that automatically compiles and pushes my commits to my GitHub pages so now theres a web demo also i did just like a ton of testing and playing and stuff which is what pushed it to 9 hours"}, {"post_id": 11197, "ts": "2026-06-18T10:07:28Z", "hours": 12.275, "text": "Devlog 7: Finally added mass to the engine! Before now all the particles had the same mass (just implicitly, so basically all of them had a mass of 1), making the small ones super dense. Took so long because I had to migrate back to 2d in order to make sure the mass was working in 2d (everything was in 3d already so I actually added mass to 3d first), and had to update the 2d rendering for it to be able to render in 3d, but now everything (especially springs), is a lot cooler!"}, {"post_id": 7804, "ts": "2026-06-13T00:51:39Z", "hours": 3.5253, "text": "I added the shape generators back for 3d, now we have ✨ 3D cloth ✨!"}, {"post_id": 7351, "ts": "2026-06-12T08:09:41Z", "hours": 12.0594, "text": "Trying to move to 3D, finally got triangle-sphere collisions working the edges were by far the hardest part, the sphere-face collision actually wasn’t too hard the engine wasn’t built for walls to be able to move, but it can handle it semi fine (I’m just having rotating walls for the cool 3d showcase)"}, {"post_id": 3300, "ts": "2026-06-06T04:57:51Z", "hours": 5.0347, "text": "Added some functions that generate shapes for you, for example, cloth!"}, {"post_id": 2633, "ts": "2026-06-05T08:26:08Z", "hours": 1.5244, "text": "not that big but i migrated to the sdl callback system, so it works on emscripten now (can run in browser) ignore my screen recorder quality"}, {"post_id": 2039, "ts": "2026-06-04T10:12:11Z", "hours": 5.5597, "text": "got circle-circle collision working and with a lot of balls its a bit like a fluid cleaned up main.c as well too"}, {"post_id": 721, "ts": "2026-06-02T09:46:29Z", "hours": 5.7058, "text": "includes double pendulum for clout not actually accurate but looks fine it uses verlet integration and supports springs as well"}]...
|
Title: FPEeee by @Duck | Stardance
Devlogs:
inclu Title: FPEeee by @Duck | Stardance
Devlogs:
includes double pendulum for clout not actually accurate but looks fine it uses verlet integration and supports springs as well
got circle-circle collision working and with a lot of balls its a bit like a fluid cleaned up main.c as well too
not that big but i migrated to the sdl callback system, so it works on emscripten now (can run in browser) ignore my screen recorder quality
Added some functions that generate shapes for you, for example, cloth!
Trying to move to 3D, finally got triangle-sphere collisions working the edges were by far the hardest part, the sphere-face collision actually wasn’t too hard the engine wasn’t built for walls to be able to move, but it can handle it semi fine (I’m just having rotating walls for the cool 3d showcase)
I added the shape generators back for 3d, now we have ✨ 3D cloth ✨!
Devlog 7: Finally added mass to the engine! Before now all the particles had the same mass (just implicitly, so basically all of them had a mass of 1), making the small ones super dense. Took so long because I had to migrate back to 2d in order to make sure the mass was working in 2d (everything was in 3d already so I actually added mass to 3d first), and had to update the 2d rendering for it to be able to render in 3d, but now everything (especially springs), is a lot cooler!
Devlog #8: I added a function that generates wheels (kinda lame), but I also added a GitHub action that automatically compiles and pushes my commits to my GitHub pages so now theres a web demo also i did just like a ton of testing and playing and stuff which is what pushed it to 9 hours
Devlog #9: Intro I added spatial partitioning to the engine to speed up collisions when you have a lot of balls in a scene. Partitioning explanation Spatial partitioning is an optimization that divides the world into a grid, so balls only check other balls that are in close cells, instead of every ball checking all others, which is O(n^2). It seems pretty simple, but I tried 4 different ways before getting a good result. Judging by the time logged, I struggled. First Attempt (Dense grid) I first tried a naive implementation, which was making a big grid, with each cell having a list of pointers to balls that are in it. The problem is, each cell needs to have the total amount of balls that could be in it allocated. For the best performance, each grid cell should be the same size as a ball, and for the size I use here, you need the grid dimensions to be in the 100s. with 1000 balls, and with 64 bit pointers, you could have 1000 * 8 * 300 * 300 bytes allocated total, ~720 MB. You can get away with a lot less pointers, but that still wasn’t satisfying, or flexible. Second Attempt (Sparse grid) My second try was a grid, but you only store cells which have balls in them. This doesn’t solve the high number of pointers per cell, but it uses less cells overall. It should’ve been easier, but C doesn’t have any built in hashmaps. The physics code doesn’t use many libraries, and I didn’t want to rely on more, so I had the bright idea to make my own hashmap. It didn’t work and I gave up, and that was the end of the sparse grid. Third Attempt (Resizable arrays) The third attempt was like the first, but I decided to try allocating the memory on the fly, when balls moved around, but it didn’t work out. Working Attempt!! (Sorting) The most successful attempt was a grid, every cell is allocated, and yet, uses the least memory. Instead of storing pointers, each cell only stores two things: An offset and a length. Just indices into the ball array, which sounds easy, but then you realize - the balls are in a random order. To fix this, when updating the grid, you sort the balls into the cell they’re in. You may think that going into the dark cave of sorting is a bad idea, but here, it’s just a counting sort. Then it sets each cell’s fields, and you have your partitions. Detecting Collisions Collisions are easier than constructing the grid, you just check every ball, find its cell, check balls in close cells, then you’re done. Struggles There was a lot of friction with memory errors. To fix them, I learned GDB, and learnt about sanitizers, which detect lots of hard to catch memory errors. One time the program would randomly crash, and it was really hard to fix, but a sanitizer detected an easy out of bounds error when rendering. Not even a physics thing. :( Sorry!! Sorry for the long post, and the time it took me to post it, The devlog guide says to keep it short and post often, but I fell down a rabbit hole with optimizing, and was putting off writing as I knew it would be unwieldy in length. I haven’t implemented partitioning in 3d yet, but it should be easy to transfer over. It’s hard to see the balls in the video, but I want to keep the video smaller. It gets laggy in the video as well, but there are 7000 balls in the scene at the end, and I check collisions 15 times per frame, I am also recording too. Try it out If you read all the way down here, you might want to try the engine. I have a build on my pages , but it’s kinda slow on web. Click to attract P to set where the balls shoot to when spawned Enter to spawn balls Scroll to change spawn speed (at least until I change the demo). On some screens the simulation doesn’t show up until you click fullscreen. Sorry for weird wording, max devlog size is 4k characters.
Devlog #10: I ported the spatial partitioning to 3D! It’s definitely a lot laggier in the 3D environment, because it needs to check 3x the partitions per ball, but it’s still a lot better than having no spatial partitioning at all. One of the problems I encountered when transitioning to 3D was lag, but not in the expected “It’s going to be laggy when you have a lot of balls” way. For some strange reason, the framerate was still below 60 even when there were no balls in the world! It turned out to be an issue with needing to calloc a big region of memory everytime it would sort the balls into their partitions, but I was able to fix it by keeping the allocation throughout the lifetime of the partition grid. I also fixed it in the 2D version, even though it wasn’t really a problem there, it also wasn’t really a problem to fix either. (In the video you will notice the balls disappearing, the sample I whipped up for the devlog just automatically despawns balls when they leave the partitioning grid. Also some balls fly off when spawning, because sometimes the balls spawn inside one another) I’m getting a bit burnt out from this project though, I might ship after maybe adding multithreading, creating the README, and maybe making some more demos. I’ve been watching some videos on real rigidbody physics, and I want to try that out too!
Devlog #11: Not a huge devlog, I’ve mostly been having fun with this little parachute demo I made! I definitely spent too much time just playing with it. I’ve also been experimenting a bit with multithreading, but it’s not in a stable or performant enough state right now to showcase. mp4 compression will hate this
Devlog #12 I improved the website to include multiple demos, and I made a couple improvements to the performance of the spatial partitioning detection, but I’ve mostly just been doing tinkering and testing with the engine some more.
Devlog #13 I added triangle-walls which vertices are 3 dynamic spheres, which can collide with other particles and have all 4 particles update with their own velocities! This makes the engine a lot more flexible, so you don’t have to make big grids of spheres if you want to be able to have walls that can move, instead of being static. And it makes rigidbodies (probably) possible! (Press enter to spawn balls) Demo! This devlog is a bit long, sorry! I didn’t want to go too far over 10 hours like a did a couple devlogs ago. 2D 2D is, of course, simpler than 3D, and the length of the function for these walls definitely show that (~40 lines). I used the same algorithm to find the closest position on a line to another position as I used for detecting collisions on the edges of the static 3D walls a while ago. It gives you a lerpable value from from the first point to the second point of the line, and you can use that to find the point you are looking for. Comparing it to the circle you’re checking against, will give the distance and the normal of the collision. You can use that information to move the circle out of the wall, and push the wall away, using the value to lerp between as the ratio to push each of the points that the wall is made of away. 3D This function is a bit more complicated, being about 80 lines long, but a lot of the information in the 2D version is applicable here too. Here, instead of trying to find the closest point, we are trying to find the barycentric coordinates of the point, which is similar to the value to lerp between the two points in 2D, but for 3D (It’s basically just 3 numbers which tell you how close you are to each vertex of a triangle, and can describe any point on the triangle). This involves find the triangle’s area that you are checking against using the cross product, getting the distance of the point inward to the triangle for each edge, and calculating some inverse areas, which magically (not really) give you the barycentric coordinates. We then use these coordinates, as long as the distance to the triangle face using the dot product, to figure out whether the ball is colliding with the face, and if so, moving the ball outside of the triangle and moving the 3 vertices away as well, of course using each barycentric coordinate as a weight for how much to move each individual vertex. I haven’t implemented detections with the edges of the triangles exactly yet though, only the faces, but I will try to implement it soon!
Devlog #14 I added edge detection for 3D triangles and other miscellaneous stuff, like improving the website, adding VSync to the demos, but that stuff’s boring so I’m just going to show off the new demo! It might be the coolest one so far, but it was one of the easiest to make. I’m planning on shipping real soon though, just wanna add a few things to the website and readme!
Devlog #15: shipping! Super small devlog, just editing the website and the README and stuff like that, really want to ship now! It just took a while to add messages to all the different demos and I may have tried a little bit of engine stuff but it just didn’t work out.
Devlog #15: Rebuilding because why not A bit before shipping, I heard about another physics method called XPBD (extended position based dynamics) that’s a lot more powerful and flexible, and I decided, after I would ship, I would try to convert my engine to that. I kinda have to remake almost all of the physics stuff I already made, but I can recycle a lot of the older code, just making it fit the new framework, and being a lot more educated about physics simulation stuff than when I started this project, it wasn’t too hard to rewrite some new stuff. Right now I have ported over my ball pit thingy, not a lot to show that’s different from old devlogs, but hey, it’s the inside that counts, right?
Devlog #16 I migrated the XPBD stuff to 3D and moved all the demos to work with it as well, not much interesting to talk about though. Here’s a demo of it working though
Devlog #17 OpenGL integration I spend the last couple days integrating OpenGL rendering into a couple of the projects, meaning the graphics will be a lot better and rendered on the GPU instead of being rendered on the CPU, as well as speeding up the demos because even with the added visual complexity, the GPU is just so much faster at rendering! I made these changes of the main branch so that they would reflect on the website sooner, but git’s merge system is actually super good and it took no more than 15 minutes to merge the OpenGL rendering to the XPBD branch. I’ve only migrated over the cloth and fluid demos, but they’re the ones that needed it the most, and it’s not too hard to add it to more demos after I’ve had most of the OpenGL boilerplate implemented.
Devlog #18 Fluid simulation For a couple days I’ve been researching and trying to implement a PBF (position based fluid) fluid simulation, but there are barely any resources on the topic that I’ve been able to find, and the ones I have found are very math oriented with evil cryptic symbols that take a while to wrap my head around. The fluid simulation does work, but it’s much laggier, a lot finickier, and not a lot better (if at all better) than just chucking a couple thousand balls together and having them collide normally.
Devlog #19 Optimization and Interaction I’ve optimized the triangle collision code to use the spatial partitioning I implemented before for collisions. It goes through each triangle and checks what balls are in its bounding box with the collision grid, and completely skips any balls that aren’t close. This allows for about a thousand balls in a scene (at least on my computer), which is a lot better than the hundred or so you’d get with just bounding box checks and the tens or so you would get with a naive approach. Sadly, this change is only on the XPBD branch for now, meaning it won’t reflect on the website, but you’d still probably have to be spawning balls for a while for that to slow down, depending on the computer. I’ve also added far better interaction to the cloth, using some matrix multiplication and some raycast tests, you can now drag the cloth around with your mouse! This change was on the main branch too, so this is right on the website , right now! I did try to implement a system for having the cloth tear when it was under stress, but it would have required me to rework a lot of stuff and it didn’t quite work out. :(
Devlog #20 Another constraint, and another failed side project. Boundary constraint I added a constraint that I named a “boundary constraint”, that confines a particle to being on the specific side of a line e.g. making four lines around the edges of the screen and making sure the particle is on the side which is visible on screen. This is different from a wall because walls have two sides (and also zero thickness) which can cause a particle that’s going super fast to completely pass through to the other side of the wall in a single physics step, whereas with a boundary it will always snap it back to the correct side of the line. (If this was a bad explanation, I’m sorry). Failed lua integration I suppose the word ‘failed’ is a bit harsh in this scenario, I was just dipping my toes into integrating a little lua shell into the demos that would let you spawn particles and stuff programatically, but I decided it wasn’t worth it for small demos that aren’t meant to be super duper flexible anyway because they’re just meant to show off cool features the engine can do. throwing balls very quickly at the wall, which don’t clip through VVV
Devlog #21 MERGING I’ve been rewriting a lot of the physics engine for XPBD (eXtended Position Based Dynamics) since the last ship, but on a separate branch so that if I broke anything too bad it wouldn’t show up on the website, but today I finally merged the xpbd branch into main. Sadly, it is a fair bit slower than the previous verlet integration (at least for my simple demos), but it’s a far more flexible integration and constraint scheme and I think the tradeoff is worth it. (I am a bit disappointed with the performance on the website though, I swear it was faster before I merged it! It’s a lot faster natively!)
Devlog #22 (I just realized that I accidentally did two devlog #15s but it’s too late now) Getting ready for another ship I edited some constraints to be more stable, edited the website to be a bit more clear of where the controls are if your screen is too small to fit them, and had a NIGHTMARE fiddling with ffmpeg to try and replace the video on the README to not be too laggy or low quality but also not too big. I also tried to do some performance optimizations for phones, but I couldn’t figure it out. This is the mp4 version animated WebP that I eventually got ffmpeg to spit out. For some reason animated WebPs don’t work in devlogs.
Ships:
This is a position-based physics engine made all in C for portability and versatility. It had many challenging moments when making it, such as triangle collisions, spatial partitioning, performance optimization, and more, but I had a lot of fun building it, showing it off to my friends and family, and learning more about physics.
This is an updated version of my physics engine, using a new simulation method called XPBD! It was a bit challenging learning the basics of vector calculus, but it was worth it for the added flexibility of XPBD constraints and integration. I’m also really proud of getting OpenGL rendering working for some of the demos, because making an 3D renderer could be a project in and of itself! (Not this renderer though, it’s pretty barebones.) I’m especially happy with the cloth demo, with the best 3D rendering and (in my opinion) the best showcase of the engine’s features! (Also the least laggy of them all? I know why but it’s still kinda weird, being the most complex demo.) Writing it in C was a probably a bit harder than using a higher level language like C++, but being able to compile the entire project from source in less than two seconds on my machine was a big plus! I hope you enjoy playing with the physics demos! I worked really hard on this project!!...
|
1793130509.6334765
|
1793216909.6334765
|
|
70325
|
Kibo - Cutie Desktop Pet by @xtanmay_09 | Stardanc Kibo - Cutie Desktop Pet by @xtanmay_09 | Stardance...
|
xtanmay_09
|
0
|
1.11
|
0
|
[]
|
[{"post_id": 80803, "ts": "202 [{"post_id": 80803, "ts": "2026-10-18T20:37:32Z", "hours": 1.1106, "text": "KIbo’s finally moving😎 I set uped the Godot scene, imported Pokémon sprite “Pancham”, created walking and idle positions till now.. After lots of effort, finally got it moving across my lappy.. Next, I will improve the walking directions, add mouse dragging, and give the pet more interactive behaviors. (WORK IN PROGRESS ) Lessgoo…"}]...
|
Title: Kibo - Cutie Desktop Pet by @xtanmay_09 | S Title: Kibo - Cutie Desktop Pet by @xtanmay_09 | Stardance
Devlogs:
KIbo’s finally moving😎 I set uped the Godot scene, imported Pokémon sprite “Pancham”, created walking and idle positions till now.. After lots of effort, finally got it moving across my lappy.. Next, I will improve the walking directions, add mouse dragging, and give the pet more interactive behaviors. (WORK IN PROGRESS ) Lessgoo…...
|
1792993979.4069664
|
1793598779.4069664
|
|
46051
|
Tic-Tac-Cube by @EthanCubes | Stardance
|
EthanCubes
|
1
|
145.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-18T21:33:24Z", "hours": 145.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a tic-tac-cube game where you can rotate the board like a Rubik’s cube! It was made in C++ with Raylib without a game engine, and only uses 2 libraries, Raylib, and Nlohmann-JSON. I’m really proud of the way I coded the entire GUI, buttons, board, and bot. Features Tic-Tac-Toe game on a Rubik’s cube Singleplayer mode against computer Local multiplayer against another player (or yourself) Main menu & help page. I coded the bot to be somewhat intelligent, and will actively try to block your attacks and create it’s own ones. It can turn the cube just like you, and will rotate the cube to get out of a pickle. This is my first C++ project, and my first experience with languages that have to be compiled before running. It was honestly really fun to make. I put a LOT of effort into this game, over 140 hours.", "repo": "https://github.com/EthanCubes/tic-tac-cube", "demo": "https://ethancubes.itch.io/tic-tac-cube"}]...
|
[{"post_id": 80806, "ts": "202 [{"post_id": 80806, "ts": "2026-10-18T20:46:55Z", "hours": 0.6053, "text": "Final Devlog Before Ship I’m done stalling. Every time I’ve shipped a project for Stardance, I’ve stalled for like a week trying to make sure it’s good enough. This time, I’ve stalled for more than a month. I’ve even shipped 2 separate projects to different Hack Club events in the time that this project has technically been “good enough”. Essentially, I just worked on the README a bit more. I did manage to fix a few errors. For example, I had a few spelling and grammar errors. I also added a bit more detail to the readme."}, {"post_id": 77976, "ts": "2026-10-09T02:51:47Z", "hours": 1.4722, "text": "Devlog #38 (25c796f): the beans aren’t going to know what hit them (regarding my 145 hours waiting to be shipped) I made a couple of changes, such as improving the readme and disabling the exit button, greying it out and making so that it can’t be pressed. For context, the game can only run on the web, and the exit button just doesn’t do anything useful on the web. I also customized the itch.io page (which hasn’t been released yet but you can access it here via secret url). It looks kinda decent (i just copied the game’s color scheme)"}, {"post_id": 76564, "ts": "2026-10-03T23:45:12Z", "hours": 2.1303, "text": "Devlog #37 (8b55316): I made a web build for the game! I took a break from Stardance to make something for Out to C, and when I was making a C game with Raylib I discovered that it is extremely hard to make a downloadable executable run well on Windows or MacOS, because on Windows you have to include DLL files, and on MacOS it’s just harder to install Raylib. In the end, I ended up making a web build, and since I wasn’t so bad, I decided to make a web build for this. I used Emscripten, and using the em++ tool with the asyncify option, manage to get most of the game logic working, with only one small frame generation bug, which I fixed by changing this_thread::sleep for to something that is easier for the browser to render. I also made some other QoL changes so that the bot feels less stagnant, hopefully."}, {"post_id": 71599, "ts": "2026-09-21T03:57:04Z", "hours": 2.0317, "text": "Devlog #36 (fcc4f2f): I made the first gameplay change in a while, and also changed the theming a bit more. The gameplay changes I noticed that the game was getting a bit… repetitive, so I changed the bot to have an element of randomness when there are multiple spots that provide similar advantage. This took me a long time, because my code is spaghetti, and also because random in JavaScript is so much better than in C++ The visual changes I changed the theming of the game because I didn’t think the discord-esque style looked very good. Now, it’s changed to match the “Arch” theme on Monkeytype. I also changed the font to Roboto Mono since that’s what my configuration of Monkeytype uses. Stuff to do Compile this for Windows and Mac, put this on Itch.io. Ship the project"}, {"post_id": 70648, "ts": "2026-09-19T14:52:27Z", "hours": 0.4536, "text": "Devlog #35 (b48efd0): I fixed most of the font scaling issues, and also updated the README at bit (as always). I did this by loading the same font 3 times, once at 20 font size, once at 40, and once at 80. I changed the code to use a either the 20, 40, or 80 version of the font according to the font size to make the text look smoother."}, {"post_id": 69944, "ts": "2026-09-18T03:21:41Z", "hours": 2.6569, "text": "Devlog #34 (4eec49b): I changed the font! And also updated the README. Fonts in raylib are REALLY hard. Since I’m using multiple different font sizes, the scaling is really screwed up and blurry sometimes. When I was trying to add the custom font, I may or may not have… lagged out my computer and had to restart. as for the readme upgrade, i added instructions to play i also removed some semicolons. took me like half and hour"}, {"post_id": 67849, "ts": "2026-09-14T03:57:37Z", "hours": 1.2122, "text": "Devlog #33 (d16d3b8): This time was used for trying to make the project work for webassembly, which i have decided to abandon. Therefore, this time should probably be deflated to account for the lack of progress. I probably picked the worst language for compiling for the web, and next time I want to make a web version of anything, I’m going to use a game engine. This just did not work out, and was too much effort to save maybe ~2 seconds of time. I’m sorry that this will cause any reviewers to have to download the game to play it, and to compensate I will be attaching a link to a YouTube video demoing the game either on the readme, on the itch.io page, or both. I feel like a failure for this, but maybe it’s the right choice for my mental health and academic… idk is health also the right word for this situation?"}, {"post_id": 67685, "ts": "2026-09-13T21:11:46Z", "hours": 2.8528, "text": "Devlog #32 (ca5f14e): I changed the theming yet again. I’m not really good at making programs look good, and even when I do, my designs are usually really basic. Yes, it’s inspired by discord. Please tell me how this looks in the comments, I really need feedback. I also finally added a little change in color to some of the buttons when selected, which was the entire reason I decided to rework buttons in the first place. I’ll also attach a beta design that’s more of a retro/terminal aesthetic, but contrasted too much with the cube and letters IMO"}, {"post_id": 66298, "ts": "2026-09-12T01:53:47Z", "hours": 1.1728, "text": "Devlog #31 (6639676): I fixed the code! Essentially, the code was breaking because the hover info for the code was undefined. I fixed it by setting the hover info to the regular button info if the hover info was not defined. Then I ran into another issue, which was that the buttons, upon hover, were being drawn from the center instead of the corner. It was a simple enough fix, I just changed like 2 values to use the calibrated values instead of the center coordinates. And yeah, the only real issue right now is that the text on the board is slightly offcentre, but that’s not really a big issue."}, {"post_id": 65739, "ts": "2026-09-11T02:41:43Z", "hours": 7.9714, "text": "Devlog #30 (b5f8085): The code is now compiling again, thanks to, as much as I hate to admit it, Visual Studio Code. I’m on Linux so I can’t use Visual Studio, CLion is kinda weird and the error messages are broken, and KDevelop doesn’t have a Wakatime/Hackatime plugin yet (maybe it does, but it isn’t in the Hackatime docs) I opened VSCode and was met with like a hundred errors. With a combination of VSCode’s functional error messages, DeepSeek telling me what those messages mean, and my pretty average brain, I managed to remove all the errors. But since I didn’t know how to use makefiles and stuff (still don’t ) I had to compile the program manually again. Apart from the fact that it crashes upon any user mouse input, it’s functional!"}, {"post_id": 63870, "ts": "2026-09-07T21:22:41Z", "hours": 0.4178, "text": "Devlog #29 (57bac36): Guess what I did: a: Made my code work again b: Add new features c: Complete the button rice d: Look up the GitHub Repo for DeepSeek because I got bored and discover how to add badges to my README. I had way to much fun doing this (it was d)"}, {"post_id": 63786, "ts": "2026-09-07T19:01:29Z", "hours": 9.4011, "text": "Devlog #28 (ac77900): I added an entire separate .cpp file for handling buttons because I wasn’t satisfied with how they were working (I love ricing). Yes, it did take 9 hours. I have a skill issue. There are 3 main things I improved on: The buttons are now more customizable, as they now accept JSON files as setup input instead of like only 4 parameters. A function was added to change the button upon hover It’s more organized since the files are separate. (I haven’t actually tested the code out yet, I feel pressured to get the devlog out ASAP)"}, {"post_id": 60009, "ts": "2026-09-02T03:12:55Z", "hours": 1.3197, "text": "Devlog #27 (a1b005f): I highkey have trouble keeping track of what I did between devlogs sometimes, so I’m adding the SHA of the Git commit to devlogs. So I tried to create a dedicated c++ file for handling buttons, since I wanted to have even more control over them, but ran into the issue of not having a way to share variables across different files. I know global variables are kinda bad, but I mean in this scenario they’re like config stuff that isn’t really going to be that harmful… Most of the time was spent creating the button.cpp and button.h files, and they’re not even in GitHub yet lol"}, {"post_id": 59291, "ts": "2026-09-01T00:20:03Z", "hours": 0.7611, "text": "Devlog #26: Pretty short devlog. I added some simple QoL changes: the main menu title is now centered, and the popup and some captions now have a margin around them so they aren’t stuck right on the edge. Also this was technically done a couple of devlogs ago, but I added shell scripts to compile and run the program so I don’t have to type g++ -std=c++17 -Wall -Wextra -Werror -pedantic -o build/tic-tac-cube src/main.cpp src/board.cpp src/bot.cpp src/logs.cpp -lraylib every single time I want to compile the program."}, {"post_id": 58538, "ts": "2026-08-30T23:41:22Z", "hours": 7.5928, "text": "Devlog #25: I tried to make the UI look good. It isn’t necessarily good, but it’s better than it used to be IMO. I just changed the color scheme, and now the text is round and the boxes are rounded. I also reworked the board position display system. Since the squares are just buttons, and the button class can display text, I just made the board display text by itself. For context I wrote the button class to draw and handle buttons. There might be a class for this or something but idc i just wrote it myself like 17 days ago."}, {"post_id": 57061, "ts": "2026-08-29T04:32:35Z", "hours": 7.4608, "text": "(How is it) Devlog #24 (Already): Lowkey, when I started this project I was expecting to take 1 week max, and it was supposed to be like practice for making a more advanced project. I’ve since decided to not make the more advanced project (for now). Now, it’s been more than 2 weeks since I’ve started it, and it’s still in rough shape and probably not ready for release. The UI still sucks, but I added like a popup system for displaying messages, such as telling the user why they won/lost without the win being visible due to the nature of the board being a cube. I was going to make a class to handle all the popups, but I settled for global variables and functions. Probably not the best practice, but it works, and if it ain’t broke don’t fix it. I also added a entire new menu, the help menu. It could probably use some improvements, so if you have anything you’re curious about or confused about, drop a comment. There’s like 8 people that have seen this project, so I’m really expecting anything, but it would be appreciated greatly. I lowkey forgot to add one break statement, so I spent like 30 minutes trying to figure out why it wasn’t working Still, how the hell did this take 7 hours? I swear I’m not inflating my time by any means."}, {"post_id": 56171, "ts": "2026-08-27T20:08:34Z", "hours": 2.4689, "text": "Devlog #23: “Minor” improvements that take like hours to do is literally my entire C++ learning experience so far. This time, I improved the “wild card” function that rotates the cube randomly. Before, it just actually rotated randomly, and now, I changed it to check and make sure that moves it makes does not cause the opponent to win on the very next move. fyi i DO write these devlogs myself without ai, I just literally need Vim keybinds to function as a person and therefore type all the devlogs inside of NeoVim before pasting them into the devlog. felt like writing this after i discovered that the “please write this yourself, humans read it” text at the bottom actually flashes red when you paste text."}, {"post_id": 55363, "ts": "2026-08-27T04:29:07Z", "hours": 3.4486, "text": "Devlog #22: I made the buttons look nicer by centering the text inside of them. It was much harder than it looked and I had to work with “Vector2” in Raylib. I may or may not have spent like half and hour trying to find documentation on it, only for me to discover that it’s a struct inside of Raylib. Still not entirely sure what a struct is. So I may or may not have spent another half and hour trying to declare the struct inside of the main.cpp file, before I finally gave up and asked DeepSeek. Turns out, it’s just Vector2 something{(float)x, (float)y} . It’s not exactly simple if you don’t have much experience with C++, but I started coding in C++ 16 days ago and I understand it just fine. Halfway through, while testing, I accidentally overrode the main file and had to restore it and re-add all the changes I make. I don’t like committing before the program doesn’t have that many bugs, so a lot of progress was lost. This is like the second time I’ve done this, and if you’re curious what I did, well… The command used to compile my program for testing is g++ -std=c++17 -o build/program src/main.cpp src/board.cpp src/bot.cpp src/logs.cpp -lrayib . This compiles the code for all the C++ files and the Raylib library, and creates and executable inside the build/ directory. Except I forgot to type build/program, and so GCC just overrode main.cpp. Honestly though, it didn’t do that much harm, thanks to the test.cpp file having a similar version of code as the code that was overridden, and also git. hackatime isn’t working so i can’t even post this devlog nvm it just worked nvm it broke again honestly this is one of the first times anything has broken in my experience as someone who joined hack club like 3 months ago. im sure everyone involved in fixing this is trying their absolute best."}, {"post_id": 55210, "ts": "2026-08-26T19:20:18Z", "hours": 2.4914, "text": "Devlog #21: I am very very very very bad at debugging code. Somehow I managed to fix the major rendering bug and also make the fork handling better within 2 hours. I don’t believe I’ve mentioned anything about it before, but there was a rendering glitch upon the bot winning the game right after the user has made a cube turn that allowed the bot to win the game. I’m still not sure wy that happened, but I fixed it by re-rendering the entire board before drawing the board position again. If that didn’t make sense to you, it doesn’t make much sense to me either. If it did, well good for you ig. I feel like the fork handling deserves and entire paragraph, so here: I changed the win blocking function to also log the direction that potential win is in, by logging “position 1” of that specific potential win. The possible neutralizing moves of the directional indicator value is then compared against the potential win location neutralizing move to try to find a match. If a match is found, that means that the move is guaranteed to neutralize the given threat. That paragraph did not make much sense, even to me. If you read my code, it’ll probably make more sense, as long as you do not get permanent brain damage from reading the it (I need to learn how to write better code)"}, {"post_id": 54902, "ts": "2026-08-26T03:54:05Z", "hours": 9.4122, "text": "Devlog #20: I abandoned searching for potential forks and stopping them from ever forming in favour of handling forks that have already been formed. After more than one win for the opponent is detected, the bot registers that it is a fork. It then calculates which moves are best to neutralize the threat. There are four ways for each single win to be neutralized, so I need to make one of these four moves, for each of the two cases. In some cases, one or more of the moves overlap, in which case the overlapped move will be immediately returned, but most of the time, the bot just picks from one of the 8 possible neutralization moves randomly. This is definitely less efficient than just figuring out how to prevent forks from ever forming, but I mean it’s a good implementation for the cube part of this game. (Sometimes it messes up and I just win instantly)"}, {"post_id": 54048, "ts": "2026-08-24T20:12:14Z", "hours": 5.1683, "text": "Devlog #19: In an effort to procrastinate fixing the bot fork bug while still doing something useful, I 1) took a 2 day break from this project to work (and ship) something else, and 2) fixed a very annoying bug where the user would be X every single time. I solved the issue by switching from older, more C-like rand() from cstdlib to the more modern #include <random> . I highkey copied the code from Stack Overflow , but at least it’s better than relying on AI. That solved like half of the problem, but then I discovered that I wasn’t actually resetting the board properly when manually exiting a game, since I was looking through the logs. I made the logs are procrastination, but they’re actually really nice. In case you were wondering btw, most of the time logged in this devlog was spent on trying to fix the fork bug, but I’ll make a dedicated devlog only when I’ve actually fixed the bug."}, {"post_id": 52065, "ts": "2026-08-22T03:58:57Z", "hours": 3.9525, "text": "Devlog #18: I worked on the logs even more, and now they are in separate files. You wouldn’t believe the amount of time this took me. Evidently, I’m not a very good C++ dev, and when I was searching on Stack Overflow and other sites, I kept running into things I don’t understand like & , auto , and probably many others. So of course, I resorted to coding my own functions at the most low level C++ possible without actually being totally backwards compatible with C. Essentially, every time the game starts, function runs that tries to generate a log file with the current time. There is a theoretically possible edge case where the user opens the project more than once in a single second, so I added some code to make absolute sure not to override any existing files. That took me like at least 15 minutes to half and hour, for an edge case that probably can only happen in testing, and that will not actually affect the game at all. Yay, what great decision making skills. I still haven’t fixed the fork detection and response function, but at least I can now have a way to find out what is going wrong. The only progress with finding out what is wrong is just narrowing the error location down to the function where I already knew there was going to be an error. Yay."}, {"post_id": 51891, "ts": "2026-08-21T19:50:23Z", "hours": 2.0631, "text": "Devlog #17: Guess what I did today: a) fixed the fork, b) optimized UI, c) hunted bugs, or d) added a random new c++ file for the sole purpose of logging information because I don’t want to use an IDE or configure NeoVim. The answer, of course, is D. I really need a way to figure out what is happening inside my code. Even though I wrote the code, it’s still kinda a black box to me, so I need to have some logs to figure out why the program is not working as expected. I have yet to actually implement the function or add out a way to have different logs files for different sessions though, I’m doing that next."}, {"post_id": 51427, "ts": "2026-08-21T03:58:41Z", "hours": 8.3636, "text": "Devlog #16: I added creating and defending against forks. One of my previous projects, Gomoku Balanced, had some decent defense and offense, which was even able to beat some people, according to the reviews on my ship. The one thing it was missing was the ability to detect potential forks and combat them, which was why I was able to beat it almost every single time. This bot, however, will not be the same. Mostly because the board is kinda small. I literally just added every single possibility of a fork to the to the bot. I just got notified that I have like 8 hours without a devlog, and since I am horrible at coding, the bot function I’m working on isn’t even working yet. I’m also just not getting it done within 2 hours. The function is supposed to block the fork, but it doesn’t work for some reason. DeepSeek (AI) gave me a list of 20 reasons it’s breaking, but I’m not about to blindly trust AI. I mean it doesn’t raise any errors, so that’s good. For me at least, I spend a lot of time just trying to get the code to compile properly. And in this case, even when the code compiles, half the time it just runs into a runtime error and crashes. The bot crashed like 20 times. They were all runtime errors, and I use C++, so I have absolutely no idea where the error occurs. Also, I want to be different, and therefore I use NeoVim, and since I don’t want to spend time that I could be building actually good projects for Stardance in the time it takes to configure NeoVim, and therefore I can’t see any warnings or errors. I did try using CLion and VSCode, but CLion takes up a lot of RAM and VSCode is made by Microsoft (and VSCodium and Code OSS don’t have that many plugins). Also, when I was using CLion, the errors didn’t really appear… and CLion also does a bunch of stuff and creates a bunch of mysterious files. I don’t really like doing stuff without knowing what they do, so I just ditched CLion altogether. Did I seriously go on a paragraph-long rant about how using NeoVim leads to not being able to know why my code sucks? Is the paragraph-long rant in question also probably longer than the entire rest of the devlog? (Yes and yes); Anyway you still can’t tell that I made any changes to the bot from a single screenshot, so I’m just going to attach one of my old ones."}, {"post_id": 50705, "ts": "2026-08-20T01:11:16Z", "hours": 2.1453, "text": "Devlog #15: I updated the bot to give it two of the most important features: winning the game, and trying to prevent your opponent from winning. This was done by saving every single possible way to have a two-in-a-row on the board, connected and disconnected, 24 possible combinations in total. And of course, because I’m not experienced enough to do it any other way, it was all written by hand. And since I don’t like using AI, and don’t really trust it, I wrote all of it myself, and used only used AI to check that I didn’t mess something up. Now how the hell do I make it detect forks…."}, {"post_id": 50618, "ts": "2026-08-19T20:57:50Z", "hours": 6.43, "text": "Devlog #14: In search of a better way to make a bot, I went on the world’s most reliable website: Wikipedia - and struck gold. The page on tic-tac-toe contains a strategy section, containing the optimal strategy that always leads to a draw. Of course, my game isn’t actually the same as Vanilla tic-tac-toe, so the player will probably still win most of the time. I haven’t actually implemented most of the rules, only the last few that are the least important. In my defense, they were the easiest to make. I did kinda struggle with the bot trying to mark a place that already has been placed, and it took like half and hour for me to figure that out. IDK what I should do for the screenshot, you can’t really tell that I changed anything."}, {"post_id": 49910, "ts": "2026-08-18T21:29:42Z", "hours": 6.7939, "text": "Devlog 13: I spent like 6 hours making the bot, and it’s absolutely stupid. I made two ways to get a move: scanning for 2-in-a-rows, and placing randomly. Even though the 2-in-a-row scan runs first, it still only plays randomly. As of right now, the bot has never won a single game against me and is always O for some reason. I probably messed up the setup code. but at least i made something that are somewhat functional….. (I was writing this devlog and trying to get a screenshot of the game, and somehow it actually worked and blocked my move somehow, IDK if it was a coincidence)"}, {"post_id": 49267, "ts": "2026-08-17T23:33:01Z", "hours": 2.055, "text": "Devlog #12: So I was going to implement the singleplayer mode, but turns out there was still a bunch of bugs and inconveniences that took me upwards of an hour to fix. Also, I lowkey put a break statement somewhere I shouldn’t have, and got the programming equivalent of a short-circuit. In the end, it did work fine, and now I actually will build the bot and singleplayer mode."}, {"post_id": 49122, "ts": "2026-08-17T19:10:00Z", "hours": 7.9347, "text": "Devlog #11: I was going to make a singleplayer mode for the game, but somewhere along the way I kinda messed my code up a lot, and had to undo nearly 6 hours of changes since the last devlog. I then spent like an hour fixing bugs and trying to organize code, mostly by moving code that could/should be reused. I’m going to start writing more functional code for singleplayer now :) Also I switched from Vim to NeoVim in case you care, and since not a lot of changes were actually implemented, Imma just attach a screenshot of a file opened in NVim"}, {"post_id": 48239, "ts": "2026-08-16T15:21:39Z", "hours": 1.3433, "text": "Devlog #10: I added an endscreen to the game. Before, when you won the game or lost the game, it would just go back to the main menu. Now, it displays a message according to which side won the game, and pauses for exactly one seconds before exiting back to the main menu. It probably still can be confusing since there’s no indication of where in the board the sequence that won the game is, and there is still a possibility that a cube rotation wins the game off the board, and I have no idea how to make more clear to the user what happened to win the game."}, {"post_id": 47846, "ts": "2026-08-16T02:15:52Z", "hours": 2.4331, "text": "Devlog #9: I added colors to the game. Colors are a crucial part in Rubik’s cubes, so it just makes sense to add it to this game, yknow. I basically just copied the code that rotates the board positions that I had to spend like 6 hours coding , and made it work with colors. Not actually that hard, but still almost made me go insane with how much mindless typing I had to do. It’s funny that when I am stuggling with things like using my brain and fixing broken code , I would like nothing more than some mindless coding, but now that I actually am doing this stuff, I am just wanting to do anything but. UI still looks ugly as hell, need to improve that later."}, {"post_id": 47741, "ts": "2026-08-15T21:13:06Z", "hours": 2.4297, "text": "Devlog 8: You can finally actually interact with the GUI. You can click the red squares to place an X or an O, or click on one of the white squares to rotate the cube. It’s kinda bad right now, and if you click one of the cube rotation things longer than 33 milliseconds, it will move several times. I mean, it’s good enough, I guess, apart from the fact that it looks… (I don’t know enough english to come up with a word that’s good enough, and my english grade in school is 95%)"}, {"post_id": 47618, "ts": "2026-08-15T16:56:17Z", "hours": 6.0747, "text": "Devlog #7: I got the GUI working for the game. I mean, technically, to be a GUI you have to be able to interact with it, and in it’s current state, uh you can’t really do anything and you’re just stuck there forever. I mean unless you decide to close the game window or press escape (which closes the game window). Ideally, I would like for the escape key to not close the window, but whatever at this stage it really does not matter. List of stuff I need to do: Make it so that the user can actually interact with the game. Make a bot or something Make the UI nicer Put in on Itch.io this actually looks kinda intimidating. what have i gotten myself in to"}, {"post_id": 46675, "ts": "2026-08-14T03:38:13Z", "hours": 4.9258, "text": "Devlog #6: I got a working GUI for the main menu! This is my first GUI that is actually like usable, but since the actual gameplay doesn’t have a GUI yet, it does nothing except closing when the exit button is pressed. I made the UI with Raylib, and apart from the occasional existential crisis, everything went pretty well. now how the hell do i make the actual game ui"}, {"post_id": 46051, "ts": "2026-08-12T23:59:49Z", "hours": 2.4667, "text": "Devlog #5: I added a main menu to the game. It’s still only Text UI, so it may not make sense why it took so long, but I moved all the functions inside a class, make a header file so that the class can be accessed in other C++ files, discovered that it doesn’t work, had an hour long conversation with deepseek about why this didn’t work, and finally got it working- just to implement one feature that would’ve taken like 5 minutes had I just made everything in one file. At least it’s going to be organized for when I add the GUI or other features."}, {"post_id": 45916, "ts": "2026-08-12T18:06:02Z", "hours": 3.4297, "text": "Devlog #4: You can now actually win the game! I wrote a function that scans all the possible ways to win on every face, with amounts to 6x8=48 possible combinations. So there’s a chance that you rotate a face of the cube, and win or lose instantly due to the face you rotated to already having like 2 in a row. Now, I just need to make the GUI, not sure how I’m even going to implement it. I know 2 of the options are Raylib and SDL2, but I honestly have no idea which one to pick."}, {"post_id": 44963, "ts": "2026-08-11T02:19:30Z", "hours": 3.5108, "text": "Devlog #3: I made the cube turning mechanic. Although I have made programs like this before (like my CubeTrainer ), I struggled a lot with making the code, especially the Z function, and the two functions that depend on it, L and R. This was entirely human error and typos though, and not really like intellectually challenging. So I added the ability to turn the cube finally. Most of the main features of the game are done now, I just need a GUI, main menu, bot, and… lowkey ran out of ideas so yeah. To be very honest, my experiences with GUIs in C++ is limited to drawing a single dot in sdl2, and that took me 3 hours to do. And I lowkey cannot find any tutorials on SDL2 that can satisfy my attention span. I am very much someone that learns by doing, and most SDL2 tutorials I found just tell me to copy and paste code word for word."}, {"post_id": 44443, "ts": "2026-08-10T06:12:06Z", "hours": 3.8533, "text": "Devlog #2: This is like my 3rd day of serious C++ coding, and I’ve already build a functional version of tic-tac-toe. That wasn’t really supposed to be impressive, but I am kinda surprised I managed to pull this off so quickly (by my standards, for context it took me like 3 year to make an actually decent Python project). So yeah, I made tic-tac-toe. So far it only works in the terminal as I have no idea how to make a functional GUI in C++. There are also safeguards in place to prevent placing where it’s already marked or out of bounds. I still need to implement rotating the cube, but that can’t be that hard…."}, {"post_id": 44282, "ts": "2026-08-09T22:49:28Z", "hours": 2.3694, "text": "Devlog #1: I suck at C++, so I decided to make tic-tac-toe on the different faces on a Rubik’s cube. Right now the program just prints out the default position (all blank), and you can’t change it or anything. Yes, this took me two hours. There were a lot of bugs and I have almost never used C++ before (I had to google how to output text like twice)"}]...
|
Title: Tic-Tac-Cube by @EthanCubes | Stardance
De Title: Tic-Tac-Cube by @EthanCubes | Stardance
Devlogs:
Devlog #1: I suck at C++, so I decided to make tic-tac-toe on the different faces on a Rubik’s cube. Right now the program just prints out the default position (all blank), and you can’t change it or anything. Yes, this took me two hours. There were a lot of bugs and I have almost never used C++ before (I had to google how to output text like twice)
Devlog #2: This is like my 3rd day of serious C++ coding, and I’ve already build a functional version of tic-tac-toe. That wasn’t really supposed to be impressive, but I am kinda surprised I managed to pull this off so quickly (by my standards, for context it took me like 3 year to make an actually decent Python project). So yeah, I made tic-tac-toe. So far it only works in the terminal as I have no idea how to make a functional GUI in C++. There are also safeguards in place to prevent placing where it’s already marked or out of bounds. I still need to implement rotating the cube, but that can’t be that hard….
Devlog #3: I made the cube turning mechanic. Although I have made programs like this before (like my CubeTrainer ), I struggled a lot with making the code, especially the Z function, and the two functions that depend on it, L and R. This was entirely human error and typos though, and not really like intellectually challenging. So I added the ability to turn the cube finally. Most of the main features of the game are done now, I just need a GUI, main menu, bot, and… lowkey ran out of ideas so yeah. To be very honest, my experiences with GUIs in C++ is limited to drawing a single dot in sdl2, and that took me 3 hours to do. And I lowkey cannot find any tutorials on SDL2 that can satisfy my attention span. I am very much someone that learns by doing, and most SDL2 tutorials I found just tell me to copy and paste code word for word.
Devlog #4: You can now actually win the game! I wrote a function that scans all the possible ways to win on every face, with amounts to 6x8=48 possible combinations. So there’s a chance that you rotate a face of the cube, and win or lose instantly due to the face you rotated to already having like 2 in a row. Now, I just need to make the GUI, not sure how I’m even going to implement it. I know 2 of the options are Raylib and SDL2, but I honestly have no idea which one to pick.
Devlog #5: I added a main menu to the game. It’s still only Text UI, so it may not make sense why it took so long, but I moved all the functions inside a class, make a header file so that the class can be accessed in other C++ files, discovered that it doesn’t work, had an hour long conversation with deepseek about why this didn’t work, and finally got it working- just to implement one feature that would’ve taken like 5 minutes had I just made everything in one file. At least it’s going to be organized for when I add the GUI or other features.
Devlog #6: I got a working GUI for the main menu! This is my first GUI that is actually like usable, but since the actual gameplay doesn’t have a GUI yet, it does nothing except closing when the exit button is pressed. I made the UI with Raylib, and apart from the occasional existential crisis, everything went pretty well. now how the hell do i make the actual game ui
Devlog #7: I got the GUI working for the game. I mean, technically, to be a GUI you have to be able to interact with it, and in it’s current state, uh you can’t really do anything and you’re just stuck there forever. I mean unless you decide to close the game window or press escape (which closes the game window). Ideally, I would like for the escape key to not close the window, but whatever at this stage it really does not matter. List of stuff I need to do: Make it so that the user can actually interact with the game. Make a bot or something Make the UI nicer Put in on Itch.io this actually looks kinda intimidating. what have i gotten myself in to
Devlog 8: You can finally actually interact with the GUI. You can click the red squares to place an X or an O, or click on one of the white squares to rotate the cube. It’s kinda bad right now, and if you click one of the cube rotation things longer than 33 milliseconds, it will move several times. I mean, it’s good enough, I guess, apart from the fact that it looks… (I don’t know enough english to come up with a word that’s good enough, and my english grade in school is 95%)
Devlog #9: I added colors to the game. Colors are a crucial part in Rubik’s cubes, so it just makes sense to add it to this game, yknow. I basically just copied the code that rotates the board positions that I had to spend like 6 hours coding , and made it work with colors. Not actually that hard, but still almost made me go insane with how much mindless typing I had to do. It’s funny that when I am stuggling with things like using my brain and fixing broken code , I would like nothing more than some mindless coding, but now that I actually am doing this stuff, I am just wanting to do anything but. UI still looks ugly as hell, need to improve that later.
Devlog #10: I added an endscreen to the game. Before, when you won the game or lost the game, it would just go back to the main menu. Now, it displays a message according to which side won the game, and pauses for exactly one seconds before exiting back to the main menu. It probably still can be confusing since there’s no indication of where in the board the sequence that won the game is, and there is still a possibility that a cube rotation wins the game off the board, and I have no idea how to make more clear to the user what happened to win the game.
Devlog #11: I was going to make a singleplayer mode for the game, but somewhere along the way I kinda messed my code up a lot, and had to undo nearly 6 hours of changes since the last devlog. I then spent like an hour fixing bugs and trying to organize code, mostly by moving code that could/should be reused. I’m going to start writing more functional code for singleplayer now :) Also I switched from Vim to NeoVim in case you care, and since not a lot of changes were actually implemented, Imma just attach a screenshot of a file opened in NVim
Devlog #12: So I was going to implement the singleplayer mode, but turns out there was still a bunch of bugs and inconveniences that took me upwards of an hour to fix. Also, I lowkey put a break statement somewhere I shouldn’t have, and got the programming equivalent of a short-circuit. In the end, it did work fine, and now I actually will build the bot and singleplayer mode.
Devlog 13: I spent like 6 hours making the bot, and it’s absolutely stupid. I made two ways to get a move: scanning for 2-in-a-rows, and placing randomly. Even though the 2-in-a-row scan runs first, it still only plays randomly. As of right now, the bot has never won a single game against me and is always O for some reason. I probably messed up the setup code. but at least i made something that are somewhat functional….. (I was writing this devlog and trying to get a screenshot of the game, and somehow it actually worked and blocked my move somehow, IDK if it was a coincidence)
Devlog #14: In search of a better way to make a bot, I went on the world’s most reliable website: Wikipedia - and struck gold. The page on tic-tac-toe contains a strategy section, containing the optimal strategy that always leads to a draw. Of course, my game isn’t actually the same as Vanilla tic-tac-toe, so the player will probably still win most of the time. I haven’t actually implemented most of the rules, only the last few that are the least important. In my defense, they were the easiest to make. I did kinda struggle with the bot trying to mark a place that already has been placed, and it took like half and hour for me to figure that out. IDK what I should do for the screenshot, you can’t really tell that I changed anything.
Devlog #15: I updated the bot to give it two of the most important features: winning the game, and trying to prevent your opponent from winning. This was done by saving every single possible way to have a two-in-a-row on the board, connected and disconnected, 24 possible combinations in total. And of course, because I’m not experienced enough to do it any other way, it was all written by hand. And since I don’t like using AI, and don’t really trust it, I wrote all of it myself, and used only used AI to check that I didn’t mess something up. Now how the hell do I make it detect forks….
Devlog #16: I added creating and defending against forks. One of my previous projects, Gomoku Balanced, had some decent defense and offense, which was even able to beat some people, according to the reviews on my ship. The one thing it was missing was the ability to detect potential forks and combat them, which was why I was able to beat it almost every single time. This bot, however, will not be the same. Mostly because the board is kinda small. I literally just added every single possibility of a fork to the to the bot. I just got notified that I have like 8 hours without a devlog, and since I am horrible at coding, the bot function I’m working on isn’t even working yet. I’m also just not getting it done within 2 hours. The function is supposed to block the fork, but it doesn’t work for some reason. DeepSeek (AI) gave me a list of 20 reasons it’s breaking, but I’m not about to blindly trust AI. I mean it doesn’t raise any errors, so that’s good. For me at least, I spend a lot of time just trying to get the code to compile properly. And in this case, even when the code compiles, half the time it just runs into a runtime error and crashes. The bot crashed like 20 times. They were all runtime errors, and I use C++, so I have absolutely no idea where the error occurs. Also, I want to be different, and therefore I use NeoVim, and since I don’t want to spend time that I could be building actually good projects for Stardance in the time it takes to configure NeoVim, and therefore I can’t see any warnings or errors. I did try using CLion and VSCode, but CLion takes up a lot of RAM and VSCode is made by Microsoft (and VSCodium and Code OSS don’t have that many plugins). Also, when I was using CLion, the errors didn’t really appear… and CLion also does a bunch of stuff and creates a bunch of mysterious files. I don’t really like doing stuff without knowing what they do, so I just ditched CLion altogether. Did I seriously go on a paragraph-long rant about how using NeoVim leads to not being able to know why my code sucks? Is the paragraph-long rant in question also probably longer than the entire rest of the devlog? (Yes and yes); Anyway you still can’t tell that I made any changes to the bot from a single screenshot, so I’m just going to attach one of my old ones.
Devlog #17: Guess what I did today: a) fixed the fork, b) optimized UI, c) hunted bugs, or d) added a random new c++ file for the sole purpose of logging information because I don’t want to use an IDE or configure NeoVim. The answer, of course, is D. I really need a way to figure out what is happening inside my code. Even though I wrote the code, it’s still kinda a black box to me, so I need to have some logs to figure out why the program is not working as expected. I have yet to actually implement the function or add out a way to have different logs files for different sessions though, I’m doing that next.
Devlog #18: I worked on the logs even more, and now they are in separate files. You wouldn’t believe the amount of time this took me. Evidently, I’m not a very good C++ dev, and when I was searching on Stack Overflow and other sites, I kept running into things I don’t understand like & , auto , and probably many others. So of course, I resorted to coding my own functions at the most low level C++ possible without actually being totally backwards compatible with C. Essentially, every time the game starts, function runs that tries to generate a log file with the current time. There is a theoretically possible edge case where the user opens the project more than once in a single second, so I added some code to make absolute sure not to override any existing files. That took me like at least 15 minutes to half and hour, for an edge case that probably can only happen in testing, and that will not actually affect the game at all. Yay, what great decision making skills. I still haven’t fixed the fork detection and response function, but at least I can now have a way to find out what is going wrong. The only progress with finding out what is wrong is just narrowing the error location down to the function where I already knew there was going to be an error. Yay.
Devlog #19: In an effort to procrastinate fixing the bot fork bug while still doing something useful, I 1) took a 2 day break from this project to work (and ship) something else, and 2) fixed a very annoying bug where the user would be X every single time. I solved the issue by switching from older, more C-like rand() from cstdlib to the more modern #include <random> . I highkey copied the code from Stack Overflow , but at least it’s better than relying on AI. That solved like half of the problem, but then I discovered that I wasn’t actually resetting the board properly when manually exiting a game, since I was looking through the logs. I made the logs are procrastination, but they’re actually really nice. In case you were wondering btw, most of the time logged in this devlog was spent on trying to fix the fork bug, but I’ll make a dedicated devlog only when I’ve actually fixed the bug.
Devlog #20: I abandoned searching for potential forks and stopping them from ever forming in favour of handling forks that have already been formed. After more than one win for the opponent is detected, the bot registers that it is a fork. It then calculates which moves are best to neutralize the threat. There are four ways for each single win to be neutralized, so I need to make one of these four moves, for each of the two cases. In some cases, one or more of the moves overlap, in which case the overlapped move will be immediately returned, but most of the time, the bot just picks from one of the 8 possible neutralization moves randomly. This is definitely less efficient than just figuring out how to prevent forks from ever forming, but I mean it’s a good implementation for the cube part of this game. (Sometimes it messes up and I just win instantly)
Devlog #21: I am very very very very bad at debugging code. Somehow I managed to fix the major rendering bug and also make the fork handling better within 2 hours. I don’t believe I’ve mentioned anything about it before, but there was a rendering glitch upon the bot winning the game right after the user has made a cube turn that allowed the bot to win the game. I’m still not sure wy that happened, but I fixed it by re-rendering the entire board before drawing the board position again. If that didn’t make sense to you, it doesn’t make much sense to me either. If it did, well good for you ig. I feel like the fork handling deserves and entire paragraph, so here: I changed the win blocking function to also log the direction that potential win is in, by logging “position 1” of that specific potential win. The possible neutralizing moves of the directional indicator value is then compared against the potential win location neutralizing move to try to find a match. If a match is found, that means that the move is guaranteed to neutralize the given threat. That paragraph did not make much sense, even to me. If you read my code, it’ll probably make more sense, as long as you do not get permanent brain damage from reading the it (I need to learn how to write better code)
Devlog #22: I made the buttons look nicer by centering the text inside of them. It was much harder than it looked and I had to work with “Vector2” in Raylib. I may or may not have spent like half and hour trying to find documentation on it, only for me to discover that it’s a struct inside of Raylib. Still not entirely sure what a struct is. So I may or may not have spent another half and hour trying to declare the struct inside of the main.cpp file, before I finally gave up and asked DeepSeek. Turns out, it’s just Vector2 something{(float)x, (float)y} . It’s not exactly simple if you don’t have much experience with C++, but I started coding in C++ 16 days ago and I understand it just fine. Halfway through, while testing, I accidentally overrode the main file and had to restore it and re-add all the changes I make. I don’t like committing before the program doesn’t have that many bugs, so a lot of progress was lost. This is like the second time I’ve done this, and if you’re curious what I did, well… The command used to compile my program for testing is g++ -std=c++17 -o build/program src/main.cpp src/board.cpp src/bot.cpp src/logs.cpp -lrayib . This compiles the code for all the C++ files and the Raylib library, and creates and executable inside the build/ directory. Except I forgot to type build/program, and so GCC just overrode main.cpp. Honestly though, it didn’t do that much harm, thanks to the test.cpp file having a similar version of code as the code that was overridden, and also git. hackatime isn’t working so i can’t even post this devlog nvm it just worked nvm it broke again honestly this is one of the first times anything has broken in my experience as someone who joined hack club like 3 months ago. im sure everyone involved in fixing this is trying their absolute best.
Devlog #23: “Minor” improvements that take like hours to do is literally my entire C++ learning experience so far. This time, I improved the “wild card” function that rotates the cube randomly. Before, it just actually rotated randomly, and now, I changed it to check and make sure that moves it makes does not cause the opponent to win on the very next move. fyi i DO write these devlogs myself without ai, I just literally need Vim keybinds to function as a person and therefore type all the devlogs inside of NeoVim before pasting them into the devlog. felt like writing this after i discovered that the “please write this yourself, humans read it” text at the bottom actually flashes red when you paste text.
(How is it) Devlog #24 (Already): Lowkey, when I started this project I was expecting to take 1 week max, and it was supposed to be like practice for making a more advanced project. I’ve since decided to not make the more advanced project (for now). Now, it’s been more than 2 weeks since I’ve started it, and it’s still in rough shape and probably not ready for release. The UI still sucks, but I added like a popup system for displaying messages, such as telling the user why they won/lost without the win being visible due to the nature of the board being a cube. I was going to make a class to handle all the popups, but I settled for global variables and functions. Probably not the best practice, but it works, and if it ain’t broke don’t fix it. I also added a entire new menu, the help menu. It could probably use some improvements, so if you have anything you’re curious about or confused about, drop a comment. There’s like 8 people that have seen this project, so I’m really expecting anything, but it would be appreciated greatly. I lowkey forgot to add one break statement, so I spent like 30 minutes trying to figure out why it wasn’t working Still, how the hell did this take 7 hours? I swear I’m not inflating my time by any means.
Devlog #25: I tried to make the UI look good. It isn’t necessarily good, but it’s better than it used to be IMO. I just changed the color scheme, and now the text is round and the boxes are rounded. I also reworked the board position display system. Since the squares are just buttons, and the button class can display text, I just made the board display text by itself. For context I wrote the button class to draw and handle buttons. There might be a class for this or something but idc i just wrote it myself like 17 days ago.
Devlog #26: Pretty short devlog. I added some simple QoL changes: the main menu title is now centered, and the popup and some captions now have a margin around them so they aren’t stuck right on the edge. Also this was technically done a couple of devlogs ago, but I added shell scripts to compile and run the program so I don’t have to type g++ -std=c++17 -Wall -Wextra -Werror -pedantic -o build/tic-tac-cube src/main.cpp src/board.cpp src/bot.cpp src/logs.cpp -lraylib every single time I want to compile the program.
Devlog #27 (a1b005f): I highkey have trouble keeping track of what I did between devlogs sometimes, so I’m adding the SHA of the Git commit to devlogs. So I tried to create a dedicated c++ file for handling buttons, since I wanted to have even more control over them, but ran into the issue of not having a way to share variables across different files. I know global variables are kinda bad, but I mean in this scenario they’re like config stuff that isn’t really going to be that harmful… Most of the time was spent creating the button.cpp and button.h files, and they’re not even in GitHub yet lol
Devlog #28 (ac77900): I added an entire separate .cpp file for handling buttons because I wasn’t satisfied with how they were working (I love ricing). Yes, it did take 9 hours. I have a skill issue. There are 3 main things I improved on: The buttons are now more customizable, as they now accept JSON files as setup input instead of like only 4 parameters. A function was added to change the button upon hover It’s more organized since the files are separate. (I haven’t actually tested the code out yet, I feel pressured to get the devlog out ASAP)
Devlog #29 (57bac36): Guess what I did: a: Made my code work again b: Add new features c: Complete the button rice d: Look up the GitHub Repo for DeepSeek because I got bored and discover how to add badges to my README. I had way to much fun doing this (it was d)
Devlog #30 (b5f8085): The code is now compiling again, thanks to, as much as I hate to admit it, Visual Studio Code. I’m on Linux so I can’t use Visual Studio, CLion is kinda weird and the error messages are broken, and KDevelop doesn’t have a Wakatime/Hackatime plugin yet (maybe it does, but it isn’t in the Hackatime docs) I opened VSCode and was met with like a hundred errors. With a combination of VSCode’s functional error messages, DeepSeek telling me what those messages mean, and my pretty average brain, I managed to remove all the errors. But since I didn’t know how to use makefiles and stuff (still don’t ) I had to compile the program manually again. Apart from the fact that it crashes upon any user mouse input, it’s functional!
Devlog #31 (6639676): I fixed the code! Essentially, the code was breaking because the hover info for the code was undefined. I fixed it by setting the hover info to the regular button info if the hover info was not defined. Then I ran into another issue, which was that the buttons, upon hover, were being drawn from the center instead of the corner. It was a simple enough fix, I just changed like 2 values to use the calibrated values instead of the center coordinates. And yeah, the only real issue right now is that the text on the board is slightly offcentre, but that’s not really a big issue.
Devlog #32 (ca5f14e): I changed the theming yet again. I’m not really good at making programs look good, and even when I do, my designs are usually really basic. Yes, it’s inspired by discord. Please tell me how this looks in the comments, I really need feedback. I also finally added a little change in color to some of the buttons when selected, which was the entire reason I decided to rework buttons in the first place. I’ll also attach a beta design that’s more of a retro/terminal aesthetic, but contrasted too much with the cube and letters IMO
Devlog #33 (d16d3b8): This time was used for trying to make the project work for webassembly, which i have decided to abandon. Therefore, this time should probably be deflated to account for the lack of progress. I probably picked the worst language for compiling for the web, and next time I want to make a web version of anything, I’m going to use a game engine. This just did not work out, and was too much effort to save maybe ~2 seconds of time. I’m sorry that this will cause any reviewers to have to download the game to play it, and to compensate I will be attaching a link to a YouTube video demoing the game either on the readme, on the itch.io page, or both. I feel like a failure for this, but maybe it’s the right choice for my mental health and academic… idk is health also the right word for this situation?
Devlog #34 (4eec49b): I changed the font! And also updated the README. Fonts in raylib are REALLY hard. Since I’m using multiple different font sizes, the scaling is really screwed up and blurry sometimes. When I was trying to add the custom font, I may or may not have… lagged out my computer and had to restart. as for the readme upgrade, i added instructions to play i also removed some semicolons. took me like half and hour
Devlog #35 (b48efd0): I fixed most of the font scaling issues, and also updated the README at bit (as always). I did this by loading the same font 3 times, once at 20 font size, once at 40, and once at 80. I changed the code to use a either the 20, 40, or 80 version of the font according to the font size to make the text look smoother.
Devlog #36 (fcc4f2f): I made the first gameplay change in a while, and also changed the theming a bit more. The gameplay changes I noticed that the game was getting a bit… repetitive, so I changed the bot to have an element of randomness when there are multiple spots that provide similar advantage. This took me a long time, because my code is spaghetti, and also because random in JavaScript is so much better than in C++ The visual changes I changed the theming of the game because I didn’t think the discord-esque style looked very good. Now, it’s changed to match the “Arch” theme on Monkeytype. I also changed the font to Roboto Mono since that’s what my configuration of Monkeytype uses. Stuff to do Compile this for Windows and Mac, put this on Itch.io. Ship the project
Devlog #37 (8b55316): I made a web build for the game! I took a break from Stardance to make something for Out to C, and when I was making a C game with Raylib I discovered that it is extremely hard to make a downloadable executable run well on Windows or MacOS, because on Windows you have to include DLL files, and on MacOS it’s just harder to install Raylib. In the end, I ended up making a web build, and since I wasn’t so bad, I decided to make a web build for this. I used Emscripten, and using the em++ tool with the asyncify option, manage to get most of the game logic working, with only one small frame generation bug, which I fixed by changing this_thread::sleep for to something that is easier for the browser to render. I also made some other QoL changes so that the bot feels less stagnant, hopefully.
Devlog #38 (25c796f): the beans aren’t going to know what hit them (regarding my 145 hours waiting to be shipped) I made a couple of changes, such as improving the readme and disabling the exit button, greying it out and making so that it can’t be pressed. For context, the game can only run on the web, and the exit button just doesn’t do anything useful on the web. I also customized the itch.io page (which hasn’t been released yet but you can access it here via secret url). It looks kinda decent (i just copied the game’s color scheme)
Final Devlog Before Ship I’m done stalling. Every time I’ve shipped a project for Stardance, I’ve stalled for like a week trying to make sure it’s good enough. This time, I’ve stalled for more than a month. I’ve even shipped 2 separate projects to different Hack Club events in the time that this project has technically been “good enough”. Essentially, I just worked on the README a bit more. I did manage to fix a few errors. For example, I had a few spelling and grammar errors. I also added a bit more detail to the readme.
Ships:
I made a tic-tac-cube game where you can rotate the board like a Rubik’s cube! It was made in C++ with Raylib without a game engine, and only uses 2 libraries, Raylib, and Nlohmann-JSON. I’m really proud of the way I coded the entire GUI, buttons, board, and bot. Features Tic-Tac-Toe game on a Rubik’s cube Singleplayer mode against computer Local multiplayer against another player (or yourself) Main menu & help page. I coded the bot to be somewhat intelligent, and will actively try to block your attacks and create it’s own ones. It can turn the cube just like you, and will rotate the cube to get out of a pickle. This is my first C++ project, and my first experience with languages that have to be compiled before running. It was honestly really fun to make. I put a LOT of effort into this game, over 140 hours....
|
1793047978.7932549
|
1793134378.7932549
|
|
29987
|
CashDive by @Thomas | Stardance
|
Thomas
|
0
|
28.57
|
0
|
[]
|
[{"post_id": 80807, "ts": "202 [{"post_id": 80807, "ts": "2026-10-18T20:48:30Z", "hours": 4.4756, "text": "Web UI & Account page Added account page for viewing transactions I added a page for specific accounts so you can see the transactions and balance. Added styling to site I added some styling to the main page and the new account page This devlog took a while because I was focussing on other projects, but im gonna finish this project now. Also the styling took a while to get right and nextjs/react is hard Anyway next I am going to split up the transactions into pages, so it doesn’t take ages to load and result in a massive page"}, {"post_id": 49663, "ts": "2026-08-18T15:28:00Z", "hours": 4.7322, "text": "I was gone for a while, but now I started working on a frontend website for the project! I am using next.js and it uses the API I created for data. It automatically checks the authentication status and then prompts you to login with your bank if required, then it redirects to the home page. Next I will add more functionality to the site and add proper styling."}, {"post_id": 36399, "ts": "2026-07-28T14:08:07Z", "hours": 2.7244, "text": "I made an API for cashdive! I made an authentication flow with TrueLayer, so there is no need for manual auth code input. All the basic info is available from my API, including accounts, balances, and transactions."}, {"post_id": 34320, "ts": "2026-07-24T22:29:16Z", "hours": 2.0233, "text": "The database is now used to cache the data, so the API is not reached every time. The default expiry is 3 minutes, so new data will be fetched from the API after that."}, {"post_id": 33557, "ts": "2026-07-23T16:20:57Z", "hours": 5.3361, "text": "I made several improvements to the database, it now stores all the data including accounts, balances, and transactions, and pending transactions are shown & updated. When data is fetched from the API, the database is automatically updated. Authentication is improved by automatically refreshing the token after its expiry time. I made a lot of progress this devlog but it’s all backend stuff, so there’s not much to show, but here are the new tables in the DB:"}, {"post_id": 27237, "ts": "2026-07-12T16:58:05Z", "hours": 3.5094, "text": "I added a PostgreSQL database! The code I wrote can create a transactions table, add transactions from the API to the table, and fetch them from the database again."}, {"post_id": 21727, "ts": "2026-07-03T20:20:33Z", "hours": 3.2906, "text": "I made a lot of behind-the-scenes changes, including separating the API, auth, and interface into different files, adding token renewal support (so you only need to log in once every 90 days) and added some dataclasses so the data from the API is in a standard form across the whole app. The video shows that if the API token is not valid, it can generate a new one with the refresh token."}, {"post_id": 21478, "ts": "2026-07-03T13:28:53Z", "hours": 2.4814, "text": "I made a basic terminal interface for viewing bank account information, using the TrueLayer API. I used their mock bank account credentials to test my program!"}]...
|
Title: CashDive by @Thomas | Stardance
Devlogs:
I Title: CashDive by @Thomas | Stardance
Devlogs:
I made a basic terminal interface for viewing bank account information, using the TrueLayer API. I used their mock bank account credentials to test my program!
I made a lot of behind-the-scenes changes, including separating the API, auth, and interface into different files, adding token renewal support (so you only need to log in once every 90 days) and added some dataclasses so the data from the API is in a standard form across the whole app. The video shows that if the API token is not valid, it can generate a new one with the refresh token.
I added a PostgreSQL database! The code I wrote can create a transactions table, add transactions from the API to the table, and fetch them from the database again.
I made several improvements to the database, it now stores all the data including accounts, balances, and transactions, and pending transactions are shown & updated. When data is fetched from the API, the database is automatically updated. Authentication is improved by automatically refreshing the token after its expiry time. I made a lot of progress this devlog but it’s all backend stuff, so there’s not much to show, but here are the new tables in the DB:
The database is now used to cache the data, so the API is not reached every time. The default expiry is 3 minutes, so new data will be fetched from the API after that.
I made an API for cashdive! I made an authentication flow with TrueLayer, so there is no need for manual auth code input. All the basic info is available from my API, including accounts, balances, and transactions.
I was gone for a while, but now I started working on a frontend website for the project! I am using next.js and it uses the API I created for data. It automatically checks the authentication status and then prompts you to login with your bank if required, then it redirects to the home page. Next I will add more functionality to the site and add proper styling.
Web UI & Account page Added account page for viewing transactions I added a page for specific accounts so you can see the transactions and balance. Added styling to site I added some styling to the main page and the new account page This devlog took a while because I was focussing on other projects, but im gonna finish this project now. Also the styling took a while to get right and nextjs/react is hard Anyway next I am going to split up the transactions into pages, so it doesn’t take ages to load and result in a massive page...
|
1792759874.8368871
|
1793364674.8368871
|
|
70257
|
isolatedworld by @elkonmechato | Stardance
|
elkonmechato
|
1
|
1.92
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-18T20:30:01Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Welcome to my Space! This is a log and documentation of all of my projects, and you all get to have fun and check out these resources: https://xisolatedev.github.io/IsolatedWorld/ - you can play around with the planet😉", "repo": "https://github.com/xisolatedev/IsolatedWorld", "demo": "https://xisolatedev.github.io/IsolatedWorld/"}]...
|
[{"post_id": 80810, "ts": "202 [{"post_id": 80810, "ts": "2026-10-18T20:58:25Z", "hours": 0.9239, "text": "NUKE"}, {"post_id": 80718, "ts": "2026-10-18T16:32:11Z", "hours": 1.255, "text": "Quick Personal Website - https://xisolatedev.github.io/IsolatedWorld/"}]...
|
Title: isolatedworld by @elkonmechato | Stardance
Title: isolatedworld by @elkonmechato | Stardance
Devlogs:
Quick Personal Website - https://xisolatedev.github.io/IsolatedWorld/
NUKE
Ships:
Welcome to my Space! This is a log and documentation of all of my projects, and you all get to have fun and check out these resources: https://xisolatedev.github.io/IsolatedWorld/ - you can play around with the planet😉...
|
1793051513.9765377
|
1793137913.9765377
|
|
6431
|
luminal by @t3kkm0tt | Stardance
|
t3kkm0tt
|
0
|
214.16
|
0
|
[]
|
[{"post_id": 80812, "ts": "202 [{"post_id": 80812, "ts": "2026-10-18T21:03:58Z", "hours": 11.4214, "text": "What has changed I forgot to devlog (again) and I lost 1hr 21m I started working on registration (yey) I removed the login screen because it was a stupid concept because the identifiers are long as helllllll and they can be loaded from a file I added a registration screen that currently only shows that you can go to the list of public instances or host your own instance (with a link to the docs which don’t exist yet)"}, {"post_id": 79141, "ts": "2026-10-12T19:59:26Z", "hours": 10.5661, "text": "What has changed: I (once again) forgot to devlog in time so I lost about 33m I deleted the client because I hate css and html (making an iced ui in rust now) added more stuff to lcp (functions, yey) refined the login (I have no idea if I did it right, but I´ll see.)"}, {"post_id": 77670, "ts": "2026-10-07T19:45:36Z", "hours": 11.1578, "text": "what has changed I forgor to devlog so i lost 1h and 9m. I deleted major parts of lcp , instance and msgstorage , which I am rebuilding right now. I just installed another distro (guix system) so building doesn’t work right now"}, {"post_id": 74215, "ts": "2026-09-26T22:48:43Z", "hours": 10.9461, "text": "What has changed: not much, I had to get better at tauri and yew and had weird ownership errors i made a component that fetches the conversations (yay) i destroyed my table because I slammed on it too hard (not yay)"}, {"post_id": 70826, "ts": "2026-09-19T20:43:21Z", "hours": 6.1056, "text": "What has changed: I have stopped developing the tui and I´m focusing on a gui now. I also tried making a web-app but that didn´t really work :<"}, {"post_id": 68157, "ts": "2026-09-14T16:43:20Z", "hours": 8.6347, "text": "What has changed I changed the logo (someone on reddit drew it for me, big shoutout to them <3) I added a instance field to the Message struct so you can figure out what instance the Message was sent from (that´s useful for texting between instances (you send a Message to your instance, it sends it to your friend´s instance)) I fixed some bugs, but in its current state, the application won´t compile"}, {"post_id": 64195, "ts": "2026-09-08T12:54:10Z", "hours": 10.1464, "text": "What has changed I finally fixed a stupid bug by using DER instead of PEM I cleaned up a bit and added custom errors using thiserror I started implementing Communities and Groups"}, {"post_id": 59606, "ts": "2026-09-01T14:55:07Z", "hours": 9.5381, "text": "What has changed basically nothing, had multiple problems that I couldn´t fix, so I just used certbot to get the certs did some config system fixes for the instance wrote some comments/docs"}, {"post_id": 52550, "ts": "2026-08-22T18:29:24Z", "hours": 8.9558, "text": "What has changed: I made the TUI better and also made one for the instance I had multiple mental breakdowns trying to understand TLS I started implementing Let´s encrypt certs instead of self-signed ones for usability. Right now, I cannot show a screenshot of the stuff because it´s not compiling (yet)"}, {"post_id": 49214, "ts": "2026-08-17T21:24:41Z", "hours": 3.6575, "text": "What has changed: I added more customization options to the messagestorage, it was pretty hard to do that with ratatui I wrote some comments in the code I found a bug where the font is the same colour as the background, so the font is unreadable. I gotta fix that bug now."}, {"post_id": 47772, "ts": "2026-08-15T22:49:38Z", "hours": 4.4378, "text": "What has changed: I continued making the TUI and it now has color schemes, stats and settings. I will continue making the TUI for the instance later. I migrated the project to an organization to get luminal.codeberg.page as the domain of the website"}, {"post_id": 46282, "ts": "2026-08-13T12:31:37Z", "hours": 5.9986, "text": "What has changed: tried implementing a resource monitoring widget on the messagestorage dashboard and failed to do so, so I deleted it again (there were bugs I was unable to fix)"}, {"post_id": 43021, "ts": "2026-08-08T02:03:47Z", "hours": 8.3433, "text": "What has changed: continued making the TUI to a point where it was usable until I put a bug somewhere in the code. I will have to fix that soon updated the messagestorage replaced some .unwrap() s"}, {"post_id": 41644, "ts": "2026-08-06T00:15:22Z", "hours": 5.8672, "text": "What has changed: I started making a TUI using ratatui, focusing on minimalism and simplicity fixed some bugs"}, {"post_id": 40965, "ts": "2026-08-04T20:47:01Z", "hours": 5.7975, "text": "What has changed: I implemented and tested encryption (it still has some minor bugs, but it works) I stopped using userids and started using RSA keys for identification since that´s way more efficient"}, {"post_id": 39821, "ts": "2026-08-03T02:11:26Z", "hours": 8.9131, "text": "What has changed: I lost my mind trying to use the wtransport crate (it will work, trust (cope)) continued working on the messaging part refined the authentication stuff"}, {"post_id": 37227, "ts": "2026-07-29T19:35:16Z", "hours": 8.2822, "text": "What has changed: created a SQLite database for users and messages “offloaded” more code to LCP (Luminal Communication Protocol) started making the messaging part"}, {"post_id": 36057, "ts": "2026-07-27T22:01:52Z", "hours": 7.29, "text": "What has changed: Made a basic session-based authentication system (harder than I thought) using JWT Fixed and created some bugs Created unnecessary debug messages before I noticed that the hex decoding fails because I put something like ¨adasdasd¨ into my config instead of a hex string"}, {"post_id": 33264, "ts": "2026-07-23T01:24:33Z", "hours": 7.1994, "text": "What changed: continued making lcp (took longer as expected because the wtransport crate is poorly documented) started making messagestorage use lcp everything has become a mess, I gotta clean up next time I work on luminal Sidenote: I cannot commit to codeberg as I am writing this, they reported that they have an outage. I will push the code when codeberg is back up."}, {"post_id": 31853, "ts": "2026-07-20T15:54:01Z", "hours": 8.6744, "text": "What has changed Structure Started making libs and mods for the separate parts ( l uminal c ommunication p rotocol, etc.) changed the architecture from: Client <-> Messagestorage <-> Instance to: Messagestorage <- Client <-> Instance Bugfixes Fixed various bugs, but the compiler throws errors right now, so I cannot show a working version in the screenshot."}, {"post_id": 29139, "ts": "2026-07-15T20:31:15Z", "hours": 8.5089, "text": "What changed started making a bash-like shell for managing and controlling the instance rewrote the config system to use the toml crate instead of config fixed multiple bugs started making cert verification smol sidenote: I cannot work as fast as the last weeks right now because I’m on vacation and only have a dual-core ThinkPad with me."}, {"post_id": 26334, "ts": "2026-07-11T02:05:48Z", "hours": 8.7136, "text": "What changed added automatic port fetching for better ux fixed multiple bugs made the code very messy (gonna clean everything up tomorrow)"}, {"post_id": 15708, "ts": "2026-06-25T15:38:56Z", "hours": 7.2625, "text": "What changed: Took out ml-kem for now because it was causing rust-analyzer to be slow as hell Switched to RSA encryption because I was stupid fixed many bugs (not running right now - gotta fix that now) And a small information at the bottom: I am making this project to learn cryptography and get a Framework 12"}, {"post_id": 10286, "ts": "2026-06-16T22:32:02Z", "hours": 5.1903, "text": "Things that changed: I went back to BiStreams because I was dumb and didn’t realize that what I wanted to do was way easier with BiStreams . I started working on the backend, which can receive BiStreams from the selfhost-server as of now."}, {"post_id": 7109, "ts": "2026-06-11T21:35:55Z", "hours": 4.3564, "text": "Things that changed: Used multiple UniStreams instead of a single BiStream because its easier, made the functions more usable, removed unused dependencies."}, {"post_id": 6298, "ts": "2026-06-10T16:25:13Z", "hours": 5.8919, "text": "Started cleaning up and structuring the project. I also made a basic account system which will need some tuning later."}, {"post_id": 5589, "ts": "2026-06-09T13:19:23Z", "hours": 10.8408, "text": "After trying different protocols for literal hours , I finally settled on WebTransport. Its safer than WebSocket, I believe. I now have to make it send the json instead of “HELLO”."}, {"post_id": 1604, "ts": "2026-06-03T18:51:18Z", "hours": 1.4583, "text": "This is my first devlog of this project. I’ve always wanted to make a chat app since they are one of the most used tools today. Every attempt of making one failed and I was really frustrated. Now, I have motivation to make it and get something for free ."}]...
|
Title: luminal by @t3kkm0tt | Stardance
Devlogs:
Title: luminal by @t3kkm0tt | Stardance
Devlogs:
This is my first devlog of this project. I’ve always wanted to make a chat app since they are one of the most used tools today. Every attempt of making one failed and I was really frustrated. Now, I have motivation to make it and get something for free .
After trying different protocols for literal hours , I finally settled on WebTransport. Its safer than WebSocket, I believe. I now have to make it send the json instead of “HELLO”.
Started cleaning up and structuring the project. I also made a basic account system which will need some tuning later.
Things that changed: Used multiple UniStreams instead of a single BiStream because its easier, made the functions more usable, removed unused dependencies.
Things that changed: I went back to BiStreams because I was dumb and didn’t realize that what I wanted to do was way easier with BiStreams . I started working on the backend, which can receive BiStreams from the selfhost-server as of now.
What changed: Took out ml-kem for now because it was causing rust-analyzer to be slow as hell Switched to RSA encryption because I was stupid fixed many bugs (not running right now - gotta fix that now) And a small information at the bottom: I am making this project to learn cryptography and get a Framework 12
What changed added automatic port fetching for better ux fixed multiple bugs made the code very messy (gonna clean everything up tomorrow)
What changed started making a bash-like shell for managing and controlling the instance rewrote the config system to use the toml crate instead of config fixed multiple bugs started making cert verification smol sidenote: I cannot work as fast as the last weeks right now because I’m on vacation and only have a dual-core ThinkPad with me.
What has changed Structure Started making libs and mods for the separate parts ( l uminal c ommunication p rotocol, etc.) changed the architecture from: Client <-> Messagestorage <-> Instance to: Messagestorage <- Client <-> Instance Bugfixes Fixed various bugs, but the compiler throws errors right now, so I cannot show a working version in the screenshot.
What changed: continued making lcp (took longer as expected because the wtransport crate is poorly documented) started making messagestorage use lcp everything has become a mess, I gotta clean up next time I work on luminal Sidenote: I cannot commit to codeberg as I am writing this, they reported that they have an outage. I will push the code when codeberg is back up.
What has changed: Made a basic session-based authentication system (harder than I thought) using JWT Fixed and created some bugs Created unnecessary debug messages before I noticed that the hex decoding fails because I put something like ¨adasdasd¨ into my config instead of a hex string
What has changed: created a SQLite database for users and messages “offloaded” more code to LCP (Luminal Communication Protocol) started making the messaging part
What has changed: I lost my mind trying to use the wtransport crate (it will work, trust (cope)) continued working on the messaging part refined the authentication stuff
What has changed: I implemented and tested encryption (it still has some minor bugs, but it works) I stopped using userids and started using RSA keys for identification since that´s way more efficient
What has changed: I started making a TUI using ratatui, focusing on minimalism and simplicity fixed some bugs
What has changed: continued making the TUI to a point where it was usable until I put a bug somewhere in the code. I will have to fix that soon updated the messagestorage replaced some .unwrap() s
What has changed: tried implementing a resource monitoring widget on the messagestorage dashboard and failed to do so, so I deleted it again (there were bugs I was unable to fix)
What has changed: I continued making the TUI and it now has color schemes, stats and settings. I will continue making the TUI for the instance later. I migrated the project to an organization to get luminal.codeberg.page as the domain of the website
What has changed: I added more customization options to the messagestorage, it was pretty hard to do that with ratatui I wrote some comments in the code I found a bug where the font is the same colour as the background, so the font is unreadable. I gotta fix that bug now.
What has changed: I made the TUI better and also made one for the instance I had multiple mental breakdowns trying to understand TLS I started implementing Let´s encrypt certs instead of self-signed ones for usability. Right now, I cannot show a screenshot of the stuff because it´s not compiling (yet)
What has changed basically nothing, had multiple problems that I couldn´t fix, so I just used certbot to get the certs did some config system fixes for the instance wrote some comments/docs
What has changed I finally fixed a stupid bug by using DER instead of PEM I cleaned up a bit and added custom errors using thiserror I started implementing Communities and Groups
What has changed I changed the logo (someone on reddit drew it for me, big shoutout to them <3) I added a instance field to the Message struct so you can figure out what instance the Message was sent from (that´s useful for texting between instances (you send a Message to your instance, it sends it to your friend´s instance)) I fixed some bugs, but in its current state, the application won´t compile
What has changed: I have stopped developing the tui and I´m focusing on a gui now. I also tried making a web-app but that didn´t really work :<
What has changed: not much, I had to get better at tauri and yew and had weird ownership errors i made a component that fetches the conversations (yay) i destroyed my table because I slammed on it too hard (not yay)
what has changed I forgor to devlog so i lost 1h and 9m. I deleted major parts of lcp , instance and msgstorage , which I am rebuilding right now. I just installed another distro (guix system) so building doesn’t work right now
What has changed: I (once again) forgot to devlog in time so I lost about 33m I deleted the client because I hate css and html (making an iced ui in rust now) added more stuff to lcp (functions, yey) refined the login (I have no idea if I did it right, but I´ll see.)
What has changed I forgot to devlog (again) and I lost 1hr 21m I started working on registration (yey) I removed the login screen because it was a stupid concept because the identifiers are long as helllllll and they can be loaded from a file I added a registration screen that currently only shows that you can go to the list of public instances or host your own instance (with a link to the docs which don’t exist yet)...
|
1792612413.4905527
|
1793217213.4905527
|
|
55930
|
Bugatti Type 57SC Atlantic by @nejenabinupa | Star Bugatti Type 57SC Atlantic by @nejenabinupa | Stardance...
|
nejenabinupa
|
0
|
42.72
|
0
|
[]
|
[{"post_id": 80815, "ts": "202 [{"post_id": 80815, "ts": "2026-10-18T21:26:56Z", "hours": 1.3042, "text": "its finish now, after around 40+ hours"}, {"post_id": 61579, "ts": "2026-09-04T15:39:00Z", "hours": 4.4256, "text": "I make a cool seen to render with and add textures normal maps to it and I did I said and out well"}, {"post_id": 60685, "ts": "2026-09-03T07:00:26Z", "hours": 10.0406, "text": "I make the underbody and the rims and the inner and added sum textures and materials"}, {"post_id": 59681, "ts": "2026-09-01T16:31:59Z", "hours": 10.5028, "text": "I make small bits and added them, now working on the underside"}, {"post_id": 59036, "ts": "2026-08-31T16:55:18Z", "hours": 10.0525, "text": "I added the rivets by hand and make the modle little nicer and add thr grill and she look good"}, {"post_id": 58123, "ts": "2026-08-30T14:07:40Z", "hours": 6.3931, "text": "I make the base shape of the Atlantic and it look good enough for now."}]...
|
Title: Bugatti Type 57SC Atlantic by @nejenabinupa Title: Bugatti Type 57SC Atlantic by @nejenabinupa | Stardance
Devlogs:
I make the base shape of the Atlantic and it look good enough for now.
I added the rivets by hand and make the modle little nicer and add thr grill and she look good
I make small bits and added them, now working on the underside
I make the underbody and the rims and the inner and added sum textures and materials
I make a cool seen to render with and add textures normal maps to it and I did I said and out well
its finish now, after around 40+ hours...
|
1792641134.7121732
|
1793245934.7121732
|
|
57992
|
link - probe by @ayman | Stardance
|
ayman
|
0
|
25.69
|
0
|
[]
|
[{"post_id": 80816, "ts": "202 [{"post_id": 80816, "ts": "2026-10-18T21:28:52Z", "hours": 0.7186, "text": "using pytest I added a test_channel.py file that checks 3 of the functions in my code ( make_channel) adding bernoullie lost and changing GE burst lengths"}, {"post_id": 80782, "ts": "2026-10-18T19:37:04Z", "hours": 0.3919, "text": "FIxed readme and added to results.md"}, {"post_id": 80769, "ts": "2026-10-18T18:50:47Z", "hours": 0.4819, "text": "ok next I made a new plot to analyze the missed packet dealine percentage for my latency ladder and jitter runs, and we can see that all the latency ladders show a similar shape with a horizantal shift, while the jitter run has the shape of a oddpower function with an inflection point around 100ms"}, {"post_id": 80752, "ts": "2026-10-18T18:19:02Z", "hours": 0.7853, "text": "I made a new pythoin fiel athat created a new figure using matplotlib and this measures teh median and p99 rtt for my latency ladder, i will know add this into my results .md"}, {"post_id": 79694, "ts": "2026-10-15T02:45:04Z", "hours": 0.5592, "text": "So i worked on fixing or updating my plot.py with some feature. I added a title verision and fixed the y axis labeling and then adding a theoriticla value using the defintaitons of GE loss and bernoullie loss somethign we see is that int he real data we have a stair case step due to burts values being aonly integers while the therotical value using a line of best fit which is linear. here is a before and after"}, {"post_id": 79684, "ts": "2026-10-15T01:52:08Z", "hours": 0.6667, "text": "added sections 5-7 to resutls.md which talk about the limitations and like also talked about the py file i made yesterday"}, {"post_id": 79193, "ts": "2026-10-12T23:38:32Z", "hours": 1.2231, "text": "i added a new file that is supposed to check across all runs if the value in the csv matches with my decide function to check my seeds. Out of 60000 packets i only got one mismatch"}, {"post_id": 79175, "ts": "2026-10-12T21:57:42Z", "hours": 1.8461, "text": "I first added requiremetns.txt in my repo for people who want to re run or add onto the experiment, also made sure to include instructison to reapeat in my read me then i fixed some rounding errors in my summary.csv and alsltyu added a results.md that I have not finished yet"}, {"post_id": 75382, "ts": "2026-09-29T21:50:15Z", "hours": 2.2731, "text": "i used matplotlib to make a graph of my burst results. the x axis is the burst length(how many packets are lloss in a row). and the y axis is the the eprcentage of hwo many burst were greater than the k value so you obvisouly see a decleining trend because for both its much aharder from a. randopoitn for lose a lot of pacerts in a. row we see. big differen of giulbert elliot and bernouli here and the fidffernt between the two packet loss calcauation methods"}, {"post_id": 74615, "ts": "2026-09-27T19:42:56Z", "hours": 0.3431, "text": "So now i wokred on making anogther csv apart of anlsyze.py whiuchcounts hwo many burst were in each run, and the lenght adn fequencey of teh burst. A burst is basically how many packets were lsot in a row. so now i am gona downlaodn matpotlib to plot it and see how my data and expereiment actually works and try andundesrtand my reustls"}, {"post_id": 74562, "ts": "2026-09-27T17:11:11Z", "hours": 1.1439, "text": "ok i had to fix a fewt hign with my analyze.py and sumamry.csv, because it didnt trrakc lost packets or parameters of the runs so then i used enumerate and slicing, and joining to get the right parameters for each run"}, {"post_id": 72496, "ts": "2026-09-23T02:34:10Z", "hours": 2.1517, "text": "so over the past few days i have been working on a analyze.py python filet hat will take my csv results of the 14 trials and then basiclaly take all of it and make it into one summary obvisouly its missing late and params so i have to fix that and make a new one but I had to learn a lot and there was a lot of logic i did wrong in the beginning so im glad i wokred it out"}, {"post_id": 70933, "ts": "2026-09-20T02:15:42Z", "hours": 3.7128, "text": "today was long day, bsically wrote a new python file that will connect to config.py and run the server and client multiple times and ran a smoke test. learned a lot of new things like matrixes which keep all my test aswell as parsing throuhg argparse"}, {"post_id": 70380, "ts": "2026-09-19T02:23:06Z", "hours": 1.0139, "text": "Today I created a config.py where I can set all my parameters for my experiments I can do and used it to connect channel.py to config.py I also ran some tests of bernoulli versus elliot"}, {"post_id": 69422, "ts": "2026-09-17T00:59:26Z", "hours": 1.7903, "text": "researched on gilbert elliot and bernoulli package loss distrubutions and made a model to simulate that in channel.py"}, {"post_id": 68351, "ts": "2026-09-15T00:15:21Z", "hours": 1.4958, "text": "Today I found a bug where my client could save a reply under the wrong packet. The client grabbed whichever reply showed up first and assumed it belonged to the packet it had just sent. When a reply came back after the timeout, it got recorded as the next packet’s reply, and every packet after that was shifted by one. Nothing crashed. The data was just wrong.To prove it, I made my server hold a reply for 1.5 seconds while my timeout was 1 second. By accident, my first test delayed every packet after the 20th. The RTTs climbed from 1.5 s to 12 s, every other packet was marked lost, and the ones marked received carried an older packet’s time.The fix: every packet gets a deadline (send time + timeout), and the client keeps listening until the reply with the matching sequence number arrives or time runs out. Replies for older packets get counted as “late” and thrown away. Now the same test shows 1 lost, 1 late, and every packet after it keeps the right number. This matters because my jitter profile will produce late replies constantly, and without this fix every jitter run would have been garbage. i also added totola runtime and average packet rate"}, {"post_id": 67704, "ts": "2026-09-13T22:02:52Z", "hours": 0.965, "text": "I worked on making my data from tests actually to be exported as csv files, I had to learn how to use the csv file node in python and how to make sure my files don’t get overidden each time and how to show a packet is lost then i ran some trials and saw the csv but I still need to fix some things"}, {"post_id": 67676, "ts": "2026-09-13T20:47:05Z", "hours": 0.6097, "text": "added file constants aswell as working through some bugs. Basically tried out a few experiments with how many packets I sent and the time in between each packet. It really changed the average dtt and also I got to see how counter worked"}, {"post_id": 67631, "ts": "2026-09-13T19:38:36Z", "hours": 2.5683, "text": "I added the first layer of my experimentation, a server and a client. The client sends packets of info with sequence number to the server and then sends it back to the client then prints out the number in sequence and the time of the whole trip."}, {"post_id": 61247, "ts": "2026-09-04T02:46:17Z", "hours": 0.9519, "text": "created github and readme.md to start of my project also wrote more in detail why i am doing this and aswell as what I am trying to accomplish and what I am measuring, I had to spend a lot of time fixing hackatime. I Learned a lot about why packets actually get lost and how modern researchers categorize their loss and why it happens."}]...
|
Title: link - probe by @ayman | Stardance
Devlogs Title: link - probe by @ayman | Stardance
Devlogs:
created github and readme.md to start of my project also wrote more in detail why i am doing this and aswell as what I am trying to accomplish and what I am measuring, I had to spend a lot of time fixing hackatime. I Learned a lot about why packets actually get lost and how modern researchers categorize their loss and why it happens.
I added the first layer of my experimentation, a server and a client. The client sends packets of info with sequence number to the server and then sends it back to the client then prints out the number in sequence and the time of the whole trip.
added file constants aswell as working through some bugs. Basically tried out a few experiments with how many packets I sent and the time in between each packet. It really changed the average dtt and also I got to see how counter worked
I worked on making my data from tests actually to be exported as csv files, I had to learn how to use the csv file node in python and how to make sure my files don’t get overidden each time and how to show a packet is lost then i ran some trials and saw the csv but I still need to fix some things
Today I found a bug where my client could save a reply under the wrong packet. The client grabbed whichever reply showed up first and assumed it belonged to the packet it had just sent. When a reply came back after the timeout, it got recorded as the next packet’s reply, and every packet after that was shifted by one. Nothing crashed. The data was just wrong.To prove it, I made my server hold a reply for 1.5 seconds while my timeout was 1 second. By accident, my first test delayed every packet after the 20th. The RTTs climbed from 1.5 s to 12 s, every other packet was marked lost, and the ones marked received carried an older packet’s time.The fix: every packet gets a deadline (send time + timeout), and the client keeps listening until the reply with the matching sequence number arrives or time runs out. Replies for older packets get counted as “late” and thrown away. Now the same test shows 1 lost, 1 late, and every packet after it keeps the right number. This matters because my jitter profile will produce late replies constantly, and without this fix every jitter run would have been garbage. i also added totola runtime and average packet rate
researched on gilbert elliot and bernoulli package loss distrubutions and made a model to simulate that in channel.py
Today I created a config.py where I can set all my parameters for my experiments I can do and used it to connect channel.py to config.py I also ran some tests of bernoulli versus elliot
today was long day, bsically wrote a new python file that will connect to config.py and run the server and client multiple times and ran a smoke test. learned a lot of new things like matrixes which keep all my test aswell as parsing throuhg argparse
so over the past few days i have been working on a analyze.py python filet hat will take my csv results of the 14 trials and then basiclaly take all of it and make it into one summary obvisouly its missing late and params so i have to fix that and make a new one but I had to learn a lot and there was a lot of logic i did wrong in the beginning so im glad i wokred it out
ok i had to fix a fewt hign with my analyze.py and sumamry.csv, because it didnt trrakc lost packets or parameters of the runs so then i used enumerate and slicing, and joining to get the right parameters for each run
So now i wokred on making anogther csv apart of anlsyze.py whiuchcounts hwo many burst were in each run, and the lenght adn fequencey of teh burst. A burst is basically how many packets were lsot in a row. so now i am gona downlaodn matpotlib to plot it and see how my data and expereiment actually works and try andundesrtand my reustls
i used matplotlib to make a graph of my burst results. the x axis is the burst length(how many packets are lloss in a row). and the y axis is the the eprcentage of hwo many burst were greater than the k value so you obvisouly see a decleining trend because for both its much aharder from a. randopoitn for lose a lot of pacerts in a. row we see. big differen of giulbert elliot and bernouli here and the fidffernt between the two packet loss calcauation methods
I first added requiremetns.txt in my repo for people who want to re run or add onto the experiment, also made sure to include instructison to reapeat in my read me then i fixed some rounding errors in my summary.csv and alsltyu added a results.md that I have not finished yet
i added a new file that is supposed to check across all runs if the value in the csv matches with my decide function to check my seeds. Out of 60000 packets i only got one mismatch
added sections 5-7 to resutls.md which talk about the limitations and like also talked about the py file i made yesterday
So i worked on fixing or updating my plot.py with some feature. I added a title verision and fixed the y axis labeling and then adding a theoriticla value using the defintaitons of GE loss and bernoullie loss somethign we see is that int he real data we have a stair case step due to burts values being aonly integers while the therotical value using a line of best fit which is linear. here is a before and after
I made a new pythoin fiel athat created a new figure using matplotlib and this measures teh median and p99 rtt for my latency ladder, i will know add this into my results .md
ok next I made a new plot to analyze the missed packet dealine percentage for my latency ladder and jitter runs, and we can see that all the latency ladders show a similar shape with a horizantal shift, while the jitter run has the shape of a oddpower function with an inflection point around 100ms
FIxed readme and added to results.md
using pytest I added a test_channel.py file that checks 3 of the functions in my code ( make_channel) adding bernoullie lost and changing GE burst lengths...
|
1792731163.4619932
|
1793335963.4619932
|
|
70408
|
haunteds-site by @nic | Stardance
|
nic
|
1
|
2.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-18T21:55:23Z", "hours": 2.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "haunted’s web: a crappy, low-quality 2000’s inspired webpage built with html/css, this website acts like a time capsule of a forgotten age in the digital era. a time when all websites looked like crap with a few random gifs thrown in. this is a website that’s meant to discourage people from staying on the internet. features: daily online check-in (because you should really consider how you feel when you’re browsing the web) my small blinkies collection spinning phone with a knife thrown on it a message telling people to go touch grass.", "repo": "https://github.com/sodahaunted/haunted-site", "demo": "https://sodahaunted.github.io/haunted-site/"}]...
|
[{"post_id": 80820, "ts": "202 [{"post_id": 80820, "ts": "2026-10-18T21:43:32Z", "hours": 1.6478, "text": "the dead internet theory is real made a www-inspired low-stakes website with stuff from the y2k era. resembles how i would imagine my ten-year-old self to make a website if i’d learned programming twenty years ago. some of the code is reused from my old neocities webpages, mostly for styling/css. sometimes you lose your passion for things but you keep moving forward regardless. this website is more like those crappy single-page websites you’d run into during the 90s, but no one was alive during that time to remember what it was actually like. also kind of inspired from old scam websites created by people who don’t know how to code. i programmed all of this in one sitting and forgot to commit most of the time. (if it wasn’t obvious, the site looks low-quality on purpose)"}]...
|
Title: haunteds-site by @nic | Stardance
Devlogs: Title: haunteds-site by @nic | Stardance
Devlogs:
the dead internet theory is real made a www-inspired low-stakes website with stuff from the y2k era. resembles how i would imagine my ten-year-old self to make a website if i’d learned programming twenty years ago. some of the code is reused from my old neocities webpages, mostly for styling/css. sometimes you lose your passion for things but you keep moving forward regardless. this website is more like those crappy single-page websites you’d run into during the 90s, but no one was alive during that time to remember what it was actually like. also kind of inspired from old scam websites created by people who don’t know how to code. i programmed all of this in one sitting and forgot to commit most of the time. (if it wasn’t obvious, the site looks low-quality on purpose)
Ships:
haunted’s web: a crappy, low-quality 2000’s inspired webpage built with html/css, this website acts like a time capsule of a forgotten age in the digital era. a time when all websites looked like crap with a few random gifs thrown in. this is a website that’s meant to discourage people from staying on the internet. features: daily online check-in (because you should really consider how you feel when you’re browsing the web) my small blinkies collection spinning phone with a knife thrown on it a message telling people to go touch grass....
|
1793008410.1508627
|
1793094810.1508627
|
|
68485
|
My humble Macropad by @gustavocunha | Stardance
|
gustavocunha
|
0
|
15.19
|
0
|
[]
|
[{"post_id": 80821, "ts": "202 [{"post_id": 80821, "ts": "2026-10-18T21:45:47Z", "hours": 0.7214, "text": "I’ve done the last setup, and now I’m gonna ship it. I’m very happy to have gotten this far."}, {"post_id": 80804, "ts": "2026-10-18T20:37:39Z", "hours": 1.2539, "text": "I’ve finished the firmware. Now it’s just a few small touches and it’s ready to ship!!!"}, {"post_id": 80670, "ts": "2026-10-18T13:30:08Z", "hours": 3.2333, "text": "I finally finished the top part, but I have my doubts about whether it will fit, because I wasn’t able to import the 3D model properly. In the future, I plan to review it or redo it in another program, but for now the next step is the firmware."}, {"post_id": 80408, "ts": "2026-10-17T15:36:19Z", "hours": 3.8167, "text": "I redid my PCB, but I ran into an error when adding the LEDs. I don’t know what’s going on. If anyone has any ideas or suggestions, please let me know. I could really use the help."}, {"post_id": 80233, "ts": "2026-10-16T20:14:36Z", "hours": 2.4667, "text": "I redid the bottom part of the case and added four holes for the screws, but I’m lost on how to make the top part, where the keys go. I tried following the tutorial, but the holes and the distances don’t line up. The best solution I’ve come up with so far is to do it by hand, which is going to be pretty complicated, but if anyone has another suggestion, I’m open to it."}, {"post_id": 79983, "ts": "2026-10-15T18:52:44Z", "hours": 1.6833, "text": "I’ve made the base for my Macropad, it still needs the holes for the screws and the opening for the USB. P.S.: It took me quite a while just to do this, but at least now I know more."}, {"post_id": 79652, "ts": "2026-10-14T22:21:30Z", "hours": 0.5333, "text": "I think I fixed the routes on my PCB. Now it will probably work."}, {"post_id": 79646, "ts": "2026-10-14T20:48:21Z", "hours": 0.8667, "text": "I’m going crazy trying to route my PCB. Can someone please give me some tips or tell me what’s wrong?"}, {"post_id": 79603, "ts": "2026-10-14T17:48:39Z", "hours": 0.6167, "text": "This is my first time doing a project like this. I’ve never built anything like it, and I’m excited to keep developing this Macropad. For now, I’ve finished the schematic for my PCB. Is it good? For me it’s okay for someone with zero experience, but I’m all ears for suggestions."}]...
|
Title: My humble Macropad by @gustavocunha | Stard Title: My humble Macropad by @gustavocunha | Stardance
Devlogs:
This is my first time doing a project like this. I’ve never built anything like it, and I’m excited to keep developing this Macropad. For now, I’ve finished the schematic for my PCB. Is it good? For me it’s okay for someone with zero experience, but I’m all ears for suggestions.
I’m going crazy trying to route my PCB. Can someone please give me some tips or tell me what’s wrong?
I think I fixed the routes on my PCB. Now it will probably work.
I’ve made the base for my Macropad, it still needs the holes for the screws and the opening for the USB. P.S.: It took me quite a while just to do this, but at least now I know more.
I redid the bottom part of the case and added four holes for the screws, but I’m lost on how to make the top part, where the keys go. I tried following the tutorial, but the holes and the distances don’t line up. The best solution I’ve come up with so far is to do it by hand, which is going to be pretty complicated, but if anyone has another suggestion, I’m open to it.
I redid my PCB, but I ran into an error when adding the LEDs. I don’t know what’s going on. If anyone has any ideas or suggestions, please let me know. I could really use the help.
I finally finished the top part, but I have my doubts about whether it will fit, because I wasn’t able to import the 3D model properly. In the future, I plan to review it or redo it in another program, but for now the next step is the firmware.
I’ve finished the firmware. Now it’s just a few small touches and it’s ready to ship!!!
I’ve done the last setup, and now I’m gonna ship it. I’m very happy to have gotten this far....
|
1793123293.1638262
|
1793728093.1638262
|
|
70301
|
SlackHack by @george_sameh | Stardance
|
george_sameh
|
1
|
2.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-21T18:16:02Z", "hours": 2.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a Slack bot that can perform simple tasks like checking the weather or sharing a joke or quote. The challenging part was to write my first code for a Slack bot ever, but I learned from the docs and the internet, and with some help from AI, I successfully made my first Slack bot. I’m proud that I learned new things and how to make a Slack bot. People can try the bot directly from the Slack channel because it is running on HackClub Nest.", "repo": "https://github.com/george-sameh/SlackHack", "demo": "https://hackclub.enterprise.slack.com/archives/C0CAD53DPB8"}]...
|
[{"post_id": 80822, "ts": "202 [{"post_id": 80822, "ts": "2026-10-18T21:50:14Z", "hours": 2.3444, "text": "In this devlog. I created my first ever Slack bot, which features commands like weather, quote, joke. I integrated multiple APIs: the first is Open-Meteo for weather data, the second is Zen Quotes for quote command, and the third is Official Jokes that is used for the jokes section"}]...
|
Title: SlackHack by @george_sameh | Stardance
Dev Title: SlackHack by @george_sameh | Stardance
Devlogs:
In this devlog. I created my first ever Slack bot, which features commands like weather, quote, joke. I integrated multiple APIs: the first is Open-Meteo for weather data, the second is Zen Quotes for quote command, and the third is Official Jokes that is used for the jokes section
Ships:
I made a Slack bot that can perform simple tasks like checking the weather or sharing a joke or quote. The challenging part was to write my first code for a Slack bot ever, but I learned from the docs and the internet, and with some help from AI, I successfully made my first Slack bot. I’m proud that I learned new things and how to make a Slack bot. People can try the bot directly from the Slack channel because it is running on HackClub Nest....
|
1793116198.232485
|
1793202598.232485
|
|
38881
|
Novel FMG Band for Prosthetics by @eshaanm | Stard Novel FMG Band for Prosthetics by @eshaanm | Stardance...
|
eshaanm
|
0
|
58.88
|
0
|
[]
|
[{"post_id": 80825, "ts": "202 [{"post_id": 80825, "ts": "2026-10-18T22:16:58Z", "hours": 2.3167, "text": "It has been a long time. i reached out to an FMG engineer and he reccomended that i have a quick release mechanism for the band. the issue is that everything was already on my band and since there was superglue it would not come off. that kindof sucker but i had to take everything off of that including the dowels and pcbs. I luckily had extra screws i could resuse. then i spent time cading a new version of the band that would allow the entire top half to hinge out. next we are going to reassemble the band again, build the rig, collect some data, train, and finally ship."}, {"post_id": 76465, "ts": "2026-10-03T16:39:16Z", "hours": 1.2167, "text": "Today was super nice because all the individual parts came together. i attached all the sensor PCBs onto the rigid band + carriages and then screwed on the main board. then i plugged in all the connectors and glued down the FSRs with some adhesive. looking great. next i do want to manage the wires a little better and make a bettery cover. after that we make the rig and the code and it should be ready to ship."}, {"post_id": 74725, "ts": "2026-09-28T02:22:09Z", "hours": 1.55, "text": "Today I worked on the rigid band V1. I printed out new carriages and assembled everything with the screws, nuts, carriages, and covers. I used super glue. Next I am going to attach all the PCBs and complete the wiring before moving on to code"}, {"post_id": 72884, "ts": "2026-09-23T22:43:09Z", "hours": 1.3314, "text": "Today was a productive day. I got the 5 smaller PCBs soldered and then I was able to add n the force sensitive resistors to all 9 PCBS (I had 10 and then lost one idk) and also added the JST connectors to all 9 PCBs."}, {"post_id": 72423, "ts": "2026-09-22T22:11:16Z", "hours": 0.6503, "text": "today i took one of my small PCBs, soldered on a forse sensitive resistor and a JST connector and tested the sensor and board. it worked perfectly even when being powered by the main control board. The sensor was fairly accurate and sensitive and pressing it fully it never went over 3.3v which was from the op amp i put in which means everything works great. next i have to assemble all 10 of the sensor boards and then integrate everything into the final band/rig."}, {"post_id": 70334, "ts": "2026-09-18T23:48:12Z", "hours": 1.5667, "text": "Today was a productive day. I was working on the PCB hardware. First I soldered on the battery connector and switch and tested the buck-boost converter. it was working which was awesome! mThen i soldered on some headers and hot-aired the FSR connectors. I also soldered on the teensy headers and some other stuff. All that is left on the board is to sodler on the screen which i forgot to do. In the future i will probably just be working on some paperwork so this may be last devlog in some time."}, {"post_id": 69420, "ts": "2026-09-17T00:46:54Z", "hours": 3.0503, "text": "Today was definetaly the biggest day this project has had so far. The PCBs arrived and I hand soldered them using a hot air gun for the first time I had ever done this. First i did the smaller boards. I did not have a stencil for those ones so I just put blobs of sodler paste and then placed the components and used the hot air gun. the hot air gun worked VERY well. Then i moved to the big board which was the scary part. for this one i had a good idea to organize the components though. I took one of my extra boards, put some double-sided tape on it and then placed the components ON there in the right places. then i just moved it to the final board which i applied solder apste on using a stencil. i then reflowed and everything clicking into place was vbery satisfying. I had one bridge on the buck boost but fixed that after and then i just cleaned up. Next i want to finish the rest of the small boards (5 left) and also test the boards to see if they even work."}, {"post_id": 65104, "ts": "2026-09-10T00:30:33Z", "hours": 0.4183, "text": "Today I started working on the code. not the one on the PCB (I finished that already) but the actual model that will predict the gestures. I spent most of the time setting up halftime with Arduino IDE which was annoying since I can’t use lapse for code. I mainly just worked on the tool stack I will need. I am thinking python + usb cable/sd card for data + raw values in a LDA classifier + back to the sd card + teensy runs the trained model ON THE DEVICE. I could also run the model on the computer and then send the predicted value back to the teensy with usb but idk if that is good. anyways next I think I will start on the building of everything while I wait and then move to code while I wait for my PCBs (they are in Hong Kong airport rn) then in October after star dance I will do the experiment and methodology."}, {"post_id": 63868, "ts": "2026-09-07T21:09:36Z", "hours": 1.9169, "text": "Today was pretty good because i worked on the CAD for the sliding adjustable rig. I spent most of the time on the stand for the main FMG band, and then put it in an assembly and tweaked a few alignment issues with the heights and sizes of the rests. Then i printed a portion of the rail and the rest so I can test the tolerances of the dovetail slide. those are printing right now but next I will probably print everything out and assemble the rig and also assembl;e the carriages on the fmg band. After all of this mechanical stuff all i have to do is polish the methodology and the code while i wait for the PCBs to arrive (they will take two weeks minimum so its going to be tight around the end)."}, {"post_id": 62477, "ts": "2026-09-05T20:44:08Z", "hours": 2.0672, "text": "it has been some time since my last devlog since school just started and all my PCBs and components are still shipping from china. I thought i would try to finish some of the other work while I wait in order to make it easy and quick once the baords get here. Today i wanted to work on the RIG that will hold the band aw sell as two adjustable rests for the arm. Ofcourse you can use the band without any of this but since this is a research experiment I want to remove as many variables as possible and keeping it in this way locked in one position does that and also makes it easier to test on peple and put it on. Most likelyfinal version will use IMU to correct for limb position and wont need this bulky rig but we will see. Im thinking of keeping the rig on a piece of wood and usinug a dovetail to slide around the FMg rest and arm rests. i modelled two versions. I still need to work on the FMG rest which has to be adjustable up and down but yeah i will try to get that built soon and also finish programming everything and the methodology so i am ready"}, {"post_id": 58470, "ts": "2026-08-30T21:46:01Z", "hours": 0.7328, "text": "I added the heat set inserts to the 3d print, soldered the headers on the teensy, ordered both the PCB and it’s components (will take 1 - 2 weeks), and 3d printed the carriage section of the captive leadscrew assembly"}, {"post_id": 57671, "ts": "2026-08-29T21:53:09Z", "hours": 1.1489, "text": "today I finished tweaking the PCB then I tried ordering the PCB and LCSC components. I was trying to do this thing where you combine orders to save on shipping, so I had to set the JLC PCB order address to the LCSC warehouse, and then I emailed LCSC and asked to combine my orders since I did not see the option on the LCSC checkout. I will hear back from them soon hopefully so then everything will come so I can star building. also I printed out the 3d printed parts and also got all my other supplied from amazon. I am a bit worried though because one jlcpcb order I cancelled and I do not see the refund on my HCB account"}, {"post_id": 57031, "ts": "2026-08-29T03:19:47Z", "hours": 1.1667, "text": "What i worked on today was I mainly was just uploading my reciepts for HCB then I had to go through the schematic and check all the circuits to make sure it was good for printing. I am glad I did because i found multiple mistakes with the SD card, IMU, and buck/boost. I then had to add some more resistors so i had to figure out how to reroute everything. i finished i think but it is still a mess so i can definately work on it for one more day before ordering."}, {"post_id": 56335, "ts": "2026-08-28T02:01:21Z", "hours": 1.6, "text": "today I got my grant approved which was awesome. I also updated my BOM to buy everything from amazon because it was easier than micro center for me. then I ordered the amazon and adafruit parts which is like 90% of everything. I was going to order PCB until I decided to check out my buck-boost circuit and realized it was completely wrong. so I fixed that. I think I will order the PCBs in a few days after double checking EVERYTHING."}, {"post_id": 55327, "ts": "2026-08-27T02:14:40Z", "hours": 1.9667, "text": "so basicly what I have been doing for now is that I already sent out the project for funding review, but I thought while I wait I might make some small upgrades to the PCB. first I swapped out the through-hole pads for actual connectors (JST-SH?) which will make it much easier to connect the sensor boards. then I spent the rest of the time working on the PCB tracing I think I optimized it a lot more. next I have to double check all the PCB components and routing and then I have to prepare myself for my next steps when I get funding"}, {"post_id": 54178, "ts": "2026-08-25T01:34:42Z", "hours": 2.3167, "text": "Today I got some good feedback before submitting that I should polish my CAD and my README in order to get into the highest tier. SO first I worked on fully polishing the CAD with fillets, assembly, mounting holes, made it wider so its easier to slip on, fixed the carriages. and then I went to fixing the readme and GitHub where I added some pretty sick black and white images of the band. lastly I updated my BOM to reflect my budget. now everything fits pretty well under 250 dollars which is perfect. I am also now using JST-GH 1.25mm 3 pin connectors from the sensor PCB to the main PCB. I am retread to submit! I will keep working on small cad and PCB changes while waiting :D"}, {"post_id": 54089, "ts": "2026-08-24T21:30:05Z", "hours": 2.3167, "text": "ok today was just a good recap day and I think I can submit my project for funding now. what I did was first import all the CAD, PCB, BOM, PNG files into the GitHub and organize them. then I went through a whole thing with my BOM because I forgot to add a lot of stuff like wire and a battery. the total is now like 215 but I think it should be fine because I will just pay the extra myself. I also wrote a pretty long README.md which I am pretty proud of. I am going to submit this now so fingers crossed for the review. I hope it takes less than a week since I dont have time :("}, {"post_id": 53514, "ts": "2026-08-24T02:59:59Z", "hours": 2.9333, "text": "Today was an ultimate lock in day. It says 3 hours, but I totally forgot about lapse for two hours before so in total I worked around 5 hours. My goals of course was to completely finish and submit project. I did not do that but I am definitely pretty close. Here is everything I did today. I switched back to the BMI270, I asked for help on my PCB from reddit, hack club slack, and on of my dad’s colleagues (meeting is tommorow), I moved to CAD where I made my walls thinner, fixed the holes for the PCB, added both PCB, the main frame, the screw, the dowels, the sensor PCB, and the nut carriage in an assembly view, I created a small carriage for the end of the screw so that the screw actually moves the PCB back and forth, then I moved to firmware and wrote a complete firmware that checks all the components (FSR, IMU, OLED, SD card) and has a loop which does the simple function for the board. Tommorow I just need to collect this all into a GitHub, do some last minute PCB/BOM checks and I can submit!"}, {"post_id": 53289, "ts": "2026-08-23T19:01:22Z", "hours": 2.8725, "text": "ok these lapses was from yesterday and the day before I forgot to log them but I got a lot done and also made one major change to the project. mainly I was finishing up the BOM again. I put if almost everything and it was fitting inside 200 dollars so I was excited. then I actually decided to check how much shipping and tariffs would cost and the total was over 150 just for the control pcbs. I realized in this budget automated assembly would not work so I decided I will assembly these by hand. most of the 603 components are super easy just the main issue Is that the IMU I am using has the pins under the chip which will be difficult for me to solder. anyways on LCSC I was able to get all the parts + lots of extra in case I mess up for under 30 dollars. Also I dont know if I covered this but Thursday I changed the IMU from he BMI270 to the LSM6DSVQTR which was very similar package, size, and pinout but also was economic for JLC PCBA. now that im thinking about it I can still use the BMI270 since I am assembling by hand. I might have to switch to BMI270 actually since it is a few dollars cheaper. so anyways for assembling by hand I have a hot air rework station already, so I have gotten a stencil from JLCPCB and also included solder paste, flux, and IPA on the BOM. I still need to kinda finish the BOM but for now it is good so I have to lock in and get everything ready to submit"}, {"post_id": 51387, "ts": "2026-08-21T01:52:13Z", "hours": 2.6194, "text": "ok today was a bit of a slowerish day ig. I started off with trying to fit all the pcbs into one board so It could be manufactured at once. but that didn’t work so well so I decided im going to print each separately. first I did the main control board. I am using JLC PCBA for this since I honestly can’t assemble this by hand… I mean, I COULD but it would be a risk and maybe same like 30 bucks. anyways next the 10 smaller PCBs were very simple so I am going to assemble by hand. I ordered the bare pcbs and am going to order the components separately on LCSC. supposedly once I order the stuff from JLC it will show up on my LCSC page and I will be able to combine the orders together so I dont have to pay extra shipping. we will see though.. anyways for the main control board it took forever because first the IMU couldn’t be made on an economic PCB so I had to completely replace that with some STM based one (which is actually more powerful and cheaper and economic). then I couldn’t figure out how to change my PCBA quantity from 5 to 2, after debugging for 30 minutes, I realized the issue was because of the COLOR OF THE BOARD. I had to change it to green and then everything worked ok. I attached the pictures of the cart and dang its not cheap. hopefully it fits under 200, I might try and get this on the highest tier though, idk if its fully that polished but we will see. next I have to lock in on firmware and also finish up a BOM with full cost + screws and 3d printing material. note that for LCSC cart im not paying for shipping so its more like 12 bucks. 12 (LCSC components) + 5 (10 PCBS) + 80 (JLC PCBA) + 2 (5 pcbs) + 20 (shipping + tariffs) + 25 (teensy) + 35 (FSRs) + 20 (screws + dowels?) = 199. prob more like 250 to be realistic so I might have to chip in myself.."}, {"post_id": 50553, "ts": "2026-08-19T19:12:53Z", "hours": 1.7, "text": "What I did was finish the PCB from yesterday with all the routing. I was right and the last 30% of the routing was the hardest so I had to shuffle things around and also disrupt some of the ground plane on the back. I think in general this pub looks pretty neat. I definitely could have optimized it more but it should work perfectly fine I think. I think next I should start getting the project ready for funding. I need a BOM for that and a GitHub. I also should recheck the schematic and some of the layout or something because I can’t afford any mistakes on the board."}, {"post_id": 50096, "ts": "2026-08-19T04:58:09Z", "hours": 1.4, "text": "idk why I worked on this at midnight but I just wanted to finish up the layout. then I got carried away fixing the silkscreen. then I got carried on routing. my layout was on point because the routing was so easy and quick. id say im around 70% done routing but the remaining 30% are the toughest ones so we will see tommorow. im going to sleep."}, {"post_id": 50016, "ts": "2026-08-19T01:21:12Z", "hours": 3.9667, "text": "today was a productive day, but I may have underestimated my previous goals. I basicly started as usual with a simple layout. I am def not that great at PCB layouts but I thought it looked OK, then I realized itwasnt very good for routing and once I started routing it was a mess. So then what I did was optimize the entire layout to make it super easy to route. at the end it was looking so fire and I thought this was the one so I started adding all the silkscreen stuff and logos and names. then I remembered that FSR signals are going to be analog and they need to be super precise. Turns out buck boost converters have crazy switching field which can mess with the FSR signals. My RC filters were also pretty away from the teensy pins. so I decided to fix that with V3. I first switched around the SD card and power management circuits so that the buck boost was as far away from mt FSRs as possible. then I moved up my RC filters (low pass). I think im pretty much finished the layout, there could be some minor neatness tweaks. there is also some dead space I need to fill. I do have to redo the silk screen though and route everything tommorow. so tommorow that’s the goal as well as maybe starting the BOM? (the pic in 3D is V4)"}, {"post_id": 49305, "ts": "2026-08-18T01:29:37Z", "hours": 3.3, "text": "Today what I did was completed the schematic for the sensor board. the FSR uses an op-amp which linearizes the single as well as a VD and other caps to filter out the noise. I still want to learn more about op-amps since rn I copied the basic schematic from a paper I read. After that I finished routing the traces and creating the PCB for the sensor board which was pretty easy since it was so small. I also started the board size/layout for the main control board. Again, the goal is finishing the pcbs tommorow (I will have full day tommorow so it should be possible). Another day with good progress!"}, {"post_id": 48603, "ts": "2026-08-17T02:02:10Z", "hours": 3.25, "text": "OK so basicly what I did today was finish the main sensor board. this is everything I added: a buck boost converter, RC (low-pass) circuits for FSR, decoupling capacitors, buttons and LEDs, debugging headers (I2C, Power, SPI, GPIO, UART), a voltage divider for battery, etc. So the next stuff to do is the sensor PCB that holds the FSR as well as a full BOM and GitHub. Good progress today!"}, {"post_id": 47861, "ts": "2026-08-16T03:00:30Z", "hours": 3.15, "text": "SO what I have been working on so far right now is that I started the CAD and kind of finished the basic V2 for the rigid frame. I also started working on the PCB. SO far I have added the Teensy 4.0 microcontroller, IMU, micro-sd card, and the OLED. I still need the power circuitry, FSR boards, and prob other stuff I am probably forgetting. Goal is to finish the PCB in the next few days so I can start with a full BOM (I want to submit for review in a week)"}, {"post_id": 47165, "ts": "2026-08-14T21:05:17Z", "hours": 5.8531, "text": "Basicly what I have worked on so far is just making a CAD design for the band. I printed the first one off with PLA and it was looking good but pretty bulky. after that I designed a new band which was looking a lot more slimmer and lighter and stylish. the issue with that I am thinking though is that a rigid band is going to introduce so much issues for our study which is why im thinking of second guessing my design. also I started a littler bit with the pcb."}, {"post_id": 34610, "ts": "2026-07-25T14:07:35Z", "hours": 0.5039, "text": "Today I worked on sketching out a few designs for the project and also the rough CAD and component selection so that I can start designing soon!"}]...
|
Title: Novel FMG Band for Prosthetics by @eshaanm Title: Novel FMG Band for Prosthetics by @eshaanm | Stardance
Devlogs:
Today I worked on sketching out a few designs for the project and also the rough CAD and component selection so that I can start designing soon!
Basicly what I have worked on so far is just making a CAD design for the band. I printed the first one off with PLA and it was looking good but pretty bulky. after that I designed a new band which was looking a lot more slimmer and lighter and stylish. the issue with that I am thinking though is that a rigid band is going to introduce so much issues for our study which is why im thinking of second guessing my design. also I started a littler bit with the pcb.
SO what I have been working on so far right now is that I started the CAD and kind of finished the basic V2 for the rigid frame. I also started working on the PCB. SO far I have added the Teensy 4.0 microcontroller, IMU, micro-sd card, and the OLED. I still need the power circuitry, FSR boards, and prob other stuff I am probably forgetting. Goal is to finish the PCB in the next few days so I can start with a full BOM (I want to submit for review in a week)
OK so basicly what I did today was finish the main sensor board. this is everything I added: a buck boost converter, RC (low-pass) circuits for FSR, decoupling capacitors, buttons and LEDs, debugging headers (I2C, Power, SPI, GPIO, UART), a voltage divider for battery, etc. So the next stuff to do is the sensor PCB that holds the FSR as well as a full BOM and GitHub. Good progress today!
Today what I did was completed the schematic for the sensor board. the FSR uses an op-amp which linearizes the single as well as a VD and other caps to filter out the noise. I still want to learn more about op-amps since rn I copied the basic schematic from a paper I read. After that I finished routing the traces and creating the PCB for the sensor board which was pretty easy since it was so small. I also started the board size/layout for the main control board. Again, the goal is finishing the pcbs tommorow (I will have full day tommorow so it should be possible). Another day with good progress!
today was a productive day, but I may have underestimated my previous goals. I basicly started as usual with a simple layout. I am def not that great at PCB layouts but I thought it looked OK, then I realized itwasnt very good for routing and once I started routing it was a mess. So then what I did was optimize the entire layout to make it super easy to route. at the end it was looking so fire and I thought this was the one so I started adding all the silkscreen stuff and logos and names. then I remembered that FSR signals are going to be analog and they need to be super precise. Turns out buck boost converters have crazy switching field which can mess with the FSR signals. My RC filters were also pretty away from the teensy pins. so I decided to fix that with V3. I first switched around the SD card and power management circuits so that the buck boost was as far away from mt FSRs as possible. then I moved up my RC filters (low pass). I think im pretty much finished the layout, there could be some minor neatness tweaks. there is also some dead space I need to fill. I do have to redo the silk screen though and route everything tommorow. so tommorow that’s the goal as well as maybe starting the BOM? (the pic in 3D is V4)
idk why I worked on this at midnight but I just wanted to finish up the layout. then I got carried away fixing the silkscreen. then I got carried on routing. my layout was on point because the routing was so easy and quick. id say im around 70% done routing but the remaining 30% are the toughest ones so we will see tommorow. im going to sleep.
What I did was finish the PCB from yesterday with all the routing. I was right and the last 30% of the routing was the hardest so I had to shuffle things around and also disrupt some of the ground plane on the back. I think in general this pub looks pretty neat. I definitely could have optimized it more but it should work perfectly fine I think. I think next I should start getting the project ready for funding. I need a BOM for that and a GitHub. I also should recheck the schematic and some of the layout or something because I can’t afford any mistakes on the board.
ok today was a bit of a slowerish day ig. I started off with trying to fit all the pcbs into one board so It could be manufactured at once. but that didn’t work so well so I decided im going to print each separately. first I did the main control board. I am using JLC PCBA for this since I honestly can’t assemble this by hand… I mean, I COULD but it would be a risk and maybe same like 30 bucks. anyways next the 10 smaller PCBs were very simple so I am going to assemble by hand. I ordered the bare pcbs and am going to order the components separately on LCSC. supposedly once I order the stuff from JLC it will show up on my LCSC page and I will be able to combine the orders together so I dont have to pay extra shipping. we will see though.. anyways for the main control board it took forever because first the IMU couldn’t be made on an economic PCB so I had to completely replace that with some STM based one (which is actually more powerful and cheaper and economic). then I couldn’t figure out how to change my PCBA quantity from 5 to 2, after debugging for 30 minutes, I realized the issue was because of the COLOR OF THE BOARD. I had to change it to green and then everything worked ok. I attached the pictures of the cart and dang its not cheap. hopefully it fits under 200, I might try and get this on the highest tier though, idk if its fully that polished but we will see. next I have to lock in on firmware and also finish up a BOM with full cost + screws and 3d printing material. note that for LCSC cart im not paying for shipping so its more like 12 bucks. 12 (LCSC components) + 5 (10 PCBS) + 80 (JLC PCBA) + 2 (5 pcbs) + 20 (shipping + tariffs) + 25 (teensy) + 35 (FSRs) + 20 (screws + dowels?) = 199. prob more like 250 to be realistic so I might have to chip in myself..
ok these lapses was from yesterday and the day before I forgot to log them but I got a lot done and also made one major change to the project. mainly I was finishing up the BOM again. I put if almost everything and it was fitting inside 200 dollars so I was excited. then I actually decided to check how much shipping and tariffs would cost and the total was over 150 just for the control pcbs. I realized in this budget automated assembly would not work so I decided I will assembly these by hand. most of the 603 components are super easy just the main issue Is that the IMU I am using has the pins under the chip which will be difficult for me to solder. anyways on LCSC I was able to get all the parts + lots of extra in case I mess up for under 30 dollars. Also I dont know if I covered this but Thursday I changed the IMU from he BMI270 to the LSM6DSVQTR which was very similar package, size, and pinout but also was economic for JLC PCBA. now that im thinking about it I can still use the BMI270 since I am assembling by hand. I might have to switch to BMI270 actually since it is a few dollars cheaper. so anyways for assembling by hand I have a hot air rework station already, so I have gotten a stencil from JLCPCB and also included solder paste, flux, and IPA on the BOM. I still need to kinda finish the BOM but for now it is good so I have to lock in and get everything ready to submit
Today was an ultimate lock in day. It says 3 hours, but I totally forgot about lapse for two hours before so in total I worked around 5 hours. My goals of course was to completely finish and submit project. I did not do that but I am definitely pretty close. Here is everything I did today. I switched back to the BMI270, I asked for help on my PCB from reddit, hack club slack, and on of my dad’s colleagues (meeting is tommorow), I moved to CAD where I made my walls thinner, fixed the holes for the PCB, added both PCB, the main frame, the screw, the dowels, the sensor PCB, and the nut carriage in an assembly view, I created a small carriage for the end of the screw so that the screw actually moves the PCB back and forth, then I moved to firmware and wrote a complete firmware that checks all the components (FSR, IMU, OLED, SD card) and has a loop which does the simple function for the board. Tommorow I just need to collect this all into a GitHub, do some last minute PCB/BOM checks and I can submit!
ok today was just a good recap day and I think I can submit my project for funding now. what I did was first import all the CAD, PCB, BOM, PNG files into the GitHub and organize them. then I went through a whole thing with my BOM because I forgot to add a lot of stuff like wire and a battery. the total is now like 215 but I think it should be fine because I will just pay the extra myself. I also wrote a pretty long README.md which I am pretty proud of. I am going to submit this now so fingers crossed for the review. I hope it takes less than a week since I dont have time :(
Today I got some good feedback before submitting that I should polish my CAD and my README in order to get into the highest tier. SO first I worked on fully polishing the CAD with fillets, assembly, mounting holes, made it wider so its easier to slip on, fixed the carriages. and then I went to fixing the readme and GitHub where I added some pretty sick black and white images of the band. lastly I updated my BOM to reflect my budget. now everything fits pretty well under 250 dollars which is perfect. I am also now using JST-GH 1.25mm 3 pin connectors from the sensor PCB to the main PCB. I am retread to submit! I will keep working on small cad and PCB changes while waiting :D
so basicly what I have been doing for now is that I already sent out the project for funding review, but I thought while I wait I might make some small upgrades to the PCB. first I swapped out the through-hole pads for actual connectors (JST-SH?) which will make it much easier to connect the sensor boards. then I spent the rest of the time working on the PCB tracing I think I optimized it a lot more. next I have to double check all the PCB components and routing and then I have to prepare myself for my next steps when I get funding
today I got my grant approved which was awesome. I also updated my BOM to buy everything from amazon because it was easier than micro center for me. then I ordered the amazon and adafruit parts which is like 90% of everything. I was going to order PCB until I decided to check out my buck-boost circuit and realized it was completely wrong. so I fixed that. I think I will order the PCBs in a few days after double checking EVERYTHING.
What i worked on today was I mainly was just uploading my reciepts for HCB then I had to go through the schematic and check all the circuits to make sure it was good for printing. I am glad I did because i found multiple mistakes with the SD card, IMU, and buck/boost. I then had to add some more resistors so i had to figure out how to reroute everything. i finished i think but it is still a mess so i can definately work on it for one more day before ordering.
today I finished tweaking the PCB then I tried ordering the PCB and LCSC components. I was trying to do this thing where you combine orders to save on shipping, so I had to set the JLC PCB order address to the LCSC warehouse, and then I emailed LCSC and asked to combine my orders since I did not see the option on the LCSC checkout. I will hear back from them soon hopefully so then everything will come so I can star building. also I printed out the 3d printed parts and also got all my other supplied from amazon. I am a bit worried though because one jlcpcb order I cancelled and I do not see the refund on my HCB account
I added the heat set inserts to the 3d print, soldered the headers on the teensy, ordered both the PCB and it’s components (will take 1 - 2 weeks), and 3d printed the carriage section of the captive leadscrew assembly
it has been some time since my last devlog since school just started and all my PCBs and components are still shipping from china. I thought i would try to finish some of the other work while I wait in order to make it easy and quick once the baords get here. Today i wanted to work on the RIG that will hold the band aw sell as two adjustable rests for the arm. Ofcourse you can use the band without any of this but since this is a research experiment I want to remove as many variables as possible and keeping it in this way locked in one position does that and also makes it easier to test on peple and put it on. Most likelyfinal version will use IMU to correct for limb position and wont need this bulky rig but we will see. Im thinking of keeping the rig on a piece of wood and usinug a dovetail to slide around the FMg rest and arm rests. i modelled two versions. I still need to work on the FMG rest which has to be adjustable up and down but yeah i will try to get that built soon and also finish programming everything and the methodology so i am ready
Today was pretty good because i worked on the CAD for the sliding adjustable rig. I spent most of the time on the stand for the main FMG band, and then put it in an assembly and tweaked a few alignment issues with the heights and sizes of the rests. Then i printed a portion of the rail and the rest so I can test the tolerances of the dovetail slide. those are printing right now but next I will probably print everything out and assemble the rig and also assembl;e the carriages on the fmg band. After all of this mechanical stuff all i have to do is polish the methodology and the code while i wait for the PCBs to arrive (they will take two weeks minimum so its going to be tight around the end).
Today I started working on the code. not the one on the PCB (I finished that already) but the actual model that will predict the gestures. I spent most of the time setting up halftime with Arduino IDE which was annoying since I can’t use lapse for code. I mainly just worked on the tool stack I will need. I am thinking python + usb cable/sd card for data + raw values in a LDA classifier + back to the sd card + teensy runs the trained model ON THE DEVICE. I could also run the model on the computer and then send the predicted value back to the teensy with usb but idk if that is good. anyways next I think I will start on the building of everything while I wait and then move to code while I wait for my PCBs (they are in Hong Kong airport rn) then in October after star dance I will do the experiment and methodology.
Today was definetaly the biggest day this project has had so far. The PCBs arrived and I hand soldered them using a hot air gun for the first time I had ever done this. First i did the smaller boards. I did not have a stencil for those ones so I just put blobs of sodler paste and then placed the components and used the hot air gun. the hot air gun worked VERY well. Then i moved to the big board which was the scary part. for this one i had a good idea to organize the components though. I took one of my extra boards, put some double-sided tape on it and then placed the components ON there in the right places. then i just moved it to the final board which i applied solder apste on using a stencil. i then reflowed and everything clicking into place was vbery satisfying. I had one bridge on the buck boost but fixed that after and then i just cleaned up. Next i want to finish the rest of the small boards (5 left) and also test the boards to see if they even work.
Today was a productive day. I was working on the PCB hardware. First I soldered on the battery connector and switch and tested the buck-boost converter. it was working which was awesome! mThen i soldered on some headers and hot-aired the FSR connectors. I also soldered on the teensy headers and some other stuff. All that is left on the board is to sodler on the screen which i forgot to do. In the future i will probably just be working on some paperwork so this may be last devlog in some time.
today i took one of my small PCBs, soldered on a forse sensitive resistor and a JST connector and tested the sensor and board. it worked perfectly even when being powered by the main control board. The sensor was fairly accurate and sensitive and pressing it fully it never went over 3.3v which was from the op amp i put in which means everything works great. next i have to assemble all 10 of the sensor boards and then integrate everything into the final band/rig.
Today was a productive day. I got the 5 smaller PCBs soldered and then I was able to add n the force sensitive resistors to all 9 PCBS (I had 10 and then lost one idk) and also added the JST connectors to all 9 PCBs.
Today I worked on the rigid band V1. I printed out new carriages and assembled everything with the screws, nuts, carriages, and covers. I used super glue. Next I am going to attach all the PCBs and complete the wiring before moving on to code
Today was super nice because all the individual parts came together. i attached all the sensor PCBs onto the rigid band + carriages and then screwed on the main board. then i plugged in all the connectors and glued down the FSRs with some adhesive. looking great. next i do want to manage the wires a little better and make a bettery cover. after that we make the rig and the code and it should be ready to ship.
It has been a long time. i reached out to an FMG engineer and he reccomended that i have a quick release mechanism for the band. the issue is that everything was already on my band and since there was superglue it would not come off. that kindof sucker but i had to take everything off of that including the dowels and pcbs. I luckily had extra screws i could resuse. then i spent time cading a new version of the band that would allow the entire top half to hinge out. next we are going to reassemble the band again, build the rig, collect some data, train, and finally ship....
|
1792497090.3394616
|
1793101890.3394616
|
|
66665
|
ShareList by @Huseyin | Stardance
|
Huseyin
|
1
|
23.0
|
222
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-18T22:42:16Z", "hours": 23.0, "multiplier": 9.69, "payout": 222, "blessing": "neutral", "text": "ShareList You have seen the plethora of different playlist services offered in different apps and websites. You can make a playlist in Youtube. You can make a playlist in Spotify. Heck you can even make a playlist of sorts in Scratch! The problem is that all those platforms allow you to make a playlist of ONLY whatever you find on that platform, and I have not seen otherwise. With ShareList, you can make a simple playlist, give it a name, a description(optional), a cool icon(optional), a password for editing further, and an expiration date so Firestore doesn’t end up crying later!! Features No Account Required Straight to the Point; No Bluff Cool UI Fast No Restrictions Anonymous No Tracking(rare these days) Open-Source Bakes you a cookie 😢 Final Regards Thank you for checking our ShareList and sharing your experiences with others.", "repo": "https://github.com/krambo345/ShareList", "demo": "https://sharelist.krambo.space"}]...
|
[{"post_id": 80828, "ts": "202 [{"post_id": 80828, "ts": "2026-10-18T22:29:08Z", "hours": 0.9003, "text": "Last Devlog After some quick clean up and polish, ShareList is practically ready for shipping. Things I Did Fix responsive ui Remove browser assumption of “password” fields Thats really it"}, {"post_id": 79863, "ts": "2026-10-15T17:26:08Z", "hours": 6.7394, "text": "RESPONSIVE Sharelist is now responsive dont got much time will keep this short… made responsive fixed some ui now you can completely edit, save, things like that… share button for sharing about page for abouting things like that. cool images from cool website btw…"}, {"post_id": 79513, "ts": "2026-10-14T12:12:06Z", "hours": 3.3314, "text": "UI 🎨 [Devlog 3] After some work, I finished the CSS side of things for the playlists… So now, you can see your playlist and it’s information better. Other Additions You can now somewhat toggle between the edit mode and view mode of a playlist. Well, it is kind of a one-way thing. So if you start editing, you can not save yet. Added a function for synchronizing changes to Firebase . Not used rn. Added the input elements and buttons to allow changing values of a playlist. Right now, they are only toggle-able."}, {"post_id": 76941, "ts": "2026-10-05T04:41:38Z", "hours": 7.0897, "text": "Got the Back end! [Devlog 2] Last devlog, I worked on the main UI, and added very cool effects. NEW This devlog, I got other stuff!! OK.. maybe just a bit more cool UI The Firebase side of stuff is pretty complete! Now, you can make a playlist inside the create page, and when made, it will redirect you to a URL(/p/id) which will be your playlist! I had to look through many ways i could implement security. However, I stayed with a basic sha256 hashing system. Because there are no accounts on the app, there really is no other alternative. And sha256 is very easy. Made layout for create page and playlist page. Conclusion These are pretty cool! What else do you want added? Let me know in comments below!!"}, {"post_id": 75068, "ts": "2026-09-29T01:44:46Z", "hours": 4.8722, "text": "ShareList [Devlog 1] Youtube has a playlist system… for Youtube only videos. Spotify has a playlist system… for Spotify only audio. Why not a web app that allows you to make a playlist of both worlds? With ShareList, you will be able to make a playlist that can have content stretching from videos to music to websites, with the additional benefit of being able to share them! Starting off… Today, I worked on the main structure of the project, and did a whole lot of styling. I think it worked out pretty cool. I did things like: Box-shadows for the bar atop the page, which interacts with the mouse and is actually split in two! A glow ⭐ on the mouse, which is pretty cool and awesome looking. Night/Light mode. 404 Page(my first time) There is way more, but I will not list em’. Things I am/will work on… It is time for the back-end now… yay… 🙄 Need to make the about and playlist pages themselves. The form-like interface to make/edit a playlist. Conclusion So I think I overdid myself today, which is pretty tuff . I am really hoping to finish this so people can use it ASAP!!"}]...
|
Title: ShareList by @Huseyin | Stardance
Devlogs: Title: ShareList by @Huseyin | Stardance
Devlogs:
ShareList [Devlog 1] Youtube has a playlist system… for Youtube only videos. Spotify has a playlist system… for Spotify only audio. Why not a web app that allows you to make a playlist of both worlds? With ShareList, you will be able to make a playlist that can have content stretching from videos to music to websites, with the additional benefit of being able to share them! Starting off… Today, I worked on the main structure of the project, and did a whole lot of styling. I think it worked out pretty cool. I did things like: Box-shadows for the bar atop the page, which interacts with the mouse and is actually split in two! A glow ⭐ on the mouse, which is pretty cool and awesome looking. Night/Light mode. 404 Page(my first time) There is way more, but I will not list em’. Things I am/will work on… It is time for the back-end now… yay… 🙄 Need to make the about and playlist pages themselves. The form-like interface to make/edit a playlist. Conclusion So I think I overdid myself today, which is pretty tuff . I am really hoping to finish this so people can use it ASAP!!
Got the Back end! [Devlog 2] Last devlog, I worked on the main UI, and added very cool effects. NEW This devlog, I got other stuff!! OK.. maybe just a bit more cool UI The Firebase side of stuff is pretty complete! Now, you can make a playlist inside the create page, and when made, it will redirect you to a URL(/p/id) which will be your playlist! I had to look through many ways i could implement security. However, I stayed with a basic sha256 hashing system. Because there are no accounts on the app, there really is no other alternative. And sha256 is very easy. Made layout for create page and playlist page. Conclusion These are pretty cool! What else do you want added? Let me know in comments below!!
UI 🎨 [Devlog 3] After some work, I finished the CSS side of things for the playlists… So now, you can see your playlist and it’s information better. Other Additions You can now somewhat toggle between the edit mode and view mode of a playlist. Well, it is kind of a one-way thing. So if you start editing, you can not save yet. Added a function for synchronizing changes to Firebase . Not used rn. Added the input elements and buttons to allow changing values of a playlist. Right now, they are only toggle-able.
RESPONSIVE Sharelist is now responsive dont got much time will keep this short… made responsive fixed some ui now you can completely edit, save, things like that… share button for sharing about page for abouting things like that. cool images from cool website btw…
Last Devlog After some quick clean up and polish, ShareList is practically ready for shipping. Things I Did Fix responsive ui Remove browser assumption of “password” fields Thats really it
Ships:
ShareList You have seen the plethora of different playlist services offered in different apps and websites. You can make a playlist in Youtube. You can make a playlist in Spotify. Heck you can even make a playlist of sorts in Scratch! The problem is that all those platforms allow you to make a playlist of ONLY whatever you find on that platform, and I have not seen otherwise. With ShareList, you can make a simple playlist, give it a name, a description(optional), a cool icon(optional), a password for editing further, and an expiration date so Firestore doesn’t end up crying later!! Features No Account Required Straight to the Point; No Bluff Cool UI Fast No Restrictions Anonymous No Tracking(rare these days) Open-Source Bakes you a cookie 😢 Final Regards Thank you for checking our ShareList and sharing your experiences with others....
|
1793008267.376395
|
1793094667.376395
|
|
70134
|
WebOS for real this time by @avycado13 | Stardance
|
avycado13
|
1
|
3.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-18T23:10:15Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a WebOS that is powered by a bash shell for filesystem and all utiitlites", "repo": "https://github.com/avycado13/avyos", "demo": "https://webos-iota-two.vercel.app/"}]...
|
[{"post_id": 80832, "ts": "202 [{"post_id": 80832, "ts": "2026-10-18T22:58:00Z", "hours": 0.9247, "text": "I added a proper bash implementation to my terminal and added folders on the desktop. I also deployed it to vercel. I also added a weather app"}, {"post_id": 80823, "ts": "2026-10-18T21:51:23Z", "hours": 0.5214, "text": "I addeda clock app"}, {"post_id": 80597, "ts": "2026-10-18T08:09:03Z", "hours": 1.4908, "text": "I built a basic windowing system for my webos!"}]...
|
Title: WebOS for real this time by @avycado13 | St Title: WebOS for real this time by @avycado13 | Stardance
Devlogs:
I built a basic windowing system for my webos!
I addeda clock app
I added a proper bash implementation to my terminal and added folders on the desktop. I also deployed it to vercel. I also added a weather app
Ships:
I made a WebOS that is powered by a bash shell for filesystem and all utiitlites...
|
1793051309.9267788
|
1793137709.9267788
|
|
70308
|
My very own WebOS by @isipisi | Stardance
|
isipisi
|
0
|
1.74
|
0
|
[]
|
[{"post_id": 80833, "ts": "202 [{"post_id": 80833, "ts": "2026-10-18T23:00:49Z", "hours": 1.0978, "text": "Okay so after like 1h more things start to make more sense (excluding the moment in which I created the first window that everything started to overlap)"}, {"post_id": 80694, "ts": "2026-10-18T15:20:11Z", "hours": 0.6464, "text": "honestly it was like 38min to understand what am I doing and how to write it in html. It is very ugly but hey as for my first 38min coding in html it is not that bad."}]...
|
Title: My very own WebOS by @isipisi | Stardance
Title: My very own WebOS by @isipisi | Stardance
Devlogs:
honestly it was like 38min to understand what am I doing and how to write it in html. It is very ugly but hey as for my first 38min coding in html it is not that bad.
Okay so after like 1h more things start to make more sense (excluding the moment in which I created the first window that everything started to overlap)...
|
1792990375.0067286
|
1793595175.0067286
|
|
70044
|
AI Bipedal Robot by @oshy | Stardance
|
oshy
|
0
|
13.03
|
0
|
[]
|
[{"post_id": 80838, "ts": "202 [{"post_id": 80838, "ts": "2026-10-18T23:28:34Z", "hours": 9.8692, "text": "Robot Designed! I finished building my robot, although I still have to export it in a URDF format, which is a whole other thing."}, {"post_id": 80528, "ts": "2026-10-18T01:02:42Z", "hours": 3.1594, "text": "I finished the Gimble for the camera on my robot!"}]...
|
Title: AI Bipedal Robot by @oshy | Stardance
Devl Title: AI Bipedal Robot by @oshy | Stardance
Devlogs:
I finished the Gimble for the camera on my robot!
Robot Designed! I finished building my robot, although I still have to export it in a URDF format, which is a whole other thing....
|
1792946969.3964255
|
1793551769.3964255
|
|
65035
|
WarioWare Game by @ju90092 | Stardance
|
ju90092
|
0
|
20.52
|
0
|
[]
|
[{"post_id": 80840, "ts": "202 [{"post_id": 80840, "ts": "2026-10-18T23:48:00Z", "hours": 2.6722, "text": "I fixed the textbox and some bugs in minigame 2, and added the first part of the story."}, {"post_id": 80266, "ts": "2026-10-17T00:48:31Z", "hours": 1.7853, "text": "Adding the textbox to the scenes :D (example)"}, {"post_id": 78731, "ts": "2026-10-11T12:45:01Z", "hours": 2.7439, "text": "I finished the minigame 1 and the minigame 2, added a textbox and I’ll start making the minigame 3."}, {"post_id": 78439, "ts": "2026-10-10T20:04:43Z", "hours": 4.9108, "text": "I added the “garlics” and the timer is “working”. It doesn’t appear on the screen yet, but I’ll try to add it later. I added some things to the Settings, but I’ll put more effort on it later because I want to finish the minigames first (and add a “storytime”, maybe)"}, {"post_id": 77701, "ts": "2026-10-07T23:48:56Z", "hours": 3.1489, "text": "I don’t know why she doesn’t touch the ground, but I’m glad I added the animation for her movements. Also, I have the tittle screen (it was ready some time ago, but I forgot to show it) and the background. Next, I’ll work on the minigames and (maybe) put a “storytime” somewhere (which would lead me to create more characters). My level_scene isn’t working the way it should, but I’ll deal with it later"}, {"post_id": 77140, "ts": "2026-10-05T19:14:53Z", "hours": 3.9322, "text": "It’s been some hours, but I spent half of then in a mistake with the script. When I clicked the “Start” button, nothing happened. After some tutorials, I discovered that I put the wrong script in the wrong scene and the code of one of the tutorials I watched wasn’t working anymore because it was from another version of godot. Anyways, I managed to solve that part aaaand I drew my first character and background for the game (pixel art). I didn’t record the process because it was my first time using the app, so I was more focused on how to use the tools. Sadly, I’m not at home right now, so I can’t show the latest version of the character, but I have a really close version that I can show :D. English isn’t my first language, so, sorry for any mistake."}, {"post_id": 74264, "ts": "2026-09-27T03:10:07Z", "hours": 1.3219, "text": "I was following the guide to do that, so I finished the 1-9 part and I’m in the middle of the step 10. I think I’ll call the game “A Hundred and Ten Percent” because I’m a hundred and ten percent sure that I’ll finish this project (hahah)"}]...
|
Title: WarioWare Game by @ju90092 | Stardance
Dev Title: WarioWare Game by @ju90092 | Stardance
Devlogs:
I was following the guide to do that, so I finished the 1-9 part and I’m in the middle of the step 10. I think I’ll call the game “A Hundred and Ten Percent” because I’m a hundred and ten percent sure that I’ll finish this project (hahah)
It’s been some hours, but I spent half of then in a mistake with the script. When I clicked the “Start” button, nothing happened. After some tutorials, I discovered that I put the wrong script in the wrong scene and the code of one of the tutorials I watched wasn’t working anymore because it was from another version of godot. Anyways, I managed to solve that part aaaand I drew my first character and background for the game (pixel art). I didn’t record the process because it was my first time using the app, so I was more focused on how to use the tools. Sadly, I’m not at home right now, so I can’t show the latest version of the character, but I have a really close version that I can show :D. English isn’t my first language, so, sorry for any mistake.
I don’t know why she doesn’t touch the ground, but I’m glad I added the animation for her movements. Also, I have the tittle screen (it was ready some time ago, but I forgot to show it) and the background. Next, I’ll work on the minigames and (maybe) put a “storytime” somewhere (which would lead me to create more characters). My level_scene isn’t working the way it should, but I’ll deal with it later
I added the “garlics” and the timer is “working”. It doesn’t appear on the screen yet, but I’ll try to add it later. I added some things to the Settings, but I’ll put more effort on it later because I want to finish the minigames first (and add a “storytime”, maybe)
I finished the minigame 1 and the minigame 2, added a textbox and I’ll start making the minigame 3.
Adding the textbox to the scenes :D (example)
I fixed the textbox and some bugs in minigame 2, and added the first part of the story....
|
1793083769.5299585
|
1793688569.5299585
|
|
67594
|
DNA to Protein translator by @Rayan123-4 | Stardan DNA to Protein translator by @Rayan123-4 | Stardance...
|
Rayan123-4
|
2
|
12.0
|
83
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-19T03:30:56Z", "hours": 8.0, "multiplier": 6.23, "payout": 51, "blessing": "neutral", "text": "What did I make I made a website that translates DNA to Protein and Protein to DNA, using Python and Flask. Users can enter a DNA sequence and the website checks the sequence, reads the codons, and translate it into a protein. As well as if a user enters a Protein chain they can translate it into all possible DNA sequences for that Protein. It uses flask, Python, JavaScript, HTML, and CSS. What was challenging The most challenging part was adding the Protein to DNA translator and making sure that it worked while the DNA to Protein translator was still there. I made two HTML pages one with Protein translator and one with the DNA translator. What am I most proud of I am most proud of upgrading my original project from just a DNA to protein translator to a Protein to DNA translator, and making it all work smoothly together. I learn more about Python and JavaScript, which are currently some programming languages that I’m learning. And I even learn more about Biology. What people should know about my project It runs on the web and if you want to see the demo use the link in my README or the Stardance project. Do not run just the HTML pages, because it wont load the Python backend and it most likely wont work. Also for the Protein to DNA translator, I would suggest doing small Protein chains or even just one, as it will show all possible DNA codons for the protein. This means if you input a long Protein chain , even if its just 5 Letters long, depending on the protein it might get a bit laggy. Please leave thoughtful reviews and feedback, as it will really help me learn more about what I can improve on, to help me further progress with coding and making more projects like this one", "repo": "https://github.com/rayan123-4/Flask-website-Biology", "demo": "https://bio.rayan123-4.hackclub.app/"}, {"ship_num": 2, "ts": "2026-10-03T04:04:58Z", "hours": 4.0, "multiplier": 7.29, "payout": 32, "blessing": "neutral", "text": "What did I make I made a DNA to Protein Translator using Python and Flask. Users can enter a DNA sequence and the website checks the sequence, reads the DNA in codons, and translates it into a protein. I also made a frontend using HTML and CSS and connected it to my Python backend. JavaScript was also used in this project for sending information between the website from the Python code. What was challenging The most challenging part was learning Flask for the first time and understanding how the frontend communicates with Python backend. It was also challenging to get the Python, Flask and Javascript to communicate and make this website work. What am I most proud of I am most proud of making a project with Flask for the first time. I learnt more things about coding with Python, Javascript, and even learnt more about Biology. What people should know about my project It runs from render so it might take a few seconds to load. Also the translator looks for the START codon (ATG) so if the sequence doesn’t contain that it won’t work. Also sequences need to be only using A, C, G, and T letters. It also gives an error message if sequence is invalid. ** Please leave thoughtful reviews and give me feedback for what I could do better in the future**", "repo": "https://github.com/rayan123-4/Flask-website-Biology", "demo": "https://bio.rayan123-4.hackclub.app/"}]...
|
[{"post_id": 80842, "ts": "202 [{"post_id": 80842, "ts": "2026-10-18T23:49:34Z", "hours": 0.5019, "text": "Devlog 12: Final devlog Just fixing up some things and some button styling so that it works better on all screen sizes. Please give thoughtful feedback as I am learning Python and Javascript still and want to improve a lot."}, {"post_id": 80012, "ts": "2026-10-15T23:36:37Z", "hours": 0.5558, "text": "Devlog 11: Changing some off the font types and fixing text to background color visibility. Just fixing up some off the CSS with the text fonts and some fonts being hard to see because of the background. I fixed this by adding a box to the text so that it is more visible. I also used a font type that I thought looked very nice on the title."}, {"post_id": 79434, "ts": "2026-10-13T23:42:37Z", "hours": 1.2606, "text": "Devlog 10: Edited some of the CSS styling and fixing up the code I fixed up some of the Python backend code that wasn’t working how I wanted it. I adding stuff to the CSS changing colors and animation. I also added a success animation for when you input is valid. What I learnt I am learning a lot more about how flask works and Python, and I think that this is very beneficial for me. I learnt more about how to handle errors and make good error messages."}, {"post_id": 77974, "ts": "2026-10-09T02:39:42Z", "hours": 0.6847, "text": "Devlog 9: Changing the CSS styling making the website look good. I changed the CSS styling on the buttons and links. I made sure that the buttons stand out in the white background, by adding a light grey-ish color. I also edited some of the border coloring, sizings, and text shadows, making them pop. This helps me to learn more about CSS styling, and how to make a project really look good."}, {"post_id": 77704, "ts": "2026-10-08T00:11:32Z", "hours": 0.8375, "text": "Devlog 8: Added error animation on the pages. I added an error animation on the pages when you dont enter anything or you enter invalid input. I made it with Javascript adding the if statements and stuff, and connected it to my animations in CSS. I added a shake animation with some red text. I also had to re arrange some code for this to work. The final product looks very good and I am very happy with how it turned out."}, {"post_id": 77479, "ts": "2026-10-07T05:08:41Z", "hours": 1.1833, "text": "Devlog 7: Added the HTML and Javascript for the protein to DNA. I added the Javascript and HTML for the protein to DNA code, so that it could work on my flask website. The Javascript code was simple, because it was the same as the other one, just switching up the variable names around. I also had to do the HTML for the website and for the flask, which meant that I had to make another HTML file for the new feature. I made the it on another page so you can visit both of them from the website on a link. What did I learn I learnt more about how Javascript works in a flask website, and how HTML has to be coded slightly different in order for it to work on flask. This will help me for future projects, using flask and without it."}, {"post_id": 77256, "ts": "2026-10-06T09:15:05Z", "hours": 1.8636, "text": "Devlog 6: Adding new feature to the website. I just added a new feature where, you can translate a protein chain into a dna sequence. This is very similar to the other dna to protein translator, except its the other way around. It using mostly the same functions and stuff with slight differences. Right now I have only done the Python backend, and I will be doing the HTML, CSS, and Javascript, to make it work on the website later. What did I learn. I learn how to make a protein to DNA translator in Python. I learn how to code the back end, to work with flask aswelll, to display it on the website. I also learn more about the fundamentals of Python and I think I am progressing very well."}, {"post_id": 76881, "ts": "2026-10-04T22:36:20Z", "hours": 0.5211, "text": "Devlog 5: Edited some comments and other stuff. Today I just fixed up some comments and code, and just edited a few parts making sure that it all looks good."}, {"post_id": 76651, "ts": "2026-10-04T08:21:29Z", "hours": 0.2978, "text": "Devlog 4: Writing comments I just finished writing some comments in the Python and the Javascript code. I wrote in detail what the main functions do and how. I Mainly put comments on important things, and things that may need explaining."}, {"post_id": 76581, "ts": "2026-10-04T01:32:56Z", "hours": 0.5086, "text": "Devlog 3: Edited the CSS styling of the website to make it look much more appealing. I improved the design of my website using CSS. I added text shadows to the text to give it more depth, and I added things like smooth hover animations/effects with filters and scale increase. I also added buttons to the links and things, making them stand out more. I experimented with different colors and functions, and picked the one that fitted best. What I learnt and how difficult was it. I learnt more about different CSS properties such as text-shadow, box-shadow, box-sizing and many more. I also learnt how different animations and effects can have a big difference on the overall website. This was not extremely difficult, but it did take some experimenting for it too look good, and I had to try different properties and see what they do."}, {"post_id": 76302, "ts": "2026-10-03T03:53:49Z", "hours": 0.58, "text": "Devlog 2: Added Javascript and render pages I added the Javascript to the testing.html page, so it can send the DNA sequence code from my Python file to my Flash backend. What I learnt I learn that Javascript can communicate with Python and the Flask backend to send information back and forth to make the website work. I learn more about how to use Javascript with Python and how to make a website with a Python backend."}, {"post_id": 76290, "ts": "2026-10-03T03:01:24Z", "hours": 3.7553, "text": "Devlog 1: Making a flask website for the first time. Its a simple dna to protein translator. I used python to code the back end that translates the dna/rna sequence to protein. It used html and css aswell, and im just starting to do the javascript."}]...
|
Title: DNA to Protein translator by @Rayan123-4 | Title: DNA to Protein translator by @Rayan123-4 | Stardance
Devlogs:
Devlog 1: Making a flask website for the first time. Its a simple dna to protein translator. I used python to code the back end that translates the dna/rna sequence to protein. It used html and css aswell, and im just starting to do the javascript.
Devlog 2: Added Javascript and render pages I added the Javascript to the testing.html page, so it can send the DNA sequence code from my Python file to my Flash backend. What I learnt I learn that Javascript can communicate with Python and the Flask backend to send information back and forth to make the website work. I learn more about how to use Javascript with Python and how to make a website with a Python backend.
Devlog 3: Edited the CSS styling of the website to make it look much more appealing. I improved the design of my website using CSS. I added text shadows to the text to give it more depth, and I added things like smooth hover animations/effects with filters and scale increase. I also added buttons to the links and things, making them stand out more. I experimented with different colors and functions, and picked the one that fitted best. What I learnt and how difficult was it. I learnt more about different CSS properties such as text-shadow, box-shadow, box-sizing and many more. I also learnt how different animations and effects can have a big difference on the overall website. This was not extremely difficult, but it did take some experimenting for it too look good, and I had to try different properties and see what they do.
Devlog 4: Writing comments I just finished writing some comments in the Python and the Javascript code. I wrote in detail what the main functions do and how. I Mainly put comments on important things, and things that may need explaining.
Devlog 5: Edited some comments and other stuff. Today I just fixed up some comments and code, and just edited a few parts making sure that it all looks good.
Devlog 6: Adding new feature to the website. I just added a new feature where, you can translate a protein chain into a dna sequence. This is very similar to the other dna to protein translator, except its the other way around. It using mostly the same functions and stuff with slight differences. Right now I have only done the Python backend, and I will be doing the HTML, CSS, and Javascript, to make it work on the website later. What did I learn. I learn how to make a protein to DNA translator in Python. I learn how to code the back end, to work with flask aswelll, to display it on the website. I also learn more about the fundamentals of Python and I think I am progressing very well.
Devlog 7: Added the HTML and Javascript for the protein to DNA. I added the Javascript and HTML for the protein to DNA code, so that it could work on my flask website. The Javascript code was simple, because it was the same as the other one, just switching up the variable names around. I also had to do the HTML for the website and for the flask, which meant that I had to make another HTML file for the new feature. I made the it on another page so you can visit both of them from the website on a link. What did I learn I learnt more about how Javascript works in a flask website, and how HTML has to be coded slightly different in order for it to work on flask. This will help me for future projects, using flask and without it.
Devlog 8: Added error animation on the pages. I added an error animation on the pages when you dont enter anything or you enter invalid input. I made it with Javascript adding the if statements and stuff, and connected it to my animations in CSS. I added a shake animation with some red text. I also had to re arrange some code for this to work. The final product looks very good and I am very happy with how it turned out.
Devlog 9: Changing the CSS styling making the website look good. I changed the CSS styling on the buttons and links. I made sure that the buttons stand out in the white background, by adding a light grey-ish color. I also edited some of the border coloring, sizings, and text shadows, making them pop. This helps me to learn more about CSS styling, and how to make a project really look good.
Devlog 10: Edited some of the CSS styling and fixing up the code I fixed up some of the Python backend code that wasn’t working how I wanted it. I adding stuff to the CSS changing colors and animation. I also added a success animation for when you input is valid. What I learnt I am learning a lot more about how flask works and Python, and I think that this is very beneficial for me. I learnt more about how to handle errors and make good error messages.
Devlog 11: Changing some off the font types and fixing text to background color visibility. Just fixing up some off the CSS with the text fonts and some fonts being hard to see because of the background. I fixed this by adding a box to the text so that it is more visible. I also used a font type that I thought looked very nice on the title.
Devlog 12: Final devlog Just fixing up some things and some button styling so that it works better on all screen sizes. Please give thoughtful feedback as I am learning Python and Javascript still and want to improve a lot.
Ships:
What did I make I made a DNA to Protein Translator using Python and Flask. Users can enter a DNA sequence and the website checks the sequence, reads the DNA in codons, and translates it into a protein. I also made a frontend using HTML and CSS and connected it to my Python backend. JavaScript was also used in this project for sending information between the website from the Python code. What was challenging The most challenging part was learning Flask for the first time and understanding how the frontend communicates with Python backend. It was also challenging to get the Python, Flask and Javascript to communicate and make this website work. What am I most proud of I am most proud of making a project with Flask for the first time. I learnt more things about coding with Python, Javascript, and even learnt more about Biology. What people should know about my project It runs from render so it might take a few seconds to load. Also the translator looks for the START codon (ATG) so if the sequence doesn’t contain that it won’t work. Also sequences need to be only using A, C, G, and T letters. It also gives an error message if sequence is invalid. ** Please leave thoughtful reviews and give me feedback for what I could do better in the future**
What did I make I made a website that translates DNA to Protein and Protein to DNA, using Python and Flask. Users can enter a DNA sequence and the website checks the sequence, reads the codons, and translate it into a protein. As well as if a user enters a Protein chain they can translate it into all possible DNA sequences for that Protein. It uses flask, Python, JavaScript, HTML, and CSS. What was challenging The most challenging part was adding the Protein to DNA translator and making sure that it worked while the DNA to Protein translator was still there. I made two HTML pages one with Protein translator and one with the DNA translator. What am I most proud of I am most proud of upgrading my original project from just a DNA to protein translator to a Protein to DNA translator, and making it all work smoothly together. I learn more about Python and JavaScript, which are currently some programming languages that I’m learning. And I even learn more about Biology. What people should know about my project It runs on the web and if you want to see the demo use the link in my README or the Stardance project. Do not run just the HTML pages, because it wont load the Python backend and it most likely wont work. Also for the Protein to DNA translator, I would suggest doing small Protein chains or even just one, as it will show all possible DNA codons for the protein. This means if you input a long Protein chain , even if its just 5 Letters long, depending on the protein it might get a bit laggy. Please leave thoughtful reviews and feedback, as it will really help me learn more about what I can improve on, to help me further progress with coding and making more projects like this one...
|
1793062264.1549053
|
1793148664.1549053
|
|
28564
|
Dodge The Spikes by @vindognz | Stardance
|
vindognz
|
1
|
24.0
|
323
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-19T10:11:14Z", "hours": 24.0, "multiplier": 13.34, "payout": 323, "blessing": "neutral", "text": "I made a 2D reflex game about dodging spikes! A level lasts 10 spikes - every level is faster and more dangerous. This was my first Godot project in years, so it was difficult to relearn the engine at first, but I got used to it. I’m really proud of the firefly shader! It took me ages to tune and refine, but I’m super happy with it. It might be really hard because I adjusted the difficulty as I made it, so if you struggle - sorry! Thanks for voting!!!", "repo": "https://github.com/vindognz/dodge-the-spikes", "demo": "https://vindognz.github.io/dodge-the-spikes/"}]...
|
[{"post_id": 80848, "ts": "202 [{"post_id": 80848, "ts": "2026-10-19T00:31:27Z", "hours": 2.6886, "text": "It’s been a while (school is schooling 😭) This is probably my last devlog before I ship. The game has sound now! 5 sound effects, made in jsfxr: jump, thud when you land, a blip every time you dodge a spike, a boom when you die, and a level up! (Press M to mute the sound effects) I got a tiny bit obsessed with outlines, and gave every label a thick outline The leaderboard title is gold now too! SPACE is both jump and play again, so smashing it as you died would skip the leaderboard.. Play Again now ignores pressed for a half second after you die. All that, some minor performance tweaks, README polishing and now we’re ready to ship! Thanks for playing!"}, {"post_id": 76872, "ts": "2026-10-04T21:50:40Z", "hours": 1.1408, "text": "Hosting move and some small QoL. So uhh… The old site is gone. I moved the game from Nest to Github Pages: New Link (The old link shows a “we moved” pages that redirects you) Nest was sending the 38MB engine file uncompressed and sometimes worked, sometimes took 40+ minutes to send. I tried gzip, i tried brotli, and the proxy just seemed to break it all. Github serves the same game so fast it loads before the splash is done. RIP serve.py. Okay, onto QoL: Space to play again. Hit space on the game over screen and you immediately respawn (no more reaching for your mouse every death). README overhaul. I finally updated it! It has how to play, correct feature list, how it’s built, guidance on running it locally, and the live link. I also dropped the idea of Linux/Windows/Mac downloads, because it’s just easier in a browser. Still to do: sfx, polish."}, {"post_id": 75849, "ts": "2026-10-01T10:37:06Z", "hours": 3.24, "text": "HUGE updates, the demo is actually out! It’s live, and YOU can play the beta right now: Play! (I will maintain it as the latest, stable build, please comment with any feedback 😊). The Godot build is exported to WebGL and embedded in a landing page that I built around it. I tried to keep it somewhat minimal, so it’s just a splash text that fades into a dark ‘cave’ with the same red spikes on the walls, and the game in the middle. It’s hosted on Nest, being run by a tiny Python server I wrote that gzips everything. Compression might seem excessive, but it shrank the 38MB engine file to ~10MB, so it loads significantly faster. The leaderboard got cooked when publishing, so I had to rewrite some logic but I got it working eventually! Difficulty used to increase with your score, now we have Levels. Every 10 spikes, the screen clears, a “Level ” banner shows, and the next level starts faster. Danger zones now start at certain levels too, completely ditching the old score driving approach. I also created a real start screen (This was desperately needed). It has the same firefly background as the game, a little controls hint, and a little demo player hopping spikes :) All that’s left is sfx, README and polish!"}, {"post_id": 75140, "ts": "2026-09-29T08:47:13Z", "hours": 9.0861, "text": "Holy moly I need to remember to devlog 😭 Gameplay has been locked in. Danger zones have been added: at score 10 red columns flash for 3s and insta-kill if you’re in them when time is up. At score 30, two zones spawn at once. Screen shakes on landing and death. Spike cooldown now scales with score, so the difficulty actually increases. Player is now a squishy jelly ball that deforms on jump, stretches while airborne, and splats on landing with a nice tween animation. The leaderboard is alive! Input name on first death (cached for the session), auto-submit to Supabase backend, leaderboard is now embedded in the game over screen. Your current run shows golden in the rankings. Insane visual overhaul. I built a procedural shader for the background that renders 30 animated fireflies (on the GPU). Each one drifts with a unique sine-wave pattern, and pulses brightness. Death burst spawns 12 red sparks that fly outward, and fade out. To-do: Start screen, audio (jump, death, score sfx), and WebGL export + GitHub Pages."}, {"post_id": 22405, "ts": "2026-07-04T21:24:46Z", "hours": 5.9817, "text": "Big session today! (definitely didn’t forget to write a devlog) Here’s what got shipped: The game is actually a game now! Spikes spawn from random sides, move across the screen, and despawn off the edge. Score tracking is in. Each spike that passes the player increments the score, and speed scales with it. Each spike also has a ±50% random deviation in speed, so no two spikes feel the same. Pixel art is fully gone. Both the player and spike are now drawn entirely in code using Godot’s _draw() API. No image assets, scales perfectly at any zoom (hypothetically). Global leaderboard is live. Scores submit to a Supabase PostgreSQL backend. We even have a full leaderboard scene with a loading animation and ranked entries. Game over screen shows your score and lets you play again (reloads the scene, resetting all state for free). Next up: UI polish, danger zones, and a WebGL export!"}, {"post_id": 18960, "ts": "2026-06-30T04:16:26Z", "hours": 1.7533, "text": "I’ve been grinding! I implemented the basic spike, replaced pixel art with code-drawn vector shapes for smooth edges, and added a very bare bones start screen. Next up is UI cleanup, score counting, and a game over screen!"}, {"post_id": 18846, "ts": "2026-06-30T01:30:24Z", "hours": 0.3053, "text": "First devlog! So far, I’ve been setting up the base architecture for the game. Currently I just have a simple square that you can control with WASD, but there are big things ahead!"}]...
|
Title: Dodge The Spikes by @vindognz | Stardance
Title: Dodge The Spikes by @vindognz | Stardance
Devlogs:
First devlog! So far, I’ve been setting up the base architecture for the game. Currently I just have a simple square that you can control with WASD, but there are big things ahead!
I’ve been grinding! I implemented the basic spike, replaced pixel art with code-drawn vector shapes for smooth edges, and added a very bare bones start screen. Next up is UI cleanup, score counting, and a game over screen!
Big session today! (definitely didn’t forget to write a devlog) Here’s what got shipped: The game is actually a game now! Spikes spawn from random sides, move across the screen, and despawn off the edge. Score tracking is in. Each spike that passes the player increments the score, and speed scales with it. Each spike also has a ±50% random deviation in speed, so no two spikes feel the same. Pixel art is fully gone. Both the player and spike are now drawn entirely in code using Godot’s _draw() API. No image assets, scales perfectly at any zoom (hypothetically). Global leaderboard is live. Scores submit to a Supabase PostgreSQL backend. We even have a full leaderboard scene with a loading animation and ranked entries. Game over screen shows your score and lets you play again (reloads the scene, resetting all state for free). Next up: UI polish, danger zones, and a WebGL export!
Holy moly I need to remember to devlog 😭 Gameplay has been locked in. Danger zones have been added: at score 10 red columns flash for 3s and insta-kill if you’re in them when time is up. At score 30, two zones spawn at once. Screen shakes on landing and death. Spike cooldown now scales with score, so the difficulty actually increases. Player is now a squishy jelly ball that deforms on jump, stretches while airborne, and splats on landing with a nice tween animation. The leaderboard is alive! Input name on first death (cached for the session), auto-submit to Supabase backend, leaderboard is now embedded in the game over screen. Your current run shows golden in the rankings. Insane visual overhaul. I built a procedural shader for the background that renders 30 animated fireflies (on the GPU). Each one drifts with a unique sine-wave pattern, and pulses brightness. Death burst spawns 12 red sparks that fly outward, and fade out. To-do: Start screen, audio (jump, death, score sfx), and WebGL export + GitHub Pages.
HUGE updates, the demo is actually out! It’s live, and YOU can play the beta right now: Play! (I will maintain it as the latest, stable build, please comment with any feedback 😊). The Godot build is exported to WebGL and embedded in a landing page that I built around it. I tried to keep it somewhat minimal, so it’s just a splash text that fades into a dark ‘cave’ with the same red spikes on the walls, and the game in the middle. It’s hosted on Nest, being run by a tiny Python server I wrote that gzips everything. Compression might seem excessive, but it shrank the 38MB engine file to ~10MB, so it loads significantly faster. The leaderboard got cooked when publishing, so I had to rewrite some logic but I got it working eventually! Difficulty used to increase with your score, now we have Levels. Every 10 spikes, the screen clears, a “Level ” banner shows, and the next level starts faster. Danger zones now start at certain levels too, completely ditching the old score driving approach. I also created a real start screen (This was desperately needed). It has the same firefly background as the game, a little controls hint, and a little demo player hopping spikes :) All that’s left is sfx, README and polish!
Hosting move and some small QoL. So uhh… The old site is gone. I moved the game from Nest to Github Pages: New Link (The old link shows a “we moved” pages that redirects you) Nest was sending the 38MB engine file uncompressed and sometimes worked, sometimes took 40+ minutes to send. I tried gzip, i tried brotli, and the proxy just seemed to break it all. Github serves the same game so fast it loads before the splash is done. RIP serve.py. Okay, onto QoL: Space to play again. Hit space on the game over screen and you immediately respawn (no more reaching for your mouse every death). README overhaul. I finally updated it! It has how to play, correct feature list, how it’s built, guidance on running it locally, and the live link. I also dropped the idea of Linux/Windows/Mac downloads, because it’s just easier in a browser. Still to do: sfx, polish.
It’s been a while (school is schooling 😭) This is probably my last devlog before I ship. The game has sound now! 5 sound effects, made in jsfxr: jump, thud when you land, a blip every time you dodge a spike, a boom when you die, and a level up! (Press M to mute the sound effects) I got a tiny bit obsessed with outlines, and gave every label a thick outline The leaderboard title is gold now too! SPACE is both jump and play again, so smashing it as you died would skip the leaderboard.. Play Again now ignores pressed for a half second after you die. All that, some minor performance tweaks, README polishing and now we’re ready to ship! Thanks for playing!
Ships:
I made a 2D reflex game about dodging spikes! A level lasts 10 spikes - every level is faster and more dangerous. This was my first Godot project in years, so it was difficult to relearn the engine at first, but I got used to it. I’m really proud of the firefly shader! It took me ages to tune and refine, but I’m super happy with it. It might be really hard because I adjusted the difficulty as I made it, so if you struggle - sorry! Thanks for voting!!!...
|
1793008364.3592753
|
1793094764.3592753
|
|
69566
|
SchoolWare by @obedot | Stardance
|
obedot
|
1
|
6.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-19T01:03:00Z", "hours": 6.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "What is SchoolWare? SchoolWare is a short WarioWare-style puzzle game about school. You have to complete different tasks in a short amount of time that involve History, Prealgebra, or Biology. What was challenging? One thing I found challenging was getting the timing of the levels to work right. When you start a level, it first shows you how many lives you have, and which level you’re on. Then, that message disappears, and the timer for your task starts. I didn’t fully understand how Godot’s process modes and time scaling worked, but I was able to figure it out. What am I proud of? I think the theme of the game and the levels are unique and silly. I am proud of the player movement, because it feels very responsive and fun to play. How can you test my project? You can just click the “Try Project” link below and it will take you to the itch.io page, where you can press “Run Game”. You may want to fullscreen the game to make it a bit more immersive, but it works either way.", "repo": "https://github.com/ObedH/school-ware", "demo": "https://obedh.itch.io/school-ware"}]...
|
[{"post_id": 80852, "ts": "202 [{"post_id": 80852, "ts": "2026-10-19T00:52:20Z", "hours": 0.6469, "text": "Final touches on the README, itch.io page, player movement, and sound effects I finished the GitHub readme file and added a short gameplay gif to attract the reader’s attention. I drew a stylized button link to make the “Try It” link pop. I made a background image for the itch.io page and wrote a description. I added some game juice by adding coyote time, which allows the player to jump even after they’ve fallen a little bit off a ledge. I also added squash and stretch to make the game feel more bouncy. Finally, I made some 8-bit sound effects using JSFXR. They’re really simple as of now, but I think they’re enough for the kind of game I’m going for. This will probably be the last devlog before I ship!"}, {"post_id": 80827, "ts": "2026-10-18T22:27:29Z", "hours": 0.8453, "text": "Created a third minigame, death screen, and a speedrun timer The third level is biology themed, and you have to click on all the living organisms. I used a Godot TextureButton for each item, and the incorrect answers make you restart the level. I also implemented a lose screen, which is one of the final requirements for the mission, so I’m getting pretty close to the end. Finally, I made a system to track your fastest time to complete all three minigames. I think I might be shipping soon!"}, {"post_id": 80747, "ts": "2026-10-18T18:12:59Z", "hours": 0.8969, "text": "Made a win screen, and made the UI look better I drew a simple win screen that looks like a diploma, and the red circle at the bottom is a button which takes you to the menu. I drew more of the UI myself, and I think it looks better than using Godot’s Labels. For the minigame timer though, it really was easier to just use a Label here because I didn’t feel like setting up a custom pixel art font just to display some numbers. I added the Quit button to the main menu, and made the Play button green. Now, the main thing I have left is making a death screen, and probably one more minigame."}, {"post_id": 80272, "ts": "2026-10-17T02:17:10Z", "hours": 0.8553, "text": "Created the second level - PreAlgebra My second level involves solving a simple equation. There are four multiple choice options, which I made using TextureButtons in Godot. I plan to refine the visuals later. Currently, the win condition doesn’t look like it isn’t working, but that’s only because there I haven’t yet made the next level."}, {"post_id": 80026, "ts": "2026-10-16T00:41:27Z", "hours": 1.9136, "text": "Made a prototype of the first level Since my game is school themed, I made the first level a history lesson. You play as George Washington in a tiny platformer level and you get to the magically floating declaration of independence. The artwork doesn’t look great right now, and there isn’t a lose condition yet. I did a couple things differently from the tutorial: I used a TileMapLayer instead of StaticBodies for each platform, and a rectangular collision shape for the player instead of the circular one for better feeling movement."}, {"post_id": 79660, "ts": "2026-10-14T23:36:12Z", "hours": 1.0183, "text": "Set up the Godot project, made a menu screen, and healthbar display I’m starting a new project on the mission “Make a WarioWare Game”, and my game is school themed. I finished setting up Godot, GitHub, and WakaTime. I made a health indicator which will pop up each time you die. The notebooks represent how many lives you have lost, and the timer at the bottom shows how long the message will stay up for. Right now, my menu screen is super simple, and I haven’t drawn a quit button yet so it’s not really usable. But I plan on continuing with the NES color palette!"}]...
|
Title: SchoolWare by @obedot | Stardance
Devlogs: Title: SchoolWare by @obedot | Stardance
Devlogs:
Set up the Godot project, made a menu screen, and healthbar display I’m starting a new project on the mission “Make a WarioWare Game”, and my game is school themed. I finished setting up Godot, GitHub, and WakaTime. I made a health indicator which will pop up each time you die. The notebooks represent how many lives you have lost, and the timer at the bottom shows how long the message will stay up for. Right now, my menu screen is super simple, and I haven’t drawn a quit button yet so it’s not really usable. But I plan on continuing with the NES color palette!
Made a prototype of the first level Since my game is school themed, I made the first level a history lesson. You play as George Washington in a tiny platformer level and you get to the magically floating declaration of independence. The artwork doesn’t look great right now, and there isn’t a lose condition yet. I did a couple things differently from the tutorial: I used a TileMapLayer instead of StaticBodies for each platform, and a rectangular collision shape for the player instead of the circular one for better feeling movement.
Created the second level - PreAlgebra My second level involves solving a simple equation. There are four multiple choice options, which I made using TextureButtons in Godot. I plan to refine the visuals later. Currently, the win condition doesn’t look like it isn’t working, but that’s only because there I haven’t yet made the next level.
Made a win screen, and made the UI look better I drew a simple win screen that looks like a diploma, and the red circle at the bottom is a button which takes you to the menu. I drew more of the UI myself, and I think it looks better than using Godot’s Labels. For the minigame timer though, it really was easier to just use a Label here because I didn’t feel like setting up a custom pixel art font just to display some numbers. I added the Quit button to the main menu, and made the Play button green. Now, the main thing I have left is making a death screen, and probably one more minigame.
Created a third minigame, death screen, and a speedrun timer The third level is biology themed, and you have to click on all the living organisms. I used a Godot TextureButton for each item, and the incorrect answers make you restart the level. I also implemented a lose screen, which is one of the final requirements for the mission, so I’m getting pretty close to the end. Finally, I made a system to track your fastest time to complete all three minigames. I think I might be shipping soon!
Final touches on the README, itch.io page, player movement, and sound effects I finished the GitHub readme file and added a short gameplay gif to attract the reader’s attention. I drew a stylized button link to make the “Try It” link pop. I made a background image for the itch.io page and wrote a description. I added some game juice by adding coyote time, which allows the player to jump even after they’ve fallen a little bit off a ledge. I also added squash and stretch to make the game feel more bouncy. Finally, I made some 8-bit sound effects using JSFXR. They’re really simple as of now, but I think they’re enough for the kind of game I’m going for. This will probably be the last devlog before I ship!
Ships:
What is SchoolWare? SchoolWare is a short WarioWare-style puzzle game about school. You have to complete different tasks in a short amount of time that involve History, Prealgebra, or Biology. What was challenging? One thing I found challenging was getting the timing of the levels to work right. When you start a level, it first shows you how many lives you have, and which level you’re on. Then, that message disappears, and the timer for your task starts. I didn’t fully understand how Godot’s process modes and time scaling worked, but I was able to figure it out. What am I proud of? I think the theme of the game and the levels are unique and silly. I am proud of the player movement, because it feels very responsive and fun to play. How can you test my project? You can just click the “Try Project” link below and it will take you to the itch.io page, where you can press “Run Game”. You may want to fullscreen the game to make it a bit more immersive, but it works either way....
|
1793008256.4582894
|
1793094656.4582894
|
|
67083
|
ISS robot assistant by @taylan_abramson | Stardanc ISS robot assistant by @taylan_abramson | Stardance...
|
taylan_abramson
|
0
|
13.3
|
0
|
[]
|
[{"post_id": 80853, "ts": "202 [{"post_id": 80853, "ts": "2026-10-19T00:54:18Z", "hours": 1.2586, "text": "worked on creating a windows release for mujococad, adding springs and tendons for new control mechanisms for robot arm in the cad , imge a ttached is a autodesk picture of a tendon, as I am not with the computer i did the update with and the device I am pushing this devlog on can barely run chrome :)"}, {"post_id": 79677, "ts": "2026-10-15T01:20:32Z", "hours": 1.9597, "text": "I am working more on the differnet envionrmental testing in my cad software, attempting to simulate a ornithopter, as a basis for movement in the cad"}, {"post_id": 79169, "ts": "2026-10-12T21:28:09Z", "hours": 5.1744, "text": "I worked on training and rigging the robot in mujoco cad, and simulator that i had designed to now work with different gravities."}, {"post_id": 77198, "ts": "2026-10-06T02:07:00Z", "hours": 0.9381, "text": "Today I rigged the tentacle in Blender, then added physics to watch interactions with a cube. I used a Codex GPT solution to help with the physics, since I can’t run RoboOptics software on my laptop and need an AI agent to simulate physics at a higher level than I could account for. I am quite happy with the tentacle motion. I would like to rig more and test interaction with more objects. Additionally, if I ever get access to a computer with an RTX GPU, I would like to use Isaac Sim in order to allow the robot to learn online before build"}, {"post_id": 76911, "ts": "2026-10-05T01:49:28Z", "hours": 1.1989, "text": "Today I added CAD for the tentacles to be printed, built ouyt of a ionogel in and then run a line through in order to control I am really excited to start building it. I want to 3D print the body, so I have toi wait for that, but I want to make ionogels and attempt to hape them into the tentacles so I can do those emmidiatly"}, {"post_id": 76579, "ts": "2026-10-04T01:24:37Z", "hours": 1.7333, "text": "Fixing a 3D printer, and hardware work, I am a little sick, so I apologize for the little time spect, i spent two hours fixing my 3d printer, pushing code, and calibrating a force sensor and joy stick, so that the internal hardware is ready when I can print the chassis :)."}, {"post_id": 76509, "ts": "2026-10-03T19:37:45Z", "hours": 1.0417, "text": "ISS robot CAD and computer science pre build, I recycled some old code, and modified it for the project I NEED TO START ADDING IN MORE ELEMENTS INTO THE HARDWARE IN REAL LIFE."}]...
|
Title: ISS robot assistant by @taylan_abramson | S Title: ISS robot assistant by @taylan_abramson | Stardance
Devlogs:
ISS robot CAD and computer science pre build, I recycled some old code, and modified it for the project I NEED TO START ADDING IN MORE ELEMENTS INTO THE HARDWARE IN REAL LIFE.
Fixing a 3D printer, and hardware work, I am a little sick, so I apologize for the little time spect, i spent two hours fixing my 3d printer, pushing code, and calibrating a force sensor and joy stick, so that the internal hardware is ready when I can print the chassis :).
Today I added CAD for the tentacles to be printed, built ouyt of a ionogel in and then run a line through in order to control I am really excited to start building it. I want to 3D print the body, so I have toi wait for that, but I want to make ionogels and attempt to hape them into the tentacles so I can do those emmidiatly
Today I rigged the tentacle in Blender, then added physics to watch interactions with a cube. I used a Codex GPT solution to help with the physics, since I can’t run RoboOptics software on my laptop and need an AI agent to simulate physics at a higher level than I could account for. I am quite happy with the tentacle motion. I would like to rig more and test interaction with more objects. Additionally, if I ever get access to a computer with an RTX GPU, I would like to use Isaac Sim in order to allow the robot to learn online before build
I worked on training and rigging the robot in mujoco cad, and simulator that i had designed to now work with different gravities.
I am working more on the differnet envionrmental testing in my cad software, attempting to simulate a ornithopter, as a basis for movement in the cad
worked on creating a windows release for mujococad, adding springs and tendons for new control mechanisms for robot arm in the cad , imge a ttached is a autodesk picture of a tendon, as I am not with the computer i did the update with and the device I am pushing this devlog on can barely run chrome :)...
|
1793105650.7038205
|
1793710450.7038205
|
|
70417
|
Pro website by @syedakhter | Stardance
|
syedakhter
|
1
|
2.0
|
1
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-19T01:12:51Z", "hours": 2.0, "multiplier": 1.0, "payout": 1, "blessing": "neutral", "text": "This is a website i made using js html and css and this website is going pro.", "repo": "https://github.com/8051987-eng/pro-website", "demo": "https://8051987-eng.github.io/pro-website/"}]...
|
[{"post_id": 80856, "ts": "202 [{"post_id": 80856, "ts": "2026-10-19T01:11:57Z", "hours": 2.0783, "text": "A pro website"}]...
|
Title: Pro website by @syedakhter | Stardance
Dev Title: Pro website by @syedakhter | Stardance
Devlogs:
A pro website
Ships:
This is a website i made using js html and css and this website is going pro....
|
1793094941.8067822
|
1793181341.8067822
|
|
14699
|
Hollow - Game Dev by @magomango | Stardance
|
magomango
|
0
|
114.14
|
0
|
[]
|
[{"post_id": 80859, "ts": "202 [{"post_id": 80859, "ts": "2026-10-19T01:43:18Z", "hours": 12.4375, "text": "FAV ROOM + glow in the dark pumpkins?? ~ whats up so i got the enemy to work. thank god. PLUS I GOT MY FAVORITE-ST ROOM EVER MADE!! Implementation/fix for enemy Looping btw 2 rooms: wander code picked farthest random point, so movement was lwk sporadic and weird. So we switched to getting the first valid point randomly generated instead. Walked off into the void: bc the navigationmesh or where it can roam WAS PARTIALLY OUTSIDE. bruh. so just resized the NM Never saw me or chased: LMAO this was so funny. So apparently my body was like 115 WHOLE-STINKING units away from where the code thought I was.. so easy fix, but bruh. Lost me at corners when i sharp turned: chase_memory now is for keeping track of position even after losing sight. Also added the hit screen, which is like a little bit of blood, for funsies THE ROOM OMGGOGMG - this was so heavily inspired (not copied… cuz yk i got crates here) by that one bunker room in Stay Out of the House by PUPPETCOMBO (omg peakkk). it’s a maze in there. check out the 2nd image! Future PUZZLES. OMG (still) I have so many ideas and so little timeeee. PS: wanted to fit all images in one frame. (yea okay syre bvro)"}, {"post_id": 79448, "ts": "2026-10-14T01:05:09Z", "hours": 10.0569, "text": "GUMBALLS ~ whats up FINALLY finished decorating?? Okay, so I got the enemy to work - FOR LIKE 5 SECONDS - before i broke it again T-T. IDEK what I did bruh. Implementation So I baked a navigationmesh which is all the places the enemy can go (eg mostly where the player can go mostly) and then successfully (for a while at least) made it move randomly and chase the player when it crossed its line of view. It would even hit the player and make a bloody screen show up. BUT NOW IT DOESN’T WORK. HUhhh?? It doesn’t even move at all. So comes debugging: I integrated each step one by one instead of working on the code for like 5 hours and then testing it. Hopefully I can get this thing to work ugh. (My desc are lwk bad here but its because Im raging) Future PUZZLES. OMG I have so many ideas and so little timeeee. anyway, here’s this gumball machine which might be my favorite thing ever. toodles"}, {"post_id": 77150, "ts": "2026-10-05T19:44:07Z", "hours": 10.9308, "text": "WE GOT CABINETS ~ Happy Spooky-Season!! HORROR SEASON + whats up Player can finally open doors- nope not doors, those are harder to implement than cabinets. But then isn’t a door literally just a big cabinet? #showerthoughts Implementation Basically, interact ‘E’ asks whether the raycast, or the “imaginary line” shot out the player though the red dot in the center, hits the object. If the player is standing close enough and they press E, it turns the door 90 degrees about the side aixs. It took a bit to implement bc I kept MESSING UP what the raycast would collid with. Plus this cabinet is like A MILLION different pieces. it legit takes 10 seconds to scroll through everything. I mean ig bro. Future Do this to like all the other cabinets (T-T), fix enemy (idk why its glitching), implement puzzles. AND ADD HALLOWEEN EASTER EGGS! (or are they called Halloween Eggs bc its not rlly easter… #showerthoughtsagain… haha)"}, {"post_id": 72476, "ts": "2026-09-23T01:17:52Z", "hours": 10.0992, "text": "PLAYGROUND - and pick up I added this cool playground into the game, where you can actually go inside and even slide down the slide. Peak childhood nostalgia :) You can also now pick up items and drop them realistically, affected by gravity. I’m holding a hammer in this image! I think the game is coming along well. Slowly… AHhhh gotta pick up the pace."}, {"post_id": 71017, "ts": "2026-09-20T06:44:20Z", "hours": 8.9114, "text": "Still decorating… Sometimes the things you look the hardest for… Is just in plain sight… I also added in the enemy. Dw it won’t be a cubicle forever."}, {"post_id": 68393, "ts": "2026-09-15T01:40:40Z", "hours": 12.5781, "text": "** PARKOUR ** Still decorating. but im so proud of myself for making this little parkour. the ladder was so hard to get the player to actually get on T-T"}, {"post_id": 62367, "ts": "2026-09-05T18:10:53Z", "hours": 9.9689, "text": "Hallow Continued - MECHANICS ~ What’s been going on Still working on decorating. Aesthetics are important oookkk? Been working on mechanics, such as interacting. Since these models are from online, I have to resize everything and also make a function so they can be interacted with. How it works: basically you just have to be close enough to some object, then press ‘E’ to interact with the object, which then causes some change. For example, this cabinet opens, but I’m planning on adding different puzzles which isn’t as simple as opening a drawer. Issues: Since the hitbox (or CollisionShape3D in Godot) is over the whole cabinet, it opens all the drawers. I guess that makes it easier for the player lmao. But if I wanted to make it over each drawer, then I would’ve had to make smaller hitboxes and arranged them properly. I accidentally made this cabinet TOO TALL T-T. So I wonder how the player will get up there… (totally on purpose haha) It limits which models I could take from online. A lot of models are not separated into parts (eg drawer1 is attached permanently to drawer2), meaning they can’t actually open. I realized this half way thru scavenging. :( Also started on the enemy AI stuff, but it’s not that done yet. ~ Plan Continue decorating, making them interactable. I have also made a whole map of the layout and the fun puzzles I’m planning to put in. I would share it but spoilers… :) Credit for cabinet below: Bedside table: “Bedside table old” ( https://skfb.ly/owuAQ ) by Nollien is licensed under Creative Commons Attribution ( http://creativecommons.org/licenses/by/4.0/ ). SKETCHFAB is a peakkk website! pretty realistic looking things on here!"}, {"post_id": 54118, "ts": "2026-08-24T22:49:47Z", "hours": 6.8272, "text": "Hallow Continued - COUCHES ~ What’s been going on Really right now is one of the fun-ner parts: just adding in open-license 3D models from online and decorating the whole place (in- and ex-terior). And obviously crediting everything on this massive google doc. 👍 I was hoping it would be sorta fast, but tell me how it’s been a few hours already lol T-T ~ After this Make everything interact-able and bring in the props and tools you need to find to escape with. Some of these models don’t have an interior, so I’ll need to figure how to sideball that issue. And a gamedev’s worst nightmare: doors… 👀 Ohhh and also rearrange my whole filesystem and Scene panel. Uhhh which door is which again…. absolute monstrosity right now… Credit for sofa below: “trashy backyard sofa” ( https://skfb.ly/pHVBH ) by Schmoldt5000 is licensed under Creative Commons Attribution ( http://creativecommons.org/licenses/by/4.0/). SKETCHFAB is a peakkk website! pretty realistic looking things on here!"}, {"post_id": 47898, "ts": "2026-08-16T05:24:37Z", "hours": 19.6883, "text": "Devlog 2 - Layout Done It’s been a while since my last post, but I’ve finished the pretty giant layout. I think I want a couple of floors, but that might be ambitious. We’ll see. Right now it has over 10 rooms and an outside! The doors are a big large right now, but this is an orphanage and the player is a kid so maybe its ok. 😓 I also started brainstorming some puzzles. Next step: decorating the interior and exterior and adding in items."}, {"post_id": 27028, "ts": "2026-07-12T05:56:11Z", "hours": 12.6417, "text": "Devlog #1 - Hollow GAME Dev Hey everyone! This is my first time posting and first time ever doing anything Hack Club related. I’ve seen so many cool projects already, and it really inspired me to create something and ship it out. Lmao, skip all this rant and go to the bottom for the actual project to save time! I’m developing a GAME ! – A little about me and why I’m here : I LOVE horror! Especially horror games. However I’m more of a person who likes watching people play games and am too scared sometimes to play them myself. Things like the Resident Evil series, indie games (like by Puppet Combo), or even mobile games like Granny. So I thought why not make one myself since it’s summer and all. I’m familiar with programming but totally new to game dev, so this will be an interesting adventure. – What I’ve learned so far about the game dev process : There’s a LOT to learn and decide. Eg What gaming platform you wanna use (so many differences lmao) like unreal, unity, and godot Plot of your game (so MUCH stuff to consider here) General gameplay style (open exploration? cutscene hand holding gameplay?) How long you want your game to be (uhhh…) and so much more… 😓 I’ve tried making a GDD (game dev doc), and rn its still being refined as the vision comes together. —– MY GAME PREMISE —– Game name: Hollow Gist: The player is stuck in an Orphanage and strives for a way out + An investigator attempts to voyage to the Orphanage, but seeks shelter in somewhere unknown… (trying to go for the multiple enemy/story happening but its all connected…) **Inspo: **HEAVILY from Resident Evil 7 (the Baker’s House), the mobile game The Evil Nun, puppet combo games (like Stay Out of the House or Nun Massacre), random dreams I’ve had (lol) Platform: GODOT (highkey underrated) – Whats done so far a dark environment and a few bare rooms stamina bar that can be recharged flashlight movement controls 1/2 of door mechanics (so many memes about how game devs hate door physics hahaha.. yea me too) Js the first week, so player basic mechanics are in. – Future plans for posts Polish the environment and figuring out the enemy Finishing the GDD and posting clips of it Posting a short demo game on Itch.io Thanks for reading this post!"}]...
|
Title: Hollow - Game Dev by @magomango | Stardance Title: Hollow - Game Dev by @magomango | Stardance
Devlogs:
Devlog #1 - Hollow GAME Dev Hey everyone! This is my first time posting and first time ever doing anything Hack Club related. I’ve seen so many cool projects already, and it really inspired me to create something and ship it out. Lmao, skip all this rant and go to the bottom for the actual project to save time! I’m developing a GAME ! – A little about me and why I’m here : I LOVE horror! Especially horror games. However I’m more of a person who likes watching people play games and am too scared sometimes to play them myself. Things like the Resident Evil series, indie games (like by Puppet Combo), or even mobile games like Granny. So I thought why not make one myself since it’s summer and all. I’m familiar with programming but totally new to game dev, so this will be an interesting adventure. – What I’ve learned so far about the game dev process : There’s a LOT to learn and decide. Eg What gaming platform you wanna use (so many differences lmao) like unreal, unity, and godot Plot of your game (so MUCH stuff to consider here) General gameplay style (open exploration? cutscene hand holding gameplay?) How long you want your game to be (uhhh…) and so much more… 😓 I’ve tried making a GDD (game dev doc), and rn its still being refined as the vision comes together. —– MY GAME PREMISE —– Game name: Hollow Gist: The player is stuck in an Orphanage and strives for a way out + An investigator attempts to voyage to the Orphanage, but seeks shelter in somewhere unknown… (trying to go for the multiple enemy/story happening but its all connected…) **Inspo: **HEAVILY from Resident Evil 7 (the Baker’s House), the mobile game The Evil Nun, puppet combo games (like Stay Out of the House or Nun Massacre), random dreams I’ve had (lol) Platform: GODOT (highkey underrated) – Whats done so far a dark environment and a few bare rooms stamina bar that can be recharged flashlight movement controls 1/2 of door mechanics (so many memes about how game devs hate door physics hahaha.. yea me too) Js the first week, so player basic mechanics are in. – Future plans for posts Polish the environment and figuring out the enemy Finishing the GDD and posting clips of it Posting a short demo game on Itch.io Thanks for reading this post!
Devlog 2 - Layout Done It’s been a while since my last post, but I’ve finished the pretty giant layout. I think I want a couple of floors, but that might be ambitious. We’ll see. Right now it has over 10 rooms and an outside! The doors are a big large right now, but this is an orphanage and the player is a kid so maybe its ok. 😓 I also started brainstorming some puzzles. Next step: decorating the interior and exterior and adding in items.
Hallow Continued - COUCHES ~ What’s been going on Really right now is one of the fun-ner parts: just adding in open-license 3D models from online and decorating the whole place (in- and ex-terior). And obviously crediting everything on this massive google doc. 👍 I was hoping it would be sorta fast, but tell me how it’s been a few hours already lol T-T ~ After this Make everything interact-able and bring in the props and tools you need to find to escape with. Some of these models don’t have an interior, so I’ll need to figure how to sideball that issue. And a gamedev’s worst nightmare: doors… 👀 Ohhh and also rearrange my whole filesystem and Scene panel. Uhhh which door is which again…. absolute monstrosity right now… Credit for sofa below: “trashy backyard sofa” ( https://skfb.ly/pHVBH ) by Schmoldt5000 is licensed under Creative Commons Attribution ( http://creativecommons.org/licenses/by/4.0/). SKETCHFAB is a peakkk website! pretty realistic looking things on here!
Hallow Continued - MECHANICS ~ What’s been going on Still working on decorating. Aesthetics are important oookkk? Been working on mechanics, such as interacting. Since these models are from online, I have to resize everything and also make a function so they can be interacted with. How it works: basically you just have to be close enough to some object, then press ‘E’ to interact with the object, which then causes some change. For example, this cabinet opens, but I’m planning on adding different puzzles which isn’t as simple as opening a drawer. Issues: Since the hitbox (or CollisionShape3D in Godot) is over the whole cabinet, it opens all the drawers. I guess that makes it easier for the player lmao. But if I wanted to make it over each drawer, then I would’ve had to make smaller hitboxes and arranged them properly. I accidentally made this cabinet TOO TALL T-T. So I wonder how the player will get up there… (totally on purpose haha) It limits which models I could take from online. A lot of models are not separated into parts (eg drawer1 is attached permanently to drawer2), meaning they can’t actually open. I realized this half way thru scavenging. :( Also started on the enemy AI stuff, but it’s not that done yet. ~ Plan Continue decorating, making them interactable. I have also made a whole map of the layout and the fun puzzles I’m planning to put in. I would share it but spoilers… :) Credit for cabinet below: Bedside table: “Bedside table old” ( https://skfb.ly/owuAQ ) by Nollien is licensed under Creative Commons Attribution ( http://creativecommons.org/licenses/by/4.0/ ). SKETCHFAB is a peakkk website! pretty realistic looking things on here!
** PARKOUR ** Still decorating. but im so proud of myself for making this little parkour. the ladder was so hard to get the player to actually get on T-T
Still decorating… Sometimes the things you look the hardest for… Is just in plain sight… I also added in the enemy. Dw it won’t be a cubicle forever.
PLAYGROUND - and pick up I added this cool playground into the game, where you can actually go inside and even slide down the slide. Peak childhood nostalgia :) You can also now pick up items and drop them realistically, affected by gravity. I’m holding a hammer in this image! I think the game is coming along well. Slowly… AHhhh gotta pick up the pace.
WE GOT CABINETS ~ Happy Spooky-Season!! HORROR SEASON + whats up Player can finally open doors- nope not doors, those are harder to implement than cabinets. But then isn’t a door literally just a big cabinet? #showerthoughts Implementation Basically, interact ‘E’ asks whether the raycast, or the “imaginary line” shot out the player though the red dot in the center, hits the object. If the player is standing close enough and they press E, it turns the door 90 degrees about the side aixs. It took a bit to implement bc I kept MESSING UP what the raycast would collid with. Plus this cabinet is like A MILLION different pieces. it legit takes 10 seconds to scroll through everything. I mean ig bro. Future Do this to like all the other cabinets (T-T), fix enemy (idk why its glitching), implement puzzles. AND ADD HALLOWEEN EASTER EGGS! (or are they called Halloween Eggs bc its not rlly easter… #showerthoughtsagain… haha)
GUMBALLS ~ whats up FINALLY finished decorating?? Okay, so I got the enemy to work - FOR LIKE 5 SECONDS - before i broke it again T-T. IDEK what I did bruh. Implementation So I baked a navigationmesh which is all the places the enemy can go (eg mostly where the player can go mostly) and then successfully (for a while at least) made it move randomly and chase the player when it crossed its line of view. It would even hit the player and make a bloody screen show up. BUT NOW IT DOESN’T WORK. HUhhh?? It doesn’t even move at all. So comes debugging: I integrated each step one by one instead of working on the code for like 5 hours and then testing it. Hopefully I can get this thing to work ugh. (My desc are lwk bad here but its because Im raging) Future PUZZLES. OMG I have so many ideas and so little timeeee. anyway, here’s this gumball machine which might be my favorite thing ever. toodles
FAV ROOM + glow in the dark pumpkins?? ~ whats up so i got the enemy to work. thank god. PLUS I GOT MY FAVORITE-ST ROOM EVER MADE!! Implementation/fix for enemy Looping btw 2 rooms: wander code picked farthest random point, so movement was lwk sporadic and weird. So we switched to getting the first valid point randomly generated instead. Walked off into the void: bc the navigationmesh or where it can roam WAS PARTIALLY OUTSIDE. bruh. so just resized the NM Never saw me or chased: LMAO this was so funny. So apparently my body was like 115 WHOLE-STINKING units away from where the code thought I was.. so easy fix, but bruh. Lost me at corners when i sharp turned: chase_memory now is for keeping track of position even after losing sight. Also added the hit screen, which is like a little bit of blood, for funsies THE ROOM OMGGOGMG - this was so heavily inspired (not copied… cuz yk i got crates here) by that one bunker room in Stay Out of the House by PUPPETCOMBO (omg peakkk). it’s a maze in there. check out the 2nd image! Future PUZZLES. OMG (still) I have so many ideas and so little timeeee. PS: wanted to fit all images in one frame. (yea okay syre bvro)...
|
1792489985.5475626
|
1793094785.5475626
|
|
50906
|
IronMan_OS by @Tanjiro | Stardance
|
Tanjiro
|
2
|
20.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-20T03:23:51Z", "hours": 8.0, "multiplier": 9.68, "payout": 0, "blessing": "neutral", "text": "#Ship 2 (For WEB_OS #2) ##This is Iron OS , for all my fellow marvel and iron lovers! This is for you, if you: like techie stuff Want to be Iron Man/Tony Stark, but don’t have any money Want to know how Tony build his Iron Man Suits Are just a human being, are you? ## Features Welcome Screen (Just wanted to brag about it ) Iron Pad(Tony’s alternative for Notepad ) ###New Additions (For Web Os #2) Jarvis_Terminal (Tony has a history with arch, so he needs this ) Iron Bar/Top Bar system info of Tony’s Iron PC Iron Player (Everybody loves music ) Changed the entire color scheme so it matches overall ##How did I made this? Most of the help I got was from the jam that stardance provided with mission :jame: ##What did I learn from this? ✨A bit of Html (a pinch of salt)✨ How to style using pseudo elements! A lot of JS!!!!!!!!!!!!!!!!!!!!!!!!!!!! Also how to design in Canva NOTE: Every Icon of Every app in the OS is made in Canva by me. No part of readme is made using AI", "repo": "https://github.com/YOBO-DANCE/IRONMAN-THEMED_WEBOS", "demo": "https://ironman-themed-webos.vercel.app/"}, {"ship_num": 2, "ts": "2026-09-23T17:24:35Z", "hours": 12.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "IRON OS A OS with the power of Stark tech and the suit of IRON What is this? This is OS where only you matter. You can understand this OS only if ever watched Iron Man in action. What did I learn from this Project? a bit more html. some css But in JS… learned how to address a element using getelementbyID() how to make something appear or disappear. how to store inputs from the user inside the website itself. how to make calculation so you know that 2 + 2 = 5!!!(I don’t know why I am homeschooling nowadays) how to make a advance scientific calculator", "repo": "https://github.com/YOBO-DANCE/IRONMAN-THEMED_WEBOS", "demo": "https://ironman-themed-webos.vercel.app/"}]...
|
[{"post_id": 80861, "ts": "202 [{"post_id": 80861, "ts": "2026-10-19T02:23:59Z", "hours": 2.0508, "text": "Devlog 14: So I added some changes, also I wrote more code by myself, so this project could be shipped. And that’s it! Note for shipwrights: I didn’t use any ai in the readme at all."}, {"post_id": 80271, "ts": "2026-10-17T02:06:44Z", "hours": 0.5153, "text": "Devlog 13: Okay so all the changes are completed, and now I have only one color scheme. Note for shipwrights: my code may look like written by AI, but I wrote it by myself. It maybe because I name all my class really generically LOL"}, {"post_id": 79778, "ts": "2026-10-15T11:10:15Z", "hours": 0.9897, "text": "Devlog 12: The Project is ready to be shipped!!! Changes done: Readme is now updated! Final clearing of the code base so only what is needed is in it. Convert all the images to .webp format so my website stays efficient. Changed the Iron Bar the a more Iron Man style Added a cool favicon which I designed in Canva. NOTE FOR SHIP WRIGHTS: Most of my assets are designed by me in Canva or I used other people’s art and also I gave them credit. Okay now lemme just ship it!"}, {"post_id": 79680, "ts": "2026-10-15T01:31:03Z", "hours": 2.6144, "text": "Devlog 11: Okay so the WebOs went under major revamp. Changes Done: Added a Music PLAYER!!!!!!!! Top Bar has a new feature i.e. you can see your IRON-PC system metrics!!!!!!!!!!!! Thats all! Also I think the project is ready to be shipped now, just the readme is left."}, {"post_id": 79616, "ts": "2026-10-14T18:45:08Z", "hours": 1.0039, "text": "Devlog 10 - Okay so after so many reviews from ShipWrights, I fixed those bugs, also the code might look AI written(thats because I don’t usually add comments)(I know, I know it is a bad habits, but…) but it is really not AI written and took genuine effort to complete. Also Guys what do y’all think about this terminal and its Icon, I need some feedback. BTW, I think this was the most difficult part of the WebOS hehe 2 more apps/features to go! Also srry the app icon looks like someone puked on it hehe"}, {"post_id": 73494, "ts": "2026-09-25T07:29:51Z", "hours": 0.7514, "text": "Devlog 9 - Update the README for better understanding and clarity, also my README was actually incomplete 😅😅"}, {"post_id": 72748, "ts": "2026-09-23T17:17:08Z", "hours": 0.6692, "text": "Devlog 8 - Project ready to be shipped! Readme is now completed!"}, {"post_id": 72333, "ts": "2026-09-22T17:58:32Z", "hours": 2.7247, "text": "Devlog 7 - Added a Calculator App, Changed the theme to match that Iron Man Vibe"}, {"post_id": 68721, "ts": "2026-09-15T16:47:48Z", "hours": 0.3, "text": "Devlog 6 - Today I added a little color change to the OS!"}, {"post_id": 63543, "ts": "2026-09-07T13:47:59Z", "hours": 0.5492, "text": "Devlog 5 - Gotta keep up the streak!"}, {"post_id": 62885, "ts": "2026-09-06T12:37:35Z", "hours": 3.5, "text": "Devlog 4 - So Today I found out about the missions and going according to them, so it feels a little stupid ,but now I am more clear about the concepts of a WebOS"}, {"post_id": 54511, "ts": "2026-08-25T15:19:32Z", "hours": 2.3689, "text": "Devlog 3 - I am so tired today, that I can’t even write a proper devlog. Today I worked on the Task-Station and tried to add a inner shadow"}, {"post_id": 49722, "ts": "2026-08-18T17:07:50Z", "hours": 0.9347, "text": "Devlog 2 - Added a nice grid pattern for a futuristic look and added a little text on top stark OS"}, {"post_id": 49607, "ts": "2026-08-18T14:27:55Z", "hours": 0.6456, "text": "Devlog 1: So I added a nice deep metallic background color with a radial gradient"}]...
|
Title: IronMan_OS by @Tanjiro | Stardance
Devlogs Title: IronMan_OS by @Tanjiro | Stardance
Devlogs:
Devlog 1: So I added a nice deep metallic background color with a radial gradient
Devlog 2 - Added a nice grid pattern for a futuristic look and added a little text on top stark OS
Devlog 3 - I am so tired today, that I can’t even write a proper devlog. Today I worked on the Task-Station and tried to add a inner shadow
Devlog 4 - So Today I found out about the missions and going according to them, so it feels a little stupid ,but now I am more clear about the concepts of a WebOS
Devlog 5 - Gotta keep up the streak!
Devlog 6 - Today I added a little color change to the OS!
Devlog 7 - Added a Calculator App, Changed the theme to match that Iron Man Vibe
Devlog 8 - Project ready to be shipped! Readme is now completed!
Devlog 9 - Update the README for better understanding and clarity, also my README was actually incomplete 😅😅
Devlog 10 - Okay so after so many reviews from ShipWrights, I fixed those bugs, also the code might look AI written(thats because I don’t usually add comments)(I know, I know it is a bad habits, but…) but it is really not AI written and took genuine effort to complete. Also Guys what do y’all think about this terminal and its Icon, I need some feedback. BTW, I think this was the most difficult part of the WebOS hehe 2 more apps/features to go! Also srry the app icon looks like someone puked on it hehe
Devlog 11: Okay so the WebOs went under major revamp. Changes Done: Added a Music PLAYER!!!!!!!! Top Bar has a new feature i.e. you can see your IRON-PC system metrics!!!!!!!!!!!! Thats all! Also I think the project is ready to be shipped now, just the readme is left.
Devlog 12: The Project is ready to be shipped!!! Changes done: Readme is now updated! Final clearing of the code base so only what is needed is in it. Convert all the images to .webp format so my website stays efficient. Changed the Iron Bar the a more Iron Man style Added a cool favicon which I designed in Canva. NOTE FOR SHIP WRIGHTS: Most of my assets are designed by me in Canva or I used other people’s art and also I gave them credit. Okay now lemme just ship it!
Devlog 13: Okay so all the changes are completed, and now I have only one color scheme. Note for shipwrights: my code may look like written by AI, but I wrote it by myself. It maybe because I name all my class really generically LOL
Devlog 14: So I added some changes, also I wrote more code by myself, so this project could be shipped. And that’s it! Note for shipwrights: I didn’t use any ai in the readme at all.
Ships:
IRON OS A OS with the power of Stark tech and the suit of IRON What is this? This is OS where only you matter. You can understand this OS only if ever watched Iron Man in action. What did I learn from this Project? a bit more html. some css But in JS… learned how to address a element using getelementbyID() how to make something appear or disappear. how to store inputs from the user inside the website itself. how to make calculation so you know that 2 + 2 = 5!!!(I don’t know why I am homeschooling nowadays) how to make a advance scientific calculator
#Ship 2 (For WEB_OS #2) ##This is Iron OS , for all my fellow marvel and iron lovers! This is for you, if you: like techie stuff Want to be Iron Man/Tony Stark, but don’t have any money Want to know how Tony build his Iron Man Suits Are just a human being, are you? ## Features Welcome Screen (Just wanted to brag about it ) Iron Pad(Tony’s alternative for Notepad ) ###New Additions (For Web Os #2) Jarvis_Terminal (Tony has a history with arch, so he needs this ) Iron Bar/Top Bar system info of Tony’s Iron PC Iron Player (Everybody loves music ) Changed the entire color scheme so it matches overall ##How did I made this? Most of the help I got was from the jam that stardance provided with mission :jame: ##What did I learn from this? ✨A bit of Html (a pinch of salt)✨ How to style using pseudo elements! A lot of JS!!!!!!!!!!!!!!!!!!!!!!!!!!!! Also how to design in Canva NOTE: Every Icon of Every app in the OS is made in Canva by me. No part of readme is made using AI...
|
1793004815.667658
|
1793091215.667658
|
|
70411
|
TJHSST Q Lab Website by @tonymac129 | Stardance
|
tonymac129
|
0
|
7.23
|
0
|
[]
|
[{"post_id": 80864, "ts": "202 [{"post_id": 80864, "ts": "2026-10-19T02:45:40Z", "hours": 7.2286, "text": "Q Lab Website Updates As a sysadmin for my school, I’m responsible for making, updating, and maintaining some of the school’s websites, including the Q Lab website, which has projects, information, and other stuff about our quantum physics senior research lab! Some alumni of the lab already made most of the website, so in this update I just focused on adding some quality of life features and applying a redesign Added new darker colors and some UI improvements, as well as new icons, logos, layouts, and content throughout the platform Added project keywords and search to better explore and browse through different projects Added options to delete and edit project assets Fixed a few bugs related to the UI and updated the admin panel Note that some of the admin/management features require our internal auth, but most of the stuff is publicly viewable Since the entire website was written in Django (one of my least favorite frameworks) like 6 years ago, I spent a ton of time setting up a local dev env because of compatibility issues and refamiliarizing myself with the framework again, so I thought why not also put it on stardance now that I’ve accumulated quite some hours"}]...
|
Title: TJHSST Q Lab Website by @tonymac129 | Stard Title: TJHSST Q Lab Website by @tonymac129 | Stardance
Devlogs:
Q Lab Website Updates As a sysadmin for my school, I’m responsible for making, updating, and maintaining some of the school’s websites, including the Q Lab website, which has projects, information, and other stuff about our quantum physics senior research lab! Some alumni of the lab already made most of the website, so in this update I just focused on adding some quality of life features and applying a redesign Added new darker colors and some UI improvements, as well as new icons, logos, layouts, and content throughout the platform Added project keywords and search to better explore and browse through different projects Added options to delete and edit project assets Fixed a few bugs related to the UI and updated the admin panel Note that some of the admin/management features require our internal auth, but most of the stuff is publicly viewable Since the entire website was written in Django (one of my least favorite frameworks) like 6 years ago, I spent a ton of time setting up a local dev env because of compatibility issues and refamiliarizing myself with the framework again, so I thought why not also put it on stardance now that I’ve accumulated quite some hours...
|
1793008419.9323153
|
1793613219.9323153
|
|
50720
|
AxionOS by @Akkorpy | Stardance
|
Akkorpy
|
0
|
14.41
|
0
|
[]
|
[{"post_id": 80865, "ts": "202 [{"post_id": 80865, "ts": "2026-10-19T02:54:50Z", "hours": 2.0039, "text": "Made a contact app. Now you can write an email and it will be addressed straight to me. It works through Formspree. I made it with Claude (I know, I use AI more than I should, but there is a lot of things I want to create but I don’t know how). I’ll add also About Me app, Music playerm Weather app and browser (maybe). For now, my OS is almost complete"}, {"post_id": 78934, "ts": "2026-10-12T02:47:02Z", "hours": 2.1689, "text": "Finally! Renamed simply Notes by Cosmic Journal, made navigation for it and added some text. Moving content to JS was the only challenge. Used Claude for troubleshooting and Gemini a little for designs and adapting the code from the instruction for my project (however, its visual needs some update), especially in the last part (navigation and JS content)."}, {"post_id": 77000, "ts": "2026-10-05T10:04:33Z", "hours": 1.2914, "text": "Finally! I fixed the main problem with dragging and closing the windows. I haven’t completed my notes app, so it looks really raw and… empty. However, now it will be easier for me. And honestly, I only used Claude for troubleshooting, debugging and making the code easier to read, especially for this issue, but nothing more than that!"}, {"post_id": 72488, "ts": "2026-09-23T02:14:32Z", "hours": 2.3156, "text": "Today, I was working on my first app for the OS. I guess I didn’t fully understand the instructions for Jam Part-4, as my code for window dragging and closing stopped working for both the Notes app window and the Welcome screen (it was working for the Welcome screen until I added the app code). I’m not sure what I should do to fix it yet, even after asking Gemini, but I’ll try to debug and fix it today. If you have any solutions, please leave them in the comments!"}, {"post_id": 69235, "ts": "2026-09-16T17:03:11Z", "hours": 1.1761, "text": "Made its visual slightly more interesting - added a gif wallpaper insted of png. Also added a handle for Welcome screen"}, {"post_id": 62388, "ts": "2026-09-05T18:42:26Z", "hours": 2.3306, "text": "Finally finished making window openable, closable and, of course, draggable. I spent most of the time fixing some text bugs and how the Welcome window appeared when opened. Next step is to create my first app"}, {"post_id": 62123, "ts": "2026-09-05T11:44:54Z", "hours": 2.0556, "text": "Just finished making top bar and desktop, time track and also defining my welcome window. It’s hard to read the code, so next time I will move styles to CSS file and scripts to JS file. Also, I will make windows movable, openable and closeable"}, {"post_id": 49805, "ts": "2026-08-18T19:05:00Z", "hours": 1.0633, "text": "Just finished making my Welcome Screen. It seems awkward at the moment, but I will be upgrading it every day till shipping. Tomorrow I will update its visual appearance"}]...
|
Title: AxionOS by @Akkorpy | Stardance
Devlogs:
J Title: AxionOS by @Akkorpy | Stardance
Devlogs:
Just finished making my Welcome Screen. It seems awkward at the moment, but I will be upgrading it every day till shipping. Tomorrow I will update its visual appearance
Just finished making top bar and desktop, time track and also defining my welcome window. It’s hard to read the code, so next time I will move styles to CSS file and scripts to JS file. Also, I will make windows movable, openable and closeable
Finally finished making window openable, closable and, of course, draggable. I spent most of the time fixing some text bugs and how the Welcome window appeared when opened. Next step is to create my first app
Made its visual slightly more interesting - added a gif wallpaper insted of png. Also added a handle for Welcome screen
Today, I was working on my first app for the OS. I guess I didn’t fully understand the instructions for Jam Part-4, as my code for window dragging and closing stopped working for both the Notes app window and the Welcome screen (it was working for the Welcome screen until I added the app code). I’m not sure what I should do to fix it yet, even after asking Gemini, but I’ll try to debug and fix it today. If you have any solutions, please leave them in the comments!
Finally! I fixed the main problem with dragging and closing the windows. I haven’t completed my notes app, so it looks really raw and… empty. However, now it will be easier for me. And honestly, I only used Claude for troubleshooting, debugging and making the code easier to read, especially for this issue, but nothing more than that!
Finally! Renamed simply Notes by Cosmic Journal, made navigation for it and added some text. Moving content to JS was the only challenge. Used Claude for troubleshooting and Gemini a little for designs and adapting the code from the instruction for my project (however, its visual needs some update), especially in the last part (navigation and JS content).
Made a contact app. Now you can write an email and it will be addressed straight to me. It works through Formspree. I made it with Claude (I know, I use AI more than I should, but there is a lot of things I want to create but I don’t know how). I’ll add also About Me app, Music playerm Weather app and browser (maybe). For now, my OS is almost complete...
|
1792641157.8968778
|
1793245957.8968778
|
|
70226
|
Fixing glasses by @lilfox | Stardance
|
lilfox
|
0
|
3.09
|
0
|
[]
|
[{"post_id": 80867, "ts": "202 [{"post_id": 80867, "ts": "2026-10-19T03:22:37Z", "hours": 3.0908, "text": "So, my sister’s glasses broke. This is going to be a short project lasting one devlog…here we go! Getting to the bottom of the issue The hinge part connecting the temple to the screw broke off. After many hours trying to glue them back together, I decided to 3d print a whole new temple, alongside a stronger hinge for the screw. Temple dimensions Using a trusty ruler, I measured the parts of the temple, first from the top, then at the side, so that I could replicate these dimensions in Onshape. I constantly had to compare the physical proportions to the CAD, so that it (hopefully) looked as accurate as possible. CADing Finally, it came down to using sketches on the top, front, and slightly angled planes to establish the structure of the temple. Then I extruded separate parts on each plane and connected them using lofts (with tangents) for smooth transitions. The struggle with hinges… No wonder the metal hinges on the original glasses broke. They’re like a mm (maybe less) thick, and the 3d printed hinge definitely broke!! So instead of accuracy it was time to prioritize strength. Instead of wedging the hinge into the cavity of the glasses hinge, forcing it to be thin and weak, I would wedge the hinge OVER the glasses hinge! (Makes no sense in text but hopefully in the images) Finale After printing, gluing, and sanding, the temple was finally complete. I used a slightly longer watch screw to connect the part to the glasses, and viola! It was done. :)"}]...
|
Title: Fixing glasses by @lilfox | Stardance
Devl Title: Fixing glasses by @lilfox | Stardance
Devlogs:
So, my sister’s glasses broke. This is going to be a short project lasting one devlog…here we go! Getting to the bottom of the issue The hinge part connecting the temple to the screw broke off. After many hours trying to glue them back together, I decided to 3d print a whole new temple, alongside a stronger hinge for the screw. Temple dimensions Using a trusty ruler, I measured the parts of the temple, first from the top, then at the side, so that I could replicate these dimensions in Onshape. I constantly had to compare the physical proportions to the CAD, so that it (hopefully) looked as accurate as possible. CADing Finally, it came down to using sketches on the top, front, and slightly angled planes to establish the structure of the temple. Then I extruded separate parts on each plane and connected them using lofts (with tangents) for smooth transitions. The struggle with hinges… No wonder the metal hinges on the original glasses broke. They’re like a mm (maybe less) thick, and the 3d printed hinge definitely broke!! So instead of accuracy it was time to prioritize strength. Instead of wedging the hinge into the cavity of the glasses hinge, forcing it to be thin and weak, I would wedge the hinge OVER the glasses hinge! (Makes no sense in text but hopefully in the images) Finale After printing, gluing, and sanding, the temple was finally complete. I used a slightly longer watch screw to connect the part to the glasses, and viola! It was done. :)...
|
1792961291.224392
|
1793566091.224392
|
|
28495
|
Projects/Devlog Site by @ritvikgrandhi | Stardance
|
ritvikgrandhi
|
2
|
17.29
|
32
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-08T22:14:18Z", "hours": 9.0, "multiplier": 3.54, "payout": 32, "blessing": "neutral", "text": "##Ship 2! Hello, reviewers! This is an updated, more useful version of my portfolio website that can now log projects and devlogs, similar to Stardance! I made this after realizing that after Stardance is over, I’ll have nowhere to log my projects and the progress I make on them! To keep a good habit going and log my projects for everyone to see, I decided to edit this portfolio site into a dedicated server for all of my projects, after realizing that I already have a good portfolio that I constantly edit at school. This ship does not have full functionality: it can save any number of projects and devlogs, but once you reload, they are all gone. I can safely say that it was a pain to create a new project and devlog for testing, and now you get to do it too! As you might see in my last devlog, I’m currently shipping this so that everyone can see the project and devlog adding functionality now, because later I’ll add an admin login page so that I can only add my projects, while others who access the website can see them but not edit them. Anyway, that’s all, and have fun!", "repo": "https://github.com/ritvikgrandhi-hue/stardancechallengewebsite", "demo": "https://ritvikgrandhi-hue.github.io/stardancechallengewebsite/"}, {"ship_num": 2, "ts": "2026-08-09T17:10:42Z", "hours": 6.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Hello, here is my portfolio website, which will eventually contain information about me and my life. So far, I have done the minimum requirements for this beginner project, which is why I am shipping it. However, I am pretty excited and happy about how it currently looks. What I did find challenging is that I haven’t used html and css in a while, which meant I had to relearn almost everything while juggling extracurriculars and school events. This personal project will grow as I achieve more things, but for now, the index page is the only truly functional page, which has more than 3 sections. I hope everyone will be able to see my passion and encourage me to continue into the future!", "repo": "https://github.com/ritvikgrandhi-hue/stardancechallengewebsite", "demo": "https://ritvikgrandhi-hue.github.io/stardancechallengewebsite/"}]...
|
[{"post_id": 80870, "ts": "202 [{"post_id": 80870, "ts": "2026-10-19T03:42:06Z", "hours": 2.2892, "text": "Working on the Backend: Literally no functionality has changed yet, this is just me trying to configure node.js to do everything 😭 . Anyway, sorry for not updating in a while, I promise I’ll get back to work on it soon!"}, {"post_id": 64478, "ts": "2026-09-08T22:06:46Z", "hours": 1.865, "text": "Devlog 5: 9/8/26 Nothing much, I managed to get the node.js server running and got the css and html to work, but its nowhere near done. Anyway, for now, I’m going to ship this project so that reviewers can actually see and try to use the add project and add devlog functions. Stay tuned!"}, {"post_id": 63315, "ts": "2026-09-07T02:07:35Z", "hours": 3.3178, "text": "Devlog: 9/6/2026 I made SO much progress!! Changes: Can now create devlogs within projects Can edit those devlogs Can add multiple images and videos within the devlogs When you click on the images, they open in a new window above the page New Navbar and logo design, courtesy of this video: https://www.youtube.com/watch?v=uTPO6fKtBvM Can delete devlogs Devlogs gain certain ids based on the date and time, so each devlog has a unique id to allow for edits and deletions For the JavaScript, the basic functionality was carried over from the notes app on my NINJAGO WEBOS, but I did need AI to educate me on how to implement new functions. Also, the CSS and HTML were written mostly by me with the help of tutorials."}, {"post_id": 60407, "ts": "2026-09-02T18:24:33Z", "hours": 2.5461, "text": "Woohoo, some functionality! Ok, so far I haven’t differentiated a backend and frontend for the projects tab, but for now you can add projects with an image, title, and summary, and they’ll appear as projects on the projects tab. Also, when you click on them, it brings you to a separate viewing tab to see all about the project, although I haven’t started working on the part where you can add devlogs. Also, adding projects isn’t permanent, as when I reload the tab, they all disappear (since I want it to save to the website for everyone to see, I have to implement a Node.js backend, which I haven’t learned about yet). I also slightly changed the theme into dark mode and made the buttons to enter the project look futuristic. They are NOT AI; I made them with the help of this video: ( https://www.youtube.com/watch?v=a1NVen8SaqE ), but it does look a bit different for reasons unknown. Anyway, stay tuned!"}, {"post_id": 59970, "ts": "2026-09-02T01:30:45Z", "hours": 1.4286, "text": "NEW DESIGN: For those that don’t want to read: I’m tearing down most of the site to make it a dedicated project site. After realizing that I already have most of my accomplishments and extracurriculars on a different project that I’m making in school, I understood that maintaining a second site would be kind of useless. So, in an attempt to salvage my efforts and make it something worth using, I’m going to take my Javascript knowledge from the NINJAGO OS project I’m also currently making to create a project and devlog site, similar to stardance, as I want to have a place to store all of my hobby projects. However, I don’t want anyone adding information to my site but me, so i’m biting the bullet and learning to differentiate a frontend and backend (with minor AI help), while salvaging the about page of the already existing porfolio. This way, when people online stumble upon it (as i’ll use the grant I got for purchasing a website domain), they’ll know about me first before moving on to my projects. That’s pretty much it! Looking forward to it!"}, {"post_id": 43725, "ts": "2026-08-09T04:13:32Z", "hours": 5.9075, "text": "This project isn’t just a portfolio, but an entrance into my world. Hey everyone, welcome to my portfolio website! After exams up until the beginning of August, I’ve finally found time to begin developing a website. First, this website only has one functioning page as of yet, which is the index page. I admit, at first I did try vibecoding(using AI), to see what it would do and if I could understand and learn from, but it turned out to be utterly useless in that regard, and so I’ve built it up again mostly from scratch to get to this point, although some traces of AI remain in the other pages, which I will delete remove. However, I am proud of how far it has gotten since I’ve imagined how it would be like. My plan for this website is to include everything I’ve accomplished or done here so people can learn who I am as a person. To do this, and to separate it from other portfolios, I believe I will eventually put in a blog of projects I’ve done to further my career path, as well as write and teach others on certain topics. However, this will take some time, so stay tuned! Up next is the Extracurriculars and Skills pages to fix."}]...
|
Title: Projects/Devlog Site by @ritvikgrandhi | St Title: Projects/Devlog Site by @ritvikgrandhi | Stardance
Devlogs:
This project isn’t just a portfolio, but an entrance into my world. Hey everyone, welcome to my portfolio website! After exams up until the beginning of August, I’ve finally found time to begin developing a website. First, this website only has one functioning page as of yet, which is the index page. I admit, at first I did try vibecoding(using AI), to see what it would do and if I could understand and learn from, but it turned out to be utterly useless in that regard, and so I’ve built it up again mostly from scratch to get to this point, although some traces of AI remain in the other pages, which I will delete remove. However, I am proud of how far it has gotten since I’ve imagined how it would be like. My plan for this website is to include everything I’ve accomplished or done here so people can learn who I am as a person. To do this, and to separate it from other portfolios, I believe I will eventually put in a blog of projects I’ve done to further my career path, as well as write and teach others on certain topics. However, this will take some time, so stay tuned! Up next is the Extracurriculars and Skills pages to fix.
NEW DESIGN: For those that don’t want to read: I’m tearing down most of the site to make it a dedicated project site. After realizing that I already have most of my accomplishments and extracurriculars on a different project that I’m making in school, I understood that maintaining a second site would be kind of useless. So, in an attempt to salvage my efforts and make it something worth using, I’m going to take my Javascript knowledge from the NINJAGO OS project I’m also currently making to create a project and devlog site, similar to stardance, as I want to have a place to store all of my hobby projects. However, I don’t want anyone adding information to my site but me, so i’m biting the bullet and learning to differentiate a frontend and backend (with minor AI help), while salvaging the about page of the already existing porfolio. This way, when people online stumble upon it (as i’ll use the grant I got for purchasing a website domain), they’ll know about me first before moving on to my projects. That’s pretty much it! Looking forward to it!
Woohoo, some functionality! Ok, so far I haven’t differentiated a backend and frontend for the projects tab, but for now you can add projects with an image, title, and summary, and they’ll appear as projects on the projects tab. Also, when you click on them, it brings you to a separate viewing tab to see all about the project, although I haven’t started working on the part where you can add devlogs. Also, adding projects isn’t permanent, as when I reload the tab, they all disappear (since I want it to save to the website for everyone to see, I have to implement a Node.js backend, which I haven’t learned about yet). I also slightly changed the theme into dark mode and made the buttons to enter the project look futuristic. They are NOT AI; I made them with the help of this video: ( https://www.youtube.com/watch?v=a1NVen8SaqE ), but it does look a bit different for reasons unknown. Anyway, stay tuned!
Devlog: 9/6/2026 I made SO much progress!! Changes: Can now create devlogs within projects Can edit those devlogs Can add multiple images and videos within the devlogs When you click on the images, they open in a new window above the page New Navbar and logo design, courtesy of this video: https://www.youtube.com/watch?v=uTPO6fKtBvM Can delete devlogs Devlogs gain certain ids based on the date and time, so each devlog has a unique id to allow for edits and deletions For the JavaScript, the basic functionality was carried over from the notes app on my NINJAGO WEBOS, but I did need AI to educate me on how to implement new functions. Also, the CSS and HTML were written mostly by me with the help of tutorials.
Devlog 5: 9/8/26 Nothing much, I managed to get the node.js server running and got the css and html to work, but its nowhere near done. Anyway, for now, I’m going to ship this project so that reviewers can actually see and try to use the add project and add devlog functions. Stay tuned!
Working on the Backend: Literally no functionality has changed yet, this is just me trying to configure node.js to do everything 😭 . Anyway, sorry for not updating in a while, I promise I’ll get back to work on it soon!
Ships:
Hello, here is my portfolio website, which will eventually contain information about me and my life. So far, I have done the minimum requirements for this beginner project, which is why I am shipping it. However, I am pretty excited and happy about how it currently looks. What I did find challenging is that I haven’t used html and css in a while, which meant I had to relearn almost everything while juggling extracurriculars and school events. This personal project will grow as I achieve more things, but for now, the index page is the only truly functional page, which has more than 3 sections. I hope everyone will be able to see my passion and encourage me to continue into the future!
##Ship 2! Hello, reviewers! This is an updated, more useful version of my portfolio website that can now log projects and devlogs, similar to Stardance! I made this after realizing that after Stardance is over, I’ll have nowhere to log my projects and the progress I make on them! To keep a good habit going and log my projects for everyone to see, I decided to edit this portfolio site into a dedicated server for all of my projects, after realizing that I already have a good portfolio that I constantly edit at school. This ship does not have full functionality: it can save any number of projects and devlogs, but once you reload, they are all gone. I can safely say that it was a pain to create a new project and devlog for testing, and now you get to do it too! As you might see in my last devlog, I’m currently shipping this so that everyone can see the project and devlog adding functionality now, because later I’ll add an admin login page so that I can only add my projects, while others who access the website can see them but not edit them. Anyway, that’s all, and have fun!...
|
1793137787.7139075
|
1793224187.7139075
|
|
58729
|
Custom Alarm Clock by @chriszamora9876 | Stardance
|
chriszamora9876
|
0
|
13.04
|
0
|
[]
|
[{"post_id": 80871, "ts": "202 [{"post_id": 80871, "ts": "2026-10-19T03:42:55Z", "hours": 9.135, "text": "Some structural issues after I realized that I placed the mounting holes too far from the edges of the PCB, but this is the basic foundation complete. Went for a NYC on top afterwards :)"}, {"post_id": 73455, "ts": "2026-09-25T04:01:40Z", "hours": 3.9014, "text": "Just finished my pcb design (first time ever). I changed the location of the parts to be different from he guideline"}]...
|
Title: Custom Alarm Clock by @chriszamora9876 | St Title: Custom Alarm Clock by @chriszamora9876 | Stardance
Devlogs:
Just finished my pcb design (first time ever). I changed the location of the parts to be different from he guideline
Some structural issues after I realized that I placed the mounting holes too far from the edges of the PCB, but this is the basic foundation complete. Went for a NYC on top afterwards :)...
|
1792767082.461462
|
1793371882.461462
|