|
47767
|
Ultrasonic people counter and smart lights by @Mad Ultrasonic people counter and smart lights by @MadameLouise | Stardance...
|
MadameLouise
|
1
|
38.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-14T12:41:56Z", "hours": 38.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "It is a People Counter using Arduino UNO and an HC-SR04 Ultrasonic Sensor. Whenever a person passes in front of the sensor, the Arduino detects the movement, increases the count, and turns on an LED as an indication. Could use this counting people entering a house or room or can also be used in bus or vehicles. it displays the number of count on your device. Because this sensing is using ultrasound sensor by connecting an Led we can even make automatic light system which turns on when there are people and turns off when there are none", "repo": "https://github.com/AmruthaMuralidhar1/Notebook", "demo": ""}]...
|
[{"post_id": 46870, "ts": "202 [{"post_id": 46870, "ts": "2026-08-14T12:40:57Z", "hours": 37.9658, "text": "Ultrasonic people counter and smart lights"}]...
|
Title: Ultrasonic people counter and smart lights Title: Ultrasonic people counter and smart lights by @MadameLouise | Stardance
Devlogs:
Ultrasonic people counter and smart lights
Ships:
It is a People Counter using Arduino UNO and an HC-SR04 Ultrasonic Sensor. Whenever a person passes in front of the sensor, the Arduino detects the movement, increases the count, and turns on an LED as an indication. Could use this counting people entering a house or room or can also be used in bus or vehicles. it displays the number of count on your device. Because this sensing is using ultrasound sensor by connecting an Led we can even make automatic light system which turns on when there are people and turns off when there are none...
|
1793116394.2859676
|
1793202794.2859676
|
|
51969
|
coffeeTracker by @skyFonix | Stardance
|
skyFonix
|
1
|
38.0
|
388
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-11T18:48:25Z", "hours": 38.0, "multiplier": 8.44, "payout": 388, "blessing": "neutral", "text": "coffeeTracker The reason The reason I made this project was because my dad asked me whether I could develop a solution for tracking coffee usage at his workplace, because it was a real mess without a central system. Features User account registration without any permission First user to register automatically becomes the admin Everyone else has to be approved by the admin if the account wasn’t created from the admin dashboard The whole system works based on pools, every coffee machine at an office is considered a pool, each of them have a separate transaction list. Every user has a different balance for all of them! Clear UI with big buttons for the four main functions Drink (“Ivás”): The user can either choose a predefined strength of coffee or can enter a custom amount in gramms, people can only drink from a pool if the user has enough money to pay for the coffee and the pool has enough coffee to drink from Add coffee (“Kávé hozzáadása”): The user can register coffee that they bought with their own money!. They need to enter the amount and cost of it! Add money (“Pénz hozzáadása”): The user can register a money only transaction, the system treats it differently to a coffee add transaction, since it doesn’t physically add coffee to the pool Use Money (“Pénz felhasználása”): Since the system treats money only and coffee transactions this serves the function of using up the funds from money only transactions in the pool! Any transaction can be edited: Users can only edit their transactions for a limited time, while admins can edit all transactions at any point in time right from the dashboard! Profile pictures: Any user can set a profile picture, it has no usefulness, but it’s fun. Admins can administer profile pics to any user these pictures can also be removed! Upcoming features: Statistics: These aren’t implemented yet, because I’m not sure what will be needed in everyday usage, so I decided it’s better to let the environment decide. Difficulties: One of the biggest challenges of this project was the logic behind handling and updating transactions and pool balances I also found working with modals a bit inconvenient and ugly at times, but got used to them by the end Demo: https://democoffee.cigoria.eu ADMIN User: demoadmin Password: password USER User: demouser Password: password1", "repo": "https://github.com/FonixPython/coffeeTracker", "demo": "https://democoffee.cigoria.eu"}]...
|
[{"post_id": 78795, "ts": "202 [{"post_id": 78795, "ts": "2026-10-11T16:58:47Z", "hours": 6.9053, "text": "Final devlog before first ship! I translated the whole thing to Hungarian because the environment that it will be used in required it! I implemented a money usage transaction I also implemented editing of transactions for both users and admins, admins can edit transaction anytime, users can only edit transactions the hour after it was made! QR support was also implemented, these can be printed out and when scanned they bring the user right to the correct pool for quick transactions"}, {"post_id": 71142, "ts": "2026-09-20T10:52:55Z", "hours": 9.0417, "text": "It seems like I’m still keeping my track record of not making enough devlogs. Things that have changed since last time: I added support for profile pictures A top bar was added for access to the admin panel, user editor and the logout button! I started making the home page functional, adding coffee, adding money and drinking coffee are now functional! Challenging things: As per usual my procrastination did not help the progress of the project I spent the last half an hour figuring out why the checks for drinking coffee weren’t working, it turned out to be quite a dumb mistake Things left to do: Use money from pool function Edit transaction for users and admins Generate QR code for pool with a printable .pdf Statistics: Coffee drinking leader board Coffee buying leader board Monthly drinking summaries Drinking frequency stats throughout the day Display amount of money actually spent on coffee and amount of money that’s just money"}, {"post_id": 67364, "ts": "2026-09-13T13:25:23Z", "hours": 2.86, "text": "Accounts can finally be properly edited from the admin panel, next up is the profile picture support!"}, {"post_id": 66777, "ts": "2026-09-12T17:43:33Z", "hours": 9.7572, "text": "Damn it, I’m devloging almost 10 hours of work again! I everything I did was on the admin page side of things, forgot to devlog tho… Admin can create, edit and delete pools Admin can create, edit and delete coffee variations (how strong a coffee can be) Admin can register, accept, edit and delete users Currently the most challenging part of this project is battling my ADHD brain and trying not to procrastinate on it. :("}, {"post_id": 53987, "ts": "2026-08-24T18:23:40Z", "hours": 6.5903, "text": "Big devlog - backend work mostly finished Things added Authentication systems with tokens stored inside of a cookie CRUD for pools for admins CRUD for transactions for admins and users CRUD for variations for admins Frontend Tasks Connect the login page to backend Connect user dashboard to backend Add modals to user dashboard Add notifications to user dashboard Connect admin dashboard to backend Create statistics diagrams Backend Tasks Profile picture support, db table already there, but uploads and such aren’t yet implemented, I’m unsure of when to handle them"}, {"post_id": 51257, "ts": "2026-08-20T19:53:10Z", "hours": 1.8378, "text": "Finished with the basic design of the user dashboard! Also optimized it for mobile devices, since that’s going to be the primary target device!"}, {"post_id": 51182, "ts": "2026-08-20T18:00:46Z", "hours": 0.8058, "text": "Login panel design finished"}, {"post_id": 51092, "ts": "2026-08-20T16:17:02Z", "hours": 0.4714, "text": "Finished with schema design!"}]...
|
Title: coffeeTracker by @skyFonix | Stardance
Dev Title: coffeeTracker by @skyFonix | Stardance
Devlogs:
Finished with schema design!
Login panel design finished
Finished with the basic design of the user dashboard! Also optimized it for mobile devices, since that’s going to be the primary target device!
Big devlog - backend work mostly finished Things added Authentication systems with tokens stored inside of a cookie CRUD for pools for admins CRUD for transactions for admins and users CRUD for variations for admins Frontend Tasks Connect the login page to backend Connect user dashboard to backend Add modals to user dashboard Add notifications to user dashboard Connect admin dashboard to backend Create statistics diagrams Backend Tasks Profile picture support, db table already there, but uploads and such aren’t yet implemented, I’m unsure of when to handle them
Damn it, I’m devloging almost 10 hours of work again! I everything I did was on the admin page side of things, forgot to devlog tho… Admin can create, edit and delete pools Admin can create, edit and delete coffee variations (how strong a coffee can be) Admin can register, accept, edit and delete users Currently the most challenging part of this project is battling my ADHD brain and trying not to procrastinate on it. :(
Accounts can finally be properly edited from the admin panel, next up is the profile picture support!
It seems like I’m still keeping my track record of not making enough devlogs. Things that have changed since last time: I added support for profile pictures A top bar was added for access to the admin panel, user editor and the logout button! I started making the home page functional, adding coffee, adding money and drinking coffee are now functional! Challenging things: As per usual my procrastination did not help the progress of the project I spent the last half an hour figuring out why the checks for drinking coffee weren’t working, it turned out to be quite a dumb mistake Things left to do: Use money from pool function Edit transaction for users and admins Generate QR code for pool with a printable .pdf Statistics: Coffee drinking leader board Coffee buying leader board Monthly drinking summaries Drinking frequency stats throughout the day Display amount of money actually spent on coffee and amount of money that’s just money
Final devlog before first ship! I translated the whole thing to Hungarian because the environment that it will be used in required it! I implemented a money usage transaction I also implemented editing of transactions for both users and admins, admins can edit transaction anytime, users can only edit transactions the hour after it was made! QR support was also implemented, these can be printed out and when scanned they bring the user right to the correct pool for quick transactions
Ships:
coffeeTracker The reason The reason I made this project was because my dad asked me whether I could develop a solution for tracking coffee usage at his workplace, because it was a real mess without a central system. Features User account registration without any permission First user to register automatically becomes the admin Everyone else has to be approved by the admin if the account wasn’t created from the admin dashboard The whole system works based on pools, every coffee machine at an office is considered a pool, each of them have a separate transaction list. Every user has a different balance for all of them! Clear UI with big buttons for the four main functions Drink (“Ivás”): The user can either choose a predefined strength of coffee or can enter a custom amount in gramms, people can only drink from a pool if the user has enough money to pay for the coffee and the pool has enough coffee to drink from Add coffee (“Kávé hozzáadása”): The user can register coffee that they bought with their own money!. They need to enter the amount and cost of it! Add money (“Pénz hozzáadása”): The user can register a money only transaction, the system treats it differently to a coffee add transaction, since it doesn’t physically add coffee to the pool Use Money (“Pénz felhasználása”): Since the system treats money only and coffee transactions this serves the function of using up the funds from money only transactions in the pool! Any transaction can be edited: Users can only edit their transactions for a limited time, while admins can edit all transactions at any point in time right from the dashboard! Profile pictures: Any user can set a profile picture, it has no usefulness, but it’s fun. Admins can administer profile pics to any user these pictures can also be removed! Upcoming features: Statistics: These aren’t implemented yet, because I’m not sure what will be needed in everyday usage, so I decided it’s better to let the environment decide. Difficulties: One of the biggest challenges of this project was the logic behind handling and updating transactions and pool balances I also found working with modals a bit inconvenient and ugly at times, but got used to them by the end Demo: https://democoffee.cigoria.eu ADMIN User: demoadmin Password: password USER User: demouser Password: password1...
|
1793152211.712869
|
1793238611.712869
|
|
56712
|
one file game challenge by @OrderDanie | Stardance
|
OrderDanie
|
4
|
38.0
|
582
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-11T16:51:38Z", "hours": 4.0, "multiplier": 19.61, "payout": 78, "blessing": "neutral", "text": "school has won guys🥀🥀, this is the final version, hope you like it, D, loging off for this year", "repo": "https://github.com/OrderDanie/one-file-challenge", "demo": "https://pixel-drifter.netlify.app/"}, {"ship_num": 2, "ts": "2026-09-05T00:32:01Z", "hours": 17.0, "multiplier": 17.58, "payout": 300, "blessing": "neutral", "text": "v3, and prolly finale, so pls rate this as high as posible, SO, one file chalenge comes to an end, a full drift delivery game, where u drift to get money, as u are broke ofc, u can upgrade the shop, visiting the 2nd city after buying all cars in city 1, go to race city (no police), and ofc TRUCKSS, can hold more than one pkg, up to 11 when updgraded, all vehiculs can now be moded, and paintjobs are free, ofc, race ai is less unstable, but works, and that pretty much it for this update, dont forget to rait this the best u can, tyy all for the support", "repo": "https://github.com/OrderDanie/one-file-challenge", "demo": "https://pixel-drifter.netlify.app/"}, {"ship_num": 3, "ts": "2026-09-03T03:23:32Z", "hours": 7.0, "multiplier": 18.19, "payout": 133, "blessing": "neutral", "text": "udate 2.0, added ai races, ai traffic, anf lowred the hitbox, simce some players had skill issues, also added another city to the left, racess, still in beta, added the inital d car, ou are a delivery guy dilevering pizza, FOR MONEY ofc, the better the car and timing the more u get paid, try to no commit crimes, there is a wanted sys", "repo": "https://github.com/OrderDanie/one-file-challenge", "demo": "https://pixel-drifter.netlify.app/"}, {"ship_num": 4, "ts": "2026-09-01T18:23:00Z", "hours": 10.0, "multiplier": 13.96, "payout": 71, "blessing": "neutral", "text": "I MADE a game, BUT, its only ONE SINGULAR FILE, its a dilvery game, where you deliver stuff with a drift car, you can get money for faster delevires, money for close call hits with npcs, BACKWARDS trucks,2 cities, if you are a mod and you are reading this, pls, try the full game, i have put my soul into it", "repo": "https://github.com/OrderDanie/one-file-challenge", "demo": "https://pixel-drifter.netlify.app/"}]...
|
[{"post_id": 63232, "ts": "202 [{"post_id": 63232, "ts": "2026-09-06T22:31:00Z", "hours": 0.7, "text": "hit boxes are now smaller! also the police will try to hunt you down now instead of just ramming you"}, {"post_id": 62519, "ts": "2026-09-05T22:39:14Z", "hours": 0.9667, "text": "I have successfully added the FULL chapter one… Almost 3hours T_T,but deff worth it,yall better like that shi,ty yall i finally got my thingyy,hope i get it asap"}, {"post_id": 62424, "ts": "2026-09-05T19:26:40Z", "hours": 2.3, "text": "ehm ehm, srry about the uhh, not going to post cuz i ran out o ideas i got one… A DAM STOTYYY, its cringe asf but hey whatever i can add i will"}, {"post_id": 61868, "ts": "2026-09-05T00:26:44Z", "hours": 0.8392, "text": "u can now HORN, for no reason at all, added on screen gps instruction, ik, useless, made houses light up in the night, also now water has its own particles and will slow you down, trucks are now more fun and stable, also added a dev console, if this post gets 10 likes, ill post the shortcut, or u can smash ur keyboard or go look for in in 6k lines of code"}, {"post_id": 61791, "ts": "2026-09-04T21:27:25Z", "hours": 1.2408, "text": "i added the mobile support for my budget guys, and also sumbitted the game to a web game platform, just a try cuz why not ;>, wish me luck, this might be my final ship, cuz im mostly done with the game"}, {"post_id": 61495, "ts": "2026-09-04T13:16:22Z", "hours": 9.0542, "text": "i locked in so hard i forgor i had a life T-T, i added TONS of trucks, a pit stop so u can repair mid run, also added DRIFT zones, that are in the way of you delivery, that give you money if u drift in em, not to mention the upgradable sop, so u can earn money faster now, MONEEEEYYY, login off for today"}, {"post_id": 60973, "ts": "2026-09-03T17:32:38Z", "hours": 2.27, "text": "add heat lvl 3, helis appear, after escaping the cops, you have to keep running, so the hils doesnt find you, if it does, the heat will jump back to lvl 3, and you will be charged with resisting arrest, also added TRUCKS, with up to 5 cargo slots, you have to stay stationary at the pizza place to load up all the packages, then you run back to all the houses to deliver, ou have a totale timer, not a timer for each package, ai races are still broken tho"}, {"post_id": 60844, "ts": "2026-09-03T13:55:17Z", "hours": 3.6914, "text": "improved the ai racer, added checker flags as a start race, racers are represented and orange dots"}, {"post_id": 60628, "ts": "2026-09-03T03:02:56Z", "hours": 1.4772, "text": "added new racing city, ai races are in beta rn, so dont try em, yet, added the inital d drift car, and added weather and power ups tages, fixed minimap"}, {"post_id": 60568, "ts": "2026-09-03T00:03:40Z", "hours": 0.9283, "text": "hiyaaa, i added a navigation sys, on road navigation, since many found it hard to get to quests, it uses points i put all across the map turns, and a calc for the distance of the closest turn, theen puts a direct path to it, technically this SHOULD NOT be working, but it does, so ill leave it like this and get to other stuff, the code is 5k lines, moving throught it is a pain, might need to optimize some stuff, i can see why this isnt the standard"}, {"post_id": 60479, "ts": "2026-09-02T20:34:17Z", "hours": 2.0889, "text": "i kept coding none stop and forgor to test, also ty everyone i really appreciate the support, update coming as soon as i fixed this T-T"}, {"post_id": 60153, "ts": "2026-09-02T10:41:18Z", "hours": 1.5697, "text": "i was working on the game, till i reiceived this notification, talkin abt some 100pcnt ai code, well my hackatime says otherwise bru, honestly im happy someone sees this quality impossible, that they named it ai, but hey i need to ship this"}, {"post_id": 59899, "ts": "2026-09-01T22:17:44Z", "hours": 0.5239, "text": "added environment items, cones have physics, lakes slow down the car, puddles and oil leaks slightly diverts the car"}, {"post_id": 59826, "ts": "2026-09-01T20:02:53Z", "hours": 0.7342, "text": "added detailed cops models"}, {"post_id": 59745, "ts": "2026-09-01T17:54:22Z", "hours": 1.2389, "text": "added cops, better cam, better drift, enegine repair sys, npc truck, quests, reworked buildings, map overlay, added powerups like shield, speed, repair. and now visual packages on top of the car"}, {"post_id": 59663, "ts": "2026-09-01T16:06:32Z", "hours": 0.4044, "text": "added a whole other city you can acces by a highway after buying all the cars in city one, and for @kmdw , @nicklogan1412 , i am keeping the skinny houses, as an easter egg, YOUR names will be added later to the game, comment what would you like to put next to your name, i prefer no pics, but no pressure"}, {"post_id": 59616, "ts": "2026-09-01T15:12:06Z", "hours": 1.4344, "text": "added local saves, impact particles, rain weather that makes the roads slipery, a game intro page, a reward sys for dodging cars/drifting, if you have any suggestions, PLEASE SAY THEM IM RUNNING OUT OF IDEAS"}, {"post_id": 59562, "ts": "2026-09-01T13:32:09Z", "hours": 0.5942, "text": "added night time, and the delivery ticket ui, also added npc cars, couldn’t get them to do much since I’m limited by the one file rule, but they follow a mapped route, stop if the player gets in front of them or hits them, then continue once the player has moves , also added nitro for all cars, and added more cars that each have a benefit, except for the 1st one ofc, that’s just trash, this update is mostly just ui"}, {"post_id": 59513, "ts": "2026-09-01T11:49:22Z", "hours": 0.3953, "text": "added these little arrows to show the target building, yellow for the pizza shop, and red for the delivery house"}, {"post_id": 59467, "ts": "2026-09-01T10:31:35Z", "hours": 1.2678, "text": "i cant really draw or make detailed stuff, so i drew some houses, and gave them a code to randomize color, width, and height, but um, forgot to set minimun…"}, {"post_id": 59424, "ts": "2026-09-01T08:20:47Z", "hours": 2.8131, "text": "THE prototype is readyyy, go check it out in my profile https://pixel-drifter.netlify.app/"}, {"post_id": 59294, "ts": "2026-09-01T00:34:32Z", "hours": 0.2817, "text": "u cant blaame me i cant draw"}, {"post_id": 59245, "ts": "2026-08-31T22:37:57Z", "hours": 0.2633, "text": "OMG I HATE YOU"}, {"post_id": 59127, "ts": "2026-08-31T19:11:20Z", "hours": 0.5669, "text": "umm, help? friction is 100 btw i tried everything"}, {"post_id": 58889, "ts": "2026-08-31T13:46:02Z", "hours": 0.3997, "text": "for the one viewer that saw this, i added a map, yay"}, {"post_id": 58833, "ts": "2026-08-31T12:39:08Z", "hours": 0.5197, "text": "ckeck this out, looks simple, but too more than 30 mins btw"}]...
|
Title: one file game challenge by @OrderDanie | St Title: one file game challenge by @OrderDanie | Stardance
Devlogs:
ckeck this out, looks simple, but too more than 30 mins btw
for the one viewer that saw this, i added a map, yay
umm, help? friction is 100 btw i tried everything
OMG I HATE YOU
u cant blaame me i cant draw
THE prototype is readyyy, go check it out in my profile https://pixel-drifter.netlify.app/
i cant really draw or make detailed stuff, so i drew some houses, and gave them a code to randomize color, width, and height, but um, forgot to set minimun…
added these little arrows to show the target building, yellow for the pizza shop, and red for the delivery house
added night time, and the delivery ticket ui, also added npc cars, couldn’t get them to do much since I’m limited by the one file rule, but they follow a mapped route, stop if the player gets in front of them or hits them, then continue once the player has moves , also added nitro for all cars, and added more cars that each have a benefit, except for the 1st one ofc, that’s just trash, this update is mostly just ui
added local saves, impact particles, rain weather that makes the roads slipery, a game intro page, a reward sys for dodging cars/drifting, if you have any suggestions, PLEASE SAY THEM IM RUNNING OUT OF IDEAS
added a whole other city you can acces by a highway after buying all the cars in city one, and for @kmdw , @nicklogan1412 , i am keeping the skinny houses, as an easter egg, YOUR names will be added later to the game, comment what would you like to put next to your name, i prefer no pics, but no pressure
added cops, better cam, better drift, enegine repair sys, npc truck, quests, reworked buildings, map overlay, added powerups like shield, speed, repair. and now visual packages on top of the car
added detailed cops models
added environment items, cones have physics, lakes slow down the car, puddles and oil leaks slightly diverts the car
i was working on the game, till i reiceived this notification, talkin abt some 100pcnt ai code, well my hackatime says otherwise bru, honestly im happy someone sees this quality impossible, that they named it ai, but hey i need to ship this
i kept coding none stop and forgor to test, also ty everyone i really appreciate the support, update coming as soon as i fixed this T-T
hiyaaa, i added a navigation sys, on road navigation, since many found it hard to get to quests, it uses points i put all across the map turns, and a calc for the distance of the closest turn, theen puts a direct path to it, technically this SHOULD NOT be working, but it does, so ill leave it like this and get to other stuff, the code is 5k lines, moving throught it is a pain, might need to optimize some stuff, i can see why this isnt the standard
added new racing city, ai races are in beta rn, so dont try em, yet, added the inital d drift car, and added weather and power ups tages, fixed minimap
improved the ai racer, added checker flags as a start race, racers are represented and orange dots
add heat lvl 3, helis appear, after escaping the cops, you have to keep running, so the hils doesnt find you, if it does, the heat will jump back to lvl 3, and you will be charged with resisting arrest, also added TRUCKS, with up to 5 cargo slots, you have to stay stationary at the pizza place to load up all the packages, then you run back to all the houses to deliver, ou have a totale timer, not a timer for each package, ai races are still broken tho
i locked in so hard i forgor i had a life T-T, i added TONS of trucks, a pit stop so u can repair mid run, also added DRIFT zones, that are in the way of you delivery, that give you money if u drift in em, not to mention the upgradable sop, so u can earn money faster now, MONEEEEYYY, login off for today
i added the mobile support for my budget guys, and also sumbitted the game to a web game platform, just a try cuz why not ;>, wish me luck, this might be my final ship, cuz im mostly done with the game
u can now HORN, for no reason at all, added on screen gps instruction, ik, useless, made houses light up in the night, also now water has its own particles and will slow you down, trucks are now more fun and stable, also added a dev console, if this post gets 10 likes, ill post the shortcut, or u can smash ur keyboard or go look for in in 6k lines of code
ehm ehm, srry about the uhh, not going to post cuz i ran out o ideas i got one… A DAM STOTYYY, its cringe asf but hey whatever i can add i will
I have successfully added the FULL chapter one… Almost 3hours T_T,but deff worth it,yall better like that shi,ty yall i finally got my thingyy,hope i get it asap
hit boxes are now smaller! also the police will try to hunt you down now instead of just ramming you
Ships:
I MADE a game, BUT, its only ONE SINGULAR FILE, its a dilvery game, where you deliver stuff with a drift car, you can get money for faster delevires, money for close call hits with npcs, BACKWARDS trucks,2 cities, if you are a mod and you are reading this, pls, try the full game, i have put my soul into it
udate 2.0, added ai races, ai traffic, anf lowred the hitbox, simce some players had skill issues, also added another city to the left, racess, still in beta, added the inital d car, ou are a delivery guy dilevering pizza, FOR MONEY ofc, the better the car and timing the more u get paid, try to no commit crimes, there is a wanted sys
v3, and prolly finale, so pls rate this as high as posible, SO, one file chalenge comes to an end, a full drift delivery game, where u drift to get money, as u are broke ofc, u can upgrade the shop, visiting the 2nd city after buying all cars in city 1, go to race city (no police), and ofc TRUCKSS, can hold more than one pkg, up to 11 when updgraded, all vehiculs can now be moded, and paintjobs are free, ofc, race ai is less unstable, but works, and that pretty much it for this update, dont forget to rait this the best u can, tyy all for the support
school has won guys🥀🥀, this is the final version, hope you like it, D, loging off for this year...
|
1792878720.092558
|
1793742720.092558
|
|
33038
|
Defied by @Sgattix | Stardance
|
Sgattix
|
1
|
37.62
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-23T16:36:14Z", "hours": 16.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Defied — a full-stack monorepo featuring a Next.js 15 marketing site, NestJS API server, Fumadocs documentation, shared auth (Better Auth + Stripe, that will be later on moved to zitadel), Prisma/MariaDB, and Payload CMS — all wired with Turborepo. Challenge: Getting Better Auth to work identically across both the Next.js web app and NestJS server without duplicating config, while keeping Prisma types in sync across packages. Proud of: not using AI, insuring a high quality communication while also maintaining control over app primitives using Defied DART and Defied Prism. To test: pnpm install pnpm dev Then open http://localhost:2029 .", "repo": "https://github.com/defied-labs/website", "demo": "https://defied.sgattix.online"}]...
|
[{"post_id": 74793, "ts": "202 [{"post_id": 74793, "ts": "2026-09-28T08:30:44Z", "hours": 21.6183, "text": "Hi everyone! I’ve been making good progress on Defied lately. Here’s an update on what I’ve been working on: Backend Magic-link auth is working, and I’ve added Zitadel as auth provider for a more ecosystem-like architecture. The auth handler now supports both email magic-links and Zitadel OIDC. Health endpoints: /health , /health/db , /health/auth , and /health/mail endpoints for monitoring Email verification: SMTP integration with verifyEmailConnection() for magic-link email verification Frontend Blog management: Integrated BlockNote and Nextra to build a fully-functional blog Landing page: Designed and built, showcasing Defied’s services and values Login page: Updated with modern design and auth flow I will soon implement syntax highlighting and LaTeX in the blog editor. Stay tuned"}, {"post_id": 53036, "ts": "2026-08-23T13:00:32Z", "hours": 4.4719, "text": "Hi guys, I decided to spend these 4 hours doing something that almost no one does these days: reviewing code by hand, zero-AI. I noticed some contradictions, something that didn’t quite reflect Defied’s values and status. So here’s the final, working, bulletproof, but most importantly meaningful version of Defied’s landing page. I will soon ship it, so wish me luck!"}, {"post_id": 43218, "ts": "2026-08-08T10:55:52Z", "hours": 11.6939, "text": "Hi guys, I’ve been quite busy lately with my life outside Stardance. However I still managed to put some effort on a new project: Defied. Defied is a software company that builds advanced digital products, combining software engineering, AI and design to create reliable, elegant and accessible tools. Here’s what I did so far: Backend Built basic magic-link auth that will be later moved to a Zitadel-based auth for a more ecosystem-like architecture Frontend Designed and built landing page Designed and built login page Just as a quick note, this is Defied’s landing page and service wrapper, not a service. For Defied services, check out Defied Prism (Which I will later post here, as a multi-framework, css modules and tailwindcss component library)."}]...
|
Title: Defied by @Sgattix | Stardance
Devlogs:
Hi Title: Defied by @Sgattix | Stardance
Devlogs:
Hi guys, I’ve been quite busy lately with my life outside Stardance. However I still managed to put some effort on a new project: Defied. Defied is a software company that builds advanced digital products, combining software engineering, AI and design to create reliable, elegant and accessible tools. Here’s what I did so far: Backend Built basic magic-link auth that will be later moved to a Zitadel-based auth for a more ecosystem-like architecture Frontend Designed and built landing page Designed and built login page Just as a quick note, this is Defied’s landing page and service wrapper, not a service. For Defied services, check out Defied Prism (Which I will later post here, as a multi-framework, css modules and tailwindcss component library).
Hi guys, I decided to spend these 4 hours doing something that almost no one does these days: reviewing code by hand, zero-AI. I noticed some contradictions, something that didn’t quite reflect Defied’s values and status. So here’s the final, working, bulletproof, but most importantly meaningful version of Defied’s landing page. I will soon ship it, so wish me luck!
Hi everyone! I’ve been making good progress on Defied lately. Here’s an update on what I’ve been working on: Backend Magic-link auth is working, and I’ve added Zitadel as auth provider for a more ecosystem-like architecture. The auth handler now supports both email magic-links and Zitadel OIDC. Health endpoints: /health , /health/db , /health/auth , and /health/mail endpoints for monitoring Email verification: SMTP integration with verifyEmailConnection() for magic-link email verification Frontend Blog management: Integrated BlockNote and Nextra to build a fully-functional blog Landing page: Designed and built, showcasing Defied’s services and values Login page: Updated with modern design and auth flow I will soon implement syntax highlighting and LaTeX in the blog editor. Stay tuned
Ships:
Defied — a full-stack monorepo featuring a Next.js 15 marketing site, NestJS API server, Fumadocs documentation, shared auth (Better Auth + Stripe, that will be later on moved to zitadel), Prisma/MariaDB, and Payload CMS — all wired with Turborepo. Challenge: Getting Better Auth to work identically across both the Next.js web app and NestJS server without duplicating config, while keeping Prisma types in sync across packages. Proud of: not using AI, insuring a high quality communication while also maintaining control over app primitives using Defied DART and Defied Prism. To test: pnpm install pnpm dev Then open http://localhost:2029 ....
|
1793127128.1461692
|
1793213528.1461692
|
|
30003
|
Pokémon MuZero by @utilisateur_richard | Stardance
|
utilisateur_richard
|
1
|
37.54
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-18T19:59:00Z", "hours": 31.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "This is an AI (neural network, please do not think it is like ChatGPT) designed to reach superhuman / master level in PTCG (the Pokémon Trading Card Game). Unfortunately, due to its nature and due to the fact that the game engine is proprietary, I cannot send it to you and let you play with it. It is based on the MuZero architecture (made by DeepMind), on the Stochastic MuZero, on the Gumbel MuZero architecture, and on the EfficientZero architecture. How does it work? It is 3 NNs (neural networks) that work together to be invincible at a given game without even knowing the rules! How can it play without knowing the rules? Well, it has an imagination that lets it predict what will happen all by itself without any help. For that, the first network, the Encoder formerly named h, will create a latent space (the imagination / position) based on the real state of the game for the other networks. After that, the Strategist (formerly f) network will see the latent space (the imagination / position) and check: Is this position a winning or a losing position with the V (value) network? What will be the next best moves with the P (policy) network? Then, based on the moves suggested by the P network, the the Simulator network (g) simulates the outcome to create the next imaginary state (latent space). It repeats this loop with the Strategist (f) and the Simulator (g) until it exhausts its thinking budget. But does it just imagine ONE line of play and blindly follow it? No! It actually imagines many different possible moves at the same time, like a tree of possibilities (this is called Monte Carlo Tree Search, or MCTS). At each node of this tree, the model has to pick which branch to expand next, and it does this using a formula (called PUCT) that balances two things: how good the P network and V network think this branch is (exploitation), and how few times this branch has been visited so far compared to its siblings (exploration). So a branch gets visited more when it keeps looking promising as it gets expanded deeper, but every branch still gets a fair shot early on so the model does not tunnel-vision on its first guess. This creates a feedback loop: good branches get explored more, which refines their value estimate even further, and bad branches get abandoned early. In the end, the move it picks is the one that got explored/visited the most during this search, not just “whatever the P network liked the most” at first glance. This is what makes the whole system so much stronger than the raw network alone! Safety mechanics: To avoid having problems like the imagination of the model being completely inaccurate, I added some probes (they are networks, but just remember that they are here to evaluate the model). Their goal is to extract information from the latent space to see if it is accurate. E.g., we create a latent space in which a Pokémon is or isn’t (50-50) K.O., and the probe has to, based only on the latent space, say if the Pokémon is K.O. or not. I also added a lot of logs, for example a log that counts the number of actions that the model takes (e.g., does it attack or does it pass its turn? (I had a problem one time where the model passed its turn 75% to 90% of the time!!)). below, you can see two different latent space (imagination), every dot is a real position in the game, the distance between the dots is their similarity (far = different, close = similar), you can also see in the 4th graph the age of the state (blue = start of the game, yellow = end of the game) and the most important in the 1st, 2nd and 3rd graph, you can see the predicted value of the model, the real value (red = win blue = loose) and the difference between the prediction of the AI and the real value the first png is the model at the first state (not trained) and the second png is the model at its best level", "repo": "https://github.com/utilisateursrichard/MuZero-PTCG/", "demo": "https://ptcg.dino.icu/"}]...
|
[{"post_id": 55738, "ts": "202 [{"post_id": 55738, "ts": "2026-08-27T18:30:05Z", "hours": 2.7586, "text": "addition of a new section in the readme.md !"}, {"post_id": 51211, "ts": "2026-08-20T18:52:58Z", "hours": 3.7792, "text": "I just found a visualizer so now you can play against the NN ! (ptcg.duckdns.org) (visualizer not made by me btw, look at the readme.md to find the original author (idk if i can send link here:/)) (please do not judge the visualizer, that’s not my project)"}, {"post_id": 49843, "ts": "2026-08-18T19:54:32Z", "hours": 1.155, "text": "addition of IREE to use the model with any GPU without downloading the pytorch/ROMc lib"}, {"post_id": 49348, "ts": "2026-08-18T03:48:11Z", "hours": 1.7164, "text": "correction of the visualizer to have beautiful visualization"}, {"post_id": 48954, "ts": "2026-08-17T15:09:07Z", "hours": 22.5117, "text": "the competiton and unfortunately I lost and finished at the 5000 place in the leaderboard :/"}, {"post_id": 21617, "ts": "2026-07-03T17:36:56Z", "hours": 0.8508, "text": "The training pipeline is finally done ! now the real challenge can finally start !"}, {"post_id": 21134, "ts": "2026-07-02T22:46:31Z", "hours": 1.2822, "text": "A quick rundown of a fun bug I encountered today. The concurrency API doesn’t provide any tools for generating or validating a deck, it’s entirely up to the model to create a valid 60card deck, without any safeguards I ran into a big problem with ACE SPEC cards: the game rules prohibit having more than one per deck, regardless of the ACE SPEC category. However, the card database is poorly designed, some cards simply weren’t declared as ACE SPEC in the rules column. My code treated them as standard cards and added several to the deck without issue. The C++ game engine, however, wasn’t having any of it: it systematically rejected the deck, and the worker went into a crash loop. The fix required restarting the detection system from scratch: I now scan all suspicious columns in the CSV and the engine’s API to list absolutely every ACE SPEC in the game. As soon as the Deck Builder draws one, the other 19 are immediately locked for the rest of the draw So now the error is finally corrected and I can finally focus on the real nightmare : the training of the neural network"}, {"post_id": 21046, "ts": "2026-07-02T20:23:22Z", "hours": 3.2472, "text": "fist devlog, for now the pipeline isn’t ready but it will be soon !"}]...
|
Title: Pokémon MuZero by @utilisateur_richard | St Title: Pokémon MuZero by @utilisateur_richard | Stardance
Devlogs:
fist devlog, for now the pipeline isn’t ready but it will be soon !
A quick rundown of a fun bug I encountered today. The concurrency API doesn’t provide any tools for generating or validating a deck, it’s entirely up to the model to create a valid 60card deck, without any safeguards I ran into a big problem with ACE SPEC cards: the game rules prohibit having more than one per deck, regardless of the ACE SPEC category. However, the card database is poorly designed, some cards simply weren’t declared as ACE SPEC in the rules column. My code treated them as standard cards and added several to the deck without issue. The C++ game engine, however, wasn’t having any of it: it systematically rejected the deck, and the worker went into a crash loop. The fix required restarting the detection system from scratch: I now scan all suspicious columns in the CSV and the engine’s API to list absolutely every ACE SPEC in the game. As soon as the Deck Builder draws one, the other 19 are immediately locked for the rest of the draw So now the error is finally corrected and I can finally focus on the real nightmare : the training of the neural network
The training pipeline is finally done ! now the real challenge can finally start !
the competiton and unfortunately I lost and finished at the 5000 place in the leaderboard :/
correction of the visualizer to have beautiful visualization
addition of IREE to use the model with any GPU without downloading the pytorch/ROMc lib
I just found a visualizer so now you can play against the NN ! (ptcg.duckdns.org) (visualizer not made by me btw, look at the readme.md to find the original author (idk if i can send link here:/)) (please do not judge the visualizer, that’s not my project)
addition of a new section in the readme.md !
Ships:
This is an AI (neural network, please do not think it is like ChatGPT) designed to reach superhuman / master level in PTCG (the Pokémon Trading Card Game). Unfortunately, due to its nature and due to the fact that the game engine is proprietary, I cannot send it to you and let you play with it. It is based on the MuZero architecture (made by DeepMind), on the Stochastic MuZero, on the Gumbel MuZero architecture, and on the EfficientZero architecture. How does it work? It is 3 NNs (neural networks) that work together to be invincible at a given game without even knowing the rules! How can it play without knowing the rules? Well, it has an imagination that lets it predict what will happen all by itself without any help. For that, the first network, the Encoder formerly named h, will create a latent space (the imagination / position) based on the real state of the game for the other networks. After that, the Strategist (formerly f) network will see the latent space (the imagination / position) and check: Is this position a winning or a losing position with the V (value) network? What will be the next best moves with the P (policy) network? Then, based on the moves suggested by the P network, the the Simulator network (g) simulates the outcome to create the next imaginary state (latent space). It repeats this loop with the Strategist (f) and the Simulator (g) until it exhausts its thinking budget. But does it just imagine ONE line of play and blindly follow it? No! It actually imagines many different possible moves at the same time, like a tree of possibilities (this is called Monte Carlo Tree Search, or MCTS). At each node of this tree, the model has to pick which branch to expand next, and it does this using a formula (called PUCT) that balances two things: how good the P network and V network think this branch is (exploitation), and how few times this branch has been visited so far compared to its siblings (exploration). So a branch gets visited more when it keeps looking promising as it gets expanded deeper, but every branch still gets a fair shot early on so the model does not tunnel-vision on its first guess. This creates a feedback loop: good branches get explored more, which refines their value estimate even further, and bad branches get abandoned early. In the end, the move it picks is the one that got explored/visited the most during this search, not just “whatever the P network liked the most” at first glance. This is what makes the whole system so much stronger than the raw network alone! Safety mechanics: To avoid having problems like the imagination of the model being completely inaccurate, I added some probes (they are networks, but just remember that they are here to evaluate the model). Their goal is to extract information from the latent space to see if it is accurate. E.g., we create a latent space in which a Pokémon is or isn’t (50-50) K.O., and the probe has to, based only on the latent space, say if the Pokémon is K.O. or not. I also added a lot of logs, for example a log that counts the number of actions that the model takes (e.g., does it attack or does it pass its turn? (I had a problem one time where the model passed its turn 75% to 90% of the time!!)). below, you can see two different latent space (imagination), every dot is a real position in the game, the distance between the dots is their similarity (far = different, close = similar), you can also see in the 4th graph the age of the state (blue = start of the game, yellow = end of the game) and the most important in the 1st, 2nd and 3rd graph, you can see the predicted value of the model, the real value (red = win blue = loose) and the difference between the prediction of the AI and the real value the first png is the model at the first state (not trained) and the second png is the model at its best level...
|
1793112532.319028
|
1793198932.319028
|
|
66335
|
3D AIM TRAINER by @brijeshkumar724282 | Stardance
|
brijeshkumar724282
|
2
|
37.52
|
262
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-19T08:00:07Z", "hours": 15.0, "multiplier": 15.47, "payout": 229, "blessing": "neutral", "text": "I have made a Web based AIM TRAINER written in html, CSS, JS and THREE.js. IT HAS 4 GAMEMODES FOR NOW: GRIDSHOT, SIXSHOT, PRECISION, AND TRACKING. The most challenging part was every mode has to be written the same code again and again when adding a new gamemode. So I had to move it all into one shared core code, Now adding new modes is easier. I am really proud of developing the shared core code. when I made it, It actually made my work easier. It’s now scalable and i can add add many gamemodes easier than before. Before it i had to write the same code again and again probably 400+ lines now cutdown to less than 100 (tracking.js is an exception) To test my game, A person needs a mouse to aim and shoot.", "repo": "https://github.com/brijeshkumar724282-beep/web-Aim-Trainer", "demo": "https://brijeshkumar724282-beep.github.io/web-Aim-Trainer/"}, {"ship_num": 2, "ts": "2026-10-09T04:29:04Z", "hours": 17.0, "multiplier": 1.97, "payout": 33, "blessing": "neutral", "text": "I made a 3D web based Aim trainer in html, css, JS and three.js. Few of the most challenging parts were funny, adjusting the texture packs evenly among all the walls, adjusting the lightning to make it look right and The aiming mechanism, I was getting tilting issues in the starting, its fixed now. I am proud of the menu animation and making 2 modes work well. They just need to know how to click and move their mouse! its so simple.", "repo": "https://github.com/brijeshkumar724282-beep/web-Aim-Trainer", "demo": "https://brijeshkumar724282-beep.github.io/web-Aim-Trainer/"}]...
|
[{"post_id": 82613, "ts": "202 [{"post_id": 82613, "ts": "2026-10-25T12:51:42Z", "hours": 5.515, "text": "MY 3D AIM TRAINER’S LATERST PROGRESS This time i have added a new gamemode “REACTION MODE”, 1 target spawns with a 1.2 seconds window, faster hits give more points, slower ones give lesser points, and the target respawns somewhere else. I was mainly working on supabase backend to add global leaderboard support. Then I also started working on login webpage and login.js, I also tuned the room lightning a little to give it a better look."}, {"post_id": 80909, "ts": "2026-10-19T07:00:48Z", "hours": 5.1058, "text": "REBUILT AND MADE THE GAME SCALABLE AND ADDED NEW MORE 2 GAME MODES , So basically each gamemode used to have everything built inside it. So if i ever wanted to add a new game mode, I will have to write the same code again and again, So I put the core parts they all shared into one place, So its easier to add new game modes now. ROOM, AIMING SYSTEM, TIMER, etc are built once and used by all of them, SO this made speeds up adding new game modes. I have added 2 new Modes : 1. TRACKING MODE, 2. PRECISION MODE. I have also changed the UI of The menu a little bit. The ROOM is Rebuilt too because the old one was way too flat looking for my game. Now I have also added Best score feature for each mode, i have used Local storage for storing your best score. Also added an sfx whenever you switch modes in the menu which gives life to the menu selection."}, {"post_id": 80380, "ts": "2026-10-17T13:48:48Z", "hours": 4.53, "text": "Finished the menu and most of the review feedback , Since the last post, I have been working mainly on the Menu and a few things : 1. The menu is now in a good shape too. 2.Added a settings popup where you could change sensitivity from. 3.removed the browser alert for results and made a dedicated page for results. 4.Added background music, So actually I used AI to generate the bgm. 5.Made a favicon and added an MIT License."}, {"post_id": 79717, "ts": "2026-10-15T06:21:39Z", "hours": 5.1894, "text": "REBUILDING AND FIXING EVERYTHING. After reading the reviews, I came to a conclusion that My game was hanging on most people’s device, it was more because of uncapped fps as of i think. here are a few things that I did: 1. I removed all the texture packs (made the game heavy and also caused lag for some people). 2. Using whitish color design (Flat colours) and added Grid helper. 3. Made the targets Blue colored and glossy looking. 4. I have already rebuilding the menu, the old one killed the whole gaming vibe (old one was kinda luxury lmao)."}, {"post_id": 77991, "ts": "2026-10-09T04:05:41Z", "hours": 5.2161, "text": "The enviroment and textures are in good shape now, It look right in the game!! The main work that I did since the last time file structuring and organizing files in folders, and removing the code that was crashing my game, and also solved few bugs, like screen freezing. menu.html is now index.html, added features to select and play different game modes using from menu. Only Gridshot and Sixshot are live for v1. I will ship this project v1. I am looking forward to add more game modes and make a seperate page for results."}, {"post_id": 75810, "ts": "2026-10-01T07:09:56Z", "hours": 3.6597, "text": "I have been working on the room and textures. I cant give proper finishing to the textures, they dont look good, so I skipped it for now. I am working on the Menu/Game mode selector. I have implemented smooth scroll to select animation using gsap, and its pretty smooth."}, {"post_id": 75513, "ts": "2026-09-30T10:22:58Z", "hours": 3.9586, "text": "spent most of my time working on the enviroment, the room i mean and optimizing the game a little. So i added 1 boxes each sides to add depth, etc. I had to adjust the sun light and the roof that wasted most of my time. The shadows were pixelated too much so I tried blurring them a little to smooth them out, also added score and accuracy system. I might work on the UI too."}, {"post_id": 74783, "ts": "2026-09-28T07:35:12Z", "hours": 3.9172, "text": "##Devlog 1, BUILDING A WEB BASED AIM TRAINER WRITTEN IN HTML, CSS AND JS I am building a broswer/web based Aim trainer for competitive games, like aimlabs but entirely written in HTML, CSS, JS and THREE.js.My primary goal was to match the aiming feel of competitive games like Valorant. Because three.js uses vertical field of vieww by default, i had to implement a dynamic conversion formula that would lock the horizontal FOV to 103. I also mapped shooter mouse sensitivity scaled directly into radian angle increaments per mouse count, to make the flick distances fell well and authentic. for handling movements, I integrated the pointer lock API for raw mouse input that will feel just like any competitive game. I fixed a bug that made the camera tilt sideways and also stopped the screen from flipping upside down when looking up and all. also added a \"+\" crosshair in the middle. Also built a training room with walls, roofs and floor, and also a little depth. added realisitc sunlight shadow casting. For testing, I built a 4x3 grid system that keeps three targets active. clicking mouse triggers center screen raycast to detect hits, free up occupied slots, etc. And also added fps counter and removed the fps cap restrictions. The target and aiming system is working fine and its fully responsive."}]...
|
Title: 3D AIM TRAINER by @brijeshkumar724282 | Sta Title: 3D AIM TRAINER by @brijeshkumar724282 | Stardance
Devlogs:
##Devlog 1, BUILDING A WEB BASED AIM TRAINER WRITTEN IN HTML, CSS AND JS I am building a broswer/web based Aim trainer for competitive games, like aimlabs but entirely written in HTML, CSS, JS and THREE.js.My primary goal was to match the aiming feel of competitive games like Valorant. Because three.js uses vertical field of vieww by default, i had to implement a dynamic conversion formula that would lock the horizontal FOV to 103. I also mapped shooter mouse sensitivity scaled directly into radian angle increaments per mouse count, to make the flick distances fell well and authentic. for handling movements, I integrated the pointer lock API for raw mouse input that will feel just like any competitive game. I fixed a bug that made the camera tilt sideways and also stopped the screen from flipping upside down when looking up and all. also added a "+" crosshair in the middle. Also built a training room with walls, roofs and floor, and also a little depth. added realisitc sunlight shadow casting. For testing, I built a 4x3 grid system that keeps three targets active. clicking mouse triggers center screen raycast to detect hits, free up occupied slots, etc. And also added fps counter and removed the fps cap restrictions. The target and aiming system is working fine and its fully responsive.
spent most of my time working on the enviroment, the room i mean and optimizing the game a little. So i added 1 boxes each sides to add depth, etc. I had to adjust the sun light and the roof that wasted most of my time. The shadows were pixelated too much so I tried blurring them a little to smooth them out, also added score and accuracy system. I might work on the UI too.
I have been working on the room and textures. I cant give proper finishing to the textures, they dont look good, so I skipped it for now. I am working on the Menu/Game mode selector. I have implemented smooth scroll to select animation using gsap, and its pretty smooth.
The enviroment and textures are in good shape now, It look right in the game!! The main work that I did since the last time file structuring and organizing files in folders, and removing the code that was crashing my game, and also solved few bugs, like screen freezing. menu.html is now index.html, added features to select and play different game modes using from menu. Only Gridshot and Sixshot are live for v1. I will ship this project v1. I am looking forward to add more game modes and make a seperate page for results.
REBUILDING AND FIXING EVERYTHING. After reading the reviews, I came to a conclusion that My game was hanging on most people’s device, it was more because of uncapped fps as of i think. here are a few things that I did: 1. I removed all the texture packs (made the game heavy and also caused lag for some people). 2. Using whitish color design (Flat colours) and added Grid helper. 3. Made the targets Blue colored and glossy looking. 4. I have already rebuilding the menu, the old one killed the whole gaming vibe (old one was kinda luxury lmao).
Finished the menu and most of the review feedback , Since the last post, I have been working mainly on the Menu and a few things : 1. The menu is now in a good shape too. 2.Added a settings popup where you could change sensitivity from. 3.removed the browser alert for results and made a dedicated page for results. 4.Added background music, So actually I used AI to generate the bgm. 5.Made a favicon and added an MIT License.
REBUILT AND MADE THE GAME SCALABLE AND ADDED NEW MORE 2 GAME MODES , So basically each gamemode used to have everything built inside it. So if i ever wanted to add a new game mode, I will have to write the same code again and again, So I put the core parts they all shared into one place, So its easier to add new game modes now. ROOM, AIMING SYSTEM, TIMER, etc are built once and used by all of them, SO this made speeds up adding new game modes. I have added 2 new Modes : 1. TRACKING MODE, 2. PRECISION MODE. I have also changed the UI of The menu a little bit. The ROOM is Rebuilt too because the old one was way too flat looking for my game. Now I have also added Best score feature for each mode, i have used Local storage for storing your best score. Also added an sfx whenever you switch modes in the menu which gives life to the menu selection.
MY 3D AIM TRAINER’S LATERST PROGRESS This time i have added a new gamemode “REACTION MODE”, 1 target spawns with a 1.2 seconds window, faster hits give more points, slower ones give lesser points, and the target respawns somewhere else. I was mainly working on supabase backend to add global leaderboard support. Then I also started working on login webpage and login.js, I also tuned the room lightning a little to give it a better look.
Ships:
I made a 3D web based Aim trainer in html, css, JS and three.js. Few of the most challenging parts were funny, adjusting the texture packs evenly among all the walls, adjusting the lightning to make it look right and The aiming mechanism, I was getting tilting issues in the starting, its fixed now. I am proud of the menu animation and making 2 modes work well. They just need to know how to click and move their mouse! its so simple.
I have made a Web based AIM TRAINER written in html, CSS, JS and THREE.js. IT HAS 4 GAMEMODES FOR NOW: GRIDSHOT, SIXSHOT, PRECISION, AND TRACKING. The most challenging part was every mode has to be written the same code again and again when adding a new gamemode. So I had to move it all into one shared core code, Now adding new modes is easier. I am really proud of developing the shared core code. when I made it, It actually made my work easier. It’s now scalable and i can add add many gamemodes easier than before. Before it i had to write the same code again and again probably 400+ lines now cutdown to less than 100 (tracking.js is an exception) To test my game, A person needs a mouse to aim and shoot....
|
1793216938.3159125
|
1793303338.3159125
|
|
41053
|
Fizzy Sea by @Nik0la_278 | Stardance
|
Nik0la_278
|
5
|
37.5
|
355
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-25T18:26:11Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "New Ship! I have got some feedback on performance of the game by you guys so I updated this Tutorial Level that I am currently making to make the gameplay better! :3 I made a bit of rearrangement of buttons and changed the Open Menu key to ESC instade of P! I added a Button to Resume Game (earlyer you could only quit, now you can resume) I added a button that sets FPS to 60 Max (If you want and the game is lagging). 2 buttons that sets your resolution of your screen (50 or 100% of your full screen) If you fall off and drown (if you fall off you will automatically drown… the Fox can’t swim (yet)). Now when you drown, the Drown screen also has a Quit Game Button! The Game is still far from done, but ilI will get to designing main level after the core mechanics, animations and Tutorial map are done so everything goes smoothly! :3", "repo": "https://github.com/Nik0la278/Fizzy_Sea", "demo": "https://nik0la278.itch.io/fizzy-sea"}, {"ship_num": 2, "ts": "2026-10-11T00:59:03Z", "hours": 8.0, "multiplier": 16.45, "payout": 137, "blessing": "neutral", "text": "The game got a few key functions, changes and optimizations! -The game is more light weight due to water optimization! -The map had some changes with more stuff added to it like Soda barrels and an additional cocoa tree! -Now when you press P, a pause menu appears where you can quit game! -Assets like Rafts and Targets are now re textured! -Lighting optimized for better appearance! Crosshair more accurate! WAY MORE STUFF COMING SOON!", "repo": "https://github.com/Nik0la278/Fizzy_Sea", "demo": "https://nik0la278.itch.io/fizzy-sea"}, {"ship_num": 3, "ts": "2026-10-01T16:23:43Z", "hours": 6.0, "multiplier": 14.51, "payout": 90, "blessing": "neutral", "text": "WHATS NEW IN MY GAME! Shootable Canzzzz and Bottlezzzzz New UI (Crosshair and Health Bar) Tutorial Signs! COCOA PODS!!! That you can shoot off the trees New shooting ability where you shoot a bigger water ball! (It has a 3s cooldown) Trash bags!….. they just sit there and take up space to fill in the map! Much more coming SOON!", "repo": "https://github.com/Nik0la278/Fizzy_Sea", "demo": "https://nik0la278.itch.io/fizzy-sea"}, {"ship_num": 4, "ts": "2026-09-21T19:47:29Z", "hours": 9.0, "multiplier": 9.86, "payout": 93, "blessing": "neutral", "text": "Fizzy Sea, Ship: 2 I added a WHOLE NEW MAP that include animated water, a tree (That will have a function later on), fences and targets to shoot! I also added the ability to shoot with left click! The blue spheres are projectiles you shoot! The spheres are placeholders for water shot from a water gun! When you change the camera to third person (by pressing C), you can see the main character model is included with a water gun attached to his wrist! Animation for walking, jumping and shooting will be added later on (When I figure out how in the world animation works), but for now he stays in a T-Pose! The game is still in progress but I’m working as best and fast I can! :3", "repo": "https://github.com/Nik0la278/Fizzy_Sea", "demo": "https://nik0la278.itch.io/fizzy-sea"}, {"ship_num": 5, "ts": "2026-08-16T18:29:42Z", "hours": 10.0, "multiplier": 3.51, "payout": 35, "blessing": "neutral", "text": "I made mechanics for a game I am making in unreal engine! Current mechanics feature WASD movement, Shift for sprint and 2 cameras that switch when pressed C, switching from 1st to 3rd person. The most challenging part (and the part I was most proud of) was figuring out the 3rd person camera movement because the code didn’t let camera move vertically at first but now it does!", "repo": "https://github.com/Nik0la278/Fizzy_Sea", "demo": "https://nik0la278.itch.io/fizzy-sea"}]...
|
[{"post_id": 83111, "ts": "202 [{"post_id": 83111, "ts": "2026-10-26T22:26:07Z", "hours": 1.5003, "text": "TUTORIALS! I have drew some textures for new tutorial signs: One that shows that with mouse you turn your head. One that shows WASD Walking controls. One showing that pressing C changes camera view."}, {"post_id": 82679, "ts": "2026-10-25T16:06:19Z", "hours": 1.1272, "text": "Menu Update I made a few more options to od in menus in game, when you pause game, you have more resolution and frame options and in death menu you can quit game!"}, {"post_id": 81502, "ts": "2026-10-21T14:51:28Z", "hours": 1.6167, "text": "I made a Projectile (Fire Ball) model and texture in blender that will be thrown by a BurninWag (Skeleton on fire) who is one of the main enemys in the maps of my game. It was really painful and took me a while because Red parts are meant to glow on their own and I forgot to save a few times which caused the textures to disappear and black out (Which made me wanna cry a lot…) which made me have to redo everything a bunch of times!"}, {"post_id": 78503, "ts": "2026-10-11T00:31:29Z", "hours": 1.7053, "text": "I have made custom textures for the Rafts and Targets in my game, switching from temporary templates. had complications where I had to reimport assets multiple times to get them in the engine properly and I was having a lot of changes of mind when it comes to color shades!"}, {"post_id": 78183, "ts": "2026-10-09T22:00:20Z", "hours": 1.6942, "text": "First I modeled and textured a barrel for my game, then I placed some placeholder textures on the ship I have modeled to see what I want, then I added the barrels to the game and I made a Game Pause Function and an option to quit game! Also I adjusted the crosshair to match the shooting area."}, {"post_id": 76826, "ts": "2026-10-04T18:45:16Z", "hours": 3.0006, "text": "Optimization So first thing I did was optimize the trash bags because they had a ton of polygons, then I optimized the ocean around the rafts because it was lagging the packaged game a lot, then I adjusted the lighting and added shadows which took more time than I wanted! I went through pain to get the shadows working."}, {"post_id": 76541, "ts": "2026-10-03T21:29:11Z", "hours": 1.9328, "text": "New Map I made a base mesh for the ship that will be in the next scene/stage/level of my game, had some trouble recording this lapse due to Blender crashing while I was messing with polygons (My mini pc wasn’t built for this ;-;). I am proud of how it all turned out BUT it’s still undone. The plan is that my character will walk around the ship doing chores. The ship will be the first real story related level after tutorial!"}, {"post_id": 75728, "ts": "2026-09-30T21:34:12Z", "hours": 1.1844, "text": "Today I fixed the shooting ability a little bit, I have added tutorial signs, fixed some collisions that didn’t match objects and a few code checks."}, {"post_id": 75356, "ts": "2026-09-29T20:40:22Z", "hours": 1.81, "text": "I have built a few things today! First, I optimized my trash bag models and put them on the map to fill in the empty space. I added armature to my enemy model and tried a little bit of posing with it. Made a new WaterBlast shooting ability (took a lot of time on that), I had problems with it but menaged to code it out. And finally added a few minor fixes to the drowned screen like stoping error messages and updating the drowned screen a tiny bit."}, {"post_id": 74209, "ts": "2026-09-26T22:23:49Z", "hours": 1.3503, "text": "I have cocoa fruits to the trees and gave them physics, making them fall off when shot and I added a “Drowned Screen” that shows when you fall off the platform with a functioning “Try Again” Button! I have tried to animate health to be bubbles that pop but I didn’t finish it."}, {"post_id": 72813, "ts": "2026-09-23T19:39:30Z", "hours": 1.8525, "text": "I HAVE ADDED PHYSICS Mainly I made it so when you shoot the cans and bottles, they actually get physics. On paper it sounds simple and it is, until for some reason they’d just fall on their side before getting shot, so I had to make them not have physics until shot!"}, {"post_id": 62983, "ts": "2026-09-06T15:34:17Z", "hours": 1.4097, "text": "I added a water gun and shooting mechanic to my game."}, {"post_id": 61107, "ts": "2026-09-03T20:37:40Z", "hours": 0.4994, "text": "Texturing and Modeling Clothes! The physics will be added in engine! But for now I like how clothes turned out (Even if I might change them laer) Currently, clothes feature A cap and a shorts!"}, {"post_id": 60482, "ts": "2026-09-02T20:40:21Z", "hours": 0.7333, "text": "I made a shorts for my character to wear. It looks rough around he edges but it will look good in engine!"}, {"post_id": 59838, "ts": "2026-09-01T20:16:02Z", "hours": 1.4639, "text": "I have placed the player character into the game! This is Barnaby! The main character of my RPG game! I him into the game and had a lot of trouble with positioning him to not gloat or walk inside the floor! At the end I managed to get him to the floor and now its time to add animation and functions!"}, {"post_id": 57966, "ts": "2026-08-30T09:32:31Z", "hours": 0.35, "text": "A watter bottle that will be given physics code to be shot at!"}, {"post_id": 57589, "ts": "2026-08-29T19:42:59Z", "hours": 0.4497, "text": "A Fish Can that will have physics so it can be knocked over with a water gun."}, {"post_id": 57170, "ts": "2026-08-29T08:39:41Z", "hours": 0.9356, "text": "I made a few assets for my game! Fence will (try) to keep the player (you) from falling (on accident), The tree will grow Cocoa on it and the cocoa will be shot with water making it fall and when you eat the Cocoa you gain health! as for Lifebuoy, it will just be a decoration on the side."}, {"post_id": 54970, "ts": "2026-08-26T12:23:43Z", "hours": 1.3169, "text": "I made a raft where my games Tutorial testing Map will be happening on!"}, {"post_id": 51938, "ts": "2026-08-21T21:37:51Z", "hours": 2.2314, "text": "BurninWag is a min enemy that will appear throughout the game and this is a 3d model of one of 3+ variants. The idea is that this variant will be in a areas on the map and once it spots the player it throws fireballs on the player. When shot with waer it will turn into a pile of bones but if the player stays in one place for too long, the bones will reignite and reform into a fresh BurninWag that will attack the player again!"}, {"post_id": 48378, "ts": "2026-08-16T18:15:19Z", "hours": 0.3931, "text": "Fixed Some Code! I removed blur and fixed the camera movement in 3rd person! Try out what I did in the demo!"}, {"post_id": 40988, "ts": "2026-08-04T21:19:03Z", "hours": 1.2333, "text": "Prototype Model For The Boss. Materials are allright but the model might be a little rough around the edges but that is fixable in animation part."}, {"post_id": 40941, "ts": "2026-08-04T19:52:32Z", "hours": 2.8442, "text": "Oil Monster Boss Concept Concept Art for Materials, 3D Model and Animation"}, {"post_id": 40341, "ts": "2026-08-03T19:43:33Z", "hours": 2.9683, "text": "Fizzy Sea Concept! One of the parts of the Game and title screen background concept! The guy siting under the palm… thing is the main character with a water gun and the big glowing thing on a rocky island is A Beacon with a special purpose!"}, {"post_id": 38948, "ts": "2026-08-01T15:45:17Z", "hours": 1.265, "text": "Water Gun for my game! Textures will come next but I wanna have a few models upfront before texturing!"}, {"post_id": 38760, "ts": "2026-08-01T10:05:09Z", "hours": 1.2392, "text": "Trash Bag Asset for Game Environment"}]...
|
Title: Fizzy Sea by @Nik0la_278 | Stardance
Devlo Title: Fizzy Sea by @Nik0la_278 | Stardance
Devlogs:
Trash Bag Asset for Game Environment
Water Gun for my game! Textures will come next but I wanna have a few models upfront before texturing!
Fizzy Sea Concept! One of the parts of the Game and title screen background concept! The guy siting under the palm… thing is the main character with a water gun and the big glowing thing on a rocky island is A Beacon with a special purpose!
Oil Monster Boss Concept Concept Art for Materials, 3D Model and Animation
Prototype Model For The Boss. Materials are allright but the model might be a little rough around the edges but that is fixable in animation part.
Fixed Some Code! I removed blur and fixed the camera movement in 3rd person! Try out what I did in the demo!
BurninWag is a min enemy that will appear throughout the game and this is a 3d model of one of 3+ variants. The idea is that this variant will be in a areas on the map and once it spots the player it throws fireballs on the player. When shot with waer it will turn into a pile of bones but if the player stays in one place for too long, the bones will reignite and reform into a fresh BurninWag that will attack the player again!
I made a raft where my games Tutorial testing Map will be happening on!
I made a few assets for my game! Fence will (try) to keep the player (you) from falling (on accident), The tree will grow Cocoa on it and the cocoa will be shot with water making it fall and when you eat the Cocoa you gain health! as for Lifebuoy, it will just be a decoration on the side.
A Fish Can that will have physics so it can be knocked over with a water gun.
A watter bottle that will be given physics code to be shot at!
I have placed the player character into the game! This is Barnaby! The main character of my RPG game! I him into the game and had a lot of trouble with positioning him to not gloat or walk inside the floor! At the end I managed to get him to the floor and now its time to add animation and functions!
I made a shorts for my character to wear. It looks rough around he edges but it will look good in engine!
Texturing and Modeling Clothes! The physics will be added in engine! But for now I like how clothes turned out (Even if I might change them laer) Currently, clothes feature A cap and a shorts!
I added a water gun and shooting mechanic to my game.
I HAVE ADDED PHYSICS Mainly I made it so when you shoot the cans and bottles, they actually get physics. On paper it sounds simple and it is, until for some reason they’d just fall on their side before getting shot, so I had to make them not have physics until shot!
I have cocoa fruits to the trees and gave them physics, making them fall off when shot and I added a “Drowned Screen” that shows when you fall off the platform with a functioning “Try Again” Button! I have tried to animate health to be bubbles that pop but I didn’t finish it.
I have built a few things today! First, I optimized my trash bag models and put them on the map to fill in the empty space. I added armature to my enemy model and tried a little bit of posing with it. Made a new WaterBlast shooting ability (took a lot of time on that), I had problems with it but menaged to code it out. And finally added a few minor fixes to the drowned screen like stoping error messages and updating the drowned screen a tiny bit.
Today I fixed the shooting ability a little bit, I have added tutorial signs, fixed some collisions that didn’t match objects and a few code checks.
New Map I made a base mesh for the ship that will be in the next scene/stage/level of my game, had some trouble recording this lapse due to Blender crashing while I was messing with polygons (My mini pc wasn’t built for this ;-;). I am proud of how it all turned out BUT it’s still undone. The plan is that my character will walk around the ship doing chores. The ship will be the first real story related level after tutorial!
Optimization So first thing I did was optimize the trash bags because they had a ton of polygons, then I optimized the ocean around the rafts because it was lagging the packaged game a lot, then I adjusted the lighting and added shadows which took more time than I wanted! I went through pain to get the shadows working.
First I modeled and textured a barrel for my game, then I placed some placeholder textures on the ship I have modeled to see what I want, then I added the barrels to the game and I made a Game Pause Function and an option to quit game! Also I adjusted the crosshair to match the shooting area.
I have made custom textures for the Rafts and Targets in my game, switching from temporary templates. had complications where I had to reimport assets multiple times to get them in the engine properly and I was having a lot of changes of mind when it comes to color shades!
I made a Projectile (Fire Ball) model and texture in blender that will be thrown by a BurninWag (Skeleton on fire) who is one of the main enemys in the maps of my game. It was really painful and took me a while because Red parts are meant to glow on their own and I forgot to save a few times which caused the textures to disappear and black out (Which made me wanna cry a lot…) which made me have to redo everything a bunch of times!
Menu Update I made a few more options to od in menus in game, when you pause game, you have more resolution and frame options and in death menu you can quit game!
TUTORIALS! I have drew some textures for new tutorial signs: One that shows that with mouse you turn your head. One that shows WASD Walking controls. One showing that pressing C changes camera view.
Ships:
I made mechanics for a game I am making in unreal engine! Current mechanics feature WASD movement, Shift for sprint and 2 cameras that switch when pressed C, switching from 1st to 3rd person. The most challenging part (and the part I was most proud of) was figuring out the 3rd person camera movement because the code didn’t let camera move vertically at first but now it does!
Fizzy Sea, Ship: 2 I added a WHOLE NEW MAP that include animated water, a tree (That will have a function later on), fences and targets to shoot! I also added the ability to shoot with left click! The blue spheres are projectiles you shoot! The spheres are placeholders for water shot from a water gun! When you change the camera to third person (by pressing C), you can see the main character model is included with a water gun attached to his wrist! Animation for walking, jumping and shooting will be added later on (When I figure out how in the world animation works), but for now he stays in a T-Pose! The game is still in progress but I’m working as best and fast I can! :3
WHATS NEW IN MY GAME! Shootable Canzzzz and Bottlezzzzz New UI (Crosshair and Health Bar) Tutorial Signs! COCOA PODS!!! That you can shoot off the trees New shooting ability where you shoot a bigger water ball! (It has a 3s cooldown) Trash bags!….. they just sit there and take up space to fill in the map! Much more coming SOON!
The game got a few key functions, changes and optimizations! -The game is more light weight due to water optimization! -The map had some changes with more stuff added to it like Soda barrels and an additional cocoa tree! -Now when you press P, a pause menu appears where you can quit game! -Assets like Rafts and Targets are now re textured! -Lighting optimized for better appearance! Crosshair more accurate! WAY MORE STUFF COMING SOON!
New Ship! I have got some feedback on performance of the game by you guys so I updated this Tutorial Level that I am currently making to make the gameplay better! :3 I made a bit of rearrangement of buttons and changed the Open Menu key to ESC instade of P! I added a Button to Resume Game (earlyer you could only quit, now you can resume) I added a button that sets FPS to 60 Max (If you want and the game is lagging). 2 buttons that sets your resolution of your screen (50 or 100% of your full screen) If you fall off and drown (if you fall off you will automatically drown… the Fox can’t swim (yet)). Now when you drown, the Drown screen also has a Quit Game Button! The Game is still far from done, but ilI will get to designing main level after the core mechanics, animations and Tutorial map are done so everything goes smoothly! :3...
|
1793083835.2400703
|
1793170235.2400703
|
|
327
|
ToBeDone... by @Koy | Stardance
|
Koy
|
1
|
37.36
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-14T21:48:12Z", "hours": 35.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "This is a notetaking app for the TUI. Please read the Readme for quickstart instructions!", "repo": "https://github.com/By-Koy/ToBeDone", "demo": "https://github.com/By-Koy/ToBeDone/releases/latest"}]...
|
[{"post_id": 79282, "ts": "202 [{"post_id": 79282, "ts": "2026-10-13T09:56:35Z", "hours": 2.3603, "text": "DevLog[9] - “Wait didn’t you ship this alr?” well hello to you too but uhh yeah… I tried to ship this like 5 times by now but it had so many problems that I didn’t think of (thanks Shipwrights! ) Anyway here are the changes since my last devlog: 1. Windows install scripts: Made with help from my friend Nadav Babad ( @smokinghotcode on github) because he has an actual windows capable pc 2. Switched to stderr: This switch happened because of windows not opening the exe file directly in the terminal (you would have to open it via command prompt). I am yet to test it but this was the only I have found to maybe make this work. 3. Better Github actions: This was just a by-product of all the iterations I went through, it was a nice intro to actions though! Anw good luck to me and the shipwrights, here’s a picture of the windows iso downloading (Insert edit from after testing since I feel like it won’t work)"}, {"post_id": 68298, "ts": "2026-09-14T21:43:39Z", "hours": 4.1486, "text": "DevLog[8] - “The End.” TL;DR: I got sick of this project and ended it. How did we get here? Formatting suckssssss. anyway, So I’ve been thinking about how I can save formatting to a file without encoding it into md and long story short, I can’t. The only way I could think of was to save binary files and simply (it was so hard I gave up) flush the memory into a file. Yeah I couldn’t figure that out. So what DID I do in the last 4 hours? Finishing touches! basically, I made build scripts, finished the readme, and made a github action to build the portable files. I also cleaned up just a bit from the uneaded code and (theoretically) made the app cross-platform (I don’t have access to a windows machine so it ended up getting a lot less love… oopsie…) I hope you can still enjoy my project (or my wacky writing ) without everything I neglected to do. and for one last (maybe) time. Have a nice day!"}, {"post_id": 66508, "ts": "2026-09-12T10:50:01Z", "hours": 4.4931, "text": "DevLog[7] - “MiniLog!” Hiiiiiii this time I focused on one thing (wasn’t easy lol) and that was a reset option! you can now remove all notes in one command! :3 I also gave up and then un-gave up on cross-platform so that’s cool Anyway I might go back to work and do cross-platform next (I rlly don’t wanna do formating )"}, {"post_id": 50968, "ts": "2026-08-20T13:18:44Z", "hours": 9.0122, "text": "DevLog[6] - “Rebase Rebase Rebase Rebase Rebase” Hi again! This… is a sad one. But first, the accomplishments!! in this devlog I have: Refactored the file.rs file (that saves/reads the files) to remove things like creating an uninitialized variable just to initialize it 3.14 seconds later in an if statement, in favor of initializing the variable with the if statement. ( let id = if input... ) Changed the massive iterator function line for cutting away from the displayed strings into the paragraph.scroll() function (which like, since when does that exist yk?) Moved the args struct into a static LazyLock<Mutex> which allows for a (relatively) safe global variable defined at runtime :3. Added modifier parsing for proper hotkeys and an options menu (internally called FormatDisplay , for reasons to be explained later) to show all the hotkeys. Turns out 9 hours is a lot lol. WAIT NO I DON’T WANN- Markdown Or well, the lack of it. over time while trying to work on this I realised that full markdown support is wayyyyy out of the scope of my (and the TUI’s) capabilities. {more info in the readme } after testing a few options (including a line-by-line implementation) I had found a silver-lining: FormatDisplay The menu is a new widget in the program, it simply shows the available keybinds, with SUPER keybinds formatting text, while control does things in the program. Do be warned though. I did not have time to make the actual functionality 😭"}, {"post_id": 38192, "ts": "2026-07-31T13:54:28Z", "hours": 2.0144, "text": "DevLog[5] - “I’m not wasting time or anything, why do you ask?” 👀👀👀 Hey all! this is a smaller one as I get things ready for the next part, markdown! Today, (and by this I mean it’s no longer 3 am) I have added CLI arguments for debugging, generating sample text, and no… eggs? Yeah Idk what that’s about (actually though that one is saved for later it might disappear) I have also fixed a few leftover errors and have tested the program on MacOS! :33 it worked almost immediately once I created the folder where all the notes are stored and set its permissions (I will set up install scripts to set everything up once I do all the functionality and windows support) By the way.. I wrote the readme.. you should check it out!! » Anw, have a nice dayy :3 (🥚)"}, {"post_id": 37943, "ts": "2026-07-30T23:45:40Z", "hours": 6.3153, "text": "DevLog[4] - “Movement, again” Hi there, welcome to my personal hell. ( ) It’s called movement. I have spent the last (non-consecutive) 6 hours to make something not too interesting, but not too uninteresting. (👀 ) cursor movement is extremely important for a note-taking app which currently doesn’t have planned mouse support, so I made sure to perfect (copy nano’s) it! Over the time I also: Moved all cursor based functions and the terminal constraint vars into the cursor struct itself Seperated some code to make it easier to read/edit Changed function names about a thousand times (it’s hard ) Learned the value of friendship (/j) I don’t really have much to show just because of the shear monotony of the task but here is a video of the weirdest bug I encountered on this journey (and probably the weirdest I ever will encounter), let’s see if you can figure out what happened :p"}, {"post_id": 10142, "ts": "2026-06-16T19:02:31Z", "hours": 2.425, "text": "DevLog[3] - “This Takes Way Too Long” Hey everyone!! For this log I have prepared a delightful… nevermind, this is all technical stuff. :sadge Never the less we will take a look! the main things I did was adding cursor support and improving input handling, which went from temporary to (practically) production! The other part (the hard part that took like two hours) was adding the cursor. I hate this thing. The cursor made the program panic in so many ways that I stopped counting. also figuring out how to even add it was another hour or two just in research (this ended up as like three lines btw) for anyone wondering, the cursor is held in the main struct as it’s own struct of two u16 variables which are added (or removed from) whenever the arrow keys are pressed. The displayed block is Ratatui’s default cursor that took me a million years to find. :sob Anyway, I have attached a video of most of the programs capabilities (I forgot to film the recent option and am too tired to do it again, sorry) [the hello and goodbye notes were not there initially]"}, {"post_id": 4751, "ts": "2026-06-08T06:18:40Z", "hours": 3.3658, "text": "DevLog[2] - “File Reader” Hiiiiii In this devlog I have implemented all of the logic to read files, save them to the main app struct and then save a symlink that let’s you access the last used note without specifying its title. (currently everything is linux only, cross-platform support will come later) (explanation for the screenshots: both commands shown in fig. 1 have the same output [shown in fig. 2.])"}, {"post_id": 3412, "ts": "2026-06-06T10:20:28Z", "hours": 3.1089, "text": "DevLog[1] - POC Hey! in this devlog I implemented the main TUI function, though I have not yet implemented a good way to control it (currently I am not even checking which key was pressed or if the event was a key press…), and a little Sample text file for testing. I don’t really have much to add, I am still new to Rust and Ratatui so I am very slow. (sorry :sob) Thanks for reading! :purple-heart"}]...
|
Title: ToBeDone... by @Koy | Stardance
Devlogs:
D Title: ToBeDone... by @Koy | Stardance
Devlogs:
DevLog[1] - POC Hey! in this devlog I implemented the main TUI function, though I have not yet implemented a good way to control it (currently I am not even checking which key was pressed or if the event was a key press…), and a little Sample text file for testing. I don’t really have much to add, I am still new to Rust and Ratatui so I am very slow. (sorry :sob) Thanks for reading! :purple-heart
DevLog[2] - “File Reader” Hiiiiii In this devlog I have implemented all of the logic to read files, save them to the main app struct and then save a symlink that let’s you access the last used note without specifying its title. (currently everything is linux only, cross-platform support will come later) (explanation for the screenshots: both commands shown in fig. 1 have the same output [shown in fig. 2.])
DevLog[3] - “This Takes Way Too Long” Hey everyone!! For this log I have prepared a delightful… nevermind, this is all technical stuff. :sadge Never the less we will take a look! the main things I did was adding cursor support and improving input handling, which went from temporary to (practically) production! The other part (the hard part that took like two hours) was adding the cursor. I hate this thing. The cursor made the program panic in so many ways that I stopped counting. also figuring out how to even add it was another hour or two just in research (this ended up as like three lines btw) for anyone wondering, the cursor is held in the main struct as it’s own struct of two u16 variables which are added (or removed from) whenever the arrow keys are pressed. The displayed block is Ratatui’s default cursor that took me a million years to find. :sob Anyway, I have attached a video of most of the programs capabilities (I forgot to film the recent option and am too tired to do it again, sorry) [the hello and goodbye notes were not there initially]
DevLog[4] - “Movement, again” Hi there, welcome to my personal hell. ( ) It’s called movement. I have spent the last (non-consecutive) 6 hours to make something not too interesting, but not too uninteresting. (👀 ) cursor movement is extremely important for a note-taking app which currently doesn’t have planned mouse support, so I made sure to perfect (copy nano’s) it! Over the time I also: Moved all cursor based functions and the terminal constraint vars into the cursor struct itself Seperated some code to make it easier to read/edit Changed function names about a thousand times (it’s hard ) Learned the value of friendship (/j) I don’t really have much to show just because of the shear monotony of the task but here is a video of the weirdest bug I encountered on this journey (and probably the weirdest I ever will encounter), let’s see if you can figure out what happened :p
DevLog[5] - “I’m not wasting time or anything, why do you ask?” 👀👀👀 Hey all! this is a smaller one as I get things ready for the next part, markdown! Today, (and by this I mean it’s no longer 3 am) I have added CLI arguments for debugging, generating sample text, and no… eggs? Yeah Idk what that’s about (actually though that one is saved for later it might disappear) I have also fixed a few leftover errors and have tested the program on MacOS! :33 it worked almost immediately once I created the folder where all the notes are stored and set its permissions (I will set up install scripts to set everything up once I do all the functionality and windows support) By the way.. I wrote the readme.. you should check it out!! » Anw, have a nice dayy :3 (🥚)
DevLog[6] - “Rebase Rebase Rebase Rebase Rebase” Hi again! This… is a sad one. But first, the accomplishments!! in this devlog I have: Refactored the file.rs file (that saves/reads the files) to remove things like creating an uninitialized variable just to initialize it 3.14 seconds later in an if statement, in favor of initializing the variable with the if statement. ( let id = if input... ) Changed the massive iterator function line for cutting away from the displayed strings into the paragraph.scroll() function (which like, since when does that exist yk?) Moved the args struct into a static LazyLock<Mutex> which allows for a (relatively) safe global variable defined at runtime :3. Added modifier parsing for proper hotkeys and an options menu (internally called FormatDisplay , for reasons to be explained later) to show all the hotkeys. Turns out 9 hours is a lot lol. WAIT NO I DON’T WANN- Markdown Or well, the lack of it. over time while trying to work on this I realised that full markdown support is wayyyyy out of the scope of my (and the TUI’s) capabilities. {more info in the readme } after testing a few options (including a line-by-line implementation) I had found a silver-lining: FormatDisplay The menu is a new widget in the program, it simply shows the available keybinds, with SUPER keybinds formatting text, while control does things in the program. Do be warned though. I did not have time to make the actual functionality 😭
DevLog[7] - “MiniLog!” Hiiiiiii this time I focused on one thing (wasn’t easy lol) and that was a reset option! you can now remove all notes in one command! :3 I also gave up and then un-gave up on cross-platform so that’s cool Anyway I might go back to work and do cross-platform next (I rlly don’t wanna do formating )
DevLog[8] - “The End.” TL;DR: I got sick of this project and ended it. How did we get here? Formatting suckssssss. anyway, So I’ve been thinking about how I can save formatting to a file without encoding it into md and long story short, I can’t. The only way I could think of was to save binary files and simply (it was so hard I gave up) flush the memory into a file. Yeah I couldn’t figure that out. So what DID I do in the last 4 hours? Finishing touches! basically, I made build scripts, finished the readme, and made a github action to build the portable files. I also cleaned up just a bit from the uneaded code and (theoretically) made the app cross-platform (I don’t have access to a windows machine so it ended up getting a lot less love… oopsie…) I hope you can still enjoy my project (or my wacky writing ) without everything I neglected to do. and for one last (maybe) time. Have a nice day!
DevLog[9] - “Wait didn’t you ship this alr?” well hello to you too but uhh yeah… I tried to ship this like 5 times by now but it had so many problems that I didn’t think of (thanks Shipwrights! ) Anyway here are the changes since my last devlog: 1. Windows install scripts: Made with help from my friend Nadav Babad ( @smokinghotcode on github) because he has an actual windows capable pc 2. Switched to stderr: This switch happened because of windows not opening the exe file directly in the terminal (you would have to open it via command prompt). I am yet to test it but this was the only I have found to maybe make this work. 3. Better Github actions: This was just a by-product of all the iterations I went through, it was a nice intro to actions though! Anw good luck to me and the shipwrights, here’s a picture of the windows iso downloading (Insert edit from after testing since I feel like it won’t work)
Ships:
This is a notetaking app for the TUI. Please read the Readme for quickstart instructions!...
|
1793148952.8901272
|
1793235352.8901272
|
|
43574
|
Oxidian Client by @Str-F | Stardance
|
Str-F
|
0
|
37.36
|
0
|
[]
|
[{"post_id": 69823, "ts": "202 [{"post_id": 69823, "ts": "2026-09-17T21:02:54Z", "hours": 8.1678, "text": "in this devlog I not did too much. I just improved some packet handling, fixed errors, improved error handling. also added requesting status from the server and the keep alive packet so the client does not Time out. I now start with the play state packets implementation"}, {"post_id": 61039, "ts": "2026-09-03T19:02:42Z", "hours": 5.3194, "text": "added handling registry data from server. no the client can receive registry data from the server. if previously said by the client in known packs that every is there the data gets load from file if not it gets send by server."}, {"post_id": 58720, "ts": "2026-08-31T08:21:41Z", "hours": 4.8197, "text": "Rewrote the Networking threaded in Tokio. also rewrote some function and the architecture is now way more cleaner. enhanced the log writing a bit, next I will start with the gui."}, {"post_id": 40350, "ts": "2026-08-03T19:54:18Z", "hours": 19.0517, "text": "I got the the first connection to work!! The server now accepts the client joining the server, and the player is really in world joined on the server! (it gets kicked after a while for not responding to more packets). it was really hard to get the decode and encode and all the Minecraft special types like VarInt to work, but they work now! next I will be trying to make it threaded, add the first gui, also I need to implement like 300 more packets fore the client but at the moment only some are importent so yeaa!"}]...
|
Title: Oxidian Client by @Str-F | Stardance
Devlo Title: Oxidian Client by @Str-F | Stardance
Devlogs:
I got the the first connection to work!! The server now accepts the client joining the server, and the player is really in world joined on the server! (it gets kicked after a while for not responding to more packets). it was really hard to get the decode and encode and all the Minecraft special types like VarInt to work, but they work now! next I will be trying to make it threaded, add the first gui, also I need to implement like 300 more packets fore the client but at the moment only some are importent so yeaa!
Rewrote the Networking threaded in Tokio. also rewrote some function and the architecture is now way more cleaner. enhanced the log writing a bit, next I will start with the gui.
added handling registry data from server. no the client can receive registry data from the server. if previously said by the client in known packs that every is there the data gets load from file if not it gets send by server.
in this devlog I not did too much. I just improved some packet handling, fixed errors, improved error handling. also added requesting status from the server and the keep alive packet so the client does not Time out. I now start with the play state packets implementation...
|
1793228123.8768134
|
1793832923.8768134
|
|
58776
|
Yuei.AI by @No1Michael | Stardance
|
No1Michael
|
0
|
37.36
|
0
|
[]
|
[{"post_id": 65720, "ts": "202 [{"post_id": 65720, "ts": "2026-09-11T02:03:56Z", "hours": 7.9983, "text": "Added some UI changes which makes it more usable for mobile, however the biggest challenge is to compress everything down. I personally believe having to scroll and not having everything fit on mobile is what makes the experience bad in most cases"}, {"post_id": 65178, "ts": "2026-09-10T03:52:41Z", "hours": 5.4631, "text": "Few Fixes Including Routing Navigation from the different exercises and other small ui fixes. I’m currently a little lost for other ideas to implement so please leave a comment!"}, {"post_id": 64571, "ts": "2026-09-09T02:35:05Z", "hours": 5.0028, "text": "I WOULD LOVE ANY FEEDBACK! https://wamichae1.github.io/Yuei/ I have a demo now out on github pages, but only the intervals and the note identification works currently!"}, {"post_id": 63755, "ts": "2026-09-07T18:29:02Z", "hours": 11.8419, "text": "Hey! Im looking for advice! If you play piano/any music related stuff, I would love to hear what type of trainer you would like to see! I currently have intervals and note identification, and im progressing through chord identification! If you have a specific system (level) that you wanna see please tell me (organization/instrument/system/etc.)!"}, {"post_id": 63233, "ts": "2026-09-06T22:35:10Z", "hours": 7.0517, "text": "If you’re Canadian and play the piano, you prolly know about RCM and the 4-Star book. Yuei will be a platform where these skills can be practiced, saving you 9.99$ a month! Currently, im building out the Interval trainer as the first part!"}]...
|
Title: Yuei.AI by @No1Michael | Stardance
Devlogs Title: Yuei.AI by @No1Michael | Stardance
Devlogs:
If you’re Canadian and play the piano, you prolly know about RCM and the 4-Star book. Yuei will be a platform where these skills can be practiced, saving you 9.99$ a month! Currently, im building out the Interval trainer as the first part!
Hey! Im looking for advice! If you play piano/any music related stuff, I would love to hear what type of trainer you would like to see! I currently have intervals and note identification, and im progressing through chord identification! If you have a specific system (level) that you wanna see please tell me (organization/instrument/system/etc.)!
I WOULD LOVE ANY FEEDBACK! https://wamichae1.github.io/Yuei/ I have a demo now out on github pages, but only the intervals and the note identification works currently!
Few Fixes Including Routing Navigation from the different exercises and other small ui fixes. I’m currently a little lost for other ideas to implement so please leave a comment!
Added some UI changes which makes it more usable for mobile, however the biggest challenge is to compress everything down. I personally believe having to scroll and not having everything fit on mobile is what makes the experience bad in most cases...
|
1792936245.099146
|
1793800245.099146
|
|
41002
|
Unity drifting parking car game by @Parth_1234 | S Unity drifting parking car game by @Parth_1234 | Stardance...
|
Parth_1234
|
0
|
37.34
|
0
|
[]
|
[{"post_id": 46556, "ts": "202 [{"post_id": 46556, "ts": "2026-08-13T21:31:57Z", "hours": 1.2467, "text": "I added a better round ending system so you receive the coins which you can use to buy upgrades and you can go back to the garage."}, {"post_id": 45988, "ts": "2026-08-12T20:34:44Z", "hours": 1.1503, "text": "Fixed a bunch of bugs in game like the light system not working in specific cases, bugs with explosions and more!"}, {"post_id": 45239, "ts": "2026-08-11T16:10:24Z", "hours": 1.1786, "text": "Made more guis in canva as well as connecting up the buttons to the game so it actually works when you press play buy, upgrades and you get coins when you win!"}, {"post_id": 44741, "ts": "2026-08-10T18:11:49Z", "hours": 1.8133, "text": "added / fixed and made the garage better and started working on some buttons in canva for my game as well as some better guis."}, {"post_id": 44182, "ts": "2026-08-09T19:29:18Z", "hours": 1.6256, "text": "I managed to find a garage asset which I used for the home page menu, I also added a traffic light system for when the game starts, also trying to figure out how to get the game on the web so you can play it!"}, {"post_id": 43571, "ts": "2026-08-08T22:01:16Z", "hours": 1.2378, "text": "bot recovery fixes + round system fixed some work in the scene but a bit of it wasn’t saved, so I’ll try to recover it!"}, {"post_id": 42875, "ts": "2026-08-07T20:38:35Z", "hours": 3.09, "text": "Added explosions so cars that don’t park die, and a rounds system so the game keeps on going, I found out about unity’s particle system, but it was hard to make realistic so I used one from the Unity Asset Store."}, {"post_id": 42196, "ts": "2026-08-06T20:11:21Z", "hours": 1.3008, "text": "Fixed the bot logic so now they can park and drive and actually know where the road in front of them is and whether to turn to not fall of or not, I also started working on the rounds system so every round a spot goes and if u don’t park in time u die."}, {"post_id": 41527, "ts": "2026-08-05T19:51:36Z", "hours": 3.8717, "text": "I tired to make the bot better so they don’t just got from point to point and are impossible to beat, but it gets very hard to code it fast, so I’m still tryna figure out how to make it work."}, {"post_id": 40906, "ts": "2026-08-04T18:47:54Z", "hours": 1.9172, "text": "I added the ability for bots to park and I attached the same driving logic to them as the player, so now when a spot is available they will try to drive to the nearest available one."}, {"post_id": 40257, "ts": "2026-08-03T17:39:45Z", "hours": 4.4836, "text": "This session I worked on finishing the parking feature so when the platform spawns you have to compete w/other bots to get a spot - just like real life :) - then I started trying to get the bots to work but it got increasingly more complicated so I stopped and am 3/4 the way finished with the bot logic, as a beginner it was very difficult, and even navigating this graph was a nightmare."}, {"post_id": 39131, "ts": "2026-08-01T20:56:49Z", "hours": 5.5389, "text": "This time I finished the camera system in my car drifting game as well as the assets in blender so the game doesn’t look like a bunch of random parts, the game is essentially about drifting until a parking spot appears and you have to get that spot, so I had some difficulty mapping the rectangular road section onto a circular curve, but it worked in the end."}, {"post_id": 37194, "ts": "2026-07-29T18:47:39Z", "hours": 4.235, "text": "Today I managed to work on quite a bit, but there were a fair share of issues, first I tried very hard to make my own drifting logic to my car game, so I caved and used one from Unity , then I spend quite a bit of time trying to get the camera to follow the car and I eventually cracked it as you can see in the first picture, it was very complicated, then I worked on the feature to bring you car back if you fall, and next time I think I’m gonna add bots"}, {"post_id": 36670, "ts": "2026-07-28T21:35:54Z", "hours": 4.6503, "text": "Early game mechanics I added the first game mechanics in my drifting game I had some drifting logic in but when I changed the map I encountered more issues so I wasted a lot of time on that, instead I decided to work on the map and do drifting logic another day as it can be really complicated, I watched a few tutorials on how to use Unity and I then learnt about the visual graph editor, so I though I should have another go at getting some drifting logic in but I didn’t get very far with it, so I decided to just work on the map, which I had to redo after I clicked some random button and lost everything, now I know to save often!"}]...
|
Title: Unity drifting parking car game by @Parth_1 Title: Unity drifting parking car game by @Parth_1234 | Stardance
Devlogs:
Early game mechanics I added the first game mechanics in my drifting game I had some drifting logic in but when I changed the map I encountered more issues so I wasted a lot of time on that, instead I decided to work on the map and do drifting logic another day as it can be really complicated, I watched a few tutorials on how to use Unity and I then learnt about the visual graph editor, so I though I should have another go at getting some drifting logic in but I didn’t get very far with it, so I decided to just work on the map, which I had to redo after I clicked some random button and lost everything, now I know to save often!
Today I managed to work on quite a bit, but there were a fair share of issues, first I tried very hard to make my own drifting logic to my car game, so I caved and used one from Unity , then I spend quite a bit of time trying to get the camera to follow the car and I eventually cracked it as you can see in the first picture, it was very complicated, then I worked on the feature to bring you car back if you fall, and next time I think I’m gonna add bots
This time I finished the camera system in my car drifting game as well as the assets in blender so the game doesn’t look like a bunch of random parts, the game is essentially about drifting until a parking spot appears and you have to get that spot, so I had some difficulty mapping the rectangular road section onto a circular curve, but it worked in the end.
This session I worked on finishing the parking feature so when the platform spawns you have to compete w/other bots to get a spot - just like real life :) - then I started trying to get the bots to work but it got increasingly more complicated so I stopped and am 3/4 the way finished with the bot logic, as a beginner it was very difficult, and even navigating this graph was a nightmare.
I added the ability for bots to park and I attached the same driving logic to them as the player, so now when a spot is available they will try to drive to the nearest available one.
I tired to make the bot better so they don’t just got from point to point and are impossible to beat, but it gets very hard to code it fast, so I’m still tryna figure out how to make it work.
Fixed the bot logic so now they can park and drive and actually know where the road in front of them is and whether to turn to not fall of or not, I also started working on the rounds system so every round a spot goes and if u don’t park in time u die.
Added explosions so cars that don’t park die, and a rounds system so the game keeps on going, I found out about unity’s particle system, but it was hard to make realistic so I used one from the Unity Asset Store.
bot recovery fixes + round system fixed some work in the scene but a bit of it wasn’t saved, so I’ll try to recover it!
I managed to find a garage asset which I used for the home page menu, I also added a traffic light system for when the game starts, also trying to figure out how to get the game on the web so you can play it!
added / fixed and made the garage better and started working on some buttons in canva for my game as well as some better guis.
Made more guis in canva as well as connecting up the buttons to the game so it actually works when you press play buy, upgrades and you get coins when you win!
Fixed a bunch of bugs in game like the light system not working in specific cases, bugs with explosions and more!
I added a better round ending system so you receive the coins which you can use to buy upgrades and you can go back to the garage....
|
1792788477.0641227
|
1793393277.0641227
|
|
46895
|
Wi-Fi Latency Analyzer by @aaryan_s | Stardance
|
aaryan_s
|
0
|
37.3
|
0
|
[]
|
[{"post_id": 82666, "ts": "202 [{"post_id": 82666, "ts": "2026-10-25T15:25:32Z", "hours": 3.6767, "text": "# Day 22/23 - Major changes added! I focused on polishing my GUI for the app and implementing features like a connection health system that displays an overall connection health rather than having the user solely look at raw statistics. The app interprets 3 parameters after the ping tests: average latency, jitter, and packet loss. Jitter and packet loss is used to determine stability whereas average latency is used to determine response speeds/delay. There are currently 8 different possible outcomes such as “HIGHLY UNSTABLE,” “VERY SLOW,” “SOME INSTABILITY & SLOW SPEEDS,” and “STABLE.” This helps differentiate instability and speeds/delay as they are not the same thing. Additionally, Some important visual changes were using red, orange, or green to visually display the connection’s overall health. I Also spent time polishing the test count field box and delay field box alongside polishing button styles. After adjust the panel’s dimensions, they take up window space more appropriately, making the app look proportionate. Figuring out how to create metric cards (boxes with avg latency, jitter, etc.) and styling the project into an appealable GUI was especially challenging as I had to choose between various possible styles. I also have not been able to fix the test setting boxes missing a bottom side yet. After ~1 day I plan to ship my project officially and submit it to the Congressional App Challenge. Some possible minor features in the future may be light/dark mode and a visual feature, like a graph, to display ping results."}, {"post_id": 81126, "ts": "2026-10-19T23:56:01Z", "hours": 3.4781, "text": "• Day 21 – Modern GUI and FlatLaf Setup – 10/19 • I installed FlatLaf, an open source java library for Java Swing applications . The goal with FlatLaf is to slowly “modernize” my app and overall make it look a lot more appealing to the user compared to it’s old basic java swing vibe. I struggled a lot with implementing FlatLaf and connecting it to my java swing application in VsCode, so I had to use some AI to figure out how to install FlatLat onto VsCode on a Windows desktop. I made a seperate folder called “Lib” and added the FlatLaf download file. For now, I have the core ping functionality/logic down, the basic GUI, and my next steps are clear: I want to have a working, publicly appealing app. Hopefully I can submit this into the Congressional App Challenge within the next week! • P.S: Starting from this post, from now on, I am beginning to change the format of my Devlogs. Originally, they were very structured and bullet pointed. However, after double checking StarDance guidelines for a proper post, I want to make my posts more understandable and readable starting now. Thank you!"}, {"post_id": 74297, "ts": "2026-09-27T04:19:12Z", "hours": 3.1344, "text": "Day 20 — UI Polish & APP Refinement/Debugging Further developed the UI to be more presentable to users: Consistent color theme: light background, blue primary color, dark text, and light-gray section backgrounds Improved the title section with a larger blue title and a subtitle describing the application’s purpose. Redesigned the test configuration section by grouping the DNS target, number of tests, and delay controls into a single bordered panel. o Added recognizable DNS provider names to the target dropdown, such as Cloudflare and Google, instead of displaying only IP addresses. Added a clean border and light-gray background to test configuration panel to match Live Results section. Improved Start Test button, including styling and a play-button icon. Worked on removing the default blue selection highlighting from the dropdown and customizing it renderer/colors. Redesigned LIVE RESULTS so it appears as a proper section heading above a bordered results box rather than relying on Swing’s default titled border. Added light-gray background + border to the Live Results panel for consistent dashboard-like appearance. Learned more about Swing layouts, panels, borders, colors, renderers, component alignment, etc. Core functionality is now running, with the desktop application connected to the existing ping backend and displaying latency statistics."}, {"post_id": 73738, "ts": "2026-09-25T20:14:06Z", "hours": 2.8808, "text": "Day 19 — Connecting the Desktop Application Connected the GUI to the existing src.ping() backend o Integrated calculations for average latency, min/max latency, packet loss, and jitter Added user input for number of tests and delay between tests o Added input validation for test count and delay values Used ArrayList to store multiple ping results Connected the calculated results to the GUI’s live result labels Learned why Double.MAX_VALUE is useful when calculating a minimum value and how Thread.sleep() creates the delay between tests Next: Test the full workflow, fix any bugs, and make the GUI responsive before moving toward final polish/shipping :DD"}, {"post_id": 73378, "ts": "2026-09-25T01:24:33Z", "hours": 1.4611, "text": "Day 18 - Desktop UI & Connecting the Program · Connected the UI to the existing src.java ping functionality · Connecting public classes and calling methods from src.java · Changed ping() to be accessible from the UI - Learned how classes communicate with each other · Learned how LatencyAnalyzerWindow → src.ping() → PingResult → GUI works · Crucial for connecting jitter, packet loss, etc. later · Kept latency stored as a double and only formatted it for display 3 days left, with ~6–7 hours planned to finish, test, and polish the project :D"}, {"post_id": 72860, "ts": "2026-09-23T21:36:03Z", "hours": 3.9839, "text": "Day 17 – Beginning the Desktop App Interface 1. Core program: (everything I have been doing thus far): o Improved name input validation, including rejecting blank/space-only names. o Made the name switch case-insensitive using .toLowerCase() 2. Desktop App: o Began building a Java desktop app version of my Wi‑Fi Latency Analyzer using Java Swing · Created LatencyAnalyzerWindow.java, which opens a real application window o Learned the purpose of Swing components such as JFrame, JPanel, JLabel, JButton o Added a target-selection dropdown with Cloudflare and Google DNS options · Added fields for the number of tests and delay between tests o Added a Start Test button and status message area o Added Live Results section, placeholders for latency, average latency, packet loss, and jitter · Edited the ReadMe to better reflect status of project and AI usage during the project · Planned to connect the interface to real ping data next"}, {"post_id": 72396, "ts": "2026-09-22T20:29:12Z", "hours": 3.64, "text": "Day 15/16 - Debugging, Jitter, Project Organization 15: · Reorganized my programming workspace so each project has a folder · Set up a “Coding Projects” folder to keep my future projects under one large folder · Kept my Wi‑Fi Latency Analyzer in its own project folder o its Java code, README, license, and VS Code settings stay together · Created separate Java Practice folder for smaller programs that help me practice Java concepts · Reviewed the project files and learned what each one is used for · Found and removed an empty unused Java folder from the project · Made sure my project folders are synced and accessible through OneDrive · Overall, continued building good habits for keeping my code organized, separate, and easy to find 16: · Removed duplicate for loop that was double-counting successful latency data · Added jitter to the Wi-Fi Latency Analyzer o Learned to calculate jitter by comparing each successful ping to the previous successful ping o Used Math.abs() to find the absolute latency difference · Added handling for cases where jitter can’t be calculated, displaying N/A (if/else) · Tested multiple cases to make sure the new jitter calculations and edge cases worked correctly"}, {"post_id": 60617, "ts": "2026-09-03T02:20:12Z", "hours": 0.8453, "text": "Day 14 – Terminal Readability / Debugging (Continuation of Day 13) · Made average/min/max display N/A when there are no successful tests o Improved failed-test output so failed pings don’t misleadingly show 0 ms · Fixed the test-number display (TEST 1 OF 2, TEST 2 OF 2) · Fixed the duplicate results caused by nested loops (loop within another loop) · Tested failed hostnames and verified that it results in a 100% packet loss · Kept debugging messages temporarily · Deferred method refactoring for later"}, {"post_id": 60010, "ts": "2026-09-02T03:14:31Z", "hours": 0.9733, "text": "Day 13 – Readability / Displaying Clean Info on User Terminal · Improved the readability of individual ping results by labeling each test (TEST 1 OF 2, TEST 2 OF 2, etc.) o Fixed the successful-test counter so successful tests are counted correctly · Fixed the duplicate test display caused by accidentally using nested loops (loop inside of another loop) · Added the foundation for minimum and maximum latency calculations · Added success/failure, total latency, + min/max latency analysis into stored results analysis section · Fixed a variable declaration issue with totalLatency and successfulLatencyTests (order matters in code) · Overall: Day 13 focused on making the output cleaner and turning the stored ping data into more useful statistics"}, {"post_id": 59281, "ts": "2026-08-31T23:56:46Z", "hours": 0.7761, "text": "Day 12 – Formatting and Proper Displaying of Data – 8/31/26 · Added packet-loss formatting using printf to display percentages to 2 decimal places. o Improved the final ping-test summary for readability. · Verified the program correctly calculates and displays: o Successful tests o Failed tests o Packet loss o Average latency · Debugged an issue where the old println formatting was still being used. · Learned how Java printf formatting works, including %.2f, %%, and %n. · Chose to postpone additional rounding/refinement work until later if needed. · Day 12 milestone: The analyzer can now perform multiple ping tests, store the results, analyze them, and presents the key network statistics in a clean summary to the user."}, {"post_id": 58374, "ts": "2026-08-30T19:44:01Z", "hours": 1.6194, "text": "Day 11 – Analyzing Multiple Ping Tests (Collecting Data) · Added successful and failed test tracking using PingResult.success. o Calculated the number of successful tests and failed tests. · Added packet loss calculation: o Failed Tests ÷ Total Tests × 100 · Implemented average latency calculation using ONLY successful tests o Failed tests do not measure any latency, so do not include within calculation · Fixed the average latency calculation by properly incrementing successfulLatencyTests. · Verified that multiple ping results are correctly stored in the ArrayList. · Added a final PING TEST SUMMARY displaying: o Successful Tests o Failed Tests o Packet Loss o Average Latency · Tested the program with 3 pings to Google, successfully producing: o 3 successful tests o 0 failed tests o 0% packet loss o ~11.67 ms average latency"}, {"post_id": 55263, "ts": "2026-08-26T23:10:31Z", "hours": 1.5486, "text": "Day 10 - Multiple Ping Tests & Result Storage Implemented an ArrayList to store results from multiple ping tests. Added user input for the number of ping tests to run Added input validation to ensure the number of tests is a valid positive whole number Created a for loop to automatically run the requested number of ping tests Stored each PingResult in the ArrayList after every successful test. Added a results counter using results.size() to verify that results are being stored correctly. Confirmed the program successfully ran 3 separate tests to Google and stored all 3 results Debugged the output and identified/removing the unnecessary extra ping test result Verified latency extraction, success/failure detection, and timestamp functionality alongside new multi-test Ping system for my code Key milestone: The analyzer can now run multiple"}, {"post_id": 54887, "ts": "2026-08-26T03:13:56Z", "hours": 1.1456, "text": "Day 9 – Heavy debugging and Two-Step Verification · Debugged and refined the program’s user-input and control-flow systems. o Implemented a two-step verification process using if / else if / else logic to confirm intended program usage before proceeding. · Improved the survey consent workflow, allowing users to decline the survey while still accessing the Wi-Fi Latency Analyzer. · Debugged several issues involving conditional statements, loops, and program termination o Including changing Scanner object name to Input (more consistent and widely accepted) · Improved timestamp readability o Replacing Java’s default timestamp format with a user-friendly date/time format o Continued testing the analyzer with real network connection o Verified that latency measurements and timestamps were being returned correctly. · Edited/added more relevant comments"}, {"post_id": 54206, "ts": "2026-08-25T02:57:30Z", "hours": 0.7028, "text": "Day 8 – Debugging and Data Collection (beta version) · Debugged and improved the control flow (survey ProcessBuilder, pingResult… etc.) o Fixed “if else” function displaying semi-colon o Added safer handling for latency extraction by checking whether “ms” was successfully found (extracting the number) · Verified the latency parser o Located time= o Extracted Latency text o Identified numerical value o Converting “[String]” à double · Tested program with multiple real DNS servers to verify successful connections · Kept detailed debugging output in terminal (eg. Time= …) to verify source code is running properly · Edited a few comments to be accurate/up to date · Began real world analysis and data collection (very important for future) · Refined the project’s architecture and long-term direction: desktop application as the actual tool + website as the project’s documentation, research, data, and presentation layer o Further down the road when I begin developing the GUI/user interface o Reasoning for choosing desktop app as tool: websites would only run ping analysis from my computer, not from user’s computer"}, {"post_id": 53398, "ts": "2026-08-23T22:45:49Z", "hours": 1.3758, "text": "Day 7 – 8/23/26 – Development and Debugging Improved survey/user-flow logic Changed the survey from automatically terminating the program when the user selects “no.” Added an option for users to skip the survey and continue to the Wi-Fi Latency Analyzer. Added if / else if / else control flow to handle valid and invalid responses. Improved input validation Continued using equalsIgnoreCase() so inputs such as YES, Yes, and yes are treated consistently. Added handling for invalid responses instead of allowing unexpected input to break the program. Identified and corrected an issue where multiple scanner.nextLine() calls were accidentally being used before the program needed the second input. Debugging and code cleanup Identified a major issue where scanner.close() was accidentally placed inside the age-validation loop. Recognized that closing the scanner could prevent the rest of program from receiving user input. Kept scanner closure at the end of the program instead. · Began Day 7 latency extraction Built on the existing BufferedReader that reads the operating system’s ping output. Added detection for lines containing “time=”. Used indexOf() to locate the position of the latency information within the ping output. Began learning how substring() can isolate the latency portion of the returned text. Next step of extracting the numerical ms value and converting it with Double.parseDouble() Improved program methodology Continued developing the project incrementally Practiced debugging by testing individual sections Key challenge/cool change: The program is becoming more user-friendly and robust. Users can now decline the optional survey without losing access to the actual Wi-Fi Latency Analyzer, while the program separately handles survey consent and analyzer participation."}, {"post_id": 48318, "ts": "2026-08-16T17:02:05Z", "hours": 1.1478, "text": "Day 5 — Detecting Ping Success or Failure. Today I implemented and debugged the logic needed to determine whether a real ping to a DNS server succeeds or fails. I learned how ProcessBuilder, waitFor(), and exit codes work together to interact with the operating system, and how they actually evaluate the result of a network test. I also strengthened my understanding of input validation, control flow, methods, and user inputs, including using if/else if/else logic and System.exit(0) terminating the program. I tested the program with both valid and invalid targets and confirmed that it can now identify successful and unsuccessful connections. I also updated my README to better reflect the project’s current development. Next: Day 6 — extract the latency measurement in milliseconds from successful ping results."}, {"post_id": 47673, "ts": "2026-08-15T18:49:14Z", "hours": 1.7606, "text": "Day 4 progress: I broke my Ping Latency Analyzer’s source code into two classes: one handling the intro, simple setup, and survey questions, and the other managing the actual ping measurements and user input. Most of today was spent debugging and reorganizing that structure, and I started tracking my work directly in comments (e.g., // Day4:) to keep changes easy to follow over time. I also ensure the project used a single, consistent Scanner object in the Main class instead of creating multiple instances. On the technical side, I learned how ProcessBuilder, Process, start(), and getInputStream() work together to launch and read output from an external process, and I looked into the difference between declaring void on a main method versus omitting it. I applied .equalsIgnoreCase() to make my survey questions case-insensitive, and I compared using while loops versus if/else blocks for validating user input, particularly useful for handling simple yes/no responses."}, {"post_id": 46672, "ts": "2026-08-14T03:35:01Z", "hours": 1.8378, "text": "Day 2/3: Learned what a target like Cloudfare or Google DNS is within the world of Cloud and Data Engineering. Public IP Addresses for Website Domains. Learned Arrays/List ( [] ). Learned purpose of Classes/Objects (other than Public Class). Create a numbered menu with safe public test targets. Cloudfare: 1.1.1.1; Google DNS: 8.8.8.8. Let the user choose one target. Print the chosen target back to them"}, {"post_id": 45463, "ts": "2026-08-11T23:09:17Z", "hours": 1.3167, "text": "Day 1: Hi! My name is Aaryan, and this is the very beginning of my journey towards creating my first long-term project with Java. I am very new to Java and this program, and the code below represents the beginning of my User Info data collection for my Wi-Fi Latency Analyzer Project. Any comments or suggestions towards my project would be well appreciated! This is NOT a traditional Wi-Fi speed test, and I am aiming to measure metrics like Packet Loss, Latency, and stability of connections during gaming and video calls."}]...
|
Title: Wi-Fi Latency Analyzer by @aaryan_s | Stard Title: Wi-Fi Latency Analyzer by @aaryan_s | Stardance
Devlogs:
Day 1: Hi! My name is Aaryan, and this is the very beginning of my journey towards creating my first long-term project with Java. I am very new to Java and this program, and the code below represents the beginning of my User Info data collection for my Wi-Fi Latency Analyzer Project. Any comments or suggestions towards my project would be well appreciated! This is NOT a traditional Wi-Fi speed test, and I am aiming to measure metrics like Packet Loss, Latency, and stability of connections during gaming and video calls.
Day 2/3: Learned what a target like Cloudfare or Google DNS is within the world of Cloud and Data Engineering. Public IP Addresses for Website Domains. Learned Arrays/List ( [] ). Learned purpose of Classes/Objects (other than Public Class). Create a numbered menu with safe public test targets. Cloudfare: 1.1.1.1; Google DNS: 8.8.8.8. Let the user choose one target. Print the chosen target back to them
Day 4 progress: I broke my Ping Latency Analyzer’s source code into two classes: one handling the intro, simple setup, and survey questions, and the other managing the actual ping measurements and user input. Most of today was spent debugging and reorganizing that structure, and I started tracking my work directly in comments (e.g., // Day4:) to keep changes easy to follow over time. I also ensure the project used a single, consistent Scanner object in the Main class instead of creating multiple instances. On the technical side, I learned how ProcessBuilder, Process, start(), and getInputStream() work together to launch and read output from an external process, and I looked into the difference between declaring void on a main method versus omitting it. I applied .equalsIgnoreCase() to make my survey questions case-insensitive, and I compared using while loops versus if/else blocks for validating user input, particularly useful for handling simple yes/no responses.
Day 5 — Detecting Ping Success or Failure. Today I implemented and debugged the logic needed to determine whether a real ping to a DNS server succeeds or fails. I learned how ProcessBuilder, waitFor(), and exit codes work together to interact with the operating system, and how they actually evaluate the result of a network test. I also strengthened my understanding of input validation, control flow, methods, and user inputs, including using if/else if/else logic and System.exit(0) terminating the program. I tested the program with both valid and invalid targets and confirmed that it can now identify successful and unsuccessful connections. I also updated my README to better reflect the project’s current development. Next: Day 6 — extract the latency measurement in milliseconds from successful ping results.
Day 7 – 8/23/26 – Development and Debugging Improved survey/user-flow logic Changed the survey from automatically terminating the program when the user selects “no.” Added an option for users to skip the survey and continue to the Wi-Fi Latency Analyzer. Added if / else if / else control flow to handle valid and invalid responses. Improved input validation Continued using equalsIgnoreCase() so inputs such as YES, Yes, and yes are treated consistently. Added handling for invalid responses instead of allowing unexpected input to break the program. Identified and corrected an issue where multiple scanner.nextLine() calls were accidentally being used before the program needed the second input. Debugging and code cleanup Identified a major issue where scanner.close() was accidentally placed inside the age-validation loop. Recognized that closing the scanner could prevent the rest of program from receiving user input. Kept scanner closure at the end of the program instead. · Began Day 7 latency extraction Built on the existing BufferedReader that reads the operating system’s ping output. Added detection for lines containing “time=”. Used indexOf() to locate the position of the latency information within the ping output. Began learning how substring() can isolate the latency portion of the returned text. Next step of extracting the numerical ms value and converting it with Double.parseDouble() Improved program methodology Continued developing the project incrementally Practiced debugging by testing individual sections Key challenge/cool change: The program is becoming more user-friendly and robust. Users can now decline the optional survey without losing access to the actual Wi-Fi Latency Analyzer, while the program separately handles survey consent and analyzer participation.
Day 8 – Debugging and Data Collection (beta version) · Debugged and improved the control flow (survey ProcessBuilder, pingResult… etc.) o Fixed “if else” function displaying semi-colon o Added safer handling for latency extraction by checking whether “ms” was successfully found (extracting the number) · Verified the latency parser o Located time= o Extracted Latency text o Identified numerical value o Converting “[String]” à double · Tested program with multiple real DNS servers to verify successful connections · Kept detailed debugging output in terminal (eg. Time= …) to verify source code is running properly · Edited a few comments to be accurate/up to date · Began real world analysis and data collection (very important for future) · Refined the project’s architecture and long-term direction: desktop application as the actual tool + website as the project’s documentation, research, data, and presentation layer o Further down the road when I begin developing the GUI/user interface o Reasoning for choosing desktop app as tool: websites would only run ping analysis from my computer, not from user’s computer
Day 9 – Heavy debugging and Two-Step Verification · Debugged and refined the program’s user-input and control-flow systems. o Implemented a two-step verification process using if / else if / else logic to confirm intended program usage before proceeding. · Improved the survey consent workflow, allowing users to decline the survey while still accessing the Wi-Fi Latency Analyzer. · Debugged several issues involving conditional statements, loops, and program termination o Including changing Scanner object name to Input (more consistent and widely accepted) · Improved timestamp readability o Replacing Java’s default timestamp format with a user-friendly date/time format o Continued testing the analyzer with real network connection o Verified that latency measurements and timestamps were being returned correctly. · Edited/added more relevant comments
Day 10 - Multiple Ping Tests & Result Storage Implemented an ArrayList to store results from multiple ping tests. Added user input for the number of ping tests to run Added input validation to ensure the number of tests is a valid positive whole number Created a for loop to automatically run the requested number of ping tests Stored each PingResult in the ArrayList after every successful test. Added a results counter using results.size() to verify that results are being stored correctly. Confirmed the program successfully ran 3 separate tests to Google and stored all 3 results Debugged the output and identified/removing the unnecessary extra ping test result Verified latency extraction, success/failure detection, and timestamp functionality alongside new multi-test Ping system for my code Key milestone: The analyzer can now run multiple
Day 11 – Analyzing Multiple Ping Tests (Collecting Data) · Added successful and failed test tracking using PingResult.success. o Calculated the number of successful tests and failed tests. · Added packet loss calculation: o Failed Tests ÷ Total Tests × 100 · Implemented average latency calculation using ONLY successful tests o Failed tests do not measure any latency, so do not include within calculation · Fixed the average latency calculation by properly incrementing successfulLatencyTests. · Verified that multiple ping results are correctly stored in the ArrayList. · Added a final PING TEST SUMMARY displaying: o Successful Tests o Failed Tests o Packet Loss o Average Latency · Tested the program with 3 pings to Google, successfully producing: o 3 successful tests o 0 failed tests o 0% packet loss o ~11.67 ms average latency
Day 12 – Formatting and Proper Displaying of Data – 8/31/26 · Added packet-loss formatting using printf to display percentages to 2 decimal places. o Improved the final ping-test summary for readability. · Verified the program correctly calculates and displays: o Successful tests o Failed tests o Packet loss o Average latency · Debugged an issue where the old println formatting was still being used. · Learned how Java printf formatting works, including %.2f, %%, and %n. · Chose to postpone additional rounding/refinement work until later if needed. · Day 12 milestone: The analyzer can now perform multiple ping tests, store the results, analyze them, and presents the key network statistics in a clean summary to the user.
Day 13 – Readability / Displaying Clean Info on User Terminal · Improved the readability of individual ping results by labeling each test (TEST 1 OF 2, TEST 2 OF 2, etc.) o Fixed the successful-test counter so successful tests are counted correctly · Fixed the duplicate test display caused by accidentally using nested loops (loop inside of another loop) · Added the foundation for minimum and maximum latency calculations · Added success/failure, total latency, + min/max latency analysis into stored results analysis section · Fixed a variable declaration issue with totalLatency and successfulLatencyTests (order matters in code) · Overall: Day 13 focused on making the output cleaner and turning the stored ping data into more useful statistics
Day 14 – Terminal Readability / Debugging (Continuation of Day 13) · Made average/min/max display N/A when there are no successful tests o Improved failed-test output so failed pings don’t misleadingly show 0 ms · Fixed the test-number display (TEST 1 OF 2, TEST 2 OF 2) · Fixed the duplicate results caused by nested loops (loop within another loop) · Tested failed hostnames and verified that it results in a 100% packet loss · Kept debugging messages temporarily · Deferred method refactoring for later
Day 15/16 - Debugging, Jitter, Project Organization 15: · Reorganized my programming workspace so each project has a folder · Set up a “Coding Projects” folder to keep my future projects under one large folder · Kept my Wi‑Fi Latency Analyzer in its own project folder o its Java code, README, license, and VS Code settings stay together · Created separate Java Practice folder for smaller programs that help me practice Java concepts · Reviewed the project files and learned what each one is used for · Found and removed an empty unused Java folder from the project · Made sure my project folders are synced and accessible through OneDrive · Overall, continued building good habits for keeping my code organized, separate, and easy to find 16: · Removed duplicate for loop that was double-counting successful latency data · Added jitter to the Wi-Fi Latency Analyzer o Learned to calculate jitter by comparing each successful ping to the previous successful ping o Used Math.abs() to find the absolute latency difference · Added handling for cases where jitter can’t be calculated, displaying N/A (if/else) · Tested multiple cases to make sure the new jitter calculations and edge cases worked correctly
Day 17 – Beginning the Desktop App Interface 1. Core program: (everything I have been doing thus far): o Improved name input validation, including rejecting blank/space-only names. o Made the name switch case-insensitive using .toLowerCase() 2. Desktop App: o Began building a Java desktop app version of my Wi‑Fi Latency Analyzer using Java Swing · Created LatencyAnalyzerWindow.java, which opens a real application window o Learned the purpose of Swing components such as JFrame, JPanel, JLabel, JButton o Added a target-selection dropdown with Cloudflare and Google DNS options · Added fields for the number of tests and delay between tests o Added a Start Test button and status message area o Added Live Results section, placeholders for latency, average latency, packet loss, and jitter · Edited the ReadMe to better reflect status of project and AI usage during the project · Planned to connect the interface to real ping data next
Day 18 - Desktop UI & Connecting the Program · Connected the UI to the existing src.java ping functionality · Connecting public classes and calling methods from src.java · Changed ping() to be accessible from the UI - Learned how classes communicate with each other · Learned how LatencyAnalyzerWindow → src.ping() → PingResult → GUI works · Crucial for connecting jitter, packet loss, etc. later · Kept latency stored as a double and only formatted it for display 3 days left, with ~6–7 hours planned to finish, test, and polish the project :D
Day 19 — Connecting the Desktop Application Connected the GUI to the existing src.ping() backend o Integrated calculations for average latency, min/max latency, packet loss, and jitter Added user input for number of tests and delay between tests o Added input validation for test count and delay values Used ArrayList to store multiple ping results Connected the calculated results to the GUI’s live result labels Learned why Double.MAX_VALUE is useful when calculating a minimum value and how Thread.sleep() creates the delay between tests Next: Test the full workflow, fix any bugs, and make the GUI responsive before moving toward final polish/shipping :DD
Day 20 — UI Polish & APP Refinement/Debugging Further developed the UI to be more presentable to users: Consistent color theme: light background, blue primary color, dark text, and light-gray section backgrounds Improved the title section with a larger blue title and a subtitle describing the application’s purpose. Redesigned the test configuration section by grouping the DNS target, number of tests, and delay controls into a single bordered panel. o Added recognizable DNS provider names to the target dropdown, such as Cloudflare and Google, instead of displaying only IP addresses. Added a clean border and light-gray background to test configuration panel to match Live Results section. Improved Start Test button, including styling and a play-button icon. Worked on removing the default blue selection highlighting from the dropdown and customizing it renderer/colors. Redesigned LIVE RESULTS so it appears as a proper section heading above a bordered results box rather than relying on Swing’s default titled border. Added light-gray background + border to the Live Results panel for consistent dashboard-like appearance. Learned more about Swing layouts, panels, borders, colors, renderers, component alignment, etc. Core functionality is now running, with the desktop application connected to the existing ping backend and displaying latency statistics.
• Day 21 – Modern GUI and FlatLaf Setup – 10/19 • I installed FlatLaf, an open source java library for Java Swing applications . The goal with FlatLaf is to slowly “modernize” my app and overall make it look a lot more appealing to the user compared to it’s old basic java swing vibe. I struggled a lot with implementing FlatLaf and connecting it to my java swing application in VsCode, so I had to use some AI to figure out how to install FlatLat onto VsCode on a Windows desktop. I made a seperate folder called “Lib” and added the FlatLaf download file. For now, I have the core ping functionality/logic down, the basic GUI, and my next steps are clear: I want to have a working, publicly appealing app. Hopefully I can submit this into the Congressional App Challenge within the next week! • P.S: Starting from this post, from now on, I am beginning to change the format of my Devlogs. Originally, they were very structured and bullet pointed. However, after double checking StarDance guidelines for a proper post, I want to make my posts more understandable and readable starting now. Thank you!
# Day 22/23 - Major changes added! I focused on polishing my GUI for the app and implementing features like a connection health system that displays an overall connection health rather than having the user solely look at raw statistics. The app interprets 3 parameters after the ping tests: average latency, jitter, and packet loss. Jitter and packet loss is used to determine stability whereas average latency is used to determine response speeds/delay. There are currently 8 different possible outcomes such as “HIGHLY UNSTABLE,” “VERY SLOW,” “SOME INSTABILITY & SLOW SPEEDS,” and “STABLE.” This helps differentiate instability and speeds/delay as they are not the same thing. Additionally, Some important visual changes were using red, orange, or green to visually display the connection’s overall health. I Also spent time polishing the test count field box and delay field box alongside polishing button styles. After adjust the panel’s dimensions, they take up window space more appropriately, making the app look proportionate. Figuring out how to create metric cards (boxes with avg latency, jitter, etc.) and styling the project into an appealable GUI was especially challenging as I had to choose between various possible styles. I also have not been able to fix the test setting boxes missing a bottom side yet. After ~1 day I plan to ship my project officially and submit it to the Congressional App Challenge. Some possible minor features in the future may be light/dark mode and a visual feature, like a graph, to display ping results....
|
1793159369.722431
|
1793764169.722431
|
|
61606
|
STARBOY by @torren | Stardance
|
torren
|
0
|
37.29
|
0
|
[]
|
[{"post_id": 70725, "ts": "202 [{"post_id": 70725, "ts": "2026-09-19T17:35:19Z", "hours": 2.7944, "text": "this session was all about making starboy feel real before the parts even show up. the website now opens with an intro where he hops onto a dark stage, a spotlight flickers on and finds him, and when you hit “leap into the experience” he jumps straight at the camera and his screen opens up onto the page. i wrote a renderer from scratch so his body reads as actual polished chrome instead of flat grey, and gave him new glowing mint eyes. i also moved the keyring off the outside of the star and into a hole through its point, rebuilt the 3d files around it, and re-rendered everything in black chrome with a steel ring through it. every link and heading on the site now reacts when you hover, with letters that roll and ripple as your cursor moves over them. next up is building the real one once the parts arrive."}, {"post_id": 68299, "ts": "2026-09-14T21:44:02Z", "hours": 1.2147, "text": "parts aren’t here yet so this one was all software. the firmware compiles for the first time, and i wrote a hardware test that checks the screen, backlight and every sensor one by one so i can catch a bad wire before closing the shell. i added a tuning console so i can make him shiver, play any effect or change how sensitive he is over usb without reflashing. then i wrote tests for his mood logic, and they caught 3 bugs that would’ve only shown up on the real star: shaking froze his eyes, hanging on a belt loop counted as tilted forever so he’d never sleep, and my battery saver made him deaf while asleep. the website got a sensor sandbox where you control his temperature, noise, tilt and shake, plus you can tap any of the 400 eye looks to get the exact seed for a real star."}, {"post_id": 67838, "ts": "2026-09-14T03:13:14Z", "hours": 1.7747, "text": "i’m building a tiny wearable pet from scratch: a chrome star with a round screen for a face that clips onto your belt loop. he reacts to you, so shake him and he gets dizzy and mad, take him somewhere cold and he shivers, and yell near him and he gets nervous. every star rolls his own eyes on first boot, with 4 shapes and 100 colorways for 400 looks, and some only show up 0.04% of the time. i designed the 20.5mm shell in openscad with a stepped pocket so the 37.5mm screen board actually fits, hand-wired everything to a seeed xiao esp32c3, and finished the eye firmware with 20 rare effects. you can play with him live at starboy-diy.nadellasripad11.workers.dev, and next up the parts arrive so i can print and chrome the shell and wake him up for real 👀"}, {"post_id": 67386, "ts": "2026-09-13T14:09:53Z", "hours": 31.5061, "text": "star shaped keychain with a round display eye that reacts to shaking, cold, noise and gets sleepy when left alone. runs on an esp32-c3 with an accelerometer, temp sensor and mic, and every unit generates its own eye colours and pupil style from a seed so no two come out the same. the shell took a few tries to get right, first a rounded blob then long thin spikes, before landing on a fat middle with short points. caught a display pocket that was 4mm too small (every listing quotes the glass size, not the board) and the back engraving cutting into the electronics cavity, then added checks in the cad so those can’t sneak back in. stls are exported and ready."}]...
|
Title: STARBOY by @torren | Stardance
Devlogs:
st Title: STARBOY by @torren | Stardance
Devlogs:
star shaped keychain with a round display eye that reacts to shaking, cold, noise and gets sleepy when left alone. runs on an esp32-c3 with an accelerometer, temp sensor and mic, and every unit generates its own eye colours and pupil style from a seed so no two come out the same. the shell took a few tries to get right, first a rounded blob then long thin spikes, before landing on a fat middle with short points. caught a display pocket that was 4mm too small (every listing quotes the glass size, not the board) and the back engraving cutting into the electronics cavity, then added checks in the cad so those can’t sneak back in. stls are exported and ready.
i’m building a tiny wearable pet from scratch: a chrome star with a round screen for a face that clips onto your belt loop. he reacts to you, so shake him and he gets dizzy and mad, take him somewhere cold and he shivers, and yell near him and he gets nervous. every star rolls his own eyes on first boot, with 4 shapes and 100 colorways for 400 looks, and some only show up 0.04% of the time. i designed the 20.5mm shell in openscad with a stepped pocket so the 37.5mm screen board actually fits, hand-wired everything to a seeed xiao esp32c3, and finished the eye firmware with 20 rare effects. you can play with him live at starboy-diy.nadellasripad11.workers.dev, and next up the parts arrive so i can print and chrome the shell and wake him up for real 👀
parts aren’t here yet so this one was all software. the firmware compiles for the first time, and i wrote a hardware test that checks the screen, backlight and every sensor one by one so i can catch a bad wire before closing the shell. i added a tuning console so i can make him shiver, play any effect or change how sensitive he is over usb without reflashing. then i wrote tests for his mood logic, and they caught 3 bugs that would’ve only shown up on the real star: shaking froze his eyes, hanging on a belt loop counted as tilted forever so he’d never sleep, and my battery saver made him deaf while asleep. the website got a sensor sandbox where you control his temperature, noise, tilt and shake, plus you can tap any of the 400 eye looks to get the exact seed for a real star.
this session was all about making starboy feel real before the parts even show up. the website now opens with an intro where he hops onto a dark stage, a spotlight flickers on and finds him, and when you hit “leap into the experience” he jumps straight at the camera and his screen opens up onto the page. i wrote a renderer from scratch so his body reads as actual polished chrome instead of flat grey, and gave him new glowing mint eyes. i also moved the keyring off the outside of the star and into a hole through its point, rebuilt the 3d files around it, and re-rendered everything in black chrome with a steel ring through it. every link and heading on the site now reacts when you hover, with letters that roll and ripple as your cursor moves over them. next up is building the real one once the parts arrive....
|
1793040725.2536662
|
1793645525.2536662
|
|
1109
|
Trackion by @priyanshu | Stardance
|
priyanshu
|
1
|
37.26
|
142
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-30T02:16:21Z", "hours": 37.0, "multiplier": 14.18, "payout": 142, "blessing": "neutral", "text": "I have migrating this project from #macondo to #stardance. My devlogs for this much of time is recorded here https://macondo.hackclub.com/projects/5481 AND the project is not shipped so there is no reward I get from that event. Please don’t feel it as a inflated recorded time. I did put effort and logs everything i can. cc: @Carlson", "repo": "https://github.com/P8labs/trackion", "demo": "https://trackion.tech/"}]...
|
[{"post_id": 21305, "ts": "202 [{"post_id": 21305, "ts": "2026-07-03T04:52:36Z", "hours": 0.2611, "text": "As per the review I have added a DEMO video on landing page. Also now it is easy to setup the project also you can test with this example if you want https://github.com/P8labs/trackion-js/tree/master/examples/full-website Now it will be easy to review"}, {"post_id": 18874, "ts": "2026-06-30T02:12:43Z", "hours": 36.725, "text": "I have migrating this project from #macondo to #stardance. My devlogs for this much of time is recorded here https://macondo.hackclub.com/projects/5481 AND the project is not shipped so there is no reward I get from that event. Please don’t feel it as a inflated recorded time. I did put effort and logs everything i can."}]...
|
Title: Trackion by @priyanshu | Stardance
Devlogs Title: Trackion by @priyanshu | Stardance
Devlogs:
I have migrating this project from #macondo to #stardance. My devlogs for this much of time is recorded here https://macondo.hackclub.com/projects/5481 AND the project is not shipped so there is no reward I get from that event. Please don’t feel it as a inflated recorded time. I did put effort and logs everything i can.
As per the review I have added a DEMO video on landing page. Also now it is easy to setup the project also you can test with this example if you want https://github.com/P8labs/trackion-js/tree/master/examples/full-website Now it will be easy to review
Ships:
I have migrating this project from #macondo to #stardance. My devlogs for this much of time is recorded here https://macondo.hackclub.com/projects/5481 AND the project is not shipped so there is no reward I get from that event. Please don’t feel it as a inflated recorded time. I did put effort and logs everything i can. cc: @Carlson...
|
1793101670.7754939
|
1793188070.7754939
|
|
4170
|
The Chair by @eli_ozcan | Stardance
|
eli_ozcan
|
0
|
37.21
|
0
|
[]
|
[{"post_id": 70558, "ts": "202 [{"post_id": 70558, "ts": "2026-09-19T11:23:04Z", "hours": 3.655, "text": "CAD and Cleaning. Cleaned the chair with some rags and also lubricated gears with WD-40 to prepare for submission to my local fair. I also CADded a significant portion of the wheelbase in OnShape."}, {"post_id": 62832, "ts": "2026-09-06T11:17:28Z", "hours": 3.0989, "text": "Software Completion The chair finally drives reliably, and I can actually sit in it and move around now.The biggest challenge throughout the software was communication between the three Brains. I built a serial protocol that handles the startup handshake, LEFT/RIGHT assignment, health packets, retries, sequence/session validation, malformed frames, and local command timeouts. Early versions would still lose the link even when bytes were clearly being transmitted. This came from a combination of partial frames, serial self-echo, startup timing, and motor queries taking long enough to delay communication. I fixed these issues by improving the framing and recovery system, adding direction tags, limiting how much serial data can be processed in one loop, safely retrying packets, and prioritizing communication before slower motor checks.Motor initialization also caused problems because all of the V5 motors do not necessarily become available at exactly the same time after startup. Earlier versions would sometimes report motor disconnects or H-Bridge faults during startup. The drivetrain Brains now wait for every motor to begin returning valid health information before considering initialization complete. I also flipped the motor directions for the top and bottom of the drivetrain where needed.The controls were completed during this process. The broken throttle potentiometer was replaced with the Rotation Sensor on port 17. It now supports CENTER calibration and provides signed forward/reverse input. I corrected the steering direction and tuned the steering feedback. Controller mode now supports forward, reverse, normal turning, and turning in place.The safety system was also simplified into clear startup, parked, armed, and fault states. E-STOP is always available and is intentionally not recoverable without restarting the system. The drivetrain brakes use COAST.I moved the displays out of the main control path so rendering cannot interfere with serial communication. The master and drivetrain displays now provide live motor temperatures, faults, battery status, link state, steering/throttle positions, and communication diagnostics.I also updated VEXide and Rust during development. Current Issue I encountered one intermittent power issue during testing. The master Brain does not have its own battery and is powered through the Smart Cable connections from the two drivetrain Brains. During several tests, the master entered a white-screen state while one drivetrain Brain went completely black. The drivetrain side that shut off was not always the same.At the time, both drivetrain batteries were fairly low and were also at different charge levels, roughly 30–50%. I completely shut down the system, replaced both batteries, and restarted all three Brains. The issue stopped occurring after that, and the chair completed additional driving tests normally.My current theory is that the two independently powered drivetrain Brains may be interacting electrically through the master because the Smart Cable connections also carry power. Different battery voltages, or voltage sag while the motors were under load, may have caused a brief power transient. I have not confirmed this yet, so I am leaving the wiring unchanged while I collect more evidence.If the issue happens again, I may restructure the system so one drivetrain Brain also acts as the master, which would remove one Brain from the power-sharing arrangement. Another option would be changing how power is carried between the Brains while still keeping wired communication."}, {"post_id": 62524, "ts": "2026-09-05T22:56:47Z", "hours": 4.5833, "text": "Hardware Completion I finished the hardware on the chair. I added the bottom 2 drivetrain cortexes and connected everything to the master with smart cables. I added the batteries for them too. I figured out that the master cortex doesn’t need it’s own battery as it can be powered through the smart cables on p19-20 which connect to the drivetrain nodes. The batteries are shared across the whole system (3 cortex -> 2 lower bats powering wheels and controls + health checks). I added a small potentiometer and a gear to act as a speed controller but I have not determined exactly how I want to do that yet. I zip-tied all cables and such and tested that each one works and powers the device it connects to. All systems seem to be good in that regard. Added some bad off-center racing stripes lol and also fixed the sag on the steering wheel by adding an additional support screw. I also dusted and cleaned it because it was SO DIRTY from literally nothing. I temporarily moved it to my house so I can debug and program it at home. Bringing it back Sunday. TODO: Software & QA + Validation Master node will turn on first and wait for a connection from the two DT nodes. Then the DT nodes will recieve commands for voltages and will send back temperature and health records to ensure nothing breaks. If it gets too hot or too much tourque, it will initiate an emergency stop to ensure the saftey of the driver. Controls are TBD but it will also support a vex controller to drive it remotely. If a motor disconnects it will also shut down. I’m so excited this project is becoming real!!"}, {"post_id": 60426, "ts": "2026-09-02T18:48:45Z", "hours": 3.2472, "text": "Improve construction of chair and make it support ~160lbs of load(tested with the largest kid in my class). I am going to continue work on this. TODO: add more bar supports until I eventually reach the top. The wheels of the actual chair now float in the air which means it is fully supported by the base. I also switched the side the bars are on with the front half of the chair, they are held from the rear facing end now. This leaves plenty of room in the front for an eventual foot support, it also increases stability. Armrests were reinstalled again onto the new bar which goes across the front AND BACK. I ditched the middle-connectors and moved it to the back. This shifted where the center of mass could be which gives more opportunities for a rider stick their legs out. I personally rode around in it (not powered) by pushing the floor with my feet. This caused only the motors to spin. At this stage, enough rider weight will cause the chair to sag. To resolve this I am going to simply make the 4 pillars stronger on the cross-section by adding more horizontal bars. Overall difficulties when building this: the fact that the chair itself has weight and i couldn’t screw in or change stuff without having something holding it up… I chose to support it by 4 vex motors at a point. Screwing in at weird angles through multiple bars was pretty hard but I managed it (slowly). Overall TODO: MORE METAL everywhere. After this, I will add the cortexes and the steering wheel. This version is due for me by september 8th by lunch, we are going to use the chair to promote our robotics club at my high school at our club day fair (best decorated club table wins money for us) I plan on working more after school today. This log incorporates ~2 days of solid working hours."}, {"post_id": 21199, "ts": "2026-07-03T00:30:42Z", "hours": 2.7692, "text": "It works. I attached the drivetrain fully and then (not tracked oops) programmed a very simple mock control program and put it all on one brain (not final design). I no longer have access to my school as my job ended, I’ll finish this project when I come back to school in early August. I plan on (1) fixing the height of the drivetrain so it actually presses into the floor enough to drive smoothly, (2) reinstalling wheel and programming it for self driving, (3) final tweaks for stability"}, {"post_id": 16359, "ts": "2026-06-26T16:46:38Z", "hours": 2.2614, "text": "I got the drivetrain basically done"}, {"post_id": 14616, "ts": "2026-06-23T19:57:29Z", "hours": 1.1542, "text": "kinda dumb but I built the drivetrain and now I realize the gear is bigger than the wheel so it won’t move oops"}, {"post_id": 14565, "ts": "2026-06-23T18:48:45Z", "hours": 5.3917, "text": "Working on drivetrain now I also programmed the rest of the chair with a few safety settings so nobody gets hurt!"}, {"post_id": 12180, "ts": "2026-06-19T21:56:43Z", "hours": 2.2119, "text": "Re-added steering wheel with much stronger support bars and a shallower angle with a lower placement that makes it easier to see over and more comfortable to grip. I added the battery and a license plate to a new crossbar in the back."}, {"post_id": 12027, "ts": "2026-06-19T16:50:22Z", "hours": 0.7644, "text": "I took off the steering wheel so I can fix the wobble later, I am keeping that module though but extending the bar on the seatbelt thing"}, {"post_id": 11696, "ts": "2026-06-19T01:48:49Z", "hours": 0.5522, "text": "I switched this to a hardware project so I don’t have to use lapse anymore. I lost 4 hours today !! :| Anyways, I added the steering wheel today. It holds (kinda) well and it will (should) not fall off. Uses a Yoke design with a screen for HUD statistics like km/h and each node’s battery life, will program this later today. HUD will also be used for “ignition” and the unlock procedure. Considering using an SD card as a “key” for the “car”. The buttons on the wheel represent forward/reverse although I may want to make that it’s own gear shifter on the side and use both buttons as a forward (you have to click both, for saftey) I will also need to add the E-Stop somewhere. Excited how real this project is becoming!! Up next: 3D Printing a support bracket for the wheel bracket so that it doesn’t fall tf off anymore. (ribbed setup on the angled piece)"}, {"post_id": 11111, "ts": "2026-06-18T05:33:47Z", "hours": 6.0411, "text": "oh lord i forgot to make a devlog again… anyways throughout this time and many timelapses I have fully programmed the steering wheel code, it has a full resistance turning wheel that is based on a motor + its encoder. it uses the angle to determine what direction to steer and the wheel speed to determine how much force it adjusts back to the center with like a real automobile also I added a new bracket that mounts to the bottom of the chair with some drilled holes, this removes all wobble moreover, I added the steering wheel / front brace / steatbelt bar that falls down over you so you can grab the wheel and not go flying out (see fig. 1) room empty as week 1-2 kids no longer stay until 3rd and 4th period, however I now have much more time as my 4th period doesn’t exist anymore and I can grind for 2 hours minus my lunch time. That’s all folks, more updates coming soon. Hopefully, I’ll try to remember to post them this time."}, {"post_id": 3325, "ts": "2026-06-06T06:02:34Z", "hours": 1.4778, "text": "Started working on this old hunk of junk again. Me and my very technically literate friends got this idea at the start of the year. When we first entered the PLTW lab for the first time, we saw the chairs had wheels. Like a lightbulb, it clicked in all of our minds that we wanted to make a go kart… We didn’t work on it much, we snuck in during lunch freshman year but eventually the teacher in that room made us take it apart because we “were destroying school property” or whatever. To me, you just don’t like to have fun :( However, I’ve recently restarted. My friend group has recently been employed at our school to teach robotics to smelly middle schoolers over the summer (dude I thought me saying 67 was bad, GET A LOAD OF THESE GUYS). Together, our schedule has 2 free periods (as well as lunch) out of our 4 period day to do whatever in the PLTW room. Since we self-moderate ourselves and have our own keycards, we truly have free will to mess around with anything and everything. Currently, there is at least one Xbox from home and 3 computers loaded with Roblox on the DAILY. Overall, it’s just really nice being with your friends at school without going to school… Some of the middle schoolers like to stay in there during break/lunch to mess around with the parts, so I can’t lapse it during then. However, during my extra time, I am working on the chair or homework for my 4th period (pfft, I’d rather do the chair, its cool asf) To begin with the actual devlog, the chair part of the chair is a Rio 2 4-Leg Armless chair from SitOnIt Seating. It has an angled bottom with 4 screw holes – perfect for mounting something. Firstly, I dug up the old CAD files and trashed all of them starting from scratch. I took some measurements and 3D printed a new bracket for the bottom of the chair. Before, I just bent a piece of metal; but this time, i’d like to actually have something perfectly angled so it’s flat with the floor. I used Fusion 360 for all of my CAD work. In CAD, I designed a left and right armrest as well as a bar + some ziptie locations to keep everything stable (note, none of this was tracked. Moreover, I did some quick planning with ChatGPT to find an optimal drivetrain configuration. We settled on 200RPM with a 72:48T gear ratio (72T on motor, 48T on wheel) with 4 motors per side of a differential drivetrain for a total of 8. Some quick numbers: 24.8 lbf push forse and 3.57 mph, reasonable for a small vehicle but not a death kart. .. and then stardance started.. YUP! None of that work was tracked!! YIPEEE. Now, this is what I did in the 1h 28m: Afterwards, I began work on the actual construction. First I bolted on the bracket to the 3x C-Channel main bar. I then screwed it onto the chair and OOPS we need to drill some holes because my measurements were way off (screw you, old dial caliper.. or maybe I can’t read it idk). I built the left and right armrest models in real life in the PLTW room at my school. (lapsed) I then put them onto the bracket (lapsed) .. and finally, I built the motor frame for the left half of the drivetrain. That’s all folks, I hope (and am on track) to finish this in under a month, which is good because my summer school ends in 3 weeks.."}]...
|
Title: The Chair by @eli_ozcan | Stardance
Devlog Title: The Chair by @eli_ozcan | Stardance
Devlogs:
Started working on this old hunk of junk again. Me and my very technically literate friends got this idea at the start of the year. When we first entered the PLTW lab for the first time, we saw the chairs had wheels. Like a lightbulb, it clicked in all of our minds that we wanted to make a go kart… We didn’t work on it much, we snuck in during lunch freshman year but eventually the teacher in that room made us take it apart because we “were destroying school property” or whatever. To me, you just don’t like to have fun :( However, I’ve recently restarted. My friend group has recently been employed at our school to teach robotics to smelly middle schoolers over the summer (dude I thought me saying 67 was bad, GET A LOAD OF THESE GUYS). Together, our schedule has 2 free periods (as well as lunch) out of our 4 period day to do whatever in the PLTW room. Since we self-moderate ourselves and have our own keycards, we truly have free will to mess around with anything and everything. Currently, there is at least one Xbox from home and 3 computers loaded with Roblox on the DAILY. Overall, it’s just really nice being with your friends at school without going to school… Some of the middle schoolers like to stay in there during break/lunch to mess around with the parts, so I can’t lapse it during then. However, during my extra time, I am working on the chair or homework for my 4th period (pfft, I’d rather do the chair, its cool asf) To begin with the actual devlog, the chair part of the chair is a Rio 2 4-Leg Armless chair from SitOnIt Seating. It has an angled bottom with 4 screw holes – perfect for mounting something. Firstly, I dug up the old CAD files and trashed all of them starting from scratch. I took some measurements and 3D printed a new bracket for the bottom of the chair. Before, I just bent a piece of metal; but this time, i’d like to actually have something perfectly angled so it’s flat with the floor. I used Fusion 360 for all of my CAD work. In CAD, I designed a left and right armrest as well as a bar + some ziptie locations to keep everything stable (note, none of this was tracked. Moreover, I did some quick planning with ChatGPT to find an optimal drivetrain configuration. We settled on 200RPM with a 72:48T gear ratio (72T on motor, 48T on wheel) with 4 motors per side of a differential drivetrain for a total of 8. Some quick numbers: 24.8 lbf push forse and 3.57 mph, reasonable for a small vehicle but not a death kart. .. and then stardance started.. YUP! None of that work was tracked!! YIPEEE. Now, this is what I did in the 1h 28m: Afterwards, I began work on the actual construction. First I bolted on the bracket to the 3x C-Channel main bar. I then screwed it onto the chair and OOPS we need to drill some holes because my measurements were way off (screw you, old dial caliper.. or maybe I can’t read it idk). I built the left and right armrest models in real life in the PLTW room at my school. (lapsed) I then put them onto the bracket (lapsed) .. and finally, I built the motor frame for the left half of the drivetrain. That’s all folks, I hope (and am on track) to finish this in under a month, which is good because my summer school ends in 3 weeks..
oh lord i forgot to make a devlog again… anyways throughout this time and many timelapses I have fully programmed the steering wheel code, it has a full resistance turning wheel that is based on a motor + its encoder. it uses the angle to determine what direction to steer and the wheel speed to determine how much force it adjusts back to the center with like a real automobile also I added a new bracket that mounts to the bottom of the chair with some drilled holes, this removes all wobble moreover, I added the steering wheel / front brace / steatbelt bar that falls down over you so you can grab the wheel and not go flying out (see fig. 1) room empty as week 1-2 kids no longer stay until 3rd and 4th period, however I now have much more time as my 4th period doesn’t exist anymore and I can grind for 2 hours minus my lunch time. That’s all folks, more updates coming soon. Hopefully, I’ll try to remember to post them this time.
I switched this to a hardware project so I don’t have to use lapse anymore. I lost 4 hours today !! :| Anyways, I added the steering wheel today. It holds (kinda) well and it will (should) not fall off. Uses a Yoke design with a screen for HUD statistics like km/h and each node’s battery life, will program this later today. HUD will also be used for “ignition” and the unlock procedure. Considering using an SD card as a “key” for the “car”. The buttons on the wheel represent forward/reverse although I may want to make that it’s own gear shifter on the side and use both buttons as a forward (you have to click both, for saftey) I will also need to add the E-Stop somewhere. Excited how real this project is becoming!! Up next: 3D Printing a support bracket for the wheel bracket so that it doesn’t fall tf off anymore. (ribbed setup on the angled piece)
I took off the steering wheel so I can fix the wobble later, I am keeping that module though but extending the bar on the seatbelt thing
Re-added steering wheel with much stronger support bars and a shallower angle with a lower placement that makes it easier to see over and more comfortable to grip. I added the battery and a license plate to a new crossbar in the back.
Working on drivetrain now I also programmed the rest of the chair with a few safety settings so nobody gets hurt!
kinda dumb but I built the drivetrain and now I realize the gear is bigger than the wheel so it won’t move oops
I got the drivetrain basically done
It works. I attached the drivetrain fully and then (not tracked oops) programmed a very simple mock control program and put it all on one brain (not final design). I no longer have access to my school as my job ended, I’ll finish this project when I come back to school in early August. I plan on (1) fixing the height of the drivetrain so it actually presses into the floor enough to drive smoothly, (2) reinstalling wheel and programming it for self driving, (3) final tweaks for stability
Improve construction of chair and make it support ~160lbs of load(tested with the largest kid in my class). I am going to continue work on this. TODO: add more bar supports until I eventually reach the top. The wheels of the actual chair now float in the air which means it is fully supported by the base. I also switched the side the bars are on with the front half of the chair, they are held from the rear facing end now. This leaves plenty of room in the front for an eventual foot support, it also increases stability. Armrests were reinstalled again onto the new bar which goes across the front AND BACK. I ditched the middle-connectors and moved it to the back. This shifted where the center of mass could be which gives more opportunities for a rider stick their legs out. I personally rode around in it (not powered) by pushing the floor with my feet. This caused only the motors to spin. At this stage, enough rider weight will cause the chair to sag. To resolve this I am going to simply make the 4 pillars stronger on the cross-section by adding more horizontal bars. Overall difficulties when building this: the fact that the chair itself has weight and i couldn’t screw in or change stuff without having something holding it up… I chose to support it by 4 vex motors at a point. Screwing in at weird angles through multiple bars was pretty hard but I managed it (slowly). Overall TODO: MORE METAL everywhere. After this, I will add the cortexes and the steering wheel. This version is due for me by september 8th by lunch, we are going to use the chair to promote our robotics club at my high school at our club day fair (best decorated club table wins money for us) I plan on working more after school today. This log incorporates ~2 days of solid working hours.
Hardware Completion I finished the hardware on the chair. I added the bottom 2 drivetrain cortexes and connected everything to the master with smart cables. I added the batteries for them too. I figured out that the master cortex doesn’t need it’s own battery as it can be powered through the smart cables on p19-20 which connect to the drivetrain nodes. The batteries are shared across the whole system (3 cortex -> 2 lower bats powering wheels and controls + health checks). I added a small potentiometer and a gear to act as a speed controller but I have not determined exactly how I want to do that yet. I zip-tied all cables and such and tested that each one works and powers the device it connects to. All systems seem to be good in that regard. Added some bad off-center racing stripes lol and also fixed the sag on the steering wheel by adding an additional support screw. I also dusted and cleaned it because it was SO DIRTY from literally nothing. I temporarily moved it to my house so I can debug and program it at home. Bringing it back Sunday. TODO: Software & QA + Validation Master node will turn on first and wait for a connection from the two DT nodes. Then the DT nodes will recieve commands for voltages and will send back temperature and health records to ensure nothing breaks. If it gets too hot or too much tourque, it will initiate an emergency stop to ensure the saftey of the driver. Controls are TBD but it will also support a vex controller to drive it remotely. If a motor disconnects it will also shut down. I’m so excited this project is becoming real!!
Software Completion The chair finally drives reliably, and I can actually sit in it and move around now.The biggest challenge throughout the software was communication between the three Brains. I built a serial protocol that handles the startup handshake, LEFT/RIGHT assignment, health packets, retries, sequence/session validation, malformed frames, and local command timeouts. Early versions would still lose the link even when bytes were clearly being transmitted. This came from a combination of partial frames, serial self-echo, startup timing, and motor queries taking long enough to delay communication. I fixed these issues by improving the framing and recovery system, adding direction tags, limiting how much serial data can be processed in one loop, safely retrying packets, and prioritizing communication before slower motor checks.Motor initialization also caused problems because all of the V5 motors do not necessarily become available at exactly the same time after startup. Earlier versions would sometimes report motor disconnects or H-Bridge faults during startup. The drivetrain Brains now wait for every motor to begin returning valid health information before considering initialization complete. I also flipped the motor directions for the top and bottom of the drivetrain where needed.The controls were completed during this process. The broken throttle potentiometer was replaced with the Rotation Sensor on port 17. It now supports CENTER calibration and provides signed forward/reverse input. I corrected the steering direction and tuned the steering feedback. Controller mode now supports forward, reverse, normal turning, and turning in place.The safety system was also simplified into clear startup, parked, armed, and fault states. E-STOP is always available and is intentionally not recoverable without restarting the system. The drivetrain brakes use COAST.I moved the displays out of the main control path so rendering cannot interfere with serial communication. The master and drivetrain displays now provide live motor temperatures, faults, battery status, link state, steering/throttle positions, and communication diagnostics.I also updated VEXide and Rust during development. Current Issue I encountered one intermittent power issue during testing. The master Brain does not have its own battery and is powered through the Smart Cable connections from the two drivetrain Brains. During several tests, the master entered a white-screen state while one drivetrain Brain went completely black. The drivetrain side that shut off was not always the same.At the time, both drivetrain batteries were fairly low and were also at different charge levels, roughly 30–50%. I completely shut down the system, replaced both batteries, and restarted all three Brains. The issue stopped occurring after that, and the chair completed additional driving tests normally.My current theory is that the two independently powered drivetrain Brains may be interacting electrically through the master because the Smart Cable connections also carry power. Different battery voltages, or voltage sag while the motors were under load, may have caused a brief power transient. I have not confirmed this yet, so I am leaving the wiring unchanged while I collect more evidence.If the issue happens again, I may restructure the system so one drivetrain Brain also acts as the master, which would remove one Brain from the power-sharing arrangement. Another option would be changing how power is carried between the Brains while still keeping wired communication.
CAD and Cleaning. Cleaned the chair with some rags and also lubricated gears with WD-40 to prepare for submission to my local fair. I also CADded a significant portion of the wheelbase in OnShape....
|
1792730942.941369
|
1793335742.941369
|
|
50022
|
MechanicaSaveFix by @Oignontom8283 | Stardance
|
Oignontom8283
|
0
|
37.2
|
0
|
[]
|
[{"post_id": 76703, "ts": "202 [{"post_id": 76703, "ts": "2026-10-04T11:37:14Z", "hours": 3.8622, "text": "v0.12.0 Version v0.11.0 introduced a system that checks the GitHub repository for new versions of the mod.As for v0.12.0 … I ended up finding a bug that was causing certain item categories to be duplicated whenever a save was reloaded. I spent quite a bit of time tracking down the issue and fixing it, and it ended up requiring some fairly significant changes to the VFS.(Nothing too crazy, though. I basically just added explicit directory tracking so that empty directories are still properly preserved.) Anyway, it works now! :3"}, {"post_id": 68309, "ts": "2026-09-14T22:07:56Z", "hours": 7.2778, "text": "v0.10.0 There we go! The mod is technically functional and usable. All that’s left is getting other people to test it and adding a couple more things, like an update check, and that’s it (: What’s changed: Added a configuration file for the mod. Added several features driven by settings from the configuration file. Patched the new world creation menu to directly create a save in the new format. Reorganized a good chunk of the code in the larger files (Utils.cs, VirtualFS.cs, SaveMenu.cs). Progress so far: ✅ VFS (Virtual File System). ✅ Write the fake System.IO functions. ✅ Write/Read the .msa (Mechanica Save Archive) file. ✅ Intercepting the system functions. ✅ Write the triggers that will fire the capture/emission of virtual files. ✅ Add display/support for the new save format in the world selection menu. ✅ Config file ❌ [Optional] Fix non-blocking base-game load/save errors that clutter the console."}, {"post_id": 59545, "ts": "2026-09-01T13:00:09Z", "hours": 5.6392, "text": "v0.8.1 I thought this step was going to be simple… Not at all! It’s been a nightmare of an ordeal. The save selection menu’s code (its logic) was basically one flat, tangled plate of spaghetti. The base game used a bunch of dictionaries to store data and look it back up. The functions tied to the buttons used the Rect object handed to the class to look up the data they needed. Why hand over an object to look up data through a dictionary when you can just pass the function what it needs directly… I completely rewrote the menu’s behavior from scratch, cleanly, to support displaying and loading saves in their new archive form. What’s changed: Rewrote the save selection menu so it lists both classic save folders and the new .msa archives side by side. Added a proper confirmation popup (reused for save deletion, and reusable for anything else later) instead of the base game’s tangled state. Rebuilt the difficulty settings screen flow so it works the same way whether the save is a folder or an archive. Deleting a save now works for both save folders and .msa archives. Fixed thumbnails not showing for saves without a screenshot. Hooked up unloading the virtual file system when leaving a world, so you can load another world without restarting the game. Squashed a good number of bugs along the way (mixed up path separators, wrong field types, missing state resets) that only showed up once real saves were being loaded and listed. Progress so far: ✅ VFS (Virtual File System). ✅ Write the fake System.IO functions. ✅ Write/Read the .msa (Mechanica Save Archive) file. ✅ Intercepting the system functions. ✅ Write the triggers that will fire the capture/emission of virtual files. ✅ Add display/support for the new save format in the world selection menu. ❌ Add a config file, [deinitialize the VFS on world exit - Early Done], and other minor details/improvements (new) ❌ [Optional] Fix non-blocking base-game load/save errors that clutter the console."}, {"post_id": 54801, "ts": "2026-08-25T22:40:21Z", "hours": 7.2544, "text": "0.6.0 It wasn’t as simple as expected… But it works now! You can load a normal world, and on the first save it will be converted into a .msa archive. From then on, whenever you try to load a world that has an archived version, that version will be loaded instead of the other one. What’s changed: Fixed VirtualFS incorrectly normalizing the root save path, which caused it to no longer match the paths built by the game itself, breaking file lookups everywhere. Fixed QueryEntries not sanitizing multi-level directory paths, which caused Directory.GetFiles / GetDirectories to return nothing for nested folders (welds, anchors, etc.). Fixed reconstructed paths mixing / and \\ separators, which broke the game’s own string comparisons (e.g. RemoveOldFiles deleting everything instead of only orphaned files). Added patches for DirectoryInfo / FileInfo instance methods ( GetFiles , GetDirectories , CreateSubdirectory , Exists ), which weren’t covered by the static File / Directory patches. Simplified VirtualFS ‘s internal mode from three states ( Idle / Capturing / Playback ) down to two ( Idle / Intercepting ), since capture and playback behaved identically from the interception logic’s point of view. Wrote the Save() / LoadSave() coroutine wrappers that trigger the capture/playback cycle and commit/load the .msa archive. Progress so far: ✅ VFS (Virtual File System). ✅ Write the fake System.IO functions. ✅ Write/Read the .msa (Mechanica Save Archive) file. ✅ Intercepting the system functions. ✅ Write the triggers that will fire the capture/emission of virtual files. ❌ Add display/support for the new save format in the world selection menu. ❌ Add a config file, deinitialize the VFS on world exit, and other minor details/improvements (new) ❌ [Optional] Fix non-blocking base-game load/save errors that clutter the console. (new)"}, {"post_id": 51323, "ts": "2026-08-20T22:10:26Z", "hours": 0.9206, "text": "v0.5.1 I added the Harmony patches to intercept System.IO functions. It was long and repetitive 👍. What’s changed: Add src\\Patches\\io\\Directory.cs for the directory-related function patches. Add src\\Patches\\io\\File.cs for the file-related function patches. Removed old test files for writing/reading files. Progress so far: ✅ VFS (Virtual File System). ✅ Write the fake System.IO functions. ✅ Write/Read the .msa (Mechanica Save Archive) file. ✅ Intercepting the system functions. ❌ Write the triggers that will fire the capture/emission of virtual files. ❌ Add display/support for the new save format in the world selection menu. The next step should let me run the first tests, which will probably be followed by some bug fixes. Hopefully not 🤞."}, {"post_id": 50577, "ts": "2026-08-19T19:38:17Z", "hours": 1.9633, "text": "v0.4.1 I almost went CRAZY 😰 I ran into an architecture problem, and I was about two steps away from refactoring EVERYTHING to make it clean. I finally found a solution. It’s not the cleanest, but I didn’t have any other idea. So the world-swap function lives inside the VFS. In the end it’s just a matter of roles/responsibilities, nothing technically blocking really 😅. What’s changed: Add method to write the VFS to a zip archive. Add method to load a zip archive into the VFS. Add method to replace the world’s save with the new one and move the previous version to backup. Improved the versioning system, and included build info (hash, time…). Progress so far: ✅ VFS (Virtual File System). ✅ Write the fake System.IO functions. ✅ Write/Read the .msa (Mechanica Save Archive) file. ❌ Intercepting the system functions. ❌ Write the triggers that will fire the capture/emission of virtual files. ❌ Add display/support for the new save format in the world selection menu."}, {"post_id": 50082, "ts": "2026-08-19T04:29:19Z", "hours": 1.5697, "text": "Mostly environment/tooling additions and improvements. What’s changed: Add build.yml GitHub CI, to verify that commits and PRs compile. Add release.yml GitHub CI, to build and attach the mod to releases. Minor tweaks to the build script. Add a VSCode task to build the project without running a command. Progress so far (so no changes here ¯ _ (ツ)_/¯): ✅ VFS (Virtual File System). ✅ Write the fake System.IO functions. ❌ Write/Read the .msa (Mechanica Save Archive) file. ❌ Intercepting the system functions. ❌ Write the triggers that will fire the capture/emission of virtual files. ❌ Add display/support for the new save format in the world selection menu."}, {"post_id": 49874, "ts": "2026-08-18T20:28:48Z", "hours": 0.9658, "text": "I finished the Forward component, which faithfully reproduces every System.IO function (the functions used to interact with the computer’s file system). Why? : I need functions with the exact same API, since I’m going to intercept the game’s disk read/write functions to stop it from writing thousands of small files and folders. What’s changed: Add VirtualFS.DeleteFile() Add VirtualFS.DeleteFileNoThrow() ( System.IO ‘s Delete function doesn’t throw an error, unlike VirtualFS.DeleteFile() , so I made an alternative to properly mimic Delete ’s behavior. Add Forward.cs Progress so far: ✅ VFS (Virtual File System). ✅ Write the fake System.IO functions. ❌ Write/Read the .msa (Mechanica Save Archive) file. ❌ Intercepting the system functions. ❌ Write the triggers that will fire the capture/emission of virtual files. ❌ Add display/support for the new save format in the world selection menu."}, {"post_id": 49417, "ts": "2026-08-18T07:44:51Z", "hours": 7.745, "text": "I have to admit I’ve been working on reverse-engineering / decompiling this game for a long time now, so getting set up was pretty quick. I established the mod/patch structure, refactored it, refactored it again, until I landed on my current plan. Right now I’ve only written VirtualFS.cs , which contains the virtual file system that will intercept System.IO requests to prevent them from writing to disk. Next I’ll move on to writing the fake System.IO functions (write a file, read a file, etc.), the functions that will write and read the save in .zip format, the patches for the system functions, the triggers, and finally the interface. Progress so far: ✅ VFS (Virtual File System). ❌ Write the fake System.IO functions. ❌ Write/Read the .msa (Mechanica Save Archive) file. ❌ Intercepting the system functions. ❌ Write the triggers that will fire the capture/emission of virtual files. ❌ Add display/support for the new save format in the world selection menu. Markdown checkboxes don’t work… so I’m using good old emojis instead. ¯ _ (ツ)_/¯"}]...
|
Title: MechanicaSaveFix by @Oignontom8283 | Starda Title: MechanicaSaveFix by @Oignontom8283 | Stardance
Devlogs:
I have to admit I’ve been working on reverse-engineering / decompiling this game for a long time now, so getting set up was pretty quick. I established the mod/patch structure, refactored it, refactored it again, until I landed on my current plan. Right now I’ve only written VirtualFS.cs , which contains the virtual file system that will intercept System.IO requests to prevent them from writing to disk. Next I’ll move on to writing the fake System.IO functions (write a file, read a file, etc.), the functions that will write and read the save in .zip format, the patches for the system functions, the triggers, and finally the interface. Progress so far: ✅ VFS (Virtual File System). ❌ Write the fake System.IO functions. ❌ Write/Read the .msa (Mechanica Save Archive) file. ❌ Intercepting the system functions. ❌ Write the triggers that will fire the capture/emission of virtual files. ❌ Add display/support for the new save format in the world selection menu. Markdown checkboxes don’t work… so I’m using good old emojis instead. ¯ _ (ツ)_/¯
I finished the Forward component, which faithfully reproduces every System.IO function (the functions used to interact with the computer’s file system). Why? : I need functions with the exact same API, since I’m going to intercept the game’s disk read/write functions to stop it from writing thousands of small files and folders. What’s changed: Add VirtualFS.DeleteFile() Add VirtualFS.DeleteFileNoThrow() ( System.IO ‘s Delete function doesn’t throw an error, unlike VirtualFS.DeleteFile() , so I made an alternative to properly mimic Delete ’s behavior. Add Forward.cs Progress so far: ✅ VFS (Virtual File System). ✅ Write the fake System.IO functions. ❌ Write/Read the .msa (Mechanica Save Archive) file. ❌ Intercepting the system functions. ❌ Write the triggers that will fire the capture/emission of virtual files. ❌ Add display/support for the new save format in the world selection menu.
Mostly environment/tooling additions and improvements. What’s changed: Add build.yml GitHub CI, to verify that commits and PRs compile. Add release.yml GitHub CI, to build and attach the mod to releases. Minor tweaks to the build script. Add a VSCode task to build the project without running a command. Progress so far (so no changes here ¯ _ (ツ)_/¯): ✅ VFS (Virtual File System). ✅ Write the fake System.IO functions. ❌ Write/Read the .msa (Mechanica Save Archive) file. ❌ Intercepting the system functions. ❌ Write the triggers that will fire the capture/emission of virtual files. ❌ Add display/support for the new save format in the world selection menu.
v0.4.1 I almost went CRAZY 😰 I ran into an architecture problem, and I was about two steps away from refactoring EVERYTHING to make it clean. I finally found a solution. It’s not the cleanest, but I didn’t have any other idea. So the world-swap function lives inside the VFS. In the end it’s just a matter of roles/responsibilities, nothing technically blocking really 😅. What’s changed: Add method to write the VFS to a zip archive. Add method to load a zip archive into the VFS. Add method to replace the world’s save with the new one and move the previous version to backup. Improved the versioning system, and included build info (hash, time…). Progress so far: ✅ VFS (Virtual File System). ✅ Write the fake System.IO functions. ✅ Write/Read the .msa (Mechanica Save Archive) file. ❌ Intercepting the system functions. ❌ Write the triggers that will fire the capture/emission of virtual files. ❌ Add display/support for the new save format in the world selection menu.
v0.5.1 I added the Harmony patches to intercept System.IO functions. It was long and repetitive 👍. What’s changed: Add src\Patches\io\Directory.cs for the directory-related function patches. Add src\Patches\io\File.cs for the file-related function patches. Removed old test files for writing/reading files. Progress so far: ✅ VFS (Virtual File System). ✅ Write the fake System.IO functions. ✅ Write/Read the .msa (Mechanica Save Archive) file. ✅ Intercepting the system functions. ❌ Write the triggers that will fire the capture/emission of virtual files. ❌ Add display/support for the new save format in the world selection menu. The next step should let me run the first tests, which will probably be followed by some bug fixes. Hopefully not 🤞.
0.6.0 It wasn’t as simple as expected… But it works now! You can load a normal world, and on the first save it will be converted into a .msa archive. From then on, whenever you try to load a world that has an archived version, that version will be loaded instead of the other one. What’s changed: Fixed VirtualFS incorrectly normalizing the root save path, which caused it to no longer match the paths built by the game itself, breaking file lookups everywhere. Fixed QueryEntries not sanitizing multi-level directory paths, which caused Directory.GetFiles / GetDirectories to return nothing for nested folders (welds, anchors, etc.). Fixed reconstructed paths mixing / and \ separators, which broke the game’s own string comparisons (e.g. RemoveOldFiles deleting everything instead of only orphaned files). Added patches for DirectoryInfo / FileInfo instance methods ( GetFiles , GetDirectories , CreateSubdirectory , Exists ), which weren’t covered by the static File / Directory patches. Simplified VirtualFS ‘s internal mode from three states ( Idle / Capturing / Playback ) down to two ( Idle / Intercepting ), since capture and playback behaved identically from the interception logic’s point of view. Wrote the Save() / LoadSave() coroutine wrappers that trigger the capture/playback cycle and commit/load the .msa archive. Progress so far: ✅ VFS (Virtual File System). ✅ Write the fake System.IO functions. ✅ Write/Read the .msa (Mechanica Save Archive) file. ✅ Intercepting the system functions. ✅ Write the triggers that will fire the capture/emission of virtual files. ❌ Add display/support for the new save format in the world selection menu. ❌ Add a config file, deinitialize the VFS on world exit, and other minor details/improvements (new) ❌ [Optional] Fix non-blocking base-game load/save errors that clutter the console. (new)
v0.8.1 I thought this step was going to be simple… Not at all! It’s been a nightmare of an ordeal. The save selection menu’s code (its logic) was basically one flat, tangled plate of spaghetti. The base game used a bunch of dictionaries to store data and look it back up. The functions tied to the buttons used the Rect object handed to the class to look up the data they needed. Why hand over an object to look up data through a dictionary when you can just pass the function what it needs directly… I completely rewrote the menu’s behavior from scratch, cleanly, to support displaying and loading saves in their new archive form. What’s changed: Rewrote the save selection menu so it lists both classic save folders and the new .msa archives side by side. Added a proper confirmation popup (reused for save deletion, and reusable for anything else later) instead of the base game’s tangled state. Rebuilt the difficulty settings screen flow so it works the same way whether the save is a folder or an archive. Deleting a save now works for both save folders and .msa archives. Fixed thumbnails not showing for saves without a screenshot. Hooked up unloading the virtual file system when leaving a world, so you can load another world without restarting the game. Squashed a good number of bugs along the way (mixed up path separators, wrong field types, missing state resets) that only showed up once real saves were being loaded and listed. Progress so far: ✅ VFS (Virtual File System). ✅ Write the fake System.IO functions. ✅ Write/Read the .msa (Mechanica Save Archive) file. ✅ Intercepting the system functions. ✅ Write the triggers that will fire the capture/emission of virtual files. ✅ Add display/support for the new save format in the world selection menu. ❌ Add a config file, [deinitialize the VFS on world exit - Early Done], and other minor details/improvements (new) ❌ [Optional] Fix non-blocking base-game load/save errors that clutter the console.
v0.10.0 There we go! The mod is technically functional and usable. All that’s left is getting other people to test it and adding a couple more things, like an update check, and that’s it (: What’s changed: Added a configuration file for the mod. Added several features driven by settings from the configuration file. Patched the new world creation menu to directly create a save in the new format. Reorganized a good chunk of the code in the larger files (Utils.cs, VirtualFS.cs, SaveMenu.cs). Progress so far: ✅ VFS (Virtual File System). ✅ Write the fake System.IO functions. ✅ Write/Read the .msa (Mechanica Save Archive) file. ✅ Intercepting the system functions. ✅ Write the triggers that will fire the capture/emission of virtual files. ✅ Add display/support for the new save format in the world selection menu. ✅ Config file ❌ [Optional] Fix non-blocking base-game load/save errors that clutter the console.
v0.12.0 Version v0.11.0 introduced a system that checks the GitHub repository for new versions of the mod.As for v0.12.0 … I ended up finding a bug that was causing certain item categories to be duplicated whenever a save was reloaded. I spent quite a bit of time tracking down the issue and fixing it, and it ended up requiring some fairly significant changes to the VFS.(Nothing too crazy, though. I basically just added explicit directory tracking so that empty directories are still properly preserved.) Anyway, it works now! :3...
|
1792615755.7031336
|
1793220555.7031336
|
|
46456
|
Tanjiro themed personal website by @Tanjiro | Star Tanjiro themed personal website by @Tanjiro | Stardance...
|
Tanjiro
|
1
|
37.17
|
528
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-05T13:07:45Z", "hours": 32.0, "multiplier": 16.62, "payout": 528, "blessing": "neutral", "text": "A Tanjiro-Themed Personal Portfolio that uses Vanilla HTML, CSS and JS with a bit of GSAP! Challenges and Difficulties :- Figuring out the responsive layout for website - I did not start with a responsive layout, which caused a lot of trouble just making section 1 responsive was so difficult that it lot more than 6 hours IG Understanding and Writing code for scroll-animation canvas - This was a lot tuff than I thought like every frame must be numbered and counted and what not. Honestly, it was a great learning journey! Making that scroll-animation Canvas Responsive - From the start I knew that this will be a lot tuff, but I did not expect this much like it made my js code’s line count from 100 to near 200 lines! Entire Section 4 - This section was really Precious to me cause it had every interest I had and liked, every hour I spent into building this section was WORTH IT. Learnings :- Understood why to start and maintain responsiveness. How scroll-animation canvas is made and how apple makes them Flexbox and Gridboxes Much more in JS A lot of CSS", "repo": "https://github.com/YOBO-DANCE/Tanjiro-Themed-Personal-Website", "demo": "https://tanjiro-themed-personal-website.vercel.app/"}]...
|
[{"post_id": 67893, "ts": "202 [{"post_id": 67893, "ts": "2026-09-14T06:12:26Z", "hours": 1.4844, "text": "Okay, now every AI imagery is removed and the project is ready to be shipped!"}, {"post_id": 66725, "ts": "2026-09-12T16:50:27Z", "hours": 1.6397, "text": "Devlog 24 - I removed the section where the Ai generated imagery is located aka the scroll-driven animation and added a much lovely and nice section design for the section"}, {"post_id": 64938, "ts": "2026-09-09T17:42:53Z", "hours": 1.0211, "text": "Devlog 21 - So I Again got some recommendation and changes requested so I will do them, but today I did half of the work. Tmr I will do the next half"}, {"post_id": 63994, "ts": "2026-09-08T03:01:52Z", "hours": 0.25, "text": "Devlog 20 - So I got so many recomdations and I made the changes! Note for shipwrights - I first made the README with AI because I didn’t knew what to write, but after it I completely rewrote the README as per my requirements and then only shipped the project. So, it might feel like AI, but it really isn’t."}, {"post_id": 62758, "ts": "2026-09-06T08:47:33Z", "hours": 0.7736, "text": "Devlog 19 - Okay so I did some changes to the code and README. The layout is still same tho!"}, {"post_id": 62163, "ts": "2026-09-05T12:52:41Z", "hours": 3.7817, "text": "My Project is ready to be shipped!!!!!"}, {"post_id": 61619, "ts": "2026-09-04T16:37:48Z", "hours": 0.35, "text": "Devlog 18 - Tried to deploy but my internet gave up"}, {"post_id": 60861, "ts": "2026-09-03T14:21:49Z", "hours": 4.4564, "text": "Devlog 18 - Completed Section 4 and added a custom trail custom which mimics fire"}, {"post_id": 60271, "ts": "2026-09-02T15:22:51Z", "hours": 0.5767, "text": "Devlog 17 - Section 4 is such a Headache and I cannot understand it"}, {"post_id": 60250, "ts": "2026-09-02T14:40:48Z", "hours": 0.5303, "text": "Devlog 16 - Starting Section 4 i.e. My Goals! Wish me Luck!"}, {"post_id": 59543, "ts": "2026-09-01T12:57:56Z", "hours": 1.4031, "text": "Devlog 15 - Milestone: Completed Section 3/bio section What changes did I made? I added a grid structure Added another carousel, so the main text is wrapped around the carousel Added a Glass Box around the paragraph for aesthetics! Made it responsive!!! Good Bye"}, {"post_id": 58075, "ts": "2026-08-30T12:47:53Z", "hours": 0.4658, "text": "Devlog 14 - Working on the paragraph"}, {"post_id": 57518, "ts": "2026-08-29T18:01:38Z", "hours": 1.6658, "text": "Devlog 13 - Today I did some tweaking around and this is the result. Also now I added a dropshadow type effect to the scroll animation."}, {"post_id": 53019, "ts": "2026-08-23T12:23:06Z", "hours": 1.6194, "text": "Devlog 12 - Did some learning and working today! Nothing else!"}, {"post_id": 52466, "ts": "2026-08-22T16:19:40Z", "hours": 0.3833, "text": "Devlog 11 - why the F#ck does AI mess up so much!!!!! So I tried to generate the scroll-driven animation video using google flow, but it has caused so much problems because it just keeps making tanjiro’s hand being on the sheath rather than being on the sword handle like it should. Will try again, see ya later!"}, {"post_id": 52169, "ts": "2026-08-22T08:09:10Z", "hours": 1.0378, "text": "Devlog 10 - Today I am completely annoyed because a f#cking font won’t load or is even trying. It feels like programming has been an AI, forgetting as the context becomes larger. I can’t even load those fonts. Also I learned some CSS grid today!"}, {"post_id": 51923, "ts": "2026-08-21T20:51:10Z", "hours": 4.1367, "text": "Devlog 9 - So I completed a portrait mode of scroll-driven animation and it was a mess because the ai video generation kept messin’ up and it took 4 tries just to get correct angle. Now I just need to start with next section of the website. Hope to see ya!"}, {"post_id": 51575, "ts": "2026-08-21T10:55:58Z", "hours": 3.6494, "text": "Devlog 8 - So I worked on nav menu trying to make it like a proper liquid glass only to fail :( and then I started to work on second page whose start will be a scrollable animation like freaking Apple’s websites. IG, this will be a big project, and with that my whole morning, afternoon and evening is gone! 🥲"}, {"post_id": 51088, "ts": "2026-08-20T16:09:59Z", "hours": 0.3383, "text": "Devlog 7 - So I finished responsive work on first page, now onto making second page"}, {"post_id": 51052, "ts": "2026-08-20T15:12:53Z", "hours": 0.7858, "text": "Devlog 6 - Got a new problem, So I just added some Responsive CSS and now the Nav links are at extremely left. This is caused by the changes in the html structure and now I think I am losing my mind!!!!!??"}, {"post_id": 47969, "ts": "2026-08-16T07:42:53Z", "hours": 0.9731, "text": "Devlog 5 - Learning some CSS flexbox! Can’t wait to use it >.<"}, {"post_id": 47592, "ts": "2026-08-15T16:06:43Z", "hours": 1.2222, "text": "Devlog 4 - Learned Media queries, Css variables, positioning, Clamp property, etc."}, {"post_id": 47495, "ts": "2026-08-15T13:20:42Z", "hours": 2.7556, "text": "Devlog 3 - Some Major Changes! I Added a background video playing some demon slayer, and took inspiration from liquid GL”ASS”"}, {"post_id": 44834, "ts": "2026-08-10T21:09:39Z", "hours": 0.4383, "text": "Devlog 2 - SO I detached the navbar from the website and added some inner box shadow, according to me it looks great!"}, {"post_id": 44803, "ts": "2026-08-10T20:29:59Z", "hours": 1.1994, "text": "Devlog 1 - Today I added a basic Navbar with a little CSS to it!"}]...
|
Title: Tanjiro themed personal website by @Tanjiro Title: Tanjiro themed personal website by @Tanjiro | Stardance
Devlogs:
Devlog 1 - Today I added a basic Navbar with a little CSS to it!
Devlog 2 - SO I detached the navbar from the website and added some inner box shadow, according to me it looks great!
Devlog 3 - Some Major Changes! I Added a background video playing some demon slayer, and took inspiration from liquid GL”ASS”
Devlog 4 - Learned Media queries, Css variables, positioning, Clamp property, etc.
Devlog 5 - Learning some CSS flexbox! Can’t wait to use it >.<
Devlog 6 - Got a new problem, So I just added some Responsive CSS and now the Nav links are at extremely left. This is caused by the changes in the html structure and now I think I am losing my mind!!!!!??
Devlog 7 - So I finished responsive work on first page, now onto making second page
Devlog 8 - So I worked on nav menu trying to make it like a proper liquid glass only to fail :( and then I started to work on second page whose start will be a scrollable animation like freaking Apple’s websites. IG, this will be a big project, and with that my whole morning, afternoon and evening is gone! 🥲
Devlog 9 - So I completed a portrait mode of scroll-driven animation and it was a mess because the ai video generation kept messin’ up and it took 4 tries just to get correct angle. Now I just need to start with next section of the website. Hope to see ya!
Devlog 10 - Today I am completely annoyed because a f#cking font won’t load or is even trying. It feels like programming has been an AI, forgetting as the context becomes larger. I can’t even load those fonts. Also I learned some CSS grid today!
Devlog 11 - why the F#ck does AI mess up so much!!!!! So I tried to generate the scroll-driven animation video using google flow, but it has caused so much problems because it just keeps making tanjiro’s hand being on the sheath rather than being on the sword handle like it should. Will try again, see ya later!
Devlog 12 - Did some learning and working today! Nothing else!
Devlog 13 - Today I did some tweaking around and this is the result. Also now I added a dropshadow type effect to the scroll animation.
Devlog 14 - Working on the paragraph
Devlog 15 - Milestone: Completed Section 3/bio section What changes did I made? I added a grid structure Added another carousel, so the main text is wrapped around the carousel Added a Glass Box around the paragraph for aesthetics! Made it responsive!!! Good Bye
Devlog 16 - Starting Section 4 i.e. My Goals! Wish me Luck!
Devlog 17 - Section 4 is such a Headache and I cannot understand it
Devlog 18 - Completed Section 4 and added a custom trail custom which mimics fire
Devlog 18 - Tried to deploy but my internet gave up
My Project is ready to be shipped!!!!!
Devlog 19 - Okay so I did some changes to the code and README. The layout is still same tho!
Devlog 20 - So I got so many recomdations and I made the changes! Note for shipwrights - I first made the README with AI because I didn’t knew what to write, but after it I completely rewrote the README as per my requirements and then only shipped the project. So, it might feel like AI, but it really isn’t.
Devlog 21 - So I Again got some recommendation and changes requested so I will do them, but today I did half of the work. Tmr I will do the next half
Devlog 24 - I removed the section where the Ai generated imagery is located aka the scroll-driven animation and added a much lovely and nice section design for the section
Okay, now every AI imagery is removed and the project is ready to be shipped!
Ships:
A Tanjiro-Themed Personal Portfolio that uses Vanilla HTML, CSS and JS with a bit of GSAP! Challenges and Difficulties :- Figuring out the responsive layout for website - I did not start with a responsive layout, which caused a lot of trouble just making section 1 responsive was so difficult that it lot more than 6 hours IG Understanding and Writing code for scroll-animation canvas - This was a lot tuff than I thought like every frame must be numbered and counted and what not. Honestly, it was a great learning journey! Making that scroll-animation Canvas Responsive - From the start I knew that this will be a lot tuff, but I did not expect this much like it made my js code’s line count from 100 to near 200 lines! Entire Section 4 - This section was really Precious to me cause it had every interest I had and liked, every hour I spent into building this section was WORTH IT. Learnings :- Understood why to start and maintain responsiveness. How scroll-animation canvas is made and how apple makes them Flexbox and Gridboxes Much more in JS A lot of CSS...
|
1793127210.1716876
|
1793213610.1716876
|
|
280
|
Ks' Corner by @Ks | Stardance
|
Ks
|
2
|
37.14
|
325
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-12T22:34:46Z", "hours": 15.0, "multiplier": 12.18, "payout": 177, "blessing": "neutral", "text": "This website is still a work in progress, but am shipping right now for Playground [I don’t know how to add it to the mission though] (Note: Find Lavender though Games -> Lavender’s Home -> Lavender) I hated doing the phone version, couldn’t get patting for the phone in any single way, but it works well on PC, (hover the mouse and move it a bit) In this update you also have the main Math page, still working on the smaller pages, might have to bring up Manim or something soon for them, and added a calculator!", "repo": "https://github.com/Ks-Marbs/ks-corner", "demo": "https://ks-marbs.github.io/ks-corner/"}, {"ship_num": 2, "ts": "2026-06-29T19:55:54Z", "hours": 20.0, "multiplier": 7.33, "payout": 148, "blessing": "neutral", "text": "My first website attempt Honestly too lazy to learn HTML so made it in Godot ’o-o Any and all feedback is appreciated", "repo": "https://github.com/Ks-Marbs/ks-corner", "demo": "https://ks-marbs.github.io/ks-corner/"}]...
|
[{"post_id": 81479, "ts": "202 [{"post_id": 81479, "ts": "2026-10-21T12:45:22Z", "hours": 2.1442, "text": "Added small pages for all three of my [old] series Tweaked Lavender a bit too"}, {"post_id": 79180, "ts": "2026-10-12T22:28:17Z", "hours": 2.5675, "text": "Finished adding Lavender, And her game page! Will ship for now so it qualifyies for Playground but ill still finish the other pages 🪻"}, {"post_id": 77385, "ts": "2026-10-06T19:00:40Z", "hours": 2.8272, "text": "Added the Lavender’s home page, and just added… Lavender?"}, {"post_id": 76020, "ts": "2026-10-02T02:34:12Z", "hours": 2.265, "text": "Made pages for room sokoban and Unn Rhyhtm game, as well as bugfixed the calculator on phone, as it was coming too small for the screen"}, {"post_id": 73376, "ts": "2026-09-25T01:17:36Z", "hours": 2.6642, "text": "Oh hey, we actually did a calculator… [sort of, its just a fancy keyboard and parcing in godot but i’m too lazy to make a full calculator] No idea what to do next except writing… ‘– It’s so boooooorinng"}, {"post_id": 70148, "ts": "2026-09-18T15:41:53Z", "hours": 2.2397, "text": "Added the Math page! Planning on adding a calculator “page” later, and maybe adding more articles written by myself when i have time ;-;"}, {"post_id": 65673, "ts": "2026-09-10T23:44:19Z", "hours": 2.0031, "text": "Updated godot from 4.5 to 4.7 It broke the image sizing so i fixed it ( ’–)"}, {"post_id": 18596, "ts": "2026-06-29T19:41:44Z", "hours": 4.6339, "text": "Finished the website (mostly) I think its nice enough to ship :] Should update with photos and irl prizes when i’m more comfortable sharing my irl name but except that, it works Added a very nice BG and pictures and audios"}, {"post_id": 13493, "ts": "2026-06-22T02:49:40Z", "hours": 4.1911, "text": "Week 15 to 21 worked mostly on getting the site phone ready. also began developing some features/Easter eggs. I’m develoging through phone and it does not have the enter key to type \\n"}, {"post_id": 9607, "ts": "2026-06-16T00:23:39Z", "hours": 5.5392, "text": "Week: 8->14/6 I’m not home so I hope this goes in time for the weekly stickers T-T This week I worked mostly on phone adaptation, also looked how to make each of the pages actual pages, and made the start screen text! Also discovered that images can go directly on text so will use that to my advantage :]"}, {"post_id": 4360, "ts": "2026-06-07T17:32:43Z", "hours": 0.7628, "text": "Images are now working! plans for the future is making the site diferent for phone i.e. vertical"}, {"post_id": 3881, "ts": "2026-06-06T23:37:48Z", "hours": 0.6258, "text": "Am I wrong for doing exactly 30 minutes everyday just so I can get all da stickers? But yeah, somehow typing all this and making it work for more than 1 mini page took 35 minutes"}, {"post_id": 3220, "ts": "2026-06-06T01:33:03Z", "hours": 3.0619, "text": "So in these last few days: Updated the site to make it scalable Made it so text exists Figuring out how to add images that move with the text (Hackatime changed the name of the project so I didn’t devlog since I didn’t see it did, please don’t remove my stickers)"}, {"post_id": 1014, "ts": "2026-06-02T20:06:21Z", "hours": 0.8453, "text": "Began building the website in Godot, and am creating the github repo (before i forget) Figured out how to make the mouse do the thingy where it turns into a “you can click here” thingy (unable to screenshot that but most of y’all know it) Began searching for how to turn scenes into pages in Godot -> HTML"}, {"post_id": 496, "ts": "2026-06-01T23:38:07Z", "hours": 0.5667, "text": "Heyyyy🟡 idk why but i can only type the title? Anyway, began doing a sketch at canva for reference"}]...
|
Title: Ks' Corner by @Ks | Stardance
Devlogs: Title: Ks' Corner by @Ks | Stardance
Devlogs:
Heyyyy🟡 idk why but i can only type the title? Anyway, began doing a sketch at canva for reference
Began building the website in Godot, and am creating the github repo (before i forget) Figured out how to make the mouse do the thingy where it turns into a “you can click here” thingy (unable to screenshot that but most of y’all know it) Began searching for how to turn scenes into pages in Godot -> HTML
So in these last few days: Updated the site to make it scalable Made it so text exists Figuring out how to add images that move with the text (Hackatime changed the name of the project so I didn’t devlog since I didn’t see it did, please don’t remove my stickers)
Am I wrong for doing exactly 30 minutes everyday just so I can get all da stickers? But yeah, somehow typing all this and making it work for more than 1 mini page took 35 minutes
Images are now working! plans for the future is making the site diferent for phone i.e. vertical
Week: 8->14/6 I’m not home so I hope this goes in time for the weekly stickers T-T This week I worked mostly on phone adaptation, also looked how to make each of the pages actual pages, and made the start screen text! Also discovered that images can go directly on text so will use that to my advantage :]
Week 15 to 21 worked mostly on getting the site phone ready. also began developing some features/Easter eggs. I’m develoging through phone and it does not have the enter key to type \n
Finished the website (mostly) I think its nice enough to ship :] Should update with photos and irl prizes when i’m more comfortable sharing my irl name but except that, it works Added a very nice BG and pictures and audios
Updated godot from 4.5 to 4.7 It broke the image sizing so i fixed it ( ’–)
Added the Math page! Planning on adding a calculator “page” later, and maybe adding more articles written by myself when i have time ;-;
Oh hey, we actually did a calculator… [sort of, its just a fancy keyboard and parcing in godot but i’m too lazy to make a full calculator] No idea what to do next except writing… ‘– It’s so boooooorinng
Made pages for room sokoban and Unn Rhyhtm game, as well as bugfixed the calculator on phone, as it was coming too small for the screen
Added the Lavender’s home page, and just added… Lavender?
Finished adding Lavender, And her game page! Will ship for now so it qualifyies for Playground but ill still finish the other pages 🪻
Added small pages for all three of my [old] series Tweaked Lavender a bit too
Ships:
My first website attempt Honestly too lazy to learn HTML so made it in Godot ’o-o Any and all feedback is appreciated
This website is still a work in progress, but am shipping right now for Playground [I don’t know how to add it to the mission though] (Note: Find Lavender though Games -> Lavender’s Home -> Lavender) I hated doing the phone version, couldn’t get patting for the phone in any single way, but it works well on PC, (hover the mouse and move it a bit) In this update you also have the main Math page, still working on the smaller pages, might have to bring up Manim or something soon for them, and added a calculator!...
|
1793116098.3750026
|
1793202498.3750026
|
|
36785
|
Rev by @luxi | Stardance
|
luxi
|
2
|
37.14
|
578
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-15T15:47:48Z", "hours": 23.0, "multiplier": 17.5, "payout": 394, "blessing": "neutral", "text": "I implemented rigid bodies and more optimizations in this release. I wanted to implement detection of floating bodies and automatically turning them into rigid bodies but I realized it’s pointless. It needs to be solved in world gen then only do a basic check around an area of change.", "repo": "https://github.com/nixuntris/Unnamed-CA-engine", "demo": "https://github.com/nixuntris/Unnamed-CA-engine/releases/tag/Stable_Release3"}, {"ship_num": 2, "ts": "2026-07-21T18:08:07Z", "hours": 13.0, "multiplier": 13.86, "payout": 184, "blessing": "neutral", "text": "I made a little physics engine. I am shipping it for the competition but I will come back to it later. It’s a cellular automata based physics engine, every single pixel is simulated. Technically it can support any world size but you might need to play around with the source code, it’s hard set at 1920x1080 rn. You can edit the cell behaviors as well. Wish you a nice day.", "repo": "https://github.com/nixuntris/Unnamed-CA-engine", "demo": "https://github.com/nixuntris/Unnamed-CA-engine/releases/tag/Stable_Release3"}]...
|
[{"post_id": 61115, "ts": "202 [{"post_id": 61115, "ts": "2026-09-03T20:57:29Z", "hours": 1.1433, "text": "I’ve begun work on entities, right now I only implemented a wondering behaviour. The plan is too implement multiple different behaviours so you can config them. Like for example if hungry wonder and find a carrot"}, {"post_id": 47534, "ts": "2026-08-15T14:43:04Z", "hours": 9.3119, "text": "I have been working on improving rigid bodies. Along with adding collisions to them by the player so you can pick them up. I’ve been working on floating terrain detection but I realized it’s either gonna be a very expensive and complicated algorithm or something in world gen. I am probably gonna leave it at that even though the rigid bodies are incredibly janky and just release it. I am tired and want to move on to a side project"}, {"post_id": 43327, "ts": "2026-08-08T15:02:55Z", "hours": 7.0858, "text": "Not visual. However I’ve been working on optimizing the engine. I’ve implemented face culling for physics object. Eg only pixels that aren’t covered will have collision checks with other objects. As well as AABBs, so that unless their general shapes collides, no per pixel collisions arise. I implemented multiple light optimizations, most important is rendering it a lower resolution as at this scale, as at half resolution it’s indistinguishable from native. As well as I started work on a player controller. So for example light update went from 39157us to 3399 us."}, {"post_id": 38207, "ts": "2026-07-31T14:34:22Z", "hours": 3.7519, "text": "I have implemented rigid bodies into the engine. Rn this is a very basic and slow version. I plan to finish their interactions with lighting, optimize their collisions and then add JFA to check for disconnected terrain to become rigid bodies. Happy coding"}, {"post_id": 34667, "ts": "2026-07-25T15:56:56Z", "hours": 2.3528, "text": "I’ve been working on multithreading and general optimizations. I use OMP for it, it makes multihreading much easier however I still needed to make some changes. I split away everything rendering related from physics and lighting updates. I am using OMP as well because CA is much more of a problem of throughput than one of on demand updates. As you update millions of pixels every frame and don’t need to care about splitting physics and sound. However in the future I will ideally have a combination of both. Let’s say 4 threads manually controlled for sound, enemy ai, physics so that they can be responsive while CA uses 8 threads for pure throughput. Please keep in mind light updates are not done every frame, so it being 39157 us doesn’t mean it actually runs at sub 60 fps. One other thing I improved as well is support for larger world. You can have any size you want as long as it is smaller than the 32 bit integer limit."}, {"post_id": 32458, "ts": "2026-07-21T17:39:49Z", "hours": 2.8269, "text": "In the meantime, I’ve worked on optimizing the project. I am trying to implement a more traditional physics solver but I am tired of rigid bodies constantly failing. So I am shipping it as it is in a bit. I will come back and work on it in the future as I still want to play around with it"}, {"post_id": 31447, "ts": "2026-07-19T20:19:32Z", "hours": 5.4047, "text": "I’ve been working on Rev, I have implemented simple lighting, and improved the code structure. The world size can be edited however it’s still tied to the window size. Something I plan on changing. I want to support large worlds. Have a wonderful day"}, {"post_id": 30746, "ts": "2026-07-18T16:00:44Z", "hours": 5.1192, "text": "I’ve been working on a physics engine. I’ve implemented basic CA behavior along with chunking and dirty chunks and different cell behaviors and rules like gases, liquids, static objects, dissolving. Alongside basic terrain gen."}]...
|
Title: Rev by @luxi | Stardance
Devlogs:
I’ve bee Title: Rev by @luxi | Stardance
Devlogs:
I’ve been working on a physics engine. I’ve implemented basic CA behavior along with chunking and dirty chunks and different cell behaviors and rules like gases, liquids, static objects, dissolving. Alongside basic terrain gen.
I’ve been working on Rev, I have implemented simple lighting, and improved the code structure. The world size can be edited however it’s still tied to the window size. Something I plan on changing. I want to support large worlds. Have a wonderful day
In the meantime, I’ve worked on optimizing the project. I am trying to implement a more traditional physics solver but I am tired of rigid bodies constantly failing. So I am shipping it as it is in a bit. I will come back and work on it in the future as I still want to play around with it
I’ve been working on multithreading and general optimizations. I use OMP for it, it makes multihreading much easier however I still needed to make some changes. I split away everything rendering related from physics and lighting updates. I am using OMP as well because CA is much more of a problem of throughput than one of on demand updates. As you update millions of pixels every frame and don’t need to care about splitting physics and sound. However in the future I will ideally have a combination of both. Let’s say 4 threads manually controlled for sound, enemy ai, physics so that they can be responsive while CA uses 8 threads for pure throughput. Please keep in mind light updates are not done every frame, so it being 39157 us doesn’t mean it actually runs at sub 60 fps. One other thing I improved as well is support for larger world. You can have any size you want as long as it is smaller than the 32 bit integer limit.
I have implemented rigid bodies into the engine. Rn this is a very basic and slow version. I plan to finish their interactions with lighting, optimize their collisions and then add JFA to check for disconnected terrain to become rigid bodies. Happy coding
Not visual. However I’ve been working on optimizing the engine. I’ve implemented face culling for physics object. Eg only pixels that aren’t covered will have collision checks with other objects. As well as AABBs, so that unless their general shapes collides, no per pixel collisions arise. I implemented multiple light optimizations, most important is rendering it a lower resolution as at this scale, as at half resolution it’s indistinguishable from native. As well as I started work on a player controller. So for example light update went from 39157us to 3399 us.
I have been working on improving rigid bodies. Along with adding collisions to them by the player so you can pick them up. I’ve been working on floating terrain detection but I realized it’s either gonna be a very expensive and complicated algorithm or something in world gen. I am probably gonna leave it at that even though the rigid bodies are incredibly janky and just release it. I am tired and want to move on to a side project
I’ve begun work on entities, right now I only implemented a wondering behaviour. The plan is too implement multiple different behaviours so you can config them. Like for example if hungry wonder and find a carrot
Ships:
I made a little physics engine. I am shipping it for the competition but I will come back to it later. It’s a cellular automata based physics engine, every single pixel is simulated. Technically it can support any world size but you might need to play around with the source code, it’s hard set at 1920x1080 rn. You can edit the cell behaviors as well. Wish you a nice day.
I implemented rigid bodies and more optimizations in this release. I wanted to implement detection of floating bodies and automatically turning them into rigid bodies but I realized it’s pointless. It needs to be solved in world gen then only do a basic check around an area of change....
|
1793112528.2574704
|
1793198928.2574704
|
|
4909
|
Hack Piano by @sjpark01 | Stardance
|
sjpark01
|
0
|
37.07
|
0
|
[]
|
[{"post_id": 39596, "ts": "202 [{"post_id": 39596, "ts": "2026-08-02T18:01:11Z", "hours": 1.6133, "text": "Fancy Keys! I added piano keys! also fixed the mounting holes. custom knob next??? (actually I should fix the firmware first…)"}, {"post_id": 18486, "ts": "2026-06-29T17:25:19Z", "hours": 0.7111, "text": "Firmware done… so I rushed out some quick firmware to get the sticker. I’m definitally gonna have to redo it lol hey, first ship soon though"}, {"post_id": 18197, "ts": "2026-06-29T08:18:47Z", "hours": 1.8042, "text": "Firmware time Omg the firmware is so much harder than I hoped I have no idea what I’m doing, I’m already tired and stressed, and the resources haven’t helped much so far. This feels like trying to piece together a program from someone else’s random programming language. At least it has ok documentation (for what I’m trying to do), but it’s just so confusing omg I’m like entering crash-out territory on this project Need help!"}, {"post_id": 16894, "ts": "2026-06-27T12:51:58Z", "hours": 10.385, "text": "Bro I just want to be done with this project hsit just keeps getting fuffufd bro so heres an updated list knob (might just grab a model off the internet keycaps (might just buy some) color (different print filament?) holes (why is this explained so vaugely in the guide bro im gonna crash out over this these stupid freaking holes omg) firmware, still gotta do that so uhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh yeah, not goin great rn. Maybe I should have just made a 3 key rectangle… srry no new pic this time, im just too tired rn"}, {"post_id": 13125, "ts": "2026-06-21T13:49:16Z", "hours": 6.2731, "text": "CASE DONE WOWOWOWOWOWOWOW this took way longer that I thought… looks pretty sweet though now i’ve just got knob keys color? holes for case firmware left to do and then I can finally ship this 20+ hr project! Yippee!"}, {"post_id": 11855, "ts": "2026-06-19T09:26:00Z", "hours": 4.9244, "text": "Been working on the details of the case. I’m really pulling out all of the stops (that I am aware of) for this project. Here’s the rough sketch!"}, {"post_id": 10081, "ts": "2026-06-16T17:38:42Z", "hours": 4.6008, "text": "Man I wish I made the case together with the pcb. having to go back and edit the pcb because something didn’t turn out quite right on the case is such a pain"}, {"post_id": 8240, "ts": "2026-06-13T18:19:40Z", "hours": 1.8097, "text": "Lapse ate 2hrs of work today, turns out I’m not supposed to pause the recording and then turn the computer off or else the recording corrupts silently. if anyone knows where I can find the 3d models to the components, please tell me!"}, {"post_id": 4911, "ts": "2026-06-08T14:26:32Z", "hours": 3.7994, "text": "New pcb design, hopefully it’s good! kudos to Anicetus on slack for the idea"}, {"post_id": 4002, "ts": "2026-06-07T04:37:04Z", "hours": 1.145, "text": "BIG problem, pcb too big. need help!"}]...
|
Title: Hack Piano by @sjpark01 | Stardance
Devlog Title: Hack Piano by @sjpark01 | Stardance
Devlogs:
BIG problem, pcb too big. need help!
New pcb design, hopefully it’s good! kudos to Anicetus on slack for the idea
Lapse ate 2hrs of work today, turns out I’m not supposed to pause the recording and then turn the computer off or else the recording corrupts silently. if anyone knows where I can find the 3d models to the components, please tell me!
Man I wish I made the case together with the pcb. having to go back and edit the pcb because something didn’t turn out quite right on the case is such a pain
Been working on the details of the case. I’m really pulling out all of the stops (that I am aware of) for this project. Here’s the rough sketch!
CASE DONE WOWOWOWOWOWOWOW this took way longer that I thought… looks pretty sweet though now i’ve just got knob keys color? holes for case firmware left to do and then I can finally ship this 20+ hr project! Yippee!
Bro I just want to be done with this project hsit just keeps getting fuffufd bro so heres an updated list knob (might just grab a model off the internet keycaps (might just buy some) color (different print filament?) holes (why is this explained so vaugely in the guide bro im gonna crash out over this these stupid freaking holes omg) firmware, still gotta do that so uhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh yeah, not goin great rn. Maybe I should have just made a 3 key rectangle… srry no new pic this time, im just too tired rn
Firmware time Omg the firmware is so much harder than I hoped I have no idea what I’m doing, I’m already tired and stressed, and the resources haven’t helped much so far. This feels like trying to piece together a program from someone else’s random programming language. At least it has ok documentation (for what I’m trying to do), but it’s just so confusing omg I’m like entering crash-out territory on this project Need help!
Firmware done… so I rushed out some quick firmware to get the sticker. I’m definitally gonna have to redo it lol hey, first ship soon though
Fancy Keys! I added piano keys! also fixed the mounting holes. custom knob next??? (actually I should fix the firmware first…)...
|
1793224212.1905558
|
1793829012.1905558
|
|
904
|
Girlfriend Simulator by @snehasish | Stardance
|
|
2
|
37.0
|
434
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-03T20:03:26Z", "hours": 9.0, "multiplier": 15.93, "payout": 148, "blessing": "neutral", "text": "Major Updates for Girlfriend Simulator Note: This is the final update (ship) and no more updates will be made in future to this project. Main Updates Girlfriend Memories: Your Girlfriend remembers every small detail you share about yourself in her chat. Persistent Relationship Profile: Your girlfriend also remembers how you treated her on your last conversation and her mood really depends on that the next time you have a conversation with her Your own Models: Your girlfriend can run on your own API key. By default uses Google Gemini 2.5 Flash (so you will need a Gemini API Key). This removes any limits to daily conversations (capped at 20 when using not-your-model. Mood Aware User Interface: Your chat colors, themes and styling changes based on your girlfriend’s mood. Helps you understand what situation you’re currently in XD", "repo": "https://github.com/snhsish/gfsim", "demo": "https://gfsim.snehasish.xyz"}, {"ship_num": 2, "ts": "2026-06-08T09:27:01Z", "hours": 28.0, "multiplier": 12.02, "payout": 286, "blessing": "neutral", "text": "I built a Girlfriend Simulator which simulates a start-to-end relationship with your personally characterized girlfriend (powered by different fine-grained AI models). Why is it different from an AI wrapper or asking ChatGPT to “pretend to be my girlfriend?”: Well, the experience here is more natural and more likely-to-be-a-real-girlfriend type xi. Problems faced: getting the model to be more natural. I had fine-tuned a Qwen model which performed pretty well and NATURAL when replying as girlfriend, but due to high costing I cannot be putting it out in the public for free usage, so I had to use a fine-grained Qwen model (system prompt) Some pages / features are still not completed, but the chat experience is working completely fine!", "repo": "https://github.com/snhsish/gfsim", "demo": "https://gfsim.snehasish.xyz"}]...
|
[{"post_id": 13566, "ts": "202 [{"post_id": 13566, "ts": "2026-06-22T06:36:28Z", "hours": 4.0833, "text": "Girlfriend Simulator : Major Update This update is all about feature improvement. What’s New Persistent Relationship Profile Previously relationship state was ephemeral, i.e. everytime you started a new chat, your relationship state was back to NORMAL. But now things have changed. A persistent relationship state has been introduced. Your behavioral rating is now taken more seriously. How you reply, how you react and how you understand her, matters now Inactivity Tracking Your latest message is now tracked by the system to set your girlfriend’s mood. If you have ghosted her for long, it must have affected her behaviour. This lets her react naturally to absences (cold, sarcastic, or confrontational depending on health/mood). Mood-aware UI The UI of the chat changes according to your girlfriend’s mood now. So you get a hint when to make her feel wanted and when to make her laugh."}, {"post_id": 11313, "ts": "2026-06-18T14:40:13Z", "hours": 3.2144, "text": "You can now configure and bring in your own API Keys Currently only Gemini API Key is supported which uses the gemini-2.5-flash model Why bring in your own keys? Well there’s a 20 message per user daily limit when using the server provided model. But you definitely might want to talk to your GF more than just 20 messages a day right :) So if you bring in your own keys, you can chat without any limits! You can view usages of your own keys from the Usage page itself ( /account/usage ) Are my keys safe? Your keys are stored in your browser’s localStorage. It’s not sent to our servers at all. (You can verify checking the opensource code anyways!) ALSO, thanks to some of you guys who tried out the simulator, tried to jailbreak and manipulate the models, it helped me understand the system a little more. ALSO, the sim is completely SFW - even if you go NSFW. LYG<3"}, {"post_id": 5578, "ts": "2026-06-09T12:56:21Z", "hours": 2.0533, "text": "Your can now view your Girlfriend’s “Memories”. Memories are basically a collection of details (birthday, job description, reminders, etc.) you mention/share about yourself in chat. It is stored, so that it can be passed as context for your girlfriend. So now she actually remembers the “small details about you”. Uses a second LLM call which analyzes your messages to check if any important “detail” about you has been sent, so your girlfriend remembers it. You can always delete the sensitive ones and recommended."}, {"post_id": 4490, "ts": "2026-06-07T20:25:51Z", "hours": 10.8542, "text": "Lot of updates: Chat persistence: Your chats with your GF are now permanently stored in cloud, so you can access the chats anytime. Chats infinite scroll: To not display all your 100k messages with your GF at once and break stuff, infinite scroll has been added to chat to load old chats on demand Add reaction to messages: You can now react to messages from your girlfriend (and there’s a chance she might get pssed off from that and reply about it). Also your girlfriend can react to your messages too now. * You can currently only react to message groups and now individual message bubble, it’ll be fixed in a future update. Added no-reply handler: SO BASICALLY you can be left ON-SEEN or ON-DELIVERED by your girlfriend if you misbehave lol Some bug fixes: add limit to user message input, GF’s side texts not being stored in DB, etc. Some UI/UX optimizations alongside system prompt optimizations for the MODEL. * I really want to optimize the system prompt even further more ’cause currently it uses almost 1k tokens per message which feels quiet unoptimized and over-usage of tokens"}, {"post_id": 3331, "ts": "2026-06-06T06:38:09Z", "hours": 6.5922, "text": "Added: Account Page: where you can update your OWN profile details like your avatar, name, description, DOB, MBTI, zodiac, etc. which will let your girlfriend know about you and your personality (from your description of you) User Welcome Screen and Navigation Tour: For better UX and understandibility, I have added a welcome screen modal with three steps explaining what the app is about and how it works + sidebar tour for explaining what each link does Signout button in account page Next:: Public Use Launch"}, {"post_id": 2181, "ts": "2026-06-04T15:13:05Z", "hours": 5.2556, "text": "made the usage page which shows tokens and messages for the past 14 days also here are some sample girlfriend responses which felt natural to me"}, {"post_id": 762, "ts": "2026-06-02T12:29:59Z", "hours": 1.7394, "text": "chats now work model: qwen the model smh replies and added multi message support"}, {"post_id": 414, "ts": "2026-06-01T20:18:42Z", "hours": 1.0042, "text": "updated message input and added attachment input (menu), emoji selector and GIF picker also implemented auto-height increment for the message input textarea and enter-is-send and shift-enter-is-not-send for the message input next: send the message and get a response (basic) via VERCEL AI SDK + Gemini Google API"}, {"post_id": 341, "ts": "2026-06-01T17:20:30Z", "hours": 2.1508, "text": "setup and designed the app interface and the chat page with beautiful starter texts to send to your AI girlfriend and get the convo started. next: design the chat input section along"}, {"post_id": 184, "ts": "2026-06-01T06:32:25Z", "hours": 0.5367, "text": "Added user authentication (login page) using Google OAuth (better-auth + supabase) setup"}]...
|
Title: Girlfriend Simulator by @snehasish | Starda Title: Girlfriend Simulator by @snehasish | Stardance
Devlogs:
Added user authentication (login page) using Google OAuth (better-auth + supabase) setup
setup and designed the app interface and the chat page with beautiful starter texts to send to your AI girlfriend and get the convo started. next: design the chat input section along
updated message input and added attachment input (menu), emoji selector and GIF picker also implemented auto-height increment for the message input textarea and enter-is-send and shift-enter-is-not-send for the message input next: send the message and get a response (basic) via VERCEL AI SDK + Gemini Google API
chats now work model: qwen the model smh replies and added multi message support
made the usage page which shows tokens and messages for the past 14 days also here are some sample girlfriend responses which felt natural to me
Added: Account Page: where you can update your OWN profile details like your avatar, name, description, DOB, MBTI, zodiac, etc. which will let your girlfriend know about you and your personality (from your description of you) User Welcome Screen and Navigation Tour: For better UX and understandibility, I have added a welcome screen modal with three steps explaining what the app is about and how it works + sidebar tour for explaining what each link does Signout button in account page Next:: Public Use Launch
Lot of updates: Chat persistence: Your chats with your GF are now permanently stored in cloud, so you can access the chats anytime. Chats infinite scroll: To not display all your 100k messages with your GF at once and break stuff, infinite scroll has been added to chat to load old chats on demand Add reaction to messages: You can now react to messages from your girlfriend (and there’s a chance she might get pssed off from that and reply about it). Also your girlfriend can react to your messages too now. * You can currently only react to message groups and now individual message bubble, it’ll be fixed in a future update. Added no-reply handler: SO BASICALLY you can be left ON-SEEN or ON-DELIVERED by your girlfriend if you misbehave lol Some bug fixes: add limit to user message input, GF’s side texts not being stored in DB, etc. Some UI/UX optimizations alongside system prompt optimizations for the MODEL. * I really want to optimize the system prompt even further more ’cause currently it uses almost 1k tokens per message which feels quiet unoptimized and over-usage of tokens
Your can now view your Girlfriend’s “Memories”. Memories are basically a collection of details (birthday, job description, reminders, etc.) you mention/share about yourself in chat. It is stored, so that it can be passed as context for your girlfriend. So now she actually remembers the “small details about you”. Uses a second LLM call which analyzes your messages to check if any important “detail” about you has been sent, so your girlfriend remembers it. You can always delete the sensitive ones and recommended.
You can now configure and bring in your own API Keys Currently only Gemini API Key is supported which uses the gemini-2.5-flash model Why bring in your own keys? Well there’s a 20 message per user daily limit when using the server provided model. But you definitely might want to talk to your GF more than just 20 messages a day right :) So if you bring in your own keys, you can chat without any limits! You can view usages of your own keys from the Usage page itself ( /account/usage ) Are my keys safe? Your keys are stored in your browser’s localStorage. It’s not sent to our servers at all. (You can verify checking the opensource code anyways!) ALSO, thanks to some of you guys who tried out the simulator, tried to jailbreak and manipulate the models, it helped me understand the system a little more. ALSO, the sim is completely SFW - even if you go NSFW. LYG<3
Girlfriend Simulator : Major Update This update is all about feature improvement. What’s New Persistent Relationship Profile Previously relationship state was ephemeral, i.e. everytime you started a new chat, your relationship state was back to NORMAL. But now things have changed. A persistent relationship state has been introduced. Your behavioral rating is now taken more seriously. How you reply, how you react and how you understand her, matters now Inactivity Tracking Your latest message is now tracked by the system to set your girlfriend’s mood. If you have ghosted her for long, it must have affected her behaviour. This lets her react naturally to absences (cold, sarcastic, or confrontational depending on health/mood). Mood-aware UI The UI of the chat changes according to your girlfriend’s mood now. So you get a hint when to make her feel wanted and when to make her laugh.
Ships:
I built a Girlfriend Simulator which simulates a start-to-end relationship with your personally characterized girlfriend (powered by different fine-grained AI models). Why is it different from an AI wrapper or asking ChatGPT to “pretend to be my girlfriend?”: Well, the experience here is more natural and more likely-to-be-a-real-girlfriend type xi. Problems faced: getting the model to be more natural. I had fine-tuned a Qwen model which performed pretty well and NATURAL when replying as girlfriend, but due to high costing I cannot be putting it out in the public for free usage, so I had to use a fine-grained Qwen model (system prompt) Some pages / features are still not completed, but the chat experience is working completely fine!
Major Updates for Girlfriend Simulator Note: This is the final update (ship) and no more updates will be made in future to this project. Main Updates Girlfriend Memories: Your Girlfriend remembers every small detail you share about yourself in her chat. Persistent Relationship Profile: Your girlfriend also remembers how you treated her on your last conversation and her mood really depends on that the next time you have a conversation with her Your own Models: Your girlfriend can run on your own API key. By default uses Google Gemini 2.5 Flash (so you will need a Gemini API Key). This removes any limits to daily conversations (capped at 20 when using not-your-model. Mood Aware User Interface: Your chat colors, themes and styling changes based on your girlfriend’s mood. Helps you understand what situation you’re currently in XD...
|
1793134076.822287
|
1793220476.822287
|
|
20332
|
Pronoun Palace Modding famework by @xanderath | St Pronoun Palace Modding famework by @xanderath | Stardance...
|
xanderath
|
1
|
37.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-05T03:50:46Z", "hours": 37.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a mod for Pronoun Palace which allows other mods to add spells, enemies, characters, tile effects, and a mod settings menu. I also created a demonstration mod which adds one of all of these. Enemy: Aqua from Deltarune Character: Dew Jubilist Spell: Inverter, alternates between making tiles negative and crit Tile Effect: Negative, tile is worth negative value In the mod settings menu you can make Aqua small, or guarantee that she appears The project demo is a showcase video so you can see the mod without having to own the game.", "repo": "https://github.com/Emarald64/pronoun-palace-framework", "demo": "https://youtu.be/Dea4LgKEAN8"}]...
|
[{"post_id": 22540, "ts": "202 [{"post_id": 22540, "ts": "2026-07-05T01:59:58Z", "hours": 1.2689, "text": "Its very hard to see, but the shadow of the text can now also have it’s color changed. The second picture has a more visible shadow color"}, {"post_id": 20500, "ts": "2026-07-02T03:18:11Z", "hours": 6.5267, "text": "Added a tile effect loader to add new tile affects. To the example mod, added the tile effect negative, which multiplies tile value by -1 and the spell Inverter which alternates between making a tile negative and crit."}, {"post_id": 18064, "ts": "2026-06-29T01:39:57Z", "hours": 5.4106, "text": "Make knife throwing animation faster and made the wooden slash attack into a chain knife attack that hits all the top and bottom tiles. Released version 1.4.2 on github. (cut out the parts of the video where it took me a while to find a good word to play)"}, {"post_id": 17219, "ts": "2026-06-27T22:38:46Z", "hours": 8.1186, "text": "Added custom intents, put custom enemies in phonebook, added mod settings menu. Replaced the paparazzi with aqua who has uses the custom intents and has her own unique projectile physics and sounds"}, {"post_id": 13414, "ts": "2026-06-21T23:27:43Z", "hours": 15.4203, "text": "Created scripts to add spells, enemies, and characters. Modified character select screen to support more characters. Made example mod to showcase framework features."}]...
|
Title: Pronoun Palace Modding famework by @xandera Title: Pronoun Palace Modding famework by @xanderath | Stardance
Devlogs:
Created scripts to add spells, enemies, and characters. Modified character select screen to support more characters. Made example mod to showcase framework features.
Added custom intents, put custom enemies in phonebook, added mod settings menu. Replaced the paparazzi with aqua who has uses the custom intents and has her own unique projectile physics and sounds
Make knife throwing animation faster and made the wooden slash attack into a chain knife attack that hits all the top and bottom tiles. Released version 1.4.2 on github. (cut out the parts of the video where it took me a while to find a good word to play)
Added a tile effect loader to add new tile affects. To the example mod, added the tile effect negative, which multiplies tile value by -1 and the spell Inverter which alternates between making a tile negative and crit.
Its very hard to see, but the shadow of the text can now also have it’s color changed. The second picture has a more visible shadow color
Ships:
I made a mod for Pronoun Palace which allows other mods to add spells, enemies, characters, tile effects, and a mod settings menu. I also created a demonstration mod which adds one of all of these. Enemy: Aqua from Deltarune Character: Dew Jubilist Spell: Inverter, alternates between making tiles negative and crit Tile Effect: Negative, tile is worth negative value In the mod settings menu you can make Aqua small, or guarantee that she appears The project demo is a showcase video so you can see the mod without having to own the game....
|
1793087661.3688116
|
1793174061.3688116
|
|
21041
|
R2D2 model by @benedekkristof16 | Stardance
|
benedekkristof16
|
1
|
37.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-20T06:00:47Z", "hours": 37.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made this project with @TamasLaszloffy777 . My part was the electronics and coding. THe biggest hurdle was, that I’ve had to learn everything from scratch. I only knew basic python, and something about circuits, but only what I’ve learnt in school. This project is a fan-made R2-D2 replica, which is capable of rolling, turning it’s head, and has some LEDs. The project includes a demo link, where you can see it work in real life. Make sure you watch it, and We hope You’ll enjoy it!", "repo": "https://github.com/kirikristof/R2D2-model", "demo": ""}]...
|
[{"post_id": 74072, "ts": "202 [{"post_id": 74072, "ts": "2026-09-26T16:54:18Z", "hours": 2.8039, "text": "Hey! I think this will be my last, and my longest devlog! I need to clarify things, and address things, but first– I tell what I did. So I wired up the motor driver (an anquintance of mine helped to solder up the wires which will take the high current to the motors), wired up the LED’s, and put everything in the 3D printed chassis done, and assembled by @TamasLaszloffy777 , with the help of our friends (and my mom :) ). I soldered the wires to the motors, and glued the LED’s in the head. Now comes a list of things, that didn’t work: I copyed the HTML code my friend wrote into my code, but unfortunately I couldn’t get it working. I’ve spent countless hours debugging with Gemini, but as the project got more complex, it gave me more stupid answers. When I tested it with just the stepper motor, it worked, but with everything connected, it didnt. So out of desperation I’ve had to go back the old method I used at testing, which is that everything works with an USB cable. I’ve spent circa 30 minutes changing the code, and commenting out everything that has to do something with the wireless thing. Of course Hackatime didn’t register nothing out of this half an hour. This was the main thing why I used Lookout and Lapse for coding before the Ban. But after all, thank God it works now with USB (after some debugging with Gemini of course). This means that the LEDs also lost their purpose as wifi status indicators, so now the project has 2 spare LEDs inside. (I won’t put those in the wiring diagram, since they are not used, but its too much work to take them out. I saved two of them by repurposing them to “head turning indicators”, but left two out, because it would just make it harder for me to take the head off, to access everything inside. Also I plan to fix the wireless part in the future, but not in Stardance). The next thing I noticed, is the homing sequence is pretty useless. Fortunately the wires never twist dangerously, contrary to my previous assumptions, and R2 would have to rotate its head 360 degrees multiple times in a row for it to become dangerous for the wires. I was quite upset that I did the homing sequence, and bought the sensor for nothing, but keeping it would add unnecessary complexity. And unnecessary complexity is NEVER good in a project.(I wont put the sensor into the BOM list, nor into the wiring diagram)"}, {"post_id": 63719, "ts": "2026-09-07T17:33:29Z", "hours": 3.8669, "text": "So this time, I’ve had to update the entire code. So, as I’ve told you guys in my previous devlog, I’ve tried to make R2 wireless with UDP, but it did not work for some reason. Because of this, we decided to try another method. We will host a web server on the Pico! My friend, who knows this stuff, will write a basic HTML code, with buttons, to control R2. For this, I’ve had to go down a little rabbit hole with youtube, google and gemini, to learn how actually this stuff works. After, and along with researching, I’ve had to change a little the structure of my code, and implement new features. I also added LEDs this time! I think the coolest feature is, that R2 will tell us with Morse his IP address, using his LEDs (because he will have different ones based on which wifi network he is currently connected to, and he will have no other way to tell it us). We’ve also made some crucial changes. At first we’ve wanted R2D2 to have sounds, but we will have to omit this one for now, because our lack of time. Also, rather than random flashing, each LED will have it’s own purpose, and they all going to be used for communication."}, {"post_id": 60383, "ts": "2026-09-02T17:55:10Z", "hours": 2.66, "text": "So this time, I’ve tried to test the wireless part. I started by downloading a UDP app on my mom’s phone, and rotating the stepper motor with that, but nothing happened. After this I’ve rewritten the code so it does nothing with the motor, but prints the text in the UDP pockets, but still nothing. I’ve downloaded Packet Sender to my laptop, but still nothing. The UDP packets did never reach the Pico. I’ve tried everything the Debug Master Gemini said for more than two hours, but nothing… I think I will ask my friend who is familiar with making websites to write me a lightweight HTML page with buttons, then somehow make it connect to the motor logic. I reallyyy hope that will work."}, {"post_id": 59453, "ts": "2026-09-01T09:57:28Z", "hours": 0.6469, "text": "Today I tested the battery voltage measuring feature, I last time made! I put in the batteries, wired it up, copied this specific part of the code in Thonny, told it to print the voltage, aaaannd when I checked with the multimeter, it was waaay off, lol. I was baffled, because the voltage my Pico measured was MORE than a full volt below the actual voltage. I immediately started researching, (by asking Gemini… of course…. I start to feel guilty for all the trees and water I waste), and it said to me that it is likely due to resistors are not perfect, this is why they have a TOLERANCE band, and I should start a different approach. It suggested that I should calculate a factor, by dividing the voltage of the batteries measured with a multimeter, by the raw ADC value my Pico reads, then multiply with that with the raw ADC value. After fixing this, it gave me roughly the exact value my multimeter had shown. P.S. If I could learn for once, that I HAVE to use period at decimal numbers, instead of comma, I would spend way less time searching for bugs that don’t exist…"}, {"post_id": 57166, "ts": "2026-08-29T08:36:24Z", "hours": 3.7306, "text": "This time, I made the main power lines of R2D2! I started by soldering 3 wires (three positive, and three ground) to the battery holder, which will be the cozy home of two 18650 Li-Ion batteries. I connected a 5 volt buck converter to one of the lines, which will power the Pico, and a voltage divider to the next one, to help the Pico measure the batteries’ voltage, and give me a warning (eventually using R2’s LEDs) of low voltage. There is not connected anything yet to the third line, because the motor driver will be powered using this, but that soldering would be really hard with my setup, and I don’t know if I could safely do it. So I think I will ask an adult acquintance of mine, who works with electronics, to do that one for me."}, {"post_id": 47045, "ts": "2026-08-14T17:22:35Z", "hours": 5.0992, "text": "This time, I’ve finally made the wireless part! I started by, as you probably guessed it already, by brainstorming with Gemini! I asked it to give me tutorials on youtube, on how to make my robot wirelessly controllable, since I have a Pico W, as well as explain it himself. At first, I’ve went down a little rabbit hole, because I wanted to build a simple website, with buttons, to control R2D2. I quickly realized after peeking into college-level tutorials, that it far exceeds my capabilities at the moment, so I asked my good ol’ friend, Gemini, to give me a bit of a simpler solution. After some deep discussions, and watching a nice old man on youtube explaining it, I decided on non-blocking UDP socket polling, with the help of an external app. This will work by downloading an app to my phone (or anyone’s phone, who wants to control R2), agreeing on an ip address, and port number, then typing the letters, which represents the w, a, s, d, etc. keys. It may not look pretty, but it’s just as effective, and MUCH simpler."}, {"post_id": 44633, "ts": "2026-08-10T15:05:18Z", "hours": 1.3833, "text": "Today, I added the sensor for the homing sequence of R2’s head! This way, at startup, the head will start to turn, until it hits the infrared sensor, then go back to the middle. This way it is ensured, that no matter what position was the head at startup, it won’t go beyond the safe limits"}, {"post_id": 42777, "ts": "2026-08-07T17:36:43Z", "hours": 2.1439, "text": "So this time, I finally wired everything for the stepper motor-powered head together! I copyed the part which controls specifically this from my entire code sitting VSCode, just to try this out. I had an old battery holder saved from a toy, to make an external power source, and wired everything together. I checked the wiring with Gemini, to make sure I don’t light anything on fire. After this, well, it did not work… I spent brainstorming, “debugging”, and checking everything twice, until I realized the “bug” which prevented the motor spin, was the very common “missing battery” error. So I put it in, and after some fine tuning on the code, it worked really nice"}, {"post_id": 42644, "ts": "2026-08-07T14:07:55Z", "hours": 0.9744, "text": "This time I coded the homing sequence, which will help R2 center it’s head using the stepper motor. There will be an infrared sensor in the head, and at startup, R2 will turn its head slowly left, until the sensor detects it, and after this, the code will set the step count to 0. After this the head will automatically turn to look forward, while counting the steps. This is necessary to ensure that the head will move only in the safe limits, no matter in which position it was at startup. I took the help of Gemini at debugging."}, {"post_id": 36923, "ts": "2026-07-29T10:12:02Z", "hours": 4.9153, "text": "This time, I collected multiple days’ work for this devlog. I started by brainstorming with Gemini (by now I must be their top user, lol) about what motor would be best for turning R2’s head. We’re planning LEDs in the head, so I had to make sure it cannot rotate all the way around, because this would break the wires. I came to the conclusion, that a custom 3D printed gear mechanism would be best, with a 28BYJ-48 stepper motor, and a ULN2003 board, and rotation limits in the software. I watched videos on Youtube, and also asked Gemini to explain to me how to write a code to control the stepper motor. The code is not yet complete, I’ll have to add a “homing mechanism”, which would help the head find it’s position at startup."}, {"post_id": 30087, "ts": "2026-07-17T12:00:42Z", "hours": 1.6503, "text": "Today I wrote the prototype of the code, which will control the motion of R2D2. The original version will control it wirelessly, along with the sounds and ligths, but this controls only the motors yet, via a microUSB cable. I wrote it in VSCode, and I will only copy it to Thonny (which i’ll be using for the Pico) when it is fully completed. I took the help of Gemini, to explain me how to control it (the robot, eventually) using my keyboard, and with the final debugging. I also watched Electro Nerds Academy’s youtube video in the process, which explains how to control the TB6612FNG motor driver with Arduino, and C++, I did this to make sure I understand the process. I still have a lot to learn, but slowly and surely, R2 will roll!"}, {"post_id": 29420, "ts": "2026-07-16T11:13:48Z", "hours": 1.3206, "text": "Today, I got the Pico!!! Immediatelly I started to load up micropython on it, and download Thonny. It was a bit tricky, because my antivirus program wouldn’t let me download it, but I disabled it temporarily, and it worked just fine. And I quickly reviewed the first few pages of my PDF book, to make sure I know my Pico physically, not just the Wokwi version. After that I wanted to try it out with the onboard LED, but it didn’t worked, so I asked Gemini. I found out that my Pico, is actually Pico W, and the onboard led is a little different. After that it worked beautifully. Then I wanted to light up an external LED, and guess what, it also didn’t work! I started troubleshooting with Gemini on my side, and I found out, that my breadboard’s ground rail is probably damaged. After rewiring to bypass it, it lighted up!"}, {"post_id": 24693, "ts": "2026-07-08T13:32:16Z", "hours": 0.8378, "text": "A problem occurred during the delivery if the Pico, so it got retured to the sender. We had to order it again, so until it arrives, I thought I could learn actually how to control the DC motors with it, with the help of a TB6612FNG motor driver which we will be using. I asked Gemini to explain it to me, without providing exact codes, to ensure I actually understand the code, and not just copy-pasteing. It gave me a great youtube tutorial too, from Electro Nerds Academy, which used Arduino (and therefore C++), but it helped me understand the core principles of the wiring, and the code EDIT: This was BEFORE I was aware of the rule which states that we should not log too much continuous time spent watching youtube. This was only the learning phase, and I tried making it as active as possible, by building my own version on the way. If it is against the rules, please just ignore the time logged in this post. I don’t know if it is possible, but I’m pretty freaked out my entire summer work gets flushed down the toilet😭😭"}, {"post_id": 21522, "ts": "2026-07-03T15:13:57Z", "hours": 1.2167, "text": "So today, while I was STILL waiting for the Pico, I built a reaction time based game, and a burglar alarm in Wokwi, with the help of the PDF book I’ve mentioned before. By this, I’ve learnt how to use the urandom library in Micropython, which I think will be really useful with R2D2 ‘s flashing lights, and sounds, and with the burglar alarm I’ve learnt how to connect, and use a sensor with the Pico. Putting sensors in R2D2 is a secondary, and a long-term goal, but it would be really nice. I hope that after this, I’ve learnt the basics of Micropython, so I think I’ll start focusing on our actual project, R2D2. (I don’t know when will the Pico arrive, so this is a major limiting factor) IT IS JUST LEARNING THE BASICS, NOT THE ACTUAL PROJECT"}, {"post_id": 19433, "ts": "2026-06-30T19:12:12Z", "hours": 1.4111, "text": "So, today I’m still waiting for the Pico, so I’m still using Wokwi, and the PDF book, to learn, and practice. Today I’ve made a traffic light, which is working by continuously alternating red, yellow and green lights. It worked just fine, until I added a feature, so when a “pedestrian” pushes a button, a buzzer makes 10 beeps, and the light switches to red for the “cars”. This seemed to be too much for Wokwi, and it kind of crashed, so I relied on the PDF book, to verify the code, and the wiring. IT IS JUST LEARNING THE BASICS, NOT THE ACTUAL PROJECT"}, {"post_id": 18293, "ts": "2026-06-29T12:06:59Z", "hours": 1.1833, "text": "Today, I was still practicing Micropython, and connecting circuits in Wokwi’s Raspberry Pi Pico simulator, with the help of the “Get Started with MicroPython on Raspberry Pi Pico” book. I’m still waiting for the delivery, so I can’t do it physically yet, but I think it’s still a great way to learn, and it even lacks the risk of frying anything. I succesfully made an LED blink, and connected a four-legged push button to the Pico. The final “project” of this session was building a circuit, so when you push the button, the LED lights up. I had a little problem with this, so I took the help of Gemini, and we figured out, that I accidentally connected the button to the Pico’s 3V3 EN pin, instead of the 3V3 pin, and I had a missing colon in the code. After fixing, it worked beautifully IT IS JUST LEARNING THE BASICS, NOT THE ACTUAL PROJECT"}, {"post_id": 15807, "ts": "2026-06-25T18:04:51Z", "hours": 1.1422, "text": "Today, I started to learn micropython for the Raspberry pi Pico WH, which I will use for my team’s R2D2 model. I do not have one yet, im currently waiting for the delivery :) , but I used Wokwi’s Raspberry pi Pico simulator, and the PDF micropython tutorial book, which I found on the original Raspberry Pi website. (well, not exactly there, because it showed me error 404, but I found it on Internet Archives, it’s title is “Get Started with MicroPython on Raspberry Pi Pico”). With the help of these, I learned how to import libraries in micropython, and how to turn on the Pico’s onboard LED. I even programmed it to stay on for a certain amount of seconds. I also used VS Code to try out some basic python loops. IT IS JUST LEARNING THE BASICS, NOT THE ACTUAL PROJECT"}]...
|
Title: R2D2 model by @benedekkristof16 | Stardance Title: R2D2 model by @benedekkristof16 | Stardance
Devlogs:
Today, I started to learn micropython for the Raspberry pi Pico WH, which I will use for my team’s R2D2 model. I do not have one yet, im currently waiting for the delivery :) , but I used Wokwi’s Raspberry pi Pico simulator, and the PDF micropython tutorial book, which I found on the original Raspberry Pi website. (well, not exactly there, because it showed me error 404, but I found it on Internet Archives, it’s title is “Get Started with MicroPython on Raspberry Pi Pico”). With the help of these, I learned how to import libraries in micropython, and how to turn on the Pico’s onboard LED. I even programmed it to stay on for a certain amount of seconds. I also used VS Code to try out some basic python loops. IT IS JUST LEARNING THE BASICS, NOT THE ACTUAL PROJECT
Today, I was still practicing Micropython, and connecting circuits in Wokwi’s Raspberry Pi Pico simulator, with the help of the “Get Started with MicroPython on Raspberry Pi Pico” book. I’m still waiting for the delivery, so I can’t do it physically yet, but I think it’s still a great way to learn, and it even lacks the risk of frying anything. I succesfully made an LED blink, and connected a four-legged push button to the Pico. The final “project” of this session was building a circuit, so when you push the button, the LED lights up. I had a little problem with this, so I took the help of Gemini, and we figured out, that I accidentally connected the button to the Pico’s 3V3 EN pin, instead of the 3V3 pin, and I had a missing colon in the code. After fixing, it worked beautifully IT IS JUST LEARNING THE BASICS, NOT THE ACTUAL PROJECT
So, today I’m still waiting for the Pico, so I’m still using Wokwi, and the PDF book, to learn, and practice. Today I’ve made a traffic light, which is working by continuously alternating red, yellow and green lights. It worked just fine, until I added a feature, so when a “pedestrian” pushes a button, a buzzer makes 10 beeps, and the light switches to red for the “cars”. This seemed to be too much for Wokwi, and it kind of crashed, so I relied on the PDF book, to verify the code, and the wiring. IT IS JUST LEARNING THE BASICS, NOT THE ACTUAL PROJECT
So today, while I was STILL waiting for the Pico, I built a reaction time based game, and a burglar alarm in Wokwi, with the help of the PDF book I’ve mentioned before. By this, I’ve learnt how to use the urandom library in Micropython, which I think will be really useful with R2D2 ‘s flashing lights, and sounds, and with the burglar alarm I’ve learnt how to connect, and use a sensor with the Pico. Putting sensors in R2D2 is a secondary, and a long-term goal, but it would be really nice. I hope that after this, I’ve learnt the basics of Micropython, so I think I’ll start focusing on our actual project, R2D2. (I don’t know when will the Pico arrive, so this is a major limiting factor) IT IS JUST LEARNING THE BASICS, NOT THE ACTUAL PROJECT
A problem occurred during the delivery if the Pico, so it got retured to the sender. We had to order it again, so until it arrives, I thought I could learn actually how to control the DC motors with it, with the help of a TB6612FNG motor driver which we will be using. I asked Gemini to explain it to me, without providing exact codes, to ensure I actually understand the code, and not just copy-pasteing. It gave me a great youtube tutorial too, from Electro Nerds Academy, which used Arduino (and therefore C++), but it helped me understand the core principles of the wiring, and the code EDIT: This was BEFORE I was aware of the rule which states that we should not log too much continuous time spent watching youtube. This was only the learning phase, and I tried making it as active as possible, by building my own version on the way. If it is against the rules, please just ignore the time logged in this post. I don’t know if it is possible, but I’m pretty freaked out my entire summer work gets flushed down the toilet😭😭
Today, I got the Pico!!! Immediatelly I started to load up micropython on it, and download Thonny. It was a bit tricky, because my antivirus program wouldn’t let me download it, but I disabled it temporarily, and it worked just fine. And I quickly reviewed the first few pages of my PDF book, to make sure I know my Pico physically, not just the Wokwi version. After that I wanted to try it out with the onboard LED, but it didn’t worked, so I asked Gemini. I found out that my Pico, is actually Pico W, and the onboard led is a little different. After that it worked beautifully. Then I wanted to light up an external LED, and guess what, it also didn’t work! I started troubleshooting with Gemini on my side, and I found out, that my breadboard’s ground rail is probably damaged. After rewiring to bypass it, it lighted up!
Today I wrote the prototype of the code, which will control the motion of R2D2. The original version will control it wirelessly, along with the sounds and ligths, but this controls only the motors yet, via a microUSB cable. I wrote it in VSCode, and I will only copy it to Thonny (which i’ll be using for the Pico) when it is fully completed. I took the help of Gemini, to explain me how to control it (the robot, eventually) using my keyboard, and with the final debugging. I also watched Electro Nerds Academy’s youtube video in the process, which explains how to control the TB6612FNG motor driver with Arduino, and C++, I did this to make sure I understand the process. I still have a lot to learn, but slowly and surely, R2 will roll!
This time, I collected multiple days’ work for this devlog. I started by brainstorming with Gemini (by now I must be their top user, lol) about what motor would be best for turning R2’s head. We’re planning LEDs in the head, so I had to make sure it cannot rotate all the way around, because this would break the wires. I came to the conclusion, that a custom 3D printed gear mechanism would be best, with a 28BYJ-48 stepper motor, and a ULN2003 board, and rotation limits in the software. I watched videos on Youtube, and also asked Gemini to explain to me how to write a code to control the stepper motor. The code is not yet complete, I’ll have to add a “homing mechanism”, which would help the head find it’s position at startup.
This time I coded the homing sequence, which will help R2 center it’s head using the stepper motor. There will be an infrared sensor in the head, and at startup, R2 will turn its head slowly left, until the sensor detects it, and after this, the code will set the step count to 0. After this the head will automatically turn to look forward, while counting the steps. This is necessary to ensure that the head will move only in the safe limits, no matter in which position it was at startup. I took the help of Gemini at debugging.
So this time, I finally wired everything for the stepper motor-powered head together! I copyed the part which controls specifically this from my entire code sitting VSCode, just to try this out. I had an old battery holder saved from a toy, to make an external power source, and wired everything together. I checked the wiring with Gemini, to make sure I don’t light anything on fire. After this, well, it did not work… I spent brainstorming, “debugging”, and checking everything twice, until I realized the “bug” which prevented the motor spin, was the very common “missing battery” error. So I put it in, and after some fine tuning on the code, it worked really nice
Today, I added the sensor for the homing sequence of R2’s head! This way, at startup, the head will start to turn, until it hits the infrared sensor, then go back to the middle. This way it is ensured, that no matter what position was the head at startup, it won’t go beyond the safe limits
This time, I’ve finally made the wireless part! I started by, as you probably guessed it already, by brainstorming with Gemini! I asked it to give me tutorials on youtube, on how to make my robot wirelessly controllable, since I have a Pico W, as well as explain it himself. At first, I’ve went down a little rabbit hole, because I wanted to build a simple website, with buttons, to control R2D2. I quickly realized after peeking into college-level tutorials, that it far exceeds my capabilities at the moment, so I asked my good ol’ friend, Gemini, to give me a bit of a simpler solution. After some deep discussions, and watching a nice old man on youtube explaining it, I decided on non-blocking UDP socket polling, with the help of an external app. This will work by downloading an app to my phone (or anyone’s phone, who wants to control R2), agreeing on an ip address, and port number, then typing the letters, which represents the w, a, s, d, etc. keys. It may not look pretty, but it’s just as effective, and MUCH simpler.
This time, I made the main power lines of R2D2! I started by soldering 3 wires (three positive, and three ground) to the battery holder, which will be the cozy home of two 18650 Li-Ion batteries. I connected a 5 volt buck converter to one of the lines, which will power the Pico, and a voltage divider to the next one, to help the Pico measure the batteries’ voltage, and give me a warning (eventually using R2’s LEDs) of low voltage. There is not connected anything yet to the third line, because the motor driver will be powered using this, but that soldering would be really hard with my setup, and I don’t know if I could safely do it. So I think I will ask an adult acquintance of mine, who works with electronics, to do that one for me.
Today I tested the battery voltage measuring feature, I last time made! I put in the batteries, wired it up, copied this specific part of the code in Thonny, told it to print the voltage, aaaannd when I checked with the multimeter, it was waaay off, lol. I was baffled, because the voltage my Pico measured was MORE than a full volt below the actual voltage. I immediately started researching, (by asking Gemini… of course…. I start to feel guilty for all the trees and water I waste), and it said to me that it is likely due to resistors are not perfect, this is why they have a TOLERANCE band, and I should start a different approach. It suggested that I should calculate a factor, by dividing the voltage of the batteries measured with a multimeter, by the raw ADC value my Pico reads, then multiply with that with the raw ADC value. After fixing this, it gave me roughly the exact value my multimeter had shown. P.S. If I could learn for once, that I HAVE to use period at decimal numbers, instead of comma, I would spend way less time searching for bugs that don’t exist…
So this time, I’ve tried to test the wireless part. I started by downloading a UDP app on my mom’s phone, and rotating the stepper motor with that, but nothing happened. After this I’ve rewritten the code so it does nothing with the motor, but prints the text in the UDP pockets, but still nothing. I’ve downloaded Packet Sender to my laptop, but still nothing. The UDP packets did never reach the Pico. I’ve tried everything the Debug Master Gemini said for more than two hours, but nothing… I think I will ask my friend who is familiar with making websites to write me a lightweight HTML page with buttons, then somehow make it connect to the motor logic. I reallyyy hope that will work.
So this time, I’ve had to update the entire code. So, as I’ve told you guys in my previous devlog, I’ve tried to make R2 wireless with UDP, but it did not work for some reason. Because of this, we decided to try another method. We will host a web server on the Pico! My friend, who knows this stuff, will write a basic HTML code, with buttons, to control R2. For this, I’ve had to go down a little rabbit hole with youtube, google and gemini, to learn how actually this stuff works. After, and along with researching, I’ve had to change a little the structure of my code, and implement new features. I also added LEDs this time! I think the coolest feature is, that R2 will tell us with Morse his IP address, using his LEDs (because he will have different ones based on which wifi network he is currently connected to, and he will have no other way to tell it us). We’ve also made some crucial changes. At first we’ve wanted R2D2 to have sounds, but we will have to omit this one for now, because our lack of time. Also, rather than random flashing, each LED will have it’s own purpose, and they all going to be used for communication.
Hey! I think this will be my last, and my longest devlog! I need to clarify things, and address things, but first– I tell what I did. So I wired up the motor driver (an anquintance of mine helped to solder up the wires which will take the high current to the motors), wired up the LED’s, and put everything in the 3D printed chassis done, and assembled by @TamasLaszloffy777 , with the help of our friends (and my mom :) ). I soldered the wires to the motors, and glued the LED’s in the head. Now comes a list of things, that didn’t work: I copyed the HTML code my friend wrote into my code, but unfortunately I couldn’t get it working. I’ve spent countless hours debugging with Gemini, but as the project got more complex, it gave me more stupid answers. When I tested it with just the stepper motor, it worked, but with everything connected, it didnt. So out of desperation I’ve had to go back the old method I used at testing, which is that everything works with an USB cable. I’ve spent circa 30 minutes changing the code, and commenting out everything that has to do something with the wireless thing. Of course Hackatime didn’t register nothing out of this half an hour. This was the main thing why I used Lookout and Lapse for coding before the Ban. But after all, thank God it works now with USB (after some debugging with Gemini of course). This means that the LEDs also lost their purpose as wifi status indicators, so now the project has 2 spare LEDs inside. (I won’t put those in the wiring diagram, since they are not used, but its too much work to take them out. I saved two of them by repurposing them to “head turning indicators”, but left two out, because it would just make it harder for me to take the head off, to access everything inside. Also I plan to fix the wireless part in the future, but not in Stardance). The next thing I noticed, is the homing sequence is pretty useless. Fortunately the wires never twist dangerously, contrary to my previous assumptions, and R2 would have to rotate its head 360 degrees multiple times in a row for it to become dangerous for the wires. I was quite upset that I did the homing sequence, and bought the sensor for nothing, but keeping it would add unnecessary complexity. And unnecessary complexity is NEVER good in a project.(I wont put the sensor into the BOM list, nor into the wiring diagram)
Ships:
I made this project with @TamasLaszloffy777 . My part was the electronics and coding. THe biggest hurdle was, that I’ve had to learn everything from scratch. I only knew basic python, and something about circuits, but only what I’ve learnt in school. This project is a fan-made R2-D2 replica, which is capable of rolling, turning it’s head, and has some LEDs. The project includes a demo link, where you can see it work in real life. Make sure you watch it, and We hope You’ll enjoy it!...
|
1793195722.042937
|
1793282122.042937
|
|
21813
|
Face-Activated Servo by @saanvi_neema | Stardance
|
saanvi_neema
|
1
|
37.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-22T01:40:45Z", "hours": 16.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I built a real-time face detection system on the AMD Kria KV260 board that spins a servo motor when a face is detected. The KV260 runs a Python app that uses OpenCV to detect faces from my webcam. Then it sends commands to the Arduino Elegoo Mega 2560, which spins the servo motor. The hardest part was the communication between the KV260 and the Arduino board. The Python side sends the angle (from 0-180) and waits. The Arduino needs some time to boot before it can accept commands. Getting the timing right was difficult. I’m proud of the integration between software and hardware, because this was my first hardware project. Testing it will be difficult, as it works locally (has to be on the local network). But you will need: Flash servo_test.ino onto the Elegoo Mega Connect the Mega to the KV260 via USB (it will appear as /dev/ttyACM0) Run python kria_app.py on the KV260 Open http://kria.local:5000 in a browser on the same network Wait for some time since the Mega needs to initialize", "repo": "https://github.com/saanvi-neema/kv260/tree/master/face-servo", "demo": ""}]...
|
[{"post_id": 26933, "ts": "202 [{"post_id": 26933, "ts": "2026-07-12T00:34:47Z", "hours": 9.2547, "text": "I am working on upgrading my face-servo project to be a face-activated robotics car. When a face is detected, the car should track the face and move toward it. If the face is I’ve already built the car and I am working on getting the Arduino motor shield and the ESP32 camera tracking set up."}, {"post_id": 17037, "ts": "2026-06-27T17:31:42Z", "hours": 11.7411, "text": "Formatted and cleaned up code and improved the Readme. I also tried to make face-detection more accurate, because the algorithm was detecting some objects that weren’t faces as faces. I’ve attached a picture of the app detecting my face (you can see the green box around my face)."}, {"post_id": 13466, "ts": "2026-06-22T01:30:33Z", "hours": 5.2039, "text": "Improved some code and added some test/utility files for fun. Attaching a picture of me recording my demonstration video."}, {"post_id": 13228, "ts": "2026-06-21T17:41:03Z", "hours": 11.2622, "text": "Project is finished – the code is finished and the face activation is working properly! It took a while to get it working, but it works. I wasn’t sure what to put as a screenshot because it’s a hardware project, so I’m attaching a screenshot of the method that was the hardest/took me the longest to figure out."}]...
|
Title: Face-Activated Servo by @saanvi_neema | Sta Title: Face-Activated Servo by @saanvi_neema | Stardance
Devlogs:
Project is finished – the code is finished and the face activation is working properly! It took a while to get it working, but it works. I wasn’t sure what to put as a screenshot because it’s a hardware project, so I’m attaching a screenshot of the method that was the hardest/took me the longest to figure out.
Improved some code and added some test/utility files for fun. Attaching a picture of me recording my demonstration video.
Formatted and cleaned up code and improved the Readme. I also tried to make face-detection more accurate, because the algorithm was detecting some objects that weren’t faces as faces. I’ve attached a picture of the app detecting my face (you can see the green box around my face).
I am working on upgrading my face-servo project to be a face-activated robotics car. When a face is detected, the car should track the face and move toward it. If the face is I’ve already built the car and I am working on getting the Arduino motor shield and the ESP32 camera tracking set up.
Ships:
I built a real-time face detection system on the AMD Kria KV260 board that spins a servo motor when a face is detected. The KV260 runs a Python app that uses OpenCV to detect faces from my webcam. Then it sends commands to the Arduino Elegoo Mega 2560, which spins the servo motor. The hardest part was the communication between the KV260 and the Arduino board. The Python side sends the angle (from 0-180) and waits. The Arduino needs some time to boot before it can accept commands. Getting the timing right was difficult. I’m proud of the integration between software and hardware, because this was my first hardware project. Testing it will be difficult, as it works locally (has to be on the local network). But you will need: Flash servo_test.ino onto the Elegoo Mega Connect the Mega to the KV260 via USB (it will appear as /dev/ttyACM0) Run python kria_app.py on the KV260 Open http://kria.local:5000 in a browser on the same network Wait for some time since the Mega needs to initialize...
|
1793126900.307966
|
1793213300.307966
|
|
21970
|
artkive by @puoiyip | Stardance
|
puoiyip
|
1
|
37.0
|
570
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-20T03:44:00Z", "hours": 37.0, "multiplier": 15.39, "payout": 570, "blessing": "neutral", "text": "“artkive” is a personal website of mine that is meant to act as a fun art portfolio that features some of my favorite works that I’ve created over the past few years. Unlike a traditional (or professional) digital art portfolio, I wanted add unique features for each medium to make the pages more interesting. I’ve had this website idea for a year so I’m quite satisfied seeing it come to life! This is the first website that I created independently (after a year-long break from my last web development course), so I struggled to grasp advanced web development concepts. Despite this, I was introduced to various CSS properties that ended up making my website more cohesive. To see my project, simply click on the website link.", "repo": "https://github.com/puoiyip/artkive", "demo": "https://puoiyip.github.io/artkive/"}]...
|
[{"post_id": 31591, "ts": "202 [{"post_id": 31591, "ts": "2026-07-20T03:26:03Z", "hours": 1.2528, "text": "Devlog 20 FINAL devlog for real this time! I mainly worked on updating my README file and fixed bugs related to the mobile devices (I ended up scrapping a couple of features to address this issue)"}, {"post_id": 29691, "ts": "2026-07-16T19:22:22Z", "hours": 2.9294, "text": "Devlog 19 So after testing the website out on my phone, I realized that I needed to format it for mobile devices because it turned out mega wonky (see image below), which means no shipping yet! Accomplishments Removed elements that wouldn’t be effective on mobile (e.g. navbars) Added dropdown menu on the top left of all pages Adjusted text size as necessary Adjusted size of images Added vertical scroll bars to modals and horizontal scroll bar to the Videos page To-Do After making these changes, I tested my website on my phone and saw that many elements were not displaying correctly, so I am working on debugging that"}, {"post_id": 24512, "ts": "2026-07-08T03:22:49Z", "hours": 4.23, "text": "Devlog 18 (woah it’s been a while since i last made a devlog… but i’ve been slowly working on this project bit by bit this past week) Hopefully this is my last devlog before shipping! Accomplishments Added the navbar header to all the pages (and fixed a bunch of bugs associated with this change) Created a scrapbook-esque background to make my website more lively Got rid of the original horizontal navbar from the ibisPaint and Videos pages Added a home button on all the pages Added an auto-scroll effect so that when you click on a page, it’ll scroll to the main content To-Do For some reason, my website won’t deploy on GitHub… so I definitely need to figure that out"}, {"post_id": 20560, "ts": "2026-07-02T05:23:26Z", "hours": 1.0472, "text": "Devlog 17 Accomplishments Styled polaroid images and made them increase in opacity on hover Added camera and film images to make the Videos page nicer and more video-like"}, {"post_id": 19741, "ts": "2026-07-01T04:02:42Z", "hours": 2.0994, "text": "Devlog 16 Accomplishments Created polaroids of some of my favorite art to add to the background of my website (will format later) Combined the header from the home page with the ibisPaint page (though I’m coming across an error when I try to do the same with the Illustrator page) To-Do Fix bugs with Illustrator page Find a way to navigate back to the home page from the other pages (because I’ll eventually remove the navbar) Format the polaroids and have them shake on hover"}, {"post_id": 18969, "ts": "2026-06-30T04:34:07Z", "hours": 0.5281, "text": "Devlog 15 Mainly worked on cleaning up my code a bit Accomplishments Added title tags to each page (don’t know how I forgot them before) Replaced var with const (JavaScript); I finally understand why it’s better to not use var anymore Adjusted the font weight of the home page navbar To-Do Find a font that looks nice when it’s in caps log Replace the current navbar with the home page nav bar (it looks much nicer IMO) Write a real “about me” bio"}, {"post_id": 18110, "ts": "2026-06-29T03:33:43Z", "hours": 1.1136, "text": "Devlog 14 Accomplishments Photoshop and Illustrator pages Received some feedback and added two features to these pages: Tools icons on the left (no, they sadly have no function) Color picker (also has no function, but that might be an add-on later) Home page Added the “openModal()” function to all the images (yes, it was a manual process) Formatted the buttons Added a “close” icon"}, {"post_id": 17936, "ts": "2026-06-28T21:33:38Z", "hours": 2.1456, "text": "Devlog 13 Accomplishments Home page Created a modal container to view the full images on the home page Added functions that open the modal and switch to the previous/next image Other Added a transition on the navbar such that it turns dark(ish) green on hover To-Do Need to figure out if there’s an optimized way to add the openModal() function on all the images without manually adding the onclick=”” function to every < img > tag…. Also need to figure out how to close the modal by clicking outside the image without impacting how the buttons work Change the layout of the buttons"}, {"post_id": 17220, "ts": "2026-06-27T22:39:33Z", "hours": 1.8625, "text": "Devlog 12 Accomplishments Illustrator page Created the layout (which basically mirrors the Photoshop page layout) I had to put all the internal JS and CSS code used for the Photoshop page into external files (and correct them accordingly) so they can be used for Photoshop and Illustrator Videos page Uploaded my videos onto YouTube and embedded them onto the page Enabled autoplay and mute for all the videos To-Do I want to add a scrolling slideshow effect onto the videos page (also maybe make the videos loop) I have an idea to merge the upper half of the home page with the other pages to make it look nicer (which might require me to merge my JS code…)"}, {"post_id": 16715, "ts": "2026-06-27T04:44:33Z", "hours": 1.2508, "text": "Devlog 11 Accomplishments Created a GitHub repo for my project (totally forgot to do that before) and I finally understand how to use GitHub!! Added alt text to all my artworks on the Home page Added a notebook background and tabs for the “previous” and “next” buttons To-Do Find a better quality image of a notebook (at this point I might as well draw one myself) Add alt text to the images on the Photoshop and ibisPaint X pages, where the image source is constantly changing Add more flair to the ibisPaint X page"}, {"post_id": 16612, "ts": "2026-06-27T00:52:59Z", "hours": 2.825, "text": "Devlog 10 Accomplishments ibisPaint X page Finally figured out how to apply the animations to all the pages (I had to increment the degrees by 180 every time the button is clicked) Likewise, I was able to make the containers rotate counterclockwise to go to the previous page To-Do Style the page, maybe add a background image that looks like a sketchbook I want to add a little sticky note button that opens up the artist statements"}, {"post_id": 16102, "ts": "2026-06-26T05:39:09Z", "hours": 2.0844, "text": "Devlog 9 Accomplishments ibisPaint X page Uploaded all of my ibisPaint artworks onto my computer The “next” button is able to traverse all the artworks I was able to add a page flip animation (though it only works for the first page…) I learned a lot about transformations! To-Do In order to execute the home screen plan (from Devlog 8), I have to merge all my internal Javascript code into an external sheet… lots of refactoring to be done Apply the flip animation to all pages"}, {"post_id": 16020, "ts": "2026-06-26T00:27:18Z", "hours": 2.5217, "text": "Devlog 8 Accomplishments Home page Styled the buttons and added more color Created an overview section of all my art Photoshop page Added more color to the background/elements Styled the side navbar Fixed the formatting issue with some of the images Added functionality to the “art” button so that it displays the art/closes the modal To-Do Start working on the layout for the ibisPaint X works Locate, download, and upload all my ibisPaint art to my computer I want each artwork on the “overview” section to link to the full-sized artwork"}, {"post_id": 15497, "ts": "2026-06-25T05:58:04Z", "hours": 2.4789, "text": "Devlog 7 Accomplishments FINALLY changed the text of the navbar lol Added text to the icons on the homepage so users know what they represent Styled the Photoshop layout more Reincorporated the artist statements for the Photoshop page using modals Added functionality so that the modals show when “artist statement” is clicked and they will change alongside the art when “next” or “previous” are clicked To-Do I want to add more character to my pages, perhaps through more color Add a “close” button at the top of the modal Place the side navbar elements at the bottom of the container Some images appear really small, so I need to alter their size"}, {"post_id": 14892, "ts": "2026-06-24T05:40:49Z", "hours": 2.0264, "text": "Devlog 6 Accomplishments I started to design the layout for the Photoshop page (which admittedly does not resemble Photoshop…) I separated the images such that they don’t appear on the page all at once Added functionality to the “next” button to go through the images To-Do Fix the background and adjust the dimensions of the images Add functionality to the “artist statement” to display the text that I had before Make the interface better resemble Photoshop </3"}, {"post_id": 14778, "ts": "2026-06-24T00:27:24Z", "hours": 1.5639, "text": "Devlog 5 Accomplishments Added links to the other HTML files on the icons Added functionality to the buttons!! When a button is pressed, the images/links will shift (I struggled so much getting the images to rotate in the correct order…) To-Do I would like to add animations/transitions to the bottom navbar Style top navbar Finish the layout for the Photoshop page"}, {"post_id": 14206, "ts": "2026-06-23T06:20:42Z", "hours": 0.73, "text": "Devlog 4 Fixed bug with the Filtered Money project images (shown below) Added side bar to the Photoshop page"}, {"post_id": 14028, "ts": "2026-06-23T00:25:01Z", "hours": 1.3925, "text": "Devlog 3 Accomplishments Made the navigation bar horizontal Brainstormed a new idea for the layout of the Photoshop page (it will look like the Photoshop interface) Started the layout for the ibisPaint X page Created the general layout for the home page (shown below) (the images for the icons are placeholders) Began to add functionality to the home page (WIP) To-do Arrange layout for the Photoshop page Figure out how to change the content on click Style navigation bar"}, {"post_id": 13940, "ts": "2026-06-22T21:36:42Z", "hours": 2.0444, "text": "Devlog 2 I added my artist statements (which I saved in a Google Docs a while ago) for each work from Photoshop and Illustrator (I also added my Illustrator works). I imported a couple of fonts from Google Fonts and finally adjusted the sizing of the images and text. I also began brainstorming the logistics for the functionality."}, {"post_id": 11623, "ts": "2026-06-18T22:44:10Z", "hours": 0.9131, "text": "Devlog 1 Just finished planning the outline of my portfolio and uploaded my Photoshop and Illustrator works. I created an HTML file for each page I need and figured out the general color scheme I’m going for. (I will add CSS later)"}]...
|
Title: artkive by @puoiyip | Stardance
Devlogs:
D Title: artkive by @puoiyip | Stardance
Devlogs:
Devlog 1 Just finished planning the outline of my portfolio and uploaded my Photoshop and Illustrator works. I created an HTML file for each page I need and figured out the general color scheme I’m going for. (I will add CSS later)
Devlog 2 I added my artist statements (which I saved in a Google Docs a while ago) for each work from Photoshop and Illustrator (I also added my Illustrator works). I imported a couple of fonts from Google Fonts and finally adjusted the sizing of the images and text. I also began brainstorming the logistics for the functionality.
Devlog 3 Accomplishments Made the navigation bar horizontal Brainstormed a new idea for the layout of the Photoshop page (it will look like the Photoshop interface) Started the layout for the ibisPaint X page Created the general layout for the home page (shown below) (the images for the icons are placeholders) Began to add functionality to the home page (WIP) To-do Arrange layout for the Photoshop page Figure out how to change the content on click Style navigation bar
Devlog 4 Fixed bug with the Filtered Money project images (shown below) Added side bar to the Photoshop page
Devlog 5 Accomplishments Added links to the other HTML files on the icons Added functionality to the buttons!! When a button is pressed, the images/links will shift (I struggled so much getting the images to rotate in the correct order…) To-Do I would like to add animations/transitions to the bottom navbar Style top navbar Finish the layout for the Photoshop page
Devlog 6 Accomplishments I started to design the layout for the Photoshop page (which admittedly does not resemble Photoshop…) I separated the images such that they don’t appear on the page all at once Added functionality to the “next” button to go through the images To-Do Fix the background and adjust the dimensions of the images Add functionality to the “artist statement” to display the text that I had before Make the interface better resemble Photoshop </3
Devlog 7 Accomplishments FINALLY changed the text of the navbar lol Added text to the icons on the homepage so users know what they represent Styled the Photoshop layout more Reincorporated the artist statements for the Photoshop page using modals Added functionality so that the modals show when “artist statement” is clicked and they will change alongside the art when “next” or “previous” are clicked To-Do I want to add more character to my pages, perhaps through more color Add a “close” button at the top of the modal Place the side navbar elements at the bottom of the container Some images appear really small, so I need to alter their size
Devlog 8 Accomplishments Home page Styled the buttons and added more color Created an overview section of all my art Photoshop page Added more color to the background/elements Styled the side navbar Fixed the formatting issue with some of the images Added functionality to the “art” button so that it displays the art/closes the modal To-Do Start working on the layout for the ibisPaint X works Locate, download, and upload all my ibisPaint art to my computer I want each artwork on the “overview” section to link to the full-sized artwork
Devlog 9 Accomplishments ibisPaint X page Uploaded all of my ibisPaint artworks onto my computer The “next” button is able to traverse all the artworks I was able to add a page flip animation (though it only works for the first page…) I learned a lot about transformations! To-Do In order to execute the home screen plan (from Devlog 8), I have to merge all my internal Javascript code into an external sheet… lots of refactoring to be done Apply the flip animation to all pages
Devlog 10 Accomplishments ibisPaint X page Finally figured out how to apply the animations to all the pages (I had to increment the degrees by 180 every time the button is clicked) Likewise, I was able to make the containers rotate counterclockwise to go to the previous page To-Do Style the page, maybe add a background image that looks like a sketchbook I want to add a little sticky note button that opens up the artist statements
Devlog 11 Accomplishments Created a GitHub repo for my project (totally forgot to do that before) and I finally understand how to use GitHub!! Added alt text to all my artworks on the Home page Added a notebook background and tabs for the “previous” and “next” buttons To-Do Find a better quality image of a notebook (at this point I might as well draw one myself) Add alt text to the images on the Photoshop and ibisPaint X pages, where the image source is constantly changing Add more flair to the ibisPaint X page
Devlog 12 Accomplishments Illustrator page Created the layout (which basically mirrors the Photoshop page layout) I had to put all the internal JS and CSS code used for the Photoshop page into external files (and correct them accordingly) so they can be used for Photoshop and Illustrator Videos page Uploaded my videos onto YouTube and embedded them onto the page Enabled autoplay and mute for all the videos To-Do I want to add a scrolling slideshow effect onto the videos page (also maybe make the videos loop) I have an idea to merge the upper half of the home page with the other pages to make it look nicer (which might require me to merge my JS code…)
Devlog 13 Accomplishments Home page Created a modal container to view the full images on the home page Added functions that open the modal and switch to the previous/next image Other Added a transition on the navbar such that it turns dark(ish) green on hover To-Do Need to figure out if there’s an optimized way to add the openModal() function on all the images without manually adding the onclick=”” function to every < img > tag…. Also need to figure out how to close the modal by clicking outside the image without impacting how the buttons work Change the layout of the buttons
Devlog 14 Accomplishments Photoshop and Illustrator pages Received some feedback and added two features to these pages: Tools icons on the left (no, they sadly have no function) Color picker (also has no function, but that might be an add-on later) Home page Added the “openModal()” function to all the images (yes, it was a manual process) Formatted the buttons Added a “close” icon
Devlog 15 Mainly worked on cleaning up my code a bit Accomplishments Added title tags to each page (don’t know how I forgot them before) Replaced var with const (JavaScript); I finally understand why it’s better to not use var anymore Adjusted the font weight of the home page navbar To-Do Find a font that looks nice when it’s in caps log Replace the current navbar with the home page nav bar (it looks much nicer IMO) Write a real “about me” bio
Devlog 16 Accomplishments Created polaroids of some of my favorite art to add to the background of my website (will format later) Combined the header from the home page with the ibisPaint page (though I’m coming across an error when I try to do the same with the Illustrator page) To-Do Fix bugs with Illustrator page Find a way to navigate back to the home page from the other pages (because I’ll eventually remove the navbar) Format the polaroids and have them shake on hover
Devlog 17 Accomplishments Styled polaroid images and made them increase in opacity on hover Added camera and film images to make the Videos page nicer and more video-like
Devlog 18 (woah it’s been a while since i last made a devlog… but i’ve been slowly working on this project bit by bit this past week) Hopefully this is my last devlog before shipping! Accomplishments Added the navbar header to all the pages (and fixed a bunch of bugs associated with this change) Created a scrapbook-esque background to make my website more lively Got rid of the original horizontal navbar from the ibisPaint and Videos pages Added a home button on all the pages Added an auto-scroll effect so that when you click on a page, it’ll scroll to the main content To-Do For some reason, my website won’t deploy on GitHub… so I definitely need to figure that out
Devlog 19 So after testing the website out on my phone, I realized that I needed to format it for mobile devices because it turned out mega wonky (see image below), which means no shipping yet! Accomplishments Removed elements that wouldn’t be effective on mobile (e.g. navbars) Added dropdown menu on the top left of all pages Adjusted text size as necessary Adjusted size of images Added vertical scroll bars to modals and horizontal scroll bar to the Videos page To-Do After making these changes, I tested my website on my phone and saw that many elements were not displaying correctly, so I am working on debugging that
Devlog 20 FINAL devlog for real this time! I mainly worked on updating my README file and fixed bugs related to the mobile devices (I ended up scrapping a couple of features to address this issue)
Ships:
“artkive” is a personal website of mine that is meant to act as a fun art portfolio that features some of my favorite works that I’ve created over the past few years. Unlike a traditional (or professional) digital art portfolio, I wanted add unique features for each medium to make the pages more interesting. I’ve had this website idea for a year so I’m quite satisfied seeing it come to life! This is the first website that I created independently (after a year-long break from my last web development course), so I struggled to grasp advanced web development concepts. Despite this, I was introduced to various CSS properties that ended up making my website more cohesive. To see my project, simply click on the website link....
|
1793087246.4337795
|
1793173646.4337795
|
|
27134
|
VEX App by @boberto | Stardance
|
boberto
|
1
|
37.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-13T16:28:41Z", "hours": 37.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Hey guys, soo since the dashboard invite link reroutes users to /onboarding, it doesnt return a code 200 “ok”. So please use this link instead: https://stlvexapp.guanine.org/join/b93d07e1-b1a8-467e-81fb-d3f36dcff0b7 But anyways, the point of this project wasn’t to build something beautiful, fun, or exciting. Compared to the other things people are building (I saw some awesome spider bots and rocket ship CADs), my project is pretty lame. Why did I build it? Well, around 4 months ago, I noticed some major bottlenecks in my school’s Robotics organization. Our calendar was on a google doc with only a single page, fragmented communications, field elements getting lost, first year members constantly asking for support, and nobody on any of the 6 teams had any idea what they were supposed to do Therefore, I set out to build a solution and I learned SO MUCH along the way! My VEX internal dashboard has taught me so much about backend design such as: rate-limiting throttling oAuth flows SQL databases & normalization database annotations monorepos prefetching & async fetching image preloading GIT!!!!! It was such an amazing journey and it has helped me build a portfolio of projects that actually show that I CAN engineer real apps that hold up against heavy user traffic. (AI WILL NEVER REPLACE ME) The result: I’ve used this app as a my FRONTIER project is SO MANY applications to organizer positions at JamHacks, IgnitionHacks, EurekaHacks, etc… And… Now I work as a backend engineer for THREE HACKATHONS!!! I’m so happy and I know that this may not be the most EXCITING of projects but if you could please support me and my future endeavours thanks :)", "repo": "https://github.com/RandomPerson5571/VEXApp", "demo": "https://stlvexapp.guanine.org"}]...
|
[{"post_id": 66166, "ts": "202 [{"post_id": 66166, "ts": "2026-09-11T20:20:18Z", "hours": 17.1692, "text": "Around four months ago, I noticed my school’s robotics organization had a lot of small problems adding up Our calendar was a one-page Google Doc Communication was scattered Field elements kept getting lost New members constantly needed help People across our 6 teams often had no idea what they were supposed to be doing So a friend and I started building a centralized management portal. A few technical decisions I made Turborepo for a monorepo, so I didn’t have to duplicate backend logic across multiple repos Supabase + Prisma for auth and database accessZuplo for API rate limiting RoboEvents API for competition data GitHub + Fusion 360 webhooks for Discord notifications Render + UptimeRobot to keep hosting cheap and reduce cold starts It was a long and difficult road to get here, as I had to learn so many new tools and resolve so many different problems. But now the portal has officially shipped to our robotics organization, with 200+ members across 6 teams!! Pretty crazy considering it started because our Google Doc calendar sucked."}, {"post_id": 23242, "ts": "2026-07-06T02:20:35Z", "hours": 0.7717, "text": "Feats: Code cleanup Debugging App is now production-ready."}, {"post_id": 22585, "ts": "2026-07-05T03:36:59Z", "hours": 0.8592, "text": "Feats: general testing planning 3d renders"}, {"post_id": 20988, "ts": "2026-07-02T18:45:08Z", "hours": 3.6522, "text": "Feats: added github integration added team repos fixed some dom hydration errors added push notifs for the discord bot"}, {"post_id": 19378, "ts": "2026-06-30T17:50:29Z", "hours": 1.3994, "text": "Feats: latency issues a lot of code refactoring pushed the app to prod"}, {"post_id": 18555, "ts": "2026-06-29T19:06:07Z", "hours": 1.0864, "text": "Feats: added documentation pages added markdown support added folder creation basically fully CRUD for documentation and folders added discord slash commands TODOs: add more discord slash commands add notificaitons add external integrations (github, fusion360, etc.)"}, {"post_id": 18066, "ts": "2026-06-29T01:45:38Z", "hours": 2.2067, "text": "Feats: implemented inventory items (signout, creation, viewing, etc.) implemented dashboard widgets implemented task creations implemented documentation view implemented inline edits for tasks implemented documentation + folders for proper storage TODOs: add more admin-based discord bot commands create a mobile app??? write a backend api server to fetch data from robotevents api"}, {"post_id": 17627, "ts": "2026-06-28T14:39:15Z", "hours": 2.0258, "text": "Feats: added tasks improved admin panel UI improved settings page UI and added actions such as user deletion, discord linking, onshape & github integration, password resets, and account information changes. added discord bot slash commands for task creation, task viewing, task sign offs, invite creation, event scheduling TODOs: improve tasks list UI/UX add inventory tracking improve dashboard add more discord bot functionalities"}, {"post_id": 17107, "ts": "2026-06-27T19:35:26Z", "hours": 7.6894, "text": "I just added a couple of slash commands for the discord bot related to admin features (such as creating platform invite links, event scheduling, etc) Updated web interface UI and wired dashboard with supabase db."}]...
|
Title: VEX App by @boberto | Stardance
Devlogs:
I Title: VEX App by @boberto | Stardance
Devlogs:
I just added a couple of slash commands for the discord bot related to admin features (such as creating platform invite links, event scheduling, etc) Updated web interface UI and wired dashboard with supabase db.
Feats: added tasks improved admin panel UI improved settings page UI and added actions such as user deletion, discord linking, onshape & github integration, password resets, and account information changes. added discord bot slash commands for task creation, task viewing, task sign offs, invite creation, event scheduling TODOs: improve tasks list UI/UX add inventory tracking improve dashboard add more discord bot functionalities
Feats: implemented inventory items (signout, creation, viewing, etc.) implemented dashboard widgets implemented task creations implemented documentation view implemented inline edits for tasks implemented documentation + folders for proper storage TODOs: add more admin-based discord bot commands create a mobile app??? write a backend api server to fetch data from robotevents api
Feats: added documentation pages added markdown support added folder creation basically fully CRUD for documentation and folders added discord slash commands TODOs: add more discord slash commands add notificaitons add external integrations (github, fusion360, etc.)
Feats: latency issues a lot of code refactoring pushed the app to prod
Feats: added github integration added team repos fixed some dom hydration errors added push notifs for the discord bot
Feats: general testing planning 3d renders
Feats: Code cleanup Debugging App is now production-ready.
Around four months ago, I noticed my school’s robotics organization had a lot of small problems adding up Our calendar was a one-page Google Doc Communication was scattered Field elements kept getting lost New members constantly needed help People across our 6 teams often had no idea what they were supposed to be doing So a friend and I started building a centralized management portal. A few technical decisions I made Turborepo for a monorepo, so I didn’t have to duplicate backend logic across multiple repos Supabase + Prisma for auth and database accessZuplo for API rate limiting RoboEvents API for competition data GitHub + Fusion 360 webhooks for Discord notifications Render + UptimeRobot to keep hosting cheap and reduce cold starts It was a long and difficult road to get here, as I had to learn so many new tools and resolve so many different problems. But now the portal has officially shipped to our robotics organization, with 200+ members across 6 teams!! Pretty crazy considering it started because our Google Doc calendar sucked.
Ships:
Hey guys, soo since the dashboard invite link reroutes users to /onboarding, it doesnt return a code 200 “ok”. So please use this link instead: https://stlvexapp.guanine.org/join/b93d07e1-b1a8-467e-81fb-d3f36dcff0b7 But anyways, the point of this project wasn’t to build something beautiful, fun, or exciting. Compared to the other things people are building (I saw some awesome spider bots and rocket ship CADs), my project is pretty lame. Why did I build it? Well, around 4 months ago, I noticed some major bottlenecks in my school’s Robotics organization. Our calendar was on a google doc with only a single page, fragmented communications, field elements getting lost, first year members constantly asking for support, and nobody on any of the 6 teams had any idea what they were supposed to do Therefore, I set out to build a solution and I learned SO MUCH along the way! My VEX internal dashboard has taught me so much about backend design such as: rate-limiting throttling oAuth flows SQL databases & normalization database annotations monorepos prefetching & async fetching image preloading GIT!!!!! It was such an amazing journey and it has helped me build a portfolio of projects that actually show that I CAN engineer real apps that hold up against heavy user traffic. (AI WILL NEVER REPLACE ME) The result: I’ve used this app as a my FRONTIER project is SO MANY applications to organizer positions at JamHacks, IgnitionHacks, EurekaHacks, etc… And… Now I work as a backend engineer for THREE HACKATHONS!!! I’m so happy and I know that this may not be the most EXCITING of projects but if you could please support me and my future endeavours thanks :)...
|
1793148747.4685183
|
1793235147.4685183
|
|
28203
|
Hallway Horror by @skhsmrn | Stardance
|
skhsmrn
|
1
|
37.0
|
672
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-08T03:21:47Z", "hours": 37.0, "multiplier": 18.21, "payout": 672, "blessing": "neutral", "text": "I made a first-person psychological horror game built around a looping hallway that changes as the player progresses, using TV broadcasts, phone calls, lighting changes, environmental events, and a scary monster to tell the story! The most challenging part was getting all of the different systems to work together, especially the loop system, audio, animations, lighting, teleporting, player movement, and camera effects. I ran into several bugs involving errors and the very buggy first-person controller. I am most proud of the atmosphere and progression of the game. I really liked how the lighting turned out, and how much I learned about unity’s lighting system. When testing the project, I recommend using headphones and paying close attention to the TV and phone, they are important to the story! Use WASD to move, the mouse to look, E to interact, and Escape to pause, and keep an eye (and ear) out to understand how to progress the story.", "repo": "https://github.com/SukhsimranpreetChana/testCollabGame", "demo": "https://newbiegamer.itch.io/no-answer"}]...
|
[{"post_id": 24510, "ts": "202 [{"post_id": 24510, "ts": "2026-07-08T03:13:40Z", "hours": 1.6667, "text": "This game is still relatively new, so there are bound to be some crazy random issues, I’ve tried my best to get them all (i’ve attached pictures of some crazy errors i found lol), but for now… The itch.io page is finally up! https://newbiegamer.itch.io/no-answer P.S, sorry if it doesn’t live up to the hype lol"}, {"post_id": 24340, "ts": "2026-07-07T20:58:55Z", "hours": 3.6333, "text": "After so many messy files, a crazy confusing scene, and tireless hours, a solo horror project with a hallway is almost done. I have been debugging the small issues ive found (and can fix). Now, I’m exporting it right now, and will be sending it to a few people to play test. Will probably upload sometime today!"}, {"post_id": 23904, "ts": "2026-07-07T03:22:32Z", "hours": 5.0667, "text": "I’m losing my motivation slowly, but the games is almost done. The animations are in place, the music is in place, and the scene is set. They might not be perfect, but the vision is there. I’m going to sleep now."}, {"post_id": 23215, "ts": "2026-07-06T01:10:28Z", "hours": 3.3, "text": "It has been awhile since one of my devlogs but i’ve been hard at work! Ive added some major (but necessary) changes to loop 4 and 7 bc i really hated them, but i dont know if i made it any better… The monster animations are almost done so i’ve imported the finished ones, I made the red room more red and a toy car cuz that’s scary or something (idk what i’m doing anymore), and some “cutscenes” to loop 7 to make the lore more confusing or something lol"}, {"post_id": 22633, "ts": "2026-07-05T05:51:59Z", "hours": 1.4333, "text": "i think i hate baking lighting"}, {"post_id": 22366, "ts": "2026-07-04T20:03:44Z", "hours": 2.5333, "text": "added a pause menu and an ending cutscene, but its kinda abrupt so i got to fix that… anyway i changed the name of the game again lol"}, {"post_id": 21900, "ts": "2026-07-04T02:21:57Z", "hours": 1.7667, "text": "animations on the way!!! and a few icon indicators replacing the crosshair. These few hours have been dedicated to debugging and adding more polishing details (sfx, anim, etc.) idk why im doing this so soon, just trying to keep some motivation. I still got allat of other features i need to implement. the game is almost there though 😭🙏"}, {"post_id": 21198, "ts": "2026-07-03T00:27:03Z", "hours": 1.6333, "text": "attempting to 3d model, then giving up (and just using an existing model), and now animating… Blender is too complicated for me, I’m sticking to cadding instead lol. What a journey."}, {"post_id": 20986, "ts": "2026-07-02T18:41:51Z", "hours": 0.7333, "text": "those who know"}, {"post_id": 20919, "ts": "2026-07-02T17:15:19Z", "hours": 2.6667, "text": "I finally came up with a name fore this game (low key i don’t know if imma stick with it : ) . Anyway, I added a little lobby and opening, and worked on loops 1-3. I’m currently working on loop 4 and these are the main point i need to finish Add loop 3 backward walk (sounds weird, but I got an idea) Opening scene (mainly done, just needs some cleanup) Ending (gonna be a while) chase scene (lol idk where to start) loop 4 (almost done) Tv should be on Tv should play audio when lights turn red, play questioning audio from phone"}, {"post_id": 20406, "ts": "2026-07-02T00:16:20Z", "hours": 3.2333, "text": "I think im slowly rotting while making this project, i just got done with some sound design, worked on making every loop different, and now… the story has PLOT!!! Oh, and I also made a main menu, but idk what to call the game yet… I could just use people’s suggestions… or come up with my own… or just call it “game name” P.S. there are two of them now, idk why"}, {"post_id": 19774, "ts": "2026-07-01T05:05:34Z", "hours": 2.0667, "text": "Added a few interactable items, who knew raycasting was so chill B) anyway, I added a cleaner hallway manager (for my sake) and made a little test monster >:) more changes to come… we are only getting started!!!"}, {"post_id": 19657, "ts": "2026-07-01T01:10:46Z", "hours": 1.2667, "text": "The lighting changes everything… Too bad these lights cant be baked in unity ;( but on the bright side, it does look creepier. I might add a flashlight to help the player see better, idk yet. I did more planning for the game’s story but still need to tweak some stuff, i’m not quite sure where my story is going haha"}, {"post_id": 18941, "ts": "2026-06-30T03:48:09Z", "hours": 1.2667, "text": "post processing helps allat with atmosphere, a normal hallway turned scary"}, {"post_id": 18842, "ts": "2026-06-30T01:24:47Z", "hours": 4.2, "text": "What a cozy hallway, i hope nothing bad happens… This is a tiny looping scene for my game 💯"}, {"post_id": 18513, "ts": "2026-06-29T18:06:18Z", "hours": 0.4333, "text": "PLANNING - A horror game just using a hallway"}]...
|
Title: Hallway Horror by @skhsmrn | Stardance
Dev Title: Hallway Horror by @skhsmrn | Stardance
Devlogs:
PLANNING - A horror game just using a hallway
What a cozy hallway, i hope nothing bad happens… This is a tiny looping scene for my game 💯
post processing helps allat with atmosphere, a normal hallway turned scary
The lighting changes everything… Too bad these lights cant be baked in unity ;( but on the bright side, it does look creepier. I might add a flashlight to help the player see better, idk yet. I did more planning for the game’s story but still need to tweak some stuff, i’m not quite sure where my story is going haha
Added a few interactable items, who knew raycasting was so chill B) anyway, I added a cleaner hallway manager (for my sake) and made a little test monster >:) more changes to come… we are only getting started!!!
I think im slowly rotting while making this project, i just got done with some sound design, worked on making every loop different, and now… the story has PLOT!!! Oh, and I also made a main menu, but idk what to call the game yet… I could just use people’s suggestions… or come up with my own… or just call it “game name” P.S. there are two of them now, idk why
I finally came up with a name fore this game (low key i don’t know if imma stick with it : ) . Anyway, I added a little lobby and opening, and worked on loops 1-3. I’m currently working on loop 4 and these are the main point i need to finish Add loop 3 backward walk (sounds weird, but I got an idea) Opening scene (mainly done, just needs some cleanup) Ending (gonna be a while) chase scene (lol idk where to start) loop 4 (almost done) Tv should be on Tv should play audio when lights turn red, play questioning audio from phone
those who know
attempting to 3d model, then giving up (and just using an existing model), and now animating… Blender is too complicated for me, I’m sticking to cadding instead lol. What a journey.
animations on the way!!! and a few icon indicators replacing the crosshair. These few hours have been dedicated to debugging and adding more polishing details (sfx, anim, etc.) idk why im doing this so soon, just trying to keep some motivation. I still got allat of other features i need to implement. the game is almost there though 😭🙏
added a pause menu and an ending cutscene, but its kinda abrupt so i got to fix that… anyway i changed the name of the game again lol
i think i hate baking lighting
It has been awhile since one of my devlogs but i’ve been hard at work! Ive added some major (but necessary) changes to loop 4 and 7 bc i really hated them, but i dont know if i made it any better… The monster animations are almost done so i’ve imported the finished ones, I made the red room more red and a toy car cuz that’s scary or something (idk what i’m doing anymore), and some “cutscenes” to loop 7 to make the lore more confusing or something lol
I’m losing my motivation slowly, but the games is almost done. The animations are in place, the music is in place, and the scene is set. They might not be perfect, but the vision is there. I’m going to sleep now.
After so many messy files, a crazy confusing scene, and tireless hours, a solo horror project with a hallway is almost done. I have been debugging the small issues ive found (and can fix). Now, I’m exporting it right now, and will be sending it to a few people to play test. Will probably upload sometime today!
This game is still relatively new, so there are bound to be some crazy random issues, I’ve tried my best to get them all (i’ve attached pictures of some crazy errors i found lol), but for now… The itch.io page is finally up! https://newbiegamer.itch.io/no-answer P.S, sorry if it doesn’t live up to the hype lol
Ships:
I made a first-person psychological horror game built around a looping hallway that changes as the player progresses, using TV broadcasts, phone calls, lighting changes, environmental events, and a scary monster to tell the story! The most challenging part was getting all of the different systems to work together, especially the loop system, audio, animations, lighting, teleporting, player movement, and camera effects. I ran into several bugs involving errors and the very buggy first-person controller. I am most proud of the atmosphere and progression of the game. I really liked how the lighting turned out, and how much I learned about unity’s lighting system. When testing the project, I recommend using headphones and paying close attention to the TV and phone, they are important to the story! Use WASD to move, the mouse to look, E to interact, and Escape to pause, and keep an eye (and ear) out to understand how to progress the story....
|
1793108956.611456
|
1793195356.611456
|
|
30479
|
FaceFall by @f | Stardance
|
f
|
1
|
37.0
|
310
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-05T15:54:03Z", "hours": 24.0, "multiplier": 13.74, "payout": 310, "blessing": "neutral", "text": "What I made FaceFall is a real-time 3D cloth simulator written in C99. It simulates cloth falling over spheres, cubes, and arbitrary OBJ meshes, with a live preview and deterministic MP4 export at up to 4K 120 FPS. What was challenging Getting the cloth to actually behave like fabric. Most of the work went into making the simulation stable while adding self-collision, realistic aerodynamics, and reliable mesh collision without particles tunnelling through geometry or the cloth exploding. What I’m proud of I’m most proud that it feels believable. You can change cloth resolution, material, wind, and colliders, then export smooth 120 FPS videos, all from a single C source file. How to test it Build with build.bat and run facefall.exe. I recommend using a 64×64 or 128×128 cloth, trying each collider, toggling self-collision, changing the fabric presets, and exporting a 120 FPS video with V. You can also run facefall –selftest to verify the physics automatically.", "repo": "https://github.com/pefia/FaceFall", "demo": "https://github.com/pefia/FaceFall/releases/tag/v1.2"}]...
|
[{"post_id": 24408, "ts": "202 [{"post_id": 24408, "ts": "2026-07-07T22:53:27Z", "hours": 13.0, "text": "More ways to break the cloth This update was mostly about adding interactive features. The biggest one was cloth tearing . My first attempt never actually worked because the strain limiter prevented springs from stretching far enough to snap. The fix was checking the stretch before the limiter ran, then making sure tearing also removed the connected shear and bend springs so pieces actually separated instead of hanging by invisible links. I also added: A throwable physics ball that transfers momentum into the cloth. Mouse grabbing so you can pull and fling the fabric around. A live tension heatmap to show where the cloth is under stress. Slow motion (down to 1/8× ) and frame-by-frame stepping for debugging. The ball ended up being my favourite feature. Throwing it through a pinned curtain now rips a hole through the fabric, the stress heatmap lights up around the impact, and the cloth keeps simulating normally afterwards. Everything was backed up with new self-tests for tearing and ball collisions, and the original cloth behaviour stayed identical when the new features were disabled."}, {"post_id": 22922, "ts": "2026-07-05T15:50:26Z", "hours": 8.0, "text": "FaceFall - Devlog #3 Making the cloth actually feel like cloth This update was all about making the simulation feel physically believable instead of just stable. Some things worked exactly as I’d hoped, some didn’t, and one bug ended up explaining why cloth doesn’t really bounce. Better aerodynamics The old simulation only used simple linear drag, which meant the whole cloth slowed down evenly in every direction. It worked, but everything fell like it was moving through syrup. I replaced that with per-triangle aerodynamic forces. Every triangle now generates drag based on its orientation and velocity, so the cloth behaves much more naturally. A flat sheet catches the air like a parachute, while an edge-on sheet slices straight through it. The drag is also normalised so changing the cloth resolution doesn’t completely change the way it falls. The difference is surprisingly noticeable. Around the one second mark the cloth now billows into a canopy before landing, something the old solver never managed. Self collision Another thing I wanted was proper self collision. Previously, folds could pass straight through each other. I implemented a spatial hash so nearby particles can efficiently detect overlaps without checking every possible pair, keeping the cost close to linear even on larger simulations. The first time I tried self collision a while ago it was unstable because I only corrected positions. This time every collision also updates particle velocity, so the solver no longer fights itself. Folded cloth now stacks into proper layers instead of collapsing through itself. Softer collisions I also rewrote the collision response. Instead of instantly pushing particles outside the collider, objects now behave like spring-damper surfaces. The cloth compresses slightly into the collision shell before settling, which produces much smoother landings and completely removed the tiny jitter I was previously working around. The bounce bug This ended up being the most interesting part of the update. I originally wanted the cloth to bounce realistically, so I tried several different approaches. None of them looked right. While debugging I found something strange. After impact, some particles still had positive upward velocity for frame after frame, yet they never actually moved. The culprit was strain limiting. Every correction was changing particle positions without updating their velocities, meaning momentum was effectively disappearing from the simulation. Once I applied the matching velocity correction alongside each positional fix, impacts started travelling naturally through the cloth as visible waves instead of vanishing. Ironically, fixing that bug also answered the original question. Real cloth barely bounces. Once the sheet starts draping over a sphere, the hanging fabric absorbs almost all of the remaining energy. Even with perfect restitution the cloth only lifted a few centimetres before settling again. Because of that, the default fabric presets now use very low restitution values. Silk barely rebounds at all, while leather keeps a little more energy. Higher frame rate The simulator now runs internally at 120 FPS . Preview mode still displays at 60 FPS by stepping the simulation twice per frame, while exports run at the full rate. Renders take longer, but the smoother motion is absolutely worth it, especially during impact. Current state This update made the simulation feel much closer to real fabric. The cloth now catches the air properly, folded layers no longer pass through each other, collisions are smoother, and the behaviour after impact looks far more convincing than before. It also reminded me that sometimes the most realistic result isn’t the one you expect. After spending hours trying to make the cloth bounce, the correct answer turned out to be that real cloth… mostly doesn’t."}, {"post_id": 22529, "ts": "2026-07-05T01:38:01Z", "hours": 2.0, "text": "Going back to basics After trying a few more “realistic” cloth techniques, I realised I’d made the simulation worse instead of better. The biggest problems were all my own: Self-collision pushed overlapping particles apart in position space without changing their velocity, so the springs immediately snapped them back and the whole cloth could launch itself across the scene. Replacing bend springs with angle constraints made the cloth feel soft and unstable because the position-based constraints were fighting the force-based spring solver. Per-triangle aerodynamic forces changed the way the cloth fell and settled, but not for the better. Sometimes the simplest solution really is the right one. I rolled the simulator back to the model that was already producing the best results: Structural, shear, and bend springs Per-particle wind Linear air drag Strain limiting as the only position correction I removed self-collision and the angle-based bending entirely. Fabric presets now just adjust the bend spring stiffness, so materials like silk and leather still behave differently without adding unnecessary complexity. The settings menu was cleaned up to match. The rendering improvements all stayed, including the updated shader, high-resolution offscreen exports (1080p, 1440p and 4K), and the quality-of-life improvements to the presets and UI. I also added a --selftest mode that automatically runs a standard cloth drop onto the sphere and checks that the simulation stays stable. It verifies that particle positions remain finite, the cloth doesn’t explode or fling itself away, and structural springs stay within the configured strain limit."}, {"post_id": 22155, "ts": "2026-07-04T13:59:55Z", "hours": 1.0, "text": "FaceFall — Devlog #2 2026-07-04 — The cloth was invisible the whole time This update started with one simple bug report: “the cloth barely renders and it keeps clipping into the model.” It turned out to be three completely different problems. By the end of today I’d rebuilt the renderer, rewritten parts of the collision system, doubled the maximum cloth resolution to 128x128 , added adjustable cloth and collider sizes, and accidentally made the entire simulation explode into NaNs. The invisible cloth At first I assumed the renderer or lighting was broken. It wasn’t. The real problem was raylib’s batching. I disabled backface culling before submitting the cloth geometry, but re-enabled it before the batch was actually flushed to the GPU. The simulation itself was perfectly fine, but almost the entire cloth was getting backface-culled before it ever reached the screen. The fix was simply flushing the render batch before and after changing the GPU state so the cloth was actually drawn with culling disabled. While I was there I also rewrote the lighting. Instead of flat shading per quad, the cloth now generates smooth per-vertex normals and uses simple Gouraud shading. The difference is huge, especially on higher resolutions. The clipping bug The second issue was much harder. The first problem was that my collision shell was far too thin. At lower resolutions the particles stayed outside the collider, but the rendered surface between them could still cut straight through the mesh. I fixed that by scaling the collision shell with particle spacing so coarse cloth stays slightly further away from the surface. That solved part of it. The bigger issue only showed up against thin meshes. Sometimes a particle could move completely through the object in a single step, and because the collision system only looked at the particle’s final position it would happily push it out of the wrong side. The solution was switching to continuous collision detection. Every particle now stores its previous position, and I sweep that movement against the mesh instead of only checking where it ended up. The explosion My first implementation of continuous collision looked perfect. For about three seconds. Then the cloth completely disappeared. It turned out I had created an energy feedback loop where particles bounced between both sides of thin geometry until the simulation exploded into NaNs. Instead of pushing particles to a new position after a collision, I now simply restore their previous valid position and remove the inward velocity. It’s slightly more conservative, but completely stable. Bigger simulations With collision working properly again I increased the maximum cloth resolution from 64x64 to 128x128 . That pushed the simulation to over 16,000 particles , nearly 100,000 springs , and roughly 32,000 rendered triangles . To keep performance reasonable I added a simple spatial grid for mesh collisions so particles only test nearby triangles instead of the entire mesh every substep. The result is still effectively real-time, even at the highest resolution. New settings The settings menu also picked up a couple of new options: Adjustable cloth size Adjustable collider size Changing either one rebuilds the simulation immediately, updates the collision data, and automatically reframes the camera so everything stays visible. Current state FaceFall is finally starting to feel like a proper tool rather than just a physics demo. The renderer looks significantly better, collisions are much more reliable, larger simulations run comfortably, and exporting deterministic comparison clips is now almost entirely hands-off. There’s still plenty left to do, especially around self-collision, but it’s getting much closer to the project I originally imagined."}, {"post_id": 22094, "ts": "2026-07-04T11:07:25Z", "hours": 11.0, "text": "Dev Log #1 - FaceFall I started FaceFall because I kept seeing those short videos where a cloth drops over the same object at different mesh resolutions, but I don’t know how to use things like Blender to make them myself. The difference between a 2x2 sheet and a dense mesh is surprisingly satisfying, and I wanted to build my own version from scratch instead of relying on an existing physics engine. The goal isn’t just to make another cloth simulator. The mesh density is the whole point. At really low resolutions the cloth behaves more like a stiff piece of cardboard, while higher resolutions start producing proper folds, ripples, and believable draping. Reference: https://www.youtube.com/shorts/s_G2gBbWYF0 What’s working So far I’ve built a complete cloth simulator in a single C99 source file using raylib. Current features include: Mass-spring cloth simulation Structural, shear, and bending springs Hooke’s law with damping Semi-implicit Euler integration Runtime cloth resolutions from 2x2 up to 64x64 Sphere, cube, and arbitrary OBJ mesh colliders Three application modes: Settings Live preview Deterministic render/export Direct ffmpeg export to MP4 At this point it’s less of a physics experiment and more of a small content creation pipeline. I can recreate the exact same simulation with different resolutions and export identical camera angles for comparison videos. Challenges The biggest challenge early on was stability. Increasing spring stiffness quickly caused the simulation to explode, so I ended up basing the number of simulation substeps on the spring frequency instead of using a fixed timestep. The cloth also stretched far too much at first and looked more like rubber than fabric. Adding strain limiting made a huge difference and stopped the structural springs from over-extending. Collision was easily the hardest part. Spheres and cubes weren’t too bad, but arbitrary OBJ meshes became a rabbit hole of closest-point tests, broad-phase checks, collision response, and trying to stop particles tunnelling straight through thin geometry. I also spent longer than I’d like fighting Windows. Exporting raw frames through ffmpeg would randomly corrupt the output until I realised _popen needed to be opened in binary mode. Current bug The biggest thing I’m still working through is sphere collision. Most of the time it behaves exactly how I’d expect, but every now and then parts of the cloth clip into the sphere instead of settling over the surface. Once a few particles end up inside the collider the cloth starts rendering incorrectly, so it’s pretty obvious when it happens. I’m fairly confident the issue isn’t the spring solver anymore. The collision detection itself is finding the contacts, but the positional correction isn’t always pushing particles completely back outside the sphere. That’s the main thing I want to fix before moving on. What’s next Once the collision is reliable I want to polish the visuals and start generating comparison clips at different mesh densities. That’s really the whole reason I started this project. Seeing the exact same cloth drop change from a rigid, blocky sheet into something that actually looks like fabric is surprisingly satisfying, and now I finally have a tool that lets me create those videos however I want."}]...
|
Title: FaceFall by @f | Stardance
Devlogs:
Dev Lo Title: FaceFall by @f | Stardance
Devlogs:
Dev Log #1 - FaceFall I started FaceFall because I kept seeing those short videos where a cloth drops over the same object at different mesh resolutions, but I don’t know how to use things like Blender to make them myself. The difference between a 2x2 sheet and a dense mesh is surprisingly satisfying, and I wanted to build my own version from scratch instead of relying on an existing physics engine. The goal isn’t just to make another cloth simulator. The mesh density is the whole point. At really low resolutions the cloth behaves more like a stiff piece of cardboard, while higher resolutions start producing proper folds, ripples, and believable draping. Reference: https://www.youtube.com/shorts/s_G2gBbWYF0 What’s working So far I’ve built a complete cloth simulator in a single C99 source file using raylib. Current features include: Mass-spring cloth simulation Structural, shear, and bending springs Hooke’s law with damping Semi-implicit Euler integration Runtime cloth resolutions from 2x2 up to 64x64 Sphere, cube, and arbitrary OBJ mesh colliders Three application modes: Settings Live preview Deterministic render/export Direct ffmpeg export to MP4 At this point it’s less of a physics experiment and more of a small content creation pipeline. I can recreate the exact same simulation with different resolutions and export identical camera angles for comparison videos. Challenges The biggest challenge early on was stability. Increasing spring stiffness quickly caused the simulation to explode, so I ended up basing the number of simulation substeps on the spring frequency instead of using a fixed timestep. The cloth also stretched far too much at first and looked more like rubber than fabric. Adding strain limiting made a huge difference and stopped the structural springs from over-extending. Collision was easily the hardest part. Spheres and cubes weren’t too bad, but arbitrary OBJ meshes became a rabbit hole of closest-point tests, broad-phase checks, collision response, and trying to stop particles tunnelling straight through thin geometry. I also spent longer than I’d like fighting Windows. Exporting raw frames through ffmpeg would randomly corrupt the output until I realised _popen needed to be opened in binary mode. Current bug The biggest thing I’m still working through is sphere collision. Most of the time it behaves exactly how I’d expect, but every now and then parts of the cloth clip into the sphere instead of settling over the surface. Once a few particles end up inside the collider the cloth starts rendering incorrectly, so it’s pretty obvious when it happens. I’m fairly confident the issue isn’t the spring solver anymore. The collision detection itself is finding the contacts, but the positional correction isn’t always pushing particles completely back outside the sphere. That’s the main thing I want to fix before moving on. What’s next Once the collision is reliable I want to polish the visuals and start generating comparison clips at different mesh densities. That’s really the whole reason I started this project. Seeing the exact same cloth drop change from a rigid, blocky sheet into something that actually looks like fabric is surprisingly satisfying, and now I finally have a tool that lets me create those videos however I want.
FaceFall — Devlog #2 2026-07-04 — The cloth was invisible the whole time This update started with one simple bug report: “the cloth barely renders and it keeps clipping into the model.” It turned out to be three completely different problems. By the end of today I’d rebuilt the renderer, rewritten parts of the collision system, doubled the maximum cloth resolution to 128x128 , added adjustable cloth and collider sizes, and accidentally made the entire simulation explode into NaNs. The invisible cloth At first I assumed the renderer or lighting was broken. It wasn’t. The real problem was raylib’s batching. I disabled backface culling before submitting the cloth geometry, but re-enabled it before the batch was actually flushed to the GPU. The simulation itself was perfectly fine, but almost the entire cloth was getting backface-culled before it ever reached the screen. The fix was simply flushing the render batch before and after changing the GPU state so the cloth was actually drawn with culling disabled. While I was there I also rewrote the lighting. Instead of flat shading per quad, the cloth now generates smooth per-vertex normals and uses simple Gouraud shading. The difference is huge, especially on higher resolutions. The clipping bug The second issue was much harder. The first problem was that my collision shell was far too thin. At lower resolutions the particles stayed outside the collider, but the rendered surface between them could still cut straight through the mesh. I fixed that by scaling the collision shell with particle spacing so coarse cloth stays slightly further away from the surface. That solved part of it. The bigger issue only showed up against thin meshes. Sometimes a particle could move completely through the object in a single step, and because the collision system only looked at the particle’s final position it would happily push it out of the wrong side. The solution was switching to continuous collision detection. Every particle now stores its previous position, and I sweep that movement against the mesh instead of only checking where it ended up. The explosion My first implementation of continuous collision looked perfect. For about three seconds. Then the cloth completely disappeared. It turned out I had created an energy feedback loop where particles bounced between both sides of thin geometry until the simulation exploded into NaNs. Instead of pushing particles to a new position after a collision, I now simply restore their previous valid position and remove the inward velocity. It’s slightly more conservative, but completely stable. Bigger simulations With collision working properly again I increased the maximum cloth resolution from 64x64 to 128x128 . That pushed the simulation to over 16,000 particles , nearly 100,000 springs , and roughly 32,000 rendered triangles . To keep performance reasonable I added a simple spatial grid for mesh collisions so particles only test nearby triangles instead of the entire mesh every substep. The result is still effectively real-time, even at the highest resolution. New settings The settings menu also picked up a couple of new options: Adjustable cloth size Adjustable collider size Changing either one rebuilds the simulation immediately, updates the collision data, and automatically reframes the camera so everything stays visible. Current state FaceFall is finally starting to feel like a proper tool rather than just a physics demo. The renderer looks significantly better, collisions are much more reliable, larger simulations run comfortably, and exporting deterministic comparison clips is now almost entirely hands-off. There’s still plenty left to do, especially around self-collision, but it’s getting much closer to the project I originally imagined.
Going back to basics After trying a few more “realistic” cloth techniques, I realised I’d made the simulation worse instead of better. The biggest problems were all my own: Self-collision pushed overlapping particles apart in position space without changing their velocity, so the springs immediately snapped them back and the whole cloth could launch itself across the scene. Replacing bend springs with angle constraints made the cloth feel soft and unstable because the position-based constraints were fighting the force-based spring solver. Per-triangle aerodynamic forces changed the way the cloth fell and settled, but not for the better. Sometimes the simplest solution really is the right one. I rolled the simulator back to the model that was already producing the best results: Structural, shear, and bend springs Per-particle wind Linear air drag Strain limiting as the only position correction I removed self-collision and the angle-based bending entirely. Fabric presets now just adjust the bend spring stiffness, so materials like silk and leather still behave differently without adding unnecessary complexity. The settings menu was cleaned up to match. The rendering improvements all stayed, including the updated shader, high-resolution offscreen exports (1080p, 1440p and 4K), and the quality-of-life improvements to the presets and UI. I also added a --selftest mode that automatically runs a standard cloth drop onto the sphere and checks that the simulation stays stable. It verifies that particle positions remain finite, the cloth doesn’t explode or fling itself away, and structural springs stay within the configured strain limit.
FaceFall - Devlog #3 Making the cloth actually feel like cloth This update was all about making the simulation feel physically believable instead of just stable. Some things worked exactly as I’d hoped, some didn’t, and one bug ended up explaining why cloth doesn’t really bounce. Better aerodynamics The old simulation only used simple linear drag, which meant the whole cloth slowed down evenly in every direction. It worked, but everything fell like it was moving through syrup. I replaced that with per-triangle aerodynamic forces. Every triangle now generates drag based on its orientation and velocity, so the cloth behaves much more naturally. A flat sheet catches the air like a parachute, while an edge-on sheet slices straight through it. The drag is also normalised so changing the cloth resolution doesn’t completely change the way it falls. The difference is surprisingly noticeable. Around the one second mark the cloth now billows into a canopy before landing, something the old solver never managed. Self collision Another thing I wanted was proper self collision. Previously, folds could pass straight through each other. I implemented a spatial hash so nearby particles can efficiently detect overlaps without checking every possible pair, keeping the cost close to linear even on larger simulations. The first time I tried self collision a while ago it was unstable because I only corrected positions. This time every collision also updates particle velocity, so the solver no longer fights itself. Folded cloth now stacks into proper layers instead of collapsing through itself. Softer collisions I also rewrote the collision response. Instead of instantly pushing particles outside the collider, objects now behave like spring-damper surfaces. The cloth compresses slightly into the collision shell before settling, which produces much smoother landings and completely removed the tiny jitter I was previously working around. The bounce bug This ended up being the most interesting part of the update. I originally wanted the cloth to bounce realistically, so I tried several different approaches. None of them looked right. While debugging I found something strange. After impact, some particles still had positive upward velocity for frame after frame, yet they never actually moved. The culprit was strain limiting. Every correction was changing particle positions without updating their velocities, meaning momentum was effectively disappearing from the simulation. Once I applied the matching velocity correction alongside each positional fix, impacts started travelling naturally through the cloth as visible waves instead of vanishing. Ironically, fixing that bug also answered the original question. Real cloth barely bounces. Once the sheet starts draping over a sphere, the hanging fabric absorbs almost all of the remaining energy. Even with perfect restitution the cloth only lifted a few centimetres before settling again. Because of that, the default fabric presets now use very low restitution values. Silk barely rebounds at all, while leather keeps a little more energy. Higher frame rate The simulator now runs internally at 120 FPS . Preview mode still displays at 60 FPS by stepping the simulation twice per frame, while exports run at the full rate. Renders take longer, but the smoother motion is absolutely worth it, especially during impact. Current state This update made the simulation feel much closer to real fabric. The cloth now catches the air properly, folded layers no longer pass through each other, collisions are smoother, and the behaviour after impact looks far more convincing than before. It also reminded me that sometimes the most realistic result isn’t the one you expect. After spending hours trying to make the cloth bounce, the correct answer turned out to be that real cloth… mostly doesn’t.
More ways to break the cloth This update was mostly about adding interactive features. The biggest one was cloth tearing . My first attempt never actually worked because the strain limiter prevented springs from stretching far enough to snap. The fix was checking the stretch before the limiter ran, then making sure tearing also removed the connected shear and bend springs so pieces actually separated instead of hanging by invisible links. I also added: A throwable physics ball that transfers momentum into the cloth. Mouse grabbing so you can pull and fling the fabric around. A live tension heatmap to show where the cloth is under stress. Slow motion (down to 1/8× ) and frame-by-frame stepping for debugging. The ball ended up being my favourite feature. Throwing it through a pinned curtain now rips a hole through the fabric, the stress heatmap lights up around the impact, and the cloth keeps simulating normally afterwards. Everything was backed up with new self-tests for tearing and ball collisions, and the original cloth behaviour stayed identical when the new features were disabled.
Ships:
What I made FaceFall is a real-time 3D cloth simulator written in C99. It simulates cloth falling over spheres, cubes, and arbitrary OBJ meshes, with a live preview and deterministic MP4 export at up to 4K 120 FPS. What was challenging Getting the cloth to actually behave like fabric. Most of the work went into making the simulation stable while adding self-collision, realistic aerodynamics, and reliable mesh collision without particles tunnelling through geometry or the cloth exploding. What I’m proud of I’m most proud that it feels believable. You can change cloth resolution, material, wind, and colliders, then export smooth 120 FPS videos, all from a single C source file. How to test it Build with build.bat and run facefall.exe. I recommend using a 64×64 or 128×128 cloth, trying each collider, toggling self-collision, changing the fabric presets, and exporting a 120 FPS video with V. You can also run facefall –selftest to verify the physics automatically....
|
1792878808.6687534
|
1793742808.6687534
|
|
30933
|
HamOS (ham-ster, not ham) by @Luksus | Stardance
|
Luksus
|
4
|
37.0
|
361
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-20T19:20:33Z", "hours": 13.0, "multiplier": 16.46, "payout": 219, "blessing": "neutral", "text": "PLEASE READ LAST DEVLOG <3 Hello. This is the 3rd and last ship of HamOS. It was incredibly fun making this project. In this ship I added a lots of things which I don’t remember (CurrentOpenAppsBar, F11, animations, styles, widgets, bug fixes, QoL updates, etc..) Please checkout every app, windows, features in HamOS. There is a hidden secret for you the second, you enter the website! My main inspiration for this project was the old era of computers and my hamster “Džambule”. (May my luck find 188 stardust for grants from this ship)", "repo": "https://github.com/lkspodmol/hamos", "demo": "https://lkspodmol.github.io/hamos"}, {"ship_num": 2, "ts": "2026-08-10T20:10:55Z", "hours": 8.0, "multiplier": 9.8, "payout": 81, "blessing": "neutral", "text": "Hello everyone! This is my 3nd ship of HamOS. (2nd of WebOS 2) A lot has changed since 2nd ship and those are: Apps: Help, App for helping users with QnA Settings, App for customization of HamOS HamOS To Go, Similar app (tool) to Windows To Go, it will launch HamOS in your tab instead of Džambulas computer. A new shortcut to Wikipedia New look for existing Introduction app, in NOKIA style (hands) And the biggest nightmare…. Scaling. I had problems with scaling HamOS website to other resolutions. Only 1920x1080 was supported, but now from 720p to 4K (16:9) should work without any major issues. The most annoying thing about this were also always changing margins, so app icons are alligned, etc… And for fun, I added a little sticky note that will help visitors start up the computer with HamOS. Also please, do not mind if the window you are moving is faster or slower than your mouse pointer. (check app Help) If you have any ideas, on what I should add, comment please! Visit HamOS at: https://lkspodmol.github.io/myos1/ (Please try F11) Thanks for reading. Happy coding and happy rating!", "repo": "https://github.com/lkspodmol/hamos", "demo": "https://lkspodmol.github.io/hamos"}, {"ship_num": 3, "ts": "2026-07-24T23:17:16Z", "hours": 7.0, "multiplier": 8.65, "payout": 61, "blessing": "neutral", "text": "Hello everyone! This is 2nd ship of HamOS, that brought some cool features and that are: Crt monitor Coslop Starting and shutting down the system Sound effects! I had a lot of fun drawing in this ship. I think the crt monitor turned out very good. I am also very happy with the sounds I added. Fits in so well. I am also updating the very fine text on the “Floppy”, that says, what version you are running (always the newest). I have some ideas for the future, but I think that a little break whould be also very good idea. If you have any ideas, on what I should add, comment please! Likes are very appreciated <3. Visit HamOS here: https://lkspodmol.github.io/myos1/ Thanks for reading! Happy coding. (pls algorithm, big views)", "repo": "https://github.com/lkspodmol/hamos", "demo": "https://lkspodmol.github.io/hamos"}, {"ship_num": 4, "ts": "2026-07-22T16:02:57Z", "hours": 9.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Have a working webpage with multiple draggable windows, Check It should look like your own and not exactly like the guide, Check Have at least 3 devlogs showing your progress along the way, Check Have at least 1 new feature that the guide didn’t list, Check It shouldn’t have a password (so anyone can test it out!), Check Hello everyone! This is my first ship on stardance and I hope, that you will like my WebOS 1. My WebOS 1 is HamOS. Not ham like ham, but ham like ham-ster. Hamster, because of my hamster Džambule. I love him very much, so I got an idea to create WebOS, that is designed for him and you got in somehow. Little things that I liked when coding is being lost in my own code. The best things I added in my opinion are: The loading screen!! Photo gallery of him And the custom hand drew icons made by me (intentionally bad) So please, visit and try HamOS at: https://lkspodmol.github.io/myos1/ . WebOS 1 was incredibly fun and interesting and I will try to continue in WebOS 2. Should it be HamOS, or HamOS PRO? Let me know. Thank you for reading this or commenting, liking and happy coding!", "repo": "https://github.com/lkspodmol/hamos", "demo": "https://lkspodmol.github.io/hamos"}]...
|
[{"post_id": 81298, "ts": "202 [{"post_id": 81298, "ts": "2026-10-20T18:28:24Z", "hours": 1.8453, "text": "Devlog? #15 - PLEASE READ! Hello everyone… New version of HamOS v1.7 just rolled out. What have I added or fixed? Bugs: volume lowered of loud sounds Added: new styles menu new styles The end? So yeah. This will be probably the last devlog of HamOS. I had many laughs when making HamOS and I must thank the organizers of Stardance for this! I want to say thank you to the every person I have talked to on stardance / hackclub. That includes slack. Specifically: Ethan, Brahmtej, Craw, Fraud squad , mixid_mbb, LakasZada, Thunder, starviper, SeradedStripes and all of unmentioned. You made my day less boring either with just chatting in the #stardance, huddling in huddle, playing on our minecraft server or playing games in #boba-bash-greater-noida. #boba-bash-greater-noida deserves its own section. It was incredibly fun playing with all of you for a week. The best ones were Skribbl, Among Us and Gartic Phone. I will include some funny screenshots. Big + to the organizers of this event, Brahmtej and agm. I hope we will meet again next year or sooner ❤️ . I will remember (hopefully). Lukas out . Visit HamOS at: https://lkspodmol.github.io/hamos/"}, {"post_id": 77886, "ts": "2026-10-08T17:29:40Z", "hours": 1.905, "text": "Devlog #14 Hello everyone! New version of HamOS v1.6 just rolled out! What have I added or fixed? Bugs: Added: “current open apps bar” animations! New system of indexes.html and fodler structures! A whole new STYLES system!! The boring part: I had idea of different styles a long time back in time. So I implemented them in this update. You can select what style you want and it will apply. The new selection menu will be more polished in the next update. I promise. If YOU (yes, you) want to make a style for hamos, please click the link in the selection menu and dm me! I would be very happy! With the animations of “CAOB”. It was a little difficult. I need to make the timing right, make it launch or not close when app is still open. It had its bugs when in development, but it should be working flawlessly now. Visit HamOS at: https://lkspodmol.github.io/myos1/ Thanks for reading and that is all for this update. Happy coding everyone!"}, {"post_id": 75899, "ts": "2026-10-01T15:22:15Z", "hours": 0.9667, "text": "The opening of community styles for HamOS! Hello everyone. Today im announcing that YOU, can create styles for HamOS, that will be added! If anyone wants to make a style (please do, I will be very happy), dm me on slack @luksus with the files, etc. (View the before last attached photo.) Everything you will need, will be in the template that I made for you (dimensions, info, restricted areas, etc.) Please download the template ( https://drive.google.com/drive/folders/1wteLNYUOm6-3gt77MpcvDc4UFpRlmfD8?usp=sharing ). You can also view the finished example. Edit 2 hours later: I just tried doing style myself and it turned out pretty okay! Check before last attached screenshot. I will be waiting for everyone’s styles ! Happy coding stardancers. ( https://lapse.hackclub.com/timelapse/7iCZKuc8ZhRJ )"}, {"post_id": 74799, "ts": "2026-09-28T09:18:33Z", "hours": 1.6833, "text": "Devlog #13 Hello everyone! What did I add in this update? Animations for “Currently opened apps bar”! And delay for the apps to launch (just like in a real life). When you open app, the little icon BOUNCES (video in attachment). This update isn’t live right now and wont be until v1.6. Visit HamOS at: https://lkspodmol.github.io/myos1/ Thanks for reading and that is all for this update. Happy coding everyone!"}, {"post_id": 74152, "ts": "2026-09-26T19:42:31Z", "hours": 2.7161, "text": "Devlog #12 Hello everyone! New version of HamOS v1.5 just rolled out! What have I added or fixed? Bugs: cursor: pointer; bug fix (entire desktop was clickable) cursor: pointer; bug fix (entire app rows were clickable, not only apps) Added: Widgets! Current apps opened bar! New settings feature New QnA The boring part: In this version, I had an idea to add widgets (because I loved widgets in Windows Vista). Then I needed content for the widgets. I wanted clock, but I was lazy to create some clock, so I just used clock widget iframe. Some people dont have to like the widgets, so I added a new option in settings to hide them. And with all of the apps opened, it was a little bit difficult to navigate between them, so I added “Current apps opened bar”. When app is opened, it shows its icon in the bar, which can be clicked for focusing the app window. The order of app icons in the bar is fixed, because I was too lazy to implement some kind of order-system. Visit HamOS at: https://lkspodmol.github.io/myos1/ Thanks for reading and that is all for this update. Happy coding everyone!"}, {"post_id": 69102, "ts": "2026-09-16T11:33:43Z", "hours": 2.94, "text": "Devlog #11 Hello everyone! A little devlog after a long time of inactivity. The break was amazing. Been to Bulgaria. Nice sea they’ve got. And now to HamOS. I am currently working on widgets, (little inspiration taken from my beloved Windows Vista). I am too lazy to create some clock, so I just used clock widget iframe. ( ) The version of the HamOS with a one widget added is live now, but it is in beta and not polished. (Something like a developer version of iOS) I had a lot of ideas for HamOS, but I don’t know if I will have enough time to add all of them. Visit HamOS at: https://lkspodmol.github.io/myos1/ That is all. Happy coding everyone!"}, {"post_id": 46604, "ts": "2026-08-13T23:20:19Z", "hours": 0.3886, "text": "oh my god. What am I even publishing? Before checking the code for other bugs, etc.. I shipped it, because I was very excited and wanted to get item that I very want. I checked on HamOS today if I didn’t overlook anything and I saw that newly opened app windows weren’t in the center of the crt. So I changed multiple % values. And then I noticed that Welcome and Introduction app windows weren’t getting focused when they are clicked. I left welcome app and introduction app in one div, because of one < /div >. After fixing that, the app windows weren’t in the center of the crt AGAIN. So I had to revert every % value that I changed. (Thank god for github commits) So this was a little log of fixing ONE < /DIV > that caused these issues… Happy coding everyone.. happy happy."}, {"post_id": 45451, "ts": "2026-08-11T22:18:13Z", "hours": 0.8619, "text": "Hey everyone! Quick fix happened. On some screens, there was a bug that the icons weren’t aligned properly. My dumb ah put row div in a row div in a row div. The best code you will ever see. Had to change so many % values. But it is over now. Fix is now live (thankfully, before reviewers could rate it)."}, {"post_id": 44783, "ts": "2026-08-10T19:54:34Z", "hours": 1.0506, "text": "Devlog #10 Hello everyone! Just published HamOS v1.4, version mainly about resolution scaling and small fixes. In v1.4 was alongside added Settings app that has personalization features (primary colors and set wallpapers). And if you will notice, a little sticky paper was added that will help visitors start up HamOS. After this Devlog I will ship HamOS Again! I want more opinions :> (and stardust tooo–.) Visit HamOS at: https://lkspodmol.github.io/myos1/ That is all. Happy coding everyone!"}, {"post_id": 42926, "ts": "2026-08-07T22:05:49Z", "hours": 3.1981, "text": "Devlog #9 omg this was a nightmare. Hey everyone! Just wanted to share that I finally somehow fixed scaling of HamOS! Previously, only 1920x1080 was supported, but now, 720p HD —> 4K! Yippie! : b Now I just need to add one more feature and this update will be live in the next version of HamOS v1.4. The biggest issue I encountered while making this was also applying it to the top bar. I also somehow broke a bug, bug-feature, that the top bar is always under app windows, now, app windows are under the top bar. Happy coding everyone! Ham out. –hehe"}, {"post_id": 41033, "ts": "2026-08-04T23:18:32Z", "hours": 4.0636, "text": "Devlog #8 Hey everyone! HamOS v1.3 is here. This is everything that happened in this update: The new Help app contains some problems that people issue with HamOS. In the style of QnA. If you have any questions or problems with HamOS, please comment under one of my devlogs. And the new HamOS To Go tool does something like Windows To Go tool. Windows To Go creates Windows on usb drive that you can plug into any computer and run your version of Windows. The HamOS To Go tool opens a new tab that will have only the HamOS, without the crt monitor. I added this feature to help some people with bugs or if they only want the HamOS without the crt monitor. And a new shortcut for Wikipedia. I was also playing with margins, so icons, divs look aligned. I used the existing icon of app Introduction for the new app Help and designed a new icon for it. I had idea in my mind, that well, if it is an introduction, it is like connecting people (or hamsters) no? I remembered old nokia loading screen and was inspired by it (the hands). And at the end, I added a little bit more info to the githubs README file. After the break, I had a whole set of ideas that I wrote down. One of them is Theme app suggested from anonymous that rated 2nd ship. Sadly, I have to fix a big issue first and that is screen scaling D: HamOS is only fully supported on 1920x1080 for now. Others have to workaround by scaling the site bigger or smaller. That is it. Happy coding everyone! Visit HamOS here: https://lkspodmol.github.io/myos1/"}, {"post_id": 34338, "ts": "2026-07-24T23:03:03Z", "hours": 1.3542, "text": "Devlog #7 Hey everyone! HamOS version v1.2 is here! What have I updated: Different crt monitor stand LED retextured Power-on button retextured Added Welcome SOUNDS!! (starting up, power-on button, welcome) If you have any ideas, on what I should add, comment please! Visit HamOS here: https://lkspodmol.github.io/myos1/ Thanks for reading! Happy coding. (pls algorithm, big views)"}, {"post_id": 34077, "ts": "2026-07-24T15:19:18Z", "hours": 3.3767, "text": "Devlog #6 Hey everyone! HamOS version v1.1 is here! What have I updated: Copilot, but Coslop The crt monitor! Nicer power-on button Removed the Pro If you have any ideas, on what I should add, comment please! Visit HamOS here: https://lkspodmol.github.io/myos1/ Thanks for reading! Happy coding. (pls algorithm, big views)"}, {"post_id": 33562, "ts": "2026-07-23T16:23:39Z", "hours": 2.3761, "text": "Hey everyone! Just added a crt monitor that will show HamOS Pro! Check it out at: https://lkspodmol.github.io/myos1/ Likes and comments are appreciated <3. (image is a sneak peak, until you check it out yourself)"}, {"post_id": 32989, "ts": "2026-07-22T14:45:45Z", "hours": 1.8106, "text": "Devlog #5 Hey everyone! Last update on HamOS. What have I updated: Removed link texts in bar Added new shortcuts with new goated icons Image optimisations ( < picture > idea @ethmarks , Thanks!) New loading screen! I will probably continue HamOS in WebOS 2, so HamOS 2, HamOS PRO? - Visit HamOS here: https://lkspodmol.github.io/myos1/ Thanks for reading! Happy coding. (pls algorithm, big views)"}, {"post_id": 32503, "ts": "2026-07-21T18:36:49Z", "hours": 1.0731, "text": "Devlog #4 Hey everyone! A lot of this update wasn’t about adding huge features, just one app and fixing some small things. I added a Photos app, so Džambule finally has somewhere to keep his favorite pictures. 🐹📸 You can also click individual photo and view it in full resolution / quality. Also fyi, the icons are drawn by me. It is intentionally bad, don’t think that I cant draw. hehe.. I’m thinking about adding a very lite version of Start button. We will see if that will happen. Whould be cool. I’m also wondering how does stardances algorithm work. I’ve seen one devlog, that had one sentence and got hundreds of views. Hope algorithm will notice me. If the Start button will happen, then I’m probably gonna ship my HamOS to the stars. Visit HamOS here: https://lkspodmol.github.io/myos1/ Thanks for reading! Happy coding."}, {"post_id": 29815, "ts": "2026-07-16T23:12:33Z", "hours": 0.6344, "text": "Not technically a devlog, but Devlog #3 Hey everyone! It struck me out of nowhere, that I am making a HamOS. OS for / about hamster. So should not it be about my hamster? Its logic. So, I personalized it to my hamster Džambule. You will by in my hamsters computer (please do not break anything). In the next update, I am thinking that I will make apps like Notes and Photos, that will already have something in them (Džambule’s notes or photos) Thanks everyone for reading this and happy coding!"}, {"post_id": 29565, "ts": "2026-07-16T16:16:43Z", "hours": 3.4081, "text": "Devlog #2 Hey everyone! Heres what I added to my HamOS: Draggable windows Bar at top of a window with X Closing and opening apps/windows Desktop icons Only welcome window shows up when page is loaded Window focusing… Etc. It looks very nice in this state right now. Little bit scared of part 5 in the tutorial. I have an idea for the app, but I just hope that it wont be too hard. Thanks everyone for reading this devlog and maybe visiting my HamOS? Bye! Link for HamOS: https://lkspodmol.github.io/myos1/"}, {"post_id": 29029, "ts": "2026-07-15T17:59:05Z", "hours": 1.7144, "text": "Hello everyone! Just started working on my WebOS, that will be called HamOS. No, not ham, like ham, but ham like ham-ster :D. The tutorial was super helpful even though it didn’t look like at first. This HamOS will be mainly customized to my hamster Džambule. I even added a gif of him :>. That was enough coding for the day. Finished 2 parts. Thanks stardance for this, for everything and for the STICKERS!!. Out."}]...
|
Title: HamOS (ham-ster, not ham) by @Luksus | Star Title: HamOS (ham-ster, not ham) by @Luksus | Stardance
Devlogs:
Hello everyone! Just started working on my WebOS, that will be called HamOS. No, not ham, like ham, but ham like ham-ster :D. The tutorial was super helpful even though it didn’t look like at first. This HamOS will be mainly customized to my hamster Džambule. I even added a gif of him :>. That was enough coding for the day. Finished 2 parts. Thanks stardance for this, for everything and for the STICKERS!!. Out.
Devlog #2 Hey everyone! Heres what I added to my HamOS: Draggable windows Bar at top of a window with X Closing and opening apps/windows Desktop icons Only welcome window shows up when page is loaded Window focusing… Etc. It looks very nice in this state right now. Little bit scared of part 5 in the tutorial. I have an idea for the app, but I just hope that it wont be too hard. Thanks everyone for reading this devlog and maybe visiting my HamOS? Bye! Link for HamOS: https://lkspodmol.github.io/myos1/
Not technically a devlog, but Devlog #3 Hey everyone! It struck me out of nowhere, that I am making a HamOS. OS for / about hamster. So should not it be about my hamster? Its logic. So, I personalized it to my hamster Džambule. You will by in my hamsters computer (please do not break anything). In the next update, I am thinking that I will make apps like Notes and Photos, that will already have something in them (Džambule’s notes or photos) Thanks everyone for reading this and happy coding!
Devlog #4 Hey everyone! A lot of this update wasn’t about adding huge features, just one app and fixing some small things. I added a Photos app, so Džambule finally has somewhere to keep his favorite pictures. 🐹📸 You can also click individual photo and view it in full resolution / quality. Also fyi, the icons are drawn by me. It is intentionally bad, don’t think that I cant draw. hehe.. I’m thinking about adding a very lite version of Start button. We will see if that will happen. Whould be cool. I’m also wondering how does stardances algorithm work. I’ve seen one devlog, that had one sentence and got hundreds of views. Hope algorithm will notice me. If the Start button will happen, then I’m probably gonna ship my HamOS to the stars. Visit HamOS here: https://lkspodmol.github.io/myos1/ Thanks for reading! Happy coding.
Devlog #5 Hey everyone! Last update on HamOS. What have I updated: Removed link texts in bar Added new shortcuts with new goated icons Image optimisations ( < picture > idea @ethmarks , Thanks!) New loading screen! I will probably continue HamOS in WebOS 2, so HamOS 2, HamOS PRO? - Visit HamOS here: https://lkspodmol.github.io/myos1/ Thanks for reading! Happy coding. (pls algorithm, big views)
Hey everyone! Just added a crt monitor that will show HamOS Pro! Check it out at: https://lkspodmol.github.io/myos1/ Likes and comments are appreciated <3. (image is a sneak peak, until you check it out yourself)
Devlog #6 Hey everyone! HamOS version v1.1 is here! What have I updated: Copilot, but Coslop The crt monitor! Nicer power-on button Removed the Pro If you have any ideas, on what I should add, comment please! Visit HamOS here: https://lkspodmol.github.io/myos1/ Thanks for reading! Happy coding. (pls algorithm, big views)
Devlog #7 Hey everyone! HamOS version v1.2 is here! What have I updated: Different crt monitor stand LED retextured Power-on button retextured Added Welcome SOUNDS!! (starting up, power-on button, welcome) If you have any ideas, on what I should add, comment please! Visit HamOS here: https://lkspodmol.github.io/myos1/ Thanks for reading! Happy coding. (pls algorithm, big views)
Devlog #8 Hey everyone! HamOS v1.3 is here. This is everything that happened in this update: The new Help app contains some problems that people issue with HamOS. In the style of QnA. If you have any questions or problems with HamOS, please comment under one of my devlogs. And the new HamOS To Go tool does something like Windows To Go tool. Windows To Go creates Windows on usb drive that you can plug into any computer and run your version of Windows. The HamOS To Go tool opens a new tab that will have only the HamOS, without the crt monitor. I added this feature to help some people with bugs or if they only want the HamOS without the crt monitor. And a new shortcut for Wikipedia. I was also playing with margins, so icons, divs look aligned. I used the existing icon of app Introduction for the new app Help and designed a new icon for it. I had idea in my mind, that well, if it is an introduction, it is like connecting people (or hamsters) no? I remembered old nokia loading screen and was inspired by it (the hands). And at the end, I added a little bit more info to the githubs README file. After the break, I had a whole set of ideas that I wrote down. One of them is Theme app suggested from anonymous that rated 2nd ship. Sadly, I have to fix a big issue first and that is screen scaling D: HamOS is only fully supported on 1920x1080 for now. Others have to workaround by scaling the site bigger or smaller. That is it. Happy coding everyone! Visit HamOS here: https://lkspodmol.github.io/myos1/
Devlog #9 omg this was a nightmare. Hey everyone! Just wanted to share that I finally somehow fixed scaling of HamOS! Previously, only 1920x1080 was supported, but now, 720p HD —> 4K! Yippie! : b Now I just need to add one more feature and this update will be live in the next version of HamOS v1.4. The biggest issue I encountered while making this was also applying it to the top bar. I also somehow broke a bug, bug-feature, that the top bar is always under app windows, now, app windows are under the top bar. Happy coding everyone! Ham out. –hehe
Devlog #10 Hello everyone! Just published HamOS v1.4, version mainly about resolution scaling and small fixes. In v1.4 was alongside added Settings app that has personalization features (primary colors and set wallpapers). And if you will notice, a little sticky paper was added that will help visitors start up HamOS. After this Devlog I will ship HamOS Again! I want more opinions :> (and stardust tooo–.) Visit HamOS at: https://lkspodmol.github.io/myos1/ That is all. Happy coding everyone!
Hey everyone! Quick fix happened. On some screens, there was a bug that the icons weren’t aligned properly. My dumb ah put row div in a row div in a row div. The best code you will ever see. Had to change so many % values. But it is over now. Fix is now live (thankfully, before reviewers could rate it).
oh my god. What am I even publishing? Before checking the code for other bugs, etc.. I shipped it, because I was very excited and wanted to get item that I very want. I checked on HamOS today if I didn’t overlook anything and I saw that newly opened app windows weren’t in the center of the crt. So I changed multiple % values. And then I noticed that Welcome and Introduction app windows weren’t getting focused when they are clicked. I left welcome app and introduction app in one div, because of one < /div >. After fixing that, the app windows weren’t in the center of the crt AGAIN. So I had to revert every % value that I changed. (Thank god for github commits) So this was a little log of fixing ONE < /DIV > that caused these issues… Happy coding everyone.. happy happy.
Devlog #11 Hello everyone! A little devlog after a long time of inactivity. The break was amazing. Been to Bulgaria. Nice sea they’ve got. And now to HamOS. I am currently working on widgets, (little inspiration taken from my beloved Windows Vista). I am too lazy to create some clock, so I just used clock widget iframe. ( ) The version of the HamOS with a one widget added is live now, but it is in beta and not polished. (Something like a developer version of iOS) I had a lot of ideas for HamOS, but I don’t know if I will have enough time to add all of them. Visit HamOS at: https://lkspodmol.github.io/myos1/ That is all. Happy coding everyone!
Devlog #12 Hello everyone! New version of HamOS v1.5 just rolled out! What have I added or fixed? Bugs: cursor: pointer; bug fix (entire desktop was clickable) cursor: pointer; bug fix (entire app rows were clickable, not only apps) Added: Widgets! Current apps opened bar! New settings feature New QnA The boring part: In this version, I had an idea to add widgets (because I loved widgets in Windows Vista). Then I needed content for the widgets. I wanted clock, but I was lazy to create some clock, so I just used clock widget iframe. Some people dont have to like the widgets, so I added a new option in settings to hide them. And with all of the apps opened, it was a little bit difficult to navigate between them, so I added “Current apps opened bar”. When app is opened, it shows its icon in the bar, which can be clicked for focusing the app window. The order of app icons in the bar is fixed, because I was too lazy to implement some kind of order-system. Visit HamOS at: https://lkspodmol.github.io/myos1/ Thanks for reading and that is all for this update. Happy coding everyone!
Devlog #13 Hello everyone! What did I add in this update? Animations for “Currently opened apps bar”! And delay for the apps to launch (just like in a real life). When you open app, the little icon BOUNCES (video in attachment). This update isn’t live right now and wont be until v1.6. Visit HamOS at: https://lkspodmol.github.io/myos1/ Thanks for reading and that is all for this update. Happy coding everyone!
The opening of community styles for HamOS! Hello everyone. Today im announcing that YOU, can create styles for HamOS, that will be added! If anyone wants to make a style (please do, I will be very happy), dm me on slack @luksus with the files, etc. (View the before last attached photo.) Everything you will need, will be in the template that I made for you (dimensions, info, restricted areas, etc.) Please download the template ( https://drive.google.com/drive/folders/1wteLNYUOm6-3gt77MpcvDc4UFpRlmfD8?usp=sharing ). You can also view the finished example. Edit 2 hours later: I just tried doing style myself and it turned out pretty okay! Check before last attached screenshot. I will be waiting for everyone’s styles ! Happy coding stardancers. ( https://lapse.hackclub.com/timelapse/7iCZKuc8ZhRJ )
Devlog #14 Hello everyone! New version of HamOS v1.6 just rolled out! What have I added or fixed? Bugs: Added: “current open apps bar” animations! New system of indexes.html and fodler structures! A whole new STYLES system!! The boring part: I had idea of different styles a long time back in time. So I implemented them in this update. You can select what style you want and it will apply. The new selection menu will be more polished in the next update. I promise. If YOU (yes, you) want to make a style for hamos, please click the link in the selection menu and dm me! I would be very happy! With the animations of “CAOB”. It was a little difficult. I need to make the timing right, make it launch or not close when app is still open. It had its bugs when in development, but it should be working flawlessly now. Visit HamOS at: https://lkspodmol.github.io/myos1/ Thanks for reading and that is all for this update. Happy coding everyone!
Devlog? #15 - PLEASE READ! Hello everyone… New version of HamOS v1.7 just rolled out. What have I added or fixed? Bugs: volume lowered of loud sounds Added: new styles menu new styles The end? So yeah. This will be probably the last devlog of HamOS. I had many laughs when making HamOS and I must thank the organizers of Stardance for this! I want to say thank you to the every person I have talked to on stardance / hackclub. That includes slack. Specifically: Ethan, Brahmtej, Craw, Fraud squad , mixid_mbb, LakasZada, Thunder, starviper, SeradedStripes and all of unmentioned. You made my day less boring either with just chatting in the #stardance, huddling in huddle, playing on our minecraft server or playing games in #boba-bash-greater-noida. #boba-bash-greater-noida deserves its own section. It was incredibly fun playing with all of you for a week. The best ones were Skribbl, Among Us and Gartic Phone. I will include some funny screenshots. Big + to the organizers of this event, Brahmtej and agm. I hope we will meet again next year or sooner ❤️ . I will remember (hopefully). Lukas out . Visit HamOS at: https://lkspodmol.github.io/hamos/
Ships:
Have a working webpage with multiple draggable windows, Check It should look like your own and not exactly like the guide, Check Have at least 3 devlogs showing your progress along the way, Check Have at least 1 new feature that the guide didn’t list, Check It shouldn’t have a password (so anyone can test it out!), Check Hello everyone! This is my first ship on stardance and I hope, that you will like my WebOS 1. My WebOS 1 is HamOS. Not ham like ham, but ham like ham-ster. Hamster, because of my hamster Džambule. I love him very much, so I got an idea to create WebOS, that is designed for him and you got in somehow. Little things that I liked when coding is being lost in my own code. The best things I added in my opinion are: The loading screen!! Photo gallery of him And the custom hand drew icons made by me (intentionally bad) So please, visit and try HamOS at: https://lkspodmol.github.io/myos1/ . WebOS 1 was incredibly fun and interesting and I will try to continue in WebOS 2. Should it be HamOS, or HamOS PRO? Let me know. Thank you for reading this or commenting, liking and happy coding!
Hello everyone! This is 2nd ship of HamOS, that brought some cool features and that are: Crt monitor Coslop Starting and shutting down the system Sound effects! I had a lot of fun drawing in this ship. I think the crt monitor turned out very good. I am also very happy with the sounds I added. Fits in so well. I am also updating the very fine text on the “Floppy”, that says, what version you are running (always the newest). I have some ideas for the future, but I think that a little break whould be also very good idea. If you have any ideas, on what I should add, comment please! Likes are very appreciated <3. Visit HamOS here: https://lkspodmol.github.io/myos1/ Thanks for reading! Happy coding. (pls algorithm, big views)
Hello everyone! This is my 3nd ship of HamOS. (2nd of WebOS 2) A lot has changed since 2nd ship and those are: Apps: Help, App for helping users with QnA Settings, App for customization of HamOS HamOS To Go, Similar app (tool) to Windows To Go, it will launch HamOS in your tab instead of Džambulas computer. A new shortcut to Wikipedia New look for existing Introduction app, in NOKIA style (hands) And the biggest nightmare…. Scaling. I had problems with scaling HamOS website to other resolutions. Only 1920x1080 was supported, but now from 720p to 4K (16:9) should work without any major issues. The most annoying thing about this were also always changing margins, so app icons are alligned, etc… And for fun, I added a little sticky note that will help visitors start up the computer with HamOS. Also please, do not mind if the window you are moving is faster or slower than your mouse pointer. (check app Help) If you have any ideas, on what I should add, comment please! Visit HamOS at: https://lkspodmol.github.io/myos1/ (Please try F11) Thanks for reading. Happy coding and happy rating!
PLEASE READ LAST DEVLOG <3 Hello. This is the 3rd and last ship of HamOS. It was incredibly fun making this project. In this ship I added a lots of things which I don’t remember (CurrentOpenAppsBar, F11, animations, styles, widgets, bug fixes, QoL updates, etc..) Please checkout every app, windows, features in HamOS. There is a hidden secret for you the second, you enter the website! My main inspiration for this project was the old era of computers and my hamster “Džambule”. (May my luck find 188 stardust for grants from this ship)...
|
1793083756.847836
|
1793170156.847836
|
|
33878
|
Breakdown by @f | Stardance
|
f
|
1
|
37.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-16T12:09:50Z", "hours": 37.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made Breakdown, a privacy-first Chrome extension that turns giant Terms of Service and Privacy Policies into a quick, readable summary. One click gives you a risk score, the biggest red flags, what data is collected, your rights, and the clauses you should actually care about. The best part: everything runs locally on your device. No accounts, no API keys, no cloud, and no tracking. The biggest challenge was making it accurate without relying on AI. My first version used a local LLM, but it was slow, huge, and sometimes confidently made things up. I replaced it with my own rule-based NLP engine that detects legal clauses, handles things like “we do not sell your data”, and shows the exact sentence that triggered each result. I’m most proud that Breakdown became better by removing AI, it went from a 1-2GB model download to an instant 18KB offline analyzer. To test it, open any Terms of Service or Privacy Policy page, click the extension, and see what companies are actually asking you to agree to.", "repo": "https://github.com/pefia/Breakdown", "demo": "https://github.com/pefia/Breakdown/releases/tag/v1.0.0"}]...
|
[{"post_id": 29442, "ts": "202 [{"post_id": 29442, "ts": "2026-07-16T12:02:28Z", "hours": 6.0, "text": "Bringing everything together Today was mostly about merging all five feature branches back into main and making sure everything still worked afterwards. I also managed to speed up the summaries to near instant so the user experience is way better. (Screenshots are from Anthropic ToS) Most of the merges happened automatically, but I still went through the UI files manually to make sure nothing had been overwritten and the new components all fit together properly. New features Radial risk gauge around the score. Risk category breakdown card. Background analysis using a Web Worker. Faster debounced search. Confidence chips and skeleton loading. Final checks After merging everything I: Ran all 24 unit tests . Built the extension from scratch. Verified the worker bundled correctly. Checked the UI for duplicate styles or merge issues. Cleaned up the temporary branches and worktrees. Everything passed, so the project is now back on a single branch with all five features fully integrated."}, {"post_id": 29038, "ts": "2026-07-15T18:08:01Z", "hours": 10.0, "text": "Goodbye AI, hello NLP This update completely changed how Breakdown works. The screenshots are from review of the Meta (Facebook) ToS and the Hack Club ToS, see if you can tell which one is which and comment it 😉 Originally it used a 1-2 GB language model running through WebLLM. It worked, but startup was slow, downloads were huge, and it could still hallucinate clauses that weren’t actually in a policy. I replaced the entire pipeline with a deterministic rule-based NLP engine that runs fully on-device. I briefly kept a small embedding model to catch unusual wording, but testing showed it was responsible for almost every false positive, so I removed that too. What changed Removed all AI models and embeddings. No downloads or GPU required. Fully offline and deterministic. Analyzer shrunk to just 18 KB . Biggest challenge The hardest part was keeping the results accurate without relying on AI. I rewrote detection around sentence-level rules, proper negation handling, and much stricter legal clause matching, then built a new test suite using real-world policies to make sure false positives stayed gone. The result Removed 49 npm packages . Deleted the entire AI pipeline. Faster analysis with no waiting. More reliable results than the original AI version."}, {"post_id": 27666, "ts": "2026-07-13T13:11:12Z", "hours": 11.0, "text": "bugs bugs bugs. this devlog is just about bugs there were soooooooo many bugs bug 1: ai models giving up - there were instances where the model timed out for one reason or another but didnt throw an error to the extension so you could’ve waited 20 minutes with the same loading screen.. bug 2: inaccuracies and hallucinations - with such a small AI model that runs locally, it isn’t as good as the latest ChatGPT or Claude, so the answers tended to be of a lower quality and sometimes just plain lies feature add! : instead of a static loading screen there is now stages, with the word count of the summary also being updated in real time, with some added facts to keep the user interested! next, i hope to improve model quality further and fix a bug where transformers.js/ONNX runtime is trying to cache a chrome-extension:// WASM URL leading to an error."}, {"post_id": 26961, "ts": "2026-07-12T01:49:59Z", "hours": 8.0, "text": "I am working on a Chrome Extension called Breakdown. What is Breakdown? Breakdown is a Chrome Extension that summarises Terms of Services and Privacy Policies, so you can really see what companies are collecting from you. My Progress so far: I have made a working prototype, which has a 65% accuracy, with the categories being right like 50% of the time… Struggles: It was very difficult to get WebLLM working with a Local AI Model that didn’t frequently hallucinate but can still run on bad specs (no GPU, etc.) To do: Redo UI, i hate it so much Try and add cool loading animations when downloading AI Models for first time Make AI Model way more accurate"}]...
|
Title: Breakdown by @f | Stardance
Devlogs:
I am Title: Breakdown by @f | Stardance
Devlogs:
I am working on a Chrome Extension called Breakdown. What is Breakdown? Breakdown is a Chrome Extension that summarises Terms of Services and Privacy Policies, so you can really see what companies are collecting from you. My Progress so far: I have made a working prototype, which has a 65% accuracy, with the categories being right like 50% of the time… Struggles: It was very difficult to get WebLLM working with a Local AI Model that didn’t frequently hallucinate but can still run on bad specs (no GPU, etc.) To do: Redo UI, i hate it so much Try and add cool loading animations when downloading AI Models for first time Make AI Model way more accurate
bugs bugs bugs. this devlog is just about bugs there were soooooooo many bugs bug 1: ai models giving up - there were instances where the model timed out for one reason or another but didnt throw an error to the extension so you could’ve waited 20 minutes with the same loading screen.. bug 2: inaccuracies and hallucinations - with such a small AI model that runs locally, it isn’t as good as the latest ChatGPT or Claude, so the answers tended to be of a lower quality and sometimes just plain lies feature add! : instead of a static loading screen there is now stages, with the word count of the summary also being updated in real time, with some added facts to keep the user interested! next, i hope to improve model quality further and fix a bug where transformers.js/ONNX runtime is trying to cache a chrome-extension:// WASM URL leading to an error.
Goodbye AI, hello NLP This update completely changed how Breakdown works. The screenshots are from review of the Meta (Facebook) ToS and the Hack Club ToS, see if you can tell which one is which and comment it 😉 Originally it used a 1-2 GB language model running through WebLLM. It worked, but startup was slow, downloads were huge, and it could still hallucinate clauses that weren’t actually in a policy. I replaced the entire pipeline with a deterministic rule-based NLP engine that runs fully on-device. I briefly kept a small embedding model to catch unusual wording, but testing showed it was responsible for almost every false positive, so I removed that too. What changed Removed all AI models and embeddings. No downloads or GPU required. Fully offline and deterministic. Analyzer shrunk to just 18 KB . Biggest challenge The hardest part was keeping the results accurate without relying on AI. I rewrote detection around sentence-level rules, proper negation handling, and much stricter legal clause matching, then built a new test suite using real-world policies to make sure false positives stayed gone. The result Removed 49 npm packages . Deleted the entire AI pipeline. Faster analysis with no waiting. More reliable results than the original AI version.
Bringing everything together Today was mostly about merging all five feature branches back into main and making sure everything still worked afterwards. I also managed to speed up the summaries to near instant so the user experience is way better. (Screenshots are from Anthropic ToS) Most of the merges happened automatically, but I still went through the UI files manually to make sure nothing had been overwritten and the new components all fit together properly. New features Radial risk gauge around the score. Risk category breakdown card. Background analysis using a Web Worker. Faster debounced search. Confidence chips and skeleton loading. Final checks After merging everything I: Ran all 24 unit tests . Built the extension from scratch. Verified the worker bundled correctly. Checked the UI for duplicate styles or merge issues. Cleaned up the temporary branches and worktrees. Everything passed, so the project is now back on a single branch with all five features fully integrated.
Ships:
I made Breakdown, a privacy-first Chrome extension that turns giant Terms of Service and Privacy Policies into a quick, readable summary. One click gives you a risk score, the biggest red flags, what data is collected, your rights, and the clauses you should actually care about. The best part: everything runs locally on your device. No accounts, no API keys, no cloud, and no tracking. The biggest challenge was making it accurate without relying on AI. My first version used a local LLM, but it was slow, huge, and sometimes confidently made things up. I replaced it with my own rule-based NLP engine that detects legal clauses, handles things like “we do not sell your data”, and shows the exact sentence that triggered each result. I’m most proud that Breakdown became better by removing AI, it went from a 1-2GB model download to an instant 18KB offline analyzer. To test it, open any Terms of Service or Privacy Policy page, click the extension, and see what companies are actually asking you to agree to....
|
1792878795.3930724
|
1793742795.3930724
|
|
38467
|
Deci by @ethmarks | Stardance
|
ethmarks
|
1
|
37.0
|
704
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-03T20:32:24Z", "hours": 37.0, "multiplier": 18.81, "payout": 704, "blessing": "neutral", "text": "Deci: a terminal text editor based on nano It’s a fully-functional text editor that can be used to create and edit all types of text files. It has unique behavior for 112 keybinds, cursor movement modeled on Zed and VS Code, integrated Markdown previewing, and an undo/redo buffer.", "repo": "https://github.com/ethmarks/deci", "demo": "https://ethmarks.github.io/deci/"}]...
|
[{"post_id": 40360, "ts": "202 [{"post_id": 40360, "ts": "2026-08-03T20:16:13Z", "hours": 0.2953, "text": "This devlog was written using deci ! watch the devlog video to watch me type it install deci from https://github.com/ethmarks/deci/releases enjoy!"}, {"post_id": 40332, "ts": "2026-08-03T19:30:47Z", "hours": 2.1261, "text": "v1.0.0 release! Yay! I added the following stuff: a new screenshot gallery to the site --version and --help commands to the CLI small tweaks to the readme text in the center of the header that says what file is open I’ll write the next devlog using deci ."}, {"post_id": 38485, "ts": "2026-07-31T21:52:34Z", "hours": 3.7039, "text": "I finished the README, did some bugfixes and refactors, and made a demo gif using VHS . Unless I think of more features to add, this will probably be my second-to-last devlog. I’m still planning on writing my final devlog before shipping using deci ."}, {"post_id": 37849, "ts": "2026-07-30T20:18:20Z", "hours": 2.9711, "text": "I wrote a first draft of the README. I’m pretty happy with it so far. I still need to add a “How it Works” section, though. Oh and I also expanded the help screen to add more info."}, {"post_id": 36853, "ts": "2026-07-29T05:28:47Z", "hours": 2.1239, "text": "I added undo and redo! Basically, every mutative keystroke (e.g. space or backspace) makes a snapshot of the current lines and editor position and adds it to the history slice. When you press ctrl+z , it decrements historyIndex and replaces the current lines and cursor position with history[historyIndex] . ctrl+y does the same thing but the opposite. Oh and I also added word-skipping cursor movement. If you press ctrl+left or ctrl+right , the cursor will move in that direction until it reaches a delimiter (e.g. a space or a punctuation). It took embarrassingly long to get it to work perfectly. There’s a bunch of little edge case behaviors for cursor caret movement that are really subtle and kinda unintuitive, but which you’re so used to from writing text on computers that you can instantly spot if it’s not quite correct. I think that next I’ll start working on the README."}, {"post_id": 36245, "ts": "2026-07-28T06:29:29Z", "hours": 2.0408, "text": "I added markdown previewing! Just press ctrl+p , and it’ll switch to a new screen and render the current editor content as markdown with Glamour . The screenshot for this devlog is what the current README looks like when previewed. It obviously works best with markdown files, but I’ve been unable to make it throw an error, even when I try to render .go files and whatnot that are definitely not markdown. I guess markdown is a pretty permissive spec. I also added goreleaser , so it should automatically build binaries and release them for each new version now. You can check it out at https://github.com/ethmarks/deci/releases . I think that deci is pretty close to finished. I honestly can’t think of much more to add. I still need to add that undo buffer that I promised in the first devlog, and write a README and better docs, but that’s basically it. How exciting!"}, {"post_id": 36189, "ts": "2026-07-28T03:29:37Z", "hours": 3.5586, "text": "I refactored the rendering code so that it doesn’t break styled content. I realized earlier today that there was absolutely zero reason for me to use a grid data structure in the rendering logic. The rendering pipeline went something like this: input a bunch of lines create a blank 2D grid of characters, one for each character in the terminal iterate over every single cell in that grid and set it to the relevant character from the input lines join all the columns in each row of the grid together into one line each join all lines together into one big string output the string for rendering Using an extra intermediate dimension of data storage didn’t actually do anything except use way more memory and make it very difficult to use non-ASCII characters. So I redesigned it and the new rendering pipeline works more like this: input a bunch of lines create a slice of blank lines, one for each row in the terminal trim the relevant input line and insert it into the slice join all the lines together into one big string output the string for rendering This way is much simpler, and also much more memory efficient i think. Plus, the new pipleine lets me used styled text. Before, when I tried out Lipgloss’s Border feature on the help page, the border was composed entirely of â characters. Idk why. I think it because each grid cell only used the first byte and didn’t consider the invisible ANSI characters. But the new one slices it safely using Charm’s ansi package, so it’s safe to use styled lines. I used the new pipeline to make the help page more colorful and aesthetic. I made each character of the “deci” ASCII art be a different color to distinguish them, because a friend pointed out that the c and the i are really close together so it kinda looks like it says “ded”. Soon, I should be able to add markdown previewing. It shouldn’t even be that much work (famous last words)."}, {"post_id": 35853, "ts": "2026-07-27T15:44:58Z", "hours": 0.4247, "text": "Just a small change this devlog. I added a keybind to change the cursor shape. The default is now block (it was bar before, but that seemed kinda un-nano), and you can toggle it to bar and then underline using alt+c . I also added optional anonymous condition functions to the keybind struct, so I can toggle whether a keybind is visible or not. For example, the “Write Out” keybind is only visible on the editor screen because there’s no reason to write out the help screen."}, {"post_id": 35620, "ts": "2026-07-27T05:10:46Z", "hours": 3.4664, "text": "I’ve added a help screen and a keybind info bar! For the help screen, I had to majorly refactor how line data is stored. Previously, there was just one big lines slice that was instantiated from the file content, directly written to to process keystrokes, and directly read from to render the view. But now I’ve moved most of that functionality to a separate editorLines variable, and lines is now a pointer that can be hotswapped. So when the user switches to the help screen, I just change the lines pointer from editorLines to helpLines , and voila everything works. As a bonus, this modular system should make it pretty easy to add markdown previews later. I made the ASCII art “deci” logo in the help page using the Colossal font for FIGlet , which is the same font that nano uses for the ASCII art on its home page. I think it looks pretty good. I’m also leaning into the slogan “your second-to-last next editor”. It’s a self-deprecating play on Zed ’s slogan that I made up for the first devlog. But I’m really proud of it so I put it on the website and in the help screen. The keybind info bar was pretty simple to make. The only thing worth remarking on is that it automatically limits the displayed keybinds to the width of the terminal screen, just like nano . Speaking of which, did you know that nano has 66 keybinds? I counted. I had to stretch a terminal window across two 1080p monitors and scale the font size down to 58% in order to see all of them. Currently, deci has 3 keybinds. I’ll need to think of more keybinds, because that’s embarrassing. Maybe a toggle between block mode and bar mode for the cursor."}, {"post_id": 34952, "ts": "2026-07-26T02:18:35Z", "hours": 1.1294, "text": "I published some binaries on GitHub releases and also made a webpage. The webpage is live at https://ethmarks.github.io/deci/ . I made it using the Lume Tufte theme that I made on Stardance back in June: https://stardance.hackclub.com/projects/18206 . It’s still a WIP, but it doesn’t need to be complicated. I don’t think that I really need to put anything on the website other than installation instructions and some screenshots. I just used the GOOS and GOARCH flags of go build to make the binaries. For the v0.1.0 release, I published binaries for x86 Linux, ARM MacOS, and x86 Windows. I might add support for more platforms later. Meanwhile, if I didn’t make a binary for your platform, you can always just build it from source: git clone https://github.com/ethmarks/deci.git cd deci go build I do all of my developing work on Linux, so I’ve tested deci pretty thoroughly on Linux. I do have a Windows laptop, but I’ve misplaced the charging cable for it and it’s out of battery, so I can’t test it on Windows right now. I don’t even own an Apple device, so there’s no way I can test on MacOS. There’s a pretty good chance that you’re reading this devlog on Windows or MacOS right now. If you are, I’d really appreciate it if you could try out deci and let me know if it works."}, {"post_id": 34886, "ts": "2026-07-25T23:30:19Z", "hours": 2.2047, "text": "Scrolling! If you move the cursor all the way to the bottom of the screen, it’ll shift the viewport down. And the opposite if you move the cursor to the top. This took forever to get right. I kept breaking other things because I had juggle three different “perspectives”: the grid of characters output to the screen, the slice of the grid that’s the viewport, and the actual lines of the file. But it all works now. I think next I might work on getting a demo set up. Most of the CLI binaries that I’ve downloaded before have used GitHub Releases, so I guess I should figure out how to make those work."}, {"post_id": 34409, "ts": "2026-07-25T02:55:51Z", "hours": 1.1492, "text": "Line numbers! Yay! It took a few attempts to get the Lipgloss structure right. For a while, it either wouldn’t highlight the line number of the active line, or it would only highlight the line number of the active line. But I got it working in the end."}, {"post_id": 34321, "ts": "2026-07-24T22:29:32Z", "hours": 2.3278, "text": "So Lipgloss is like powerful . Wow. I was using Lipgloss to style the status bar (more on that in a bit), and I took some time to actually read through the docs. I’d used the picocolors before, which is a JS package that makes working with ANSI codes easier. I had assumed that Lipgloss was kind of like that: you just type lipgloss.Blue rather than \\x1b[34m . But it can do all sorts of stuff like borders and padding and centering and compositing and enumeration and like a bajillion other things. I don’t understand how the Lipgloss codebase is only ~12,000 lines; based on how powerful it is, it feels like it should be much bigger. Anyways, I added active line highlighting and a status bar. Right now, I’ve just made the status bar barf out info about the most recent keypress. For example: “inserted ‘a’ at 4:2” “split line 4 to line 5” “merged line 5 with 4” …et cetera I might decide to make the status bar a bit less talkative later, but for now it’s useful for debugging. Next, I’m going to work on adding line numbers. I also might decide to refactor the text rendering to use Lipgloss layers."}, {"post_id": 34225, "ts": "2026-07-24T19:03:14Z", "hours": 1.7628, "text": "I’ve found something that I really like about Go compared to TypeScript: you don’t need to import identifiers (e.g. functions) from other files if they’re all part of the some package. I did a big refactor to split the 400-line behemoth main.go into a handful of smaller files. I was fully expecting to have to import each and every constant, type, and function between files. But I didn’t have to! Because every file is part of the main package, they all use the same namespace or something. I defined the statusMsg struct in update.go , but I can just instantiate a statusMsg literal in file.go without any imports or anything! This is a really cool language feature. 10/10. Anyways, apart from the big refactor, I did the following: the cursor is now the actual terminal cursor rather than a fake drawn-on cursor. if you use left arrow at the start of a line, the cursor moves to the end of the line above. if you use right arrow at the end of a line, the cursor moves to the start of the line below. delete! It’s exactly like backspace but in the opposite direction. tab! As mentioned, deci operates on a strict “1 character = 1 byte = 1 column’ basis because I don’t wanna deal with Unicode, so properly implementing tabs was out of the question. Instead, I just made the tab key instantly insert 4 spaces. None of this stuff was on last devlog’s list of features to implement. I just kept noticing that these behaviors were missing while playtesting, so I implemented them. Next up is the aesthetic stuff like the status bar that I promised last devlog."}, {"post_id": 33907, "ts": "2026-07-24T06:27:25Z", "hours": 3.3394, "text": "Hi again! The past three hours have been a manic frenzy of adding features. I’m starting to get the hang of Go. I’m not used to working so quickly, but working on this project is surprisingly exciting. New features: backspace! If you press backspace, it’ll either delete the character immediately before your cursor, or if you’re at the beginning of a line, it’ll merge current line with the previous one and then shift all other lines upwards. enter! If you press enter, it’ll bifurcate the current line and split the right half onto a new line. the cursor will now stop going out of bounds. It automatically clamps the mouse X position to the max length of the current line. the top row is now reserved for a nano -style header that currently says deci 0.0.1 on the left and by @ethmarks on the right. the cursor now highlights the character under it rather than replacing it with a solid white square. plus lots of bugfixes, mainly fixing bugs that I added while adding the other features mentioned in this list. Features I want to add next: highlighting the active line by lightening the background color a status bar line numbers a keybind info bar Oh, and I’ve decided that deci is ASCII-only. Go is weird about counting characters if they occupy more than one byte, so it would be a huge pain to add support for Unicode and would probably lead to a bajillion bugs. To make sure you understand what I mean about the ASCII thing, I’ll provide an example: the hamster emoji is 1 character, it occupies 2 columns in the terminal, and it’s made of 4 bytes. Because of the last part, len(\"🐹\") returns 4 in Go, so any string with a hamster emoji in it will appear to have 3 more characters and occupy 2 more columns than it actually does. Making sure that the code reliably distinguishes between those three very similar concepts would be really challenging, and the only benefit would be that you could use emojis and non-Latin characters in deci . I don’t really think that it’s worth it. deci is shaping up shockingly quickly. I almost could have written this devlog in deci , though the lack of horizontal or vertical scrolling would probably prevent me from actually writing the full thing."}, {"post_id": 33830, "ts": "2026-07-24T02:10:29Z", "hours": 4.0542, "text": "I stayed up late into the night yesterday reading docs for Go and Bubble Tea. Here are the ones I read: https://go.dev/tour https://learnxinyminutes.com/go https://pkg.go.dev/charm.land/bubbletea/ [email protected] #readme-tutorial https://github.com/charmbracelet/bubbletea/tree/main/tutorials/commands So far, my overall impressions are “wow, Go kinda sucks compared to TypeScript”. Maybe it’s just that I’m only scratching the surface and I’ve yet to see the true advantages of Go, but so far I am unimpressed. It’s just much more restrictive and much less expressive than TypeScript while simultaneously somehow being more prone to runtime panics, at least from my small amount of experience. Anyways, I’ve also gotten a decent amount of work done. deci can now kind of edit files. Watch the video below for a demonstration. Things that work: reading files creating files if they don’t exist transforming the lines of a file into a slice (Go’s version of dynamic-length arrays) of strings displaying the lines on screen moving the cursor around displaying the cursor preventing the cursor from going out of bounds inserting characters onto the current line at the cursor position displaying a line of status text writing lines to the file Things that might seem like they would work based on the list above, but actually don’t: backspaces creating new lines (aka enter) scrolling through a file displaying the cursor when it isn’t directly over an existing character preventing the cursor from going out of bounds when it goes above or below a line that’s longer than its neighbors other subtle cursor behaviors that are difficult to describe that we take for granted in editors but are surprisingly difficult to implement There’s still a lot to do. It might seem like I’ve made a lot of progress but I doubt that I’m even 10% of the way done."}, {"post_id": 33216, "ts": "2026-07-22T22:32:37Z", "hours": 0.7678, "text": "Are you tired of using actual editors, but nano is still too feature-rich and stable for you? Introducing deci , your second-to-last next editor I’m making this because I want to learn the Go lang. I’ve heard that Bubble Tea is the best of the best for making TUIs, but I’ve never used it because it requires using Go. Since I want to learn Go anyways, I figured that I’d give Bubble Tea a shot. I was trying to think of what kind of TUI to make, and a nano/vim/helix style text editor was the first thing that sprang to my mind. Obviously, my editor won’t have as many features as even nano (which is quite a low bar). I intend to have text rendering, file reading and writing, character insertion and deletion, an undo buffer, and maybe some other stuff. Don’t hold me to this, but I might even implement markdown previewing via wrapping the Glamour utility . The goal that I’m setting for myself is to write my final devlog for deci using deci itself. Anyways, the name deci comes from the Metric prefix Deci , meaning 10^-1. nano comes from Nano , meaning 10^-9. It’s a bit of wordplay: The Deci prefix is far larger than Nano, and I expect that the deci binary will be much heavier than the nano binary because it has to bundle the Go runtime which is like 3-10 MB. Deci is not a very commonly used prefix. There’s basically nothing that uses Deci other than decibels and deciliters, and the “deci” in both of those terms is easy to miss (did you know that decibels are based on Bels? Also, the wikipedia page for Bel redirects to decibel). Nano, on the other hand is extremely common; everybody knows about nanobots and that “nano” means “very small”. Likewise, nobody except you, me, and a handful of other people know about deci editor, but tons of people know about nano . Anyways, all that I’ve done so far is come up with a plan, write the stub README, and make the terrible banner that you see below. Next, I’m going to install Go and start reading the Bubble Tea docs."}]...
|
Title: Deci by @ethmarks | Stardance
Devlogs:
Are Title: Deci by @ethmarks | Stardance
Devlogs:
Are you tired of using actual editors, but nano is still too feature-rich and stable for you? Introducing deci , your second-to-last next editor I’m making this because I want to learn the Go lang. I’ve heard that Bubble Tea is the best of the best for making TUIs, but I’ve never used it because it requires using Go. Since I want to learn Go anyways, I figured that I’d give Bubble Tea a shot. I was trying to think of what kind of TUI to make, and a nano/vim/helix style text editor was the first thing that sprang to my mind. Obviously, my editor won’t have as many features as even nano (which is quite a low bar). I intend to have text rendering, file reading and writing, character insertion and deletion, an undo buffer, and maybe some other stuff. Don’t hold me to this, but I might even implement markdown previewing via wrapping the Glamour utility . The goal that I’m setting for myself is to write my final devlog for deci using deci itself. Anyways, the name deci comes from the Metric prefix Deci , meaning 10^-1. nano comes from Nano , meaning 10^-9. It’s a bit of wordplay: The Deci prefix is far larger than Nano, and I expect that the deci binary will be much heavier than the nano binary because it has to bundle the Go runtime which is like 3-10 MB. Deci is not a very commonly used prefix. There’s basically nothing that uses Deci other than decibels and deciliters, and the “deci” in both of those terms is easy to miss (did you know that decibels are based on Bels? Also, the wikipedia page for Bel redirects to decibel). Nano, on the other hand is extremely common; everybody knows about nanobots and that “nano” means “very small”. Likewise, nobody except you, me, and a handful of other people know about deci editor, but tons of people know about nano . Anyways, all that I’ve done so far is come up with a plan, write the stub README, and make the terrible banner that you see below. Next, I’m going to install Go and start reading the Bubble Tea docs.
I stayed up late into the night yesterday reading docs for Go and Bubble Tea. Here are the ones I read: https://go.dev/tour https://learnxinyminutes.com/go https://pkg.go.dev/charm.land/bubbletea/ [email protected] #readme-tutorial https://github.com/charmbracelet/bubbletea/tree/main/tutorials/commands So far, my overall impressions are “wow, Go kinda sucks compared to TypeScript”. Maybe it’s just that I’m only scratching the surface and I’ve yet to see the true advantages of Go, but so far I am unimpressed. It’s just much more restrictive and much less expressive than TypeScript while simultaneously somehow being more prone to runtime panics, at least from my small amount of experience. Anyways, I’ve also gotten a decent amount of work done. deci can now kind of edit files. Watch the video below for a demonstration. Things that work: reading files creating files if they don’t exist transforming the lines of a file into a slice (Go’s version of dynamic-length arrays) of strings displaying the lines on screen moving the cursor around displaying the cursor preventing the cursor from going out of bounds inserting characters onto the current line at the cursor position displaying a line of status text writing lines to the file Things that might seem like they would work based on the list above, but actually don’t: backspaces creating new lines (aka enter) scrolling through a file displaying the cursor when it isn’t directly over an existing character preventing the cursor from going out of bounds when it goes above or below a line that’s longer than its neighbors other subtle cursor behaviors that are difficult to describe that we take for granted in editors but are surprisingly difficult to implement There’s still a lot to do. It might seem like I’ve made a lot of progress but I doubt that I’m even 10% of the way done.
Hi again! The past three hours have been a manic frenzy of adding features. I’m starting to get the hang of Go. I’m not used to working so quickly, but working on this project is surprisingly exciting. New features: backspace! If you press backspace, it’ll either delete the character immediately before your cursor, or if you’re at the beginning of a line, it’ll merge current line with the previous one and then shift all other lines upwards. enter! If you press enter, it’ll bifurcate the current line and split the right half onto a new line. the cursor will now stop going out of bounds. It automatically clamps the mouse X position to the max length of the current line. the top row is now reserved for a nano -style header that currently says deci 0.0.1 on the left and by @ethmarks on the right. the cursor now highlights the character under it rather than replacing it with a solid white square. plus lots of bugfixes, mainly fixing bugs that I added while adding the other features mentioned in this list. Features I want to add next: highlighting the active line by lightening the background color a status bar line numbers a keybind info bar Oh, and I’ve decided that deci is ASCII-only. Go is weird about counting characters if they occupy more than one byte, so it would be a huge pain to add support for Unicode and would probably lead to a bajillion bugs. To make sure you understand what I mean about the ASCII thing, I’ll provide an example: the hamster emoji is 1 character, it occupies 2 columns in the terminal, and it’s made of 4 bytes. Because of the last part, len("🐹") returns 4 in Go, so any string with a hamster emoji in it will appear to have 3 more characters and occupy 2 more columns than it actually does. Making sure that the code reliably distinguishes between those three very similar concepts would be really challenging, and the only benefit would be that you could use emojis and non-Latin characters in deci . I don’t really think that it’s worth it. deci is shaping up shockingly quickly. I almost could have written this devlog in deci , though the lack of horizontal or vertical scrolling would probably prevent me from actually writing the full thing.
I’ve found something that I really like about Go compared to TypeScript: you don’t need to import identifiers (e.g. functions) from other files if they’re all part of the some package. I did a big refactor to split the 400-line behemoth main.go into a handful of smaller files. I was fully expecting to have to import each and every constant, type, and function between files. But I didn’t have to! Because every file is part of the main package, they all use the same namespace or something. I defined the statusMsg struct in update.go , but I can just instantiate a statusMsg literal in file.go without any imports or anything! This is a really cool language feature. 10/10. Anyways, apart from the big refactor, I did the following: the cursor is now the actual terminal cursor rather than a fake drawn-on cursor. if you use left arrow at the start of a line, the cursor moves to the end of the line above. if you use right arrow at the end of a line, the cursor moves to the start of the line below. delete! It’s exactly like backspace but in the opposite direction. tab! As mentioned, deci operates on a strict “1 character = 1 byte = 1 column’ basis because I don’t wanna deal with Unicode, so properly implementing tabs was out of the question. Instead, I just made the tab key instantly insert 4 spaces. None of this stuff was on last devlog’s list of features to implement. I just kept noticing that these behaviors were missing while playtesting, so I implemented them. Next up is the aesthetic stuff like the status bar that I promised last devlog.
So Lipgloss is like powerful . Wow. I was using Lipgloss to style the status bar (more on that in a bit), and I took some time to actually read through the docs. I’d used the picocolors before, which is a JS package that makes working with ANSI codes easier. I had assumed that Lipgloss was kind of like that: you just type lipgloss.Blue rather than \x1b[34m . But it can do all sorts of stuff like borders and padding and centering and compositing and enumeration and like a bajillion other things. I don’t understand how the Lipgloss codebase is only ~12,000 lines; based on how powerful it is, it feels like it should be much bigger. Anyways, I added active line highlighting and a status bar. Right now, I’ve just made the status bar barf out info about the most recent keypress. For example: “inserted ‘a’ at 4:2” “split line 4 to line 5” “merged line 5 with 4” …et cetera I might decide to make the status bar a bit less talkative later, but for now it’s useful for debugging. Next, I’m going to work on adding line numbers. I also might decide to refactor the text rendering to use Lipgloss layers.
Line numbers! Yay! It took a few attempts to get the Lipgloss structure right. For a while, it either wouldn’t highlight the line number of the active line, or it would only highlight the line number of the active line. But I got it working in the end.
Scrolling! If you move the cursor all the way to the bottom of the screen, it’ll shift the viewport down. And the opposite if you move the cursor to the top. This took forever to get right. I kept breaking other things because I had juggle three different “perspectives”: the grid of characters output to the screen, the slice of the grid that’s the viewport, and the actual lines of the file. But it all works now. I think next I might work on getting a demo set up. Most of the CLI binaries that I’ve downloaded before have used GitHub Releases, so I guess I should figure out how to make those work.
I published some binaries on GitHub releases and also made a webpage. The webpage is live at https://ethmarks.github.io/deci/ . I made it using the Lume Tufte theme that I made on Stardance back in June: https://stardance.hackclub.com/projects/18206 . It’s still a WIP, but it doesn’t need to be complicated. I don’t think that I really need to put anything on the website other than installation instructions and some screenshots. I just used the GOOS and GOARCH flags of go build to make the binaries. For the v0.1.0 release, I published binaries for x86 Linux, ARM MacOS, and x86 Windows. I might add support for more platforms later. Meanwhile, if I didn’t make a binary for your platform, you can always just build it from source: git clone https://github.com/ethmarks/deci.git cd deci go build I do all of my developing work on Linux, so I’ve tested deci pretty thoroughly on Linux. I do have a Windows laptop, but I’ve misplaced the charging cable for it and it’s out of battery, so I can’t test it on Windows right now. I don’t even own an Apple device, so there’s no way I can test on MacOS. There’s a pretty good chance that you’re reading this devlog on Windows or MacOS right now. If you are, I’d really appreciate it if you could try out deci and let me know if it works.
I’ve added a help screen and a keybind info bar! For the help screen, I had to majorly refactor how line data is stored. Previously, there was just one big lines slice that was instantiated from the file content, directly written to to process keystrokes, and directly read from to render the view. But now I’ve moved most of that functionality to a separate editorLines variable, and lines is now a pointer that can be hotswapped. So when the user switches to the help screen, I just change the lines pointer from editorLines to helpLines , and voila everything works. As a bonus, this modular system should make it pretty easy to add markdown previews later. I made the ASCII art “deci” logo in the help page using the Colossal font for FIGlet , which is the same font that nano uses for the ASCII art on its home page. I think it looks pretty good. I’m also leaning into the slogan “your second-to-last next editor”. It’s a self-deprecating play on Zed ’s slogan that I made up for the first devlog. But I’m really proud of it so I put it on the website and in the help screen. The keybind info bar was pretty simple to make. The only thing worth remarking on is that it automatically limits the displayed keybinds to the width of the terminal screen, just like nano . Speaking of which, did you know that nano has 66 keybinds? I counted. I had to stretch a terminal window across two 1080p monitors and scale the font size down to 58% in order to see all of them. Currently, deci has 3 keybinds. I’ll need to think of more keybinds, because that’s embarrassing. Maybe a toggle between block mode and bar mode for the cursor.
Just a small change this devlog. I added a keybind to change the cursor shape. The default is now block (it was bar before, but that seemed kinda un-nano), and you can toggle it to bar and then underline using alt+c . I also added optional anonymous condition functions to the keybind struct, so I can toggle whether a keybind is visible or not. For example, the “Write Out” keybind is only visible on the editor screen because there’s no reason to write out the help screen.
I refactored the rendering code so that it doesn’t break styled content. I realized earlier today that there was absolutely zero reason for me to use a grid data structure in the rendering logic. The rendering pipeline went something like this: input a bunch of lines create a blank 2D grid of characters, one for each character in the terminal iterate over every single cell in that grid and set it to the relevant character from the input lines join all the columns in each row of the grid together into one line each join all lines together into one big string output the string for rendering Using an extra intermediate dimension of data storage didn’t actually do anything except use way more memory and make it very difficult to use non-ASCII characters. So I redesigned it and the new rendering pipeline works more like this: input a bunch of lines create a slice of blank lines, one for each row in the terminal trim the relevant input line and insert it into the slice join all the lines together into one big string output the string for rendering This way is much simpler, and also much more memory efficient i think. Plus, the new pipleine lets me used styled text. Before, when I tried out Lipgloss’s Border feature on the help page, the border was composed entirely of â characters. Idk why. I think it because each grid cell only used the first byte and didn’t consider the invisible ANSI characters. But the new one slices it safely using Charm’s ansi package, so it’s safe to use styled lines. I used the new pipeline to make the help page more colorful and aesthetic. I made each character of the “deci” ASCII art be a different color to distinguish them, because a friend pointed out that the c and the i are really close together so it kinda looks like it says “ded”. Soon, I should be able to add markdown previewing. It shouldn’t even be that much work (famous last words).
I added markdown previewing! Just press ctrl+p , and it’ll switch to a new screen and render the current editor content as markdown with Glamour . The screenshot for this devlog is what the current README looks like when previewed. It obviously works best with markdown files, but I’ve been unable to make it throw an error, even when I try to render .go files and whatnot that are definitely not markdown. I guess markdown is a pretty permissive spec. I also added goreleaser , so it should automatically build binaries and release them for each new version now. You can check it out at https://github.com/ethmarks/deci/releases . I think that deci is pretty close to finished. I honestly can’t think of much more to add. I still need to add that undo buffer that I promised in the first devlog, and write a README and better docs, but that’s basically it. How exciting!
I added undo and redo! Basically, every mutative keystroke (e.g. space or backspace) makes a snapshot of the current lines and editor position and adds it to the history slice. When you press ctrl+z , it decrements historyIndex and replaces the current lines and cursor position with history[historyIndex] . ctrl+y does the same thing but the opposite. Oh and I also added word-skipping cursor movement. If you press ctrl+left or ctrl+right , the cursor will move in that direction until it reaches a delimiter (e.g. a space or a punctuation). It took embarrassingly long to get it to work perfectly. There’s a bunch of little edge case behaviors for cursor caret movement that are really subtle and kinda unintuitive, but which you’re so used to from writing text on computers that you can instantly spot if it’s not quite correct. I think that next I’ll start working on the README.
I wrote a first draft of the README. I’m pretty happy with it so far. I still need to add a “How it Works” section, though. Oh and I also expanded the help screen to add more info.
I finished the README, did some bugfixes and refactors, and made a demo gif using VHS . Unless I think of more features to add, this will probably be my second-to-last devlog. I’m still planning on writing my final devlog before shipping using deci .
v1.0.0 release! Yay! I added the following stuff: a new screenshot gallery to the site --version and --help commands to the CLI small tweaks to the readme text in the center of the header that says what file is open I’ll write the next devlog using deci .
This devlog was written using deci ! watch the devlog video to watch me type it install deci from https://github.com/ethmarks/deci/releases enjoy!
Ships:
Deci: a terminal text editor based on nano It’s a fully-functional text editor that can be used to create and edit all types of text files. It has unique behavior for 112 keybinds, cursor movement modeled on Zed and VS Code, integrated Markdown previewing, and an undo/redo buffer....
|
1793138305.084591
|
1793224705.084591
|
|
40114
|
WARIO EMPIRE by @lordvader25 | Stardance
|
lordvader25
|
2
|
37.0
|
109
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-19T12:39:38Z", "hours": 21.0, "multiplier": 5.29, "payout": 109, "blessing": "neutral", "text": "Folks, The empire creation of Warioware, is over….its completed, we have done it..AS A COMMUNITY OF AT LEAST 50, WE HAVE DONE IT BOYS. The journey, was amazing..seeing new people, figuring out game developing, it was beautiful…hope you all like it..hope we can meet again and form a community..i don’t mind if i even get 125 stardust, i js need a plushie for my sister, if you guys are generous and rate me a bit high, i will be obliged, anyways…its done, go enjoy it folks..LESSSS GOOOOOO", "repo": "https://github.com/lordvader-25/mynewwariogame", "demo": "https://lordvader-25.itch.io/wario-ware-minigame-collections"}, {"ship_num": 2, "ts": "2026-08-26T19:09:39Z", "hours": 16.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a Warioware, well wouldn’t even call it that because I made it completely different, as a beginner to Game Development and this type of serious coding, I feel like “HOLYYY COW, I MADE A GAME MOM, I DID IT, I’M ONE STEP CLOSER TO BECOMING SPIDER MAN.” - but in all seriousness, the game was amazing to build, and I am, js Happy…", "repo": "https://github.com/lordvader-25/mynewwariogame", "demo": "https://lordvader-25.itch.io/wario-ware-minigame-collections"}]...
|
[{"post_id": 70592, "ts": "202 [{"post_id": 70592, "ts": "2026-09-19T12:34:39Z", "hours": 0.3139, "text": "devlog 24: guys, we have officially exported the game to ITCHI.IO..CAN U BELIEVE IT, 2ND SHIP HERE I COME"}, {"post_id": 70223, "ts": "2026-09-18T18:56:08Z", "hours": 1.3756, "text": "Devlog 23 - LADIES AND GENTLEMEN, I HAVE THE GREATEST ANNOUNCEMENT IN MY HISTORY OF THIS EMPIRE, WE HAVE…(drumrolls please)….HAVE OFFICIALLY COMPLETED OUR GAME, ITS TIME TO SHIP IT NOW BOYZZZZZZ"}, {"post_id": 69256, "ts": "2026-09-16T18:04:55Z", "hours": 1.4186, "text": "devlog 22 - The level is looking pretty good as far now folks, LETS SEE WHERE WE WILL HEAD TO DUDES, HOPE WE CAN FINISH IT IN A FEW DAYS..i will also add stars and a time limit of around 15 to 20 seconds..we will see how it turns out..till then, Peace Gentlemen and Ladies…"}, {"post_id": 67537, "ts": "2026-09-13T17:39:53Z", "hours": 6.1883, "text": "devlog 21 - WE R BACK DUDES, AFTER A LONG TIME, WITH SOME WORK DONE IN OUR BACK…. WE HAVE STARTED ON THE CREATION OF OUR MINIGAME FLIPPIN 4…LESSS GOOO dudes…WE WILL BE CREATING A PLATFORM MOVING GAME, THEN SHIPPING TIME LESS GO"}, {"post_id": 63085, "ts": "2026-09-06T17:55:56Z", "hours": 2.0464, "text": "devlog 20: BOYS AND GIRLS, WE HAVE DONE IT..WE HAVE OFFICIALLY DONE IT, OUR MINIGAME 3 IS FINALLY COMPLETE WOOOOOOOOOOO🎊🎊🎊🎊🎊🎊🎊🎊🎊🎊"}, {"post_id": 62406, "ts": "2026-09-05T19:02:00Z", "hours": 1.9803, "text": "Devlog 18: WE HAVE FINALLY DONE THE CODING PART, WE JUST NOW NEED TO ADD A TIMER..AND OUR MINIGAME 3 IS OVER DUDE..LESSS GOOOOOOOOO, btw, for minigame 4..u guys need to give me some ideas, im confused what to do on it."}, {"post_id": 61687, "ts": "2026-09-04T18:34:56Z", "hours": 1.0317, "text": "Devlog 18: Finally the animations r getting together boys…OUR EMPIRE IS SLOWLY BEING BUILT ONCE AGAIN, LETSSS GOOOOOOO"}, {"post_id": 61025, "ts": "2026-09-03T18:41:33Z", "hours": 3.1169, "text": "Devlog 17: yea..so, I BASICALLY SOMEHOW LOST HALF OF MY PROJECT, I HAD TO CREATE HALF OF IT BACK..IT TOOK ME 6 HOURS DUDE, 6 AND I FLIPPIN HAVE MY EXAMS IN 18 DAYS…oh god, yea im cooked guys..btw, wish me luck for both (this and my exams)"}, {"post_id": 59796, "ts": "2026-09-01T18:46:06Z", "hours": 0.6278, "text": "DEVLOG 16: The code is starting to take its shape finally, i had to debug it a lot..I MEAN A LOT GENTLEMEN…so, i js hope by tmrw this minigame is complete so that maybe..we can focus on…“STORY MODE”"}, {"post_id": 59066, "ts": "2026-08-31T17:49:02Z", "hours": 1.3569, "text": "Devlog 15: YOOO GENTLEMEN, WASS GOOD?, so update, we have officially started creating minigame 3…the game is bout to be real fun, well i suppose it is..created the base outline first, writing the code right now..hopefully it turns out great..and usable lol..well CYA LATER HONEYPIES"}, {"post_id": 57489, "ts": "2026-08-29T17:27:53Z", "hours": 1.12, "text": "Devlog 14 - boys, after shipping our project, WE HAVE MADE OUR FINISHING TOUCHES, ADDED THE BORDERS, AN EXIT SCREEN AN ENDING SCENE AS WELL AS UPDATED OUR EXITS IN BOTH LEVEL 1 AND LEVEL 2 OF minigame 1..i mean, hope my project finally gets accepted..PEACE"}, {"post_id": 55188, "ts": "2026-08-26T18:10:21Z", "hours": 2.6533, "text": "Devlog 13 - IM BACK, THE GOATS BACK BOYSSS, and i have..COMPLETED MY FLIPPIN GAME DUDE, ITS DONE..READY TO SHIP, EVERYTHING CREATED NOW…my journey’s over now…its over, BUT WE DID IT GUYS, WE DID IT TOGETHER..THANK YOU FOR ALL THE LOVE AND SUPPORT🎊🎊🎊🎊, until then..gentleman-signing off"}, {"post_id": 51842, "ts": "2026-08-21T18:24:11Z", "hours": 1.0528, "text": "devlog 12 - BOYS, Announcement time people, WE HAVE OFFICIALLY MADE OUR MINIGAME 2 LAYOUT AND THIS GAME BOUT TO BE REAL HARD (atleast for me that is💀💀😭😭😭😭), i have barely made 2 entities and im losing lol 😭😭😭😭, btw..i wont be able to upload devlogs for a few days cuz of burnout..so, STAY TUNED FOR ME NEXT DEVLOG (probably like next week or smthn idk, well…oh yea btw, shout out to username - rajveer0123n and tanixsh, real good coders out there)"}, {"post_id": 50962, "ts": "2026-08-20T13:04:30Z", "hours": 2.2092, "text": "devlog 11 - BOYS I AM BACKKKK, AND I HAVE A WHOLE LOT OF AN UPDATE, FIRST OF ALL..WE FLIPPIN CREATED LEVEL 4 WITH A FLIPPIN ENTITY (the dragon)..AND ALSO, WE FLIPPIN CREATED OUR FIRST PIXEL ART AND IMPLEMENTED IT IN OUR LEVEL 2 TO MAKE IT HARDER LESSSSSS GOOOOOOO DUDEEESSSS…WE EVEN CREATED A NEW WINNING SCREEN FOR LEVEL 4..Minigame 2 only left AND THEN SHIPPING TIMEEEEE..LESSSSS GOOOOOOO🎊🎊🎊🎊🎊🎊🎊🎊"}, {"post_id": 48304, "ts": "2026-08-16T16:41:35Z", "hours": 1.7792, "text": "devlog 10 - I HAVE FINALLLYYY COMPLETED LEVEL FLIPPINN 3…..IT TOOK ME LIKE 3 HOURS TO GET THE CODING TO FINALLY WORK….btw, ive implemented some ideas you guys told me to…so did that..btw, next level..we will have some like NPC characters we gotta avoid..then minigame 2…I MEAN IM STILL SO HAPPY AND STOKED THAT I COMPLETED LEVEL 3🎊🎊🎊🎊🎊🎊🎊🎊"}, {"post_id": 47665, "ts": "2026-08-15T18:29:31Z", "hours": 0.8408, "text": "Devlog 9 - We HAVE FINALLYYYY STARTEDDD ON LEVEL 3…PEOPLE LETSSSS GOOOOOOOOOOO, btw..i need some ideas tbh. Should i add a bit of enemies in level 4 that u have to avoid, if u touch them..u lose or smthn?…(btw, dont judge be, this is my first time developing a game let alone a pixelated one…), so..HOPE I GET TO SEE SOME IDEASSSSS"}, {"post_id": 47082, "ts": "2026-08-14T18:32:14Z", "hours": 1.9978, "text": "Devlog 8 - PEOPLEEE, I AMM BACKKKKK..IVE FINALLY CREATED THE LOSING SCREEN AND IVE MADE IT CONNECT TO THE MINIGAME 2, SO IF UR UNABLE TO COMPLETE IT UNDER 10 SECONDS, U LOSE..LETTSSSS GOOOOO BOYSSSSSSS, WOOOOOOOOOOOOOOOOOOOO🎊🎊🎊🎊🎊🎊"}, {"post_id": 44729, "ts": "2026-08-10T17:44:30Z", "hours": 0.4031, "text": "Devlog 7 - YOU PEOPLE CANNOT FEEL THE AMOUNT OF EXCITEMENT AND HAPPINESS IM GETTING..I FINALLY MADE MY LEVEL 2 CONNECT TO THE WINNING SCREEN.. btw, wanted to ask for an idea. should i create a timer on level 2 so that i could also use a losing screen..like if u aren’t able to collect the stars under 10 seconds, u lose. how’s the idea people?"}, {"post_id": 44698, "ts": "2026-08-10T17:15:21Z", "hours": 0.3469, "text": "devlog 6 - Guys im js sleepy tbh, its like 11 pm in my area..im sleep deprived…and my PROJECT ISNT WORKING..ehh, who cares tho, ill complete level 2 for u people…LOCK IN PEEPS"}, {"post_id": 44118, "ts": "2026-08-09T17:53:43Z", "hours": 0.7311, "text": "log - 5, finally started creating LEVEL 2 of my minigame 1, lets see how it turns out, keep u peeps updated..(btw, any ideas on how to improve it, if yup, tell me cuz i need help😭😭)"}, {"post_id": 43377, "ts": "2026-08-08T16:04:46Z", "hours": 0.5, "text": "devlog 4 - MY MINIGAME_1 FINALLY WORKS AFTER 2 HOURS OF ASKING, (ps - minigame_2 waiting for me like a boss), added a bit of texture, thinking of extending minigame_1 level 1 to a level 2 aswell, gimme some ideas guys"}, {"post_id": 43317, "ts": "2026-08-08T14:48:21Z", "hours": 1.4572, "text": "devlog 3 - FINALLY working on the code to actually collect the stars in our minigame 1, ehh pretty boring till now..hope it turns out a bit bettah…"}, {"post_id": 42796, "ts": "2026-08-07T18:10:25Z", "hours": 1.0092, "text": "Finally this piece is coming together FOR GODSAKE, been working at it for around 2 hours and 30 mins (or 1 hour and 40 mins officially), tell me hows it gng"}, {"post_id": 42561, "ts": "2026-08-07T11:44:26Z", "hours": 0.6669, "text": "Yo people, #log 1, js started on this, hows it?"}]...
|
Title: WARIO EMPIRE by @lordvader25 | Stardance
D Title: WARIO EMPIRE by @lordvader25 | Stardance
Devlogs:
Yo people, #log 1, js started on this, hows it?
Finally this piece is coming together FOR GODSAKE, been working at it for around 2 hours and 30 mins (or 1 hour and 40 mins officially), tell me hows it gng
devlog 3 - FINALLY working on the code to actually collect the stars in our minigame 1, ehh pretty boring till now..hope it turns out a bit bettah…
devlog 4 - MY MINIGAME_1 FINALLY WORKS AFTER 2 HOURS OF ASKING, (ps - minigame_2 waiting for me like a boss), added a bit of texture, thinking of extending minigame_1 level 1 to a level 2 aswell, gimme some ideas guys
log - 5, finally started creating LEVEL 2 of my minigame 1, lets see how it turns out, keep u peeps updated..(btw, any ideas on how to improve it, if yup, tell me cuz i need help😭😭)
devlog 6 - Guys im js sleepy tbh, its like 11 pm in my area..im sleep deprived…and my PROJECT ISNT WORKING..ehh, who cares tho, ill complete level 2 for u people…LOCK IN PEEPS
Devlog 7 - YOU PEOPLE CANNOT FEEL THE AMOUNT OF EXCITEMENT AND HAPPINESS IM GETTING..I FINALLY MADE MY LEVEL 2 CONNECT TO THE WINNING SCREEN.. btw, wanted to ask for an idea. should i create a timer on level 2 so that i could also use a losing screen..like if u aren’t able to collect the stars under 10 seconds, u lose. how’s the idea people?
Devlog 8 - PEOPLEEE, I AMM BACKKKKK..IVE FINALLY CREATED THE LOSING SCREEN AND IVE MADE IT CONNECT TO THE MINIGAME 2, SO IF UR UNABLE TO COMPLETE IT UNDER 10 SECONDS, U LOSE..LETTSSSS GOOOOO BOYSSSSSSS, WOOOOOOOOOOOOOOOOOOOO🎊🎊🎊🎊🎊🎊
Devlog 9 - We HAVE FINALLYYYY STARTEDDD ON LEVEL 3…PEOPLE LETSSSS GOOOOOOOOOOO, btw..i need some ideas tbh. Should i add a bit of enemies in level 4 that u have to avoid, if u touch them..u lose or smthn?…(btw, dont judge be, this is my first time developing a game let alone a pixelated one…), so..HOPE I GET TO SEE SOME IDEASSSSS
devlog 10 - I HAVE FINALLLYYY COMPLETED LEVEL FLIPPINN 3…..IT TOOK ME LIKE 3 HOURS TO GET THE CODING TO FINALLY WORK….btw, ive implemented some ideas you guys told me to…so did that..btw, next level..we will have some like NPC characters we gotta avoid..then minigame 2…I MEAN IM STILL SO HAPPY AND STOKED THAT I COMPLETED LEVEL 3🎊🎊🎊🎊🎊🎊🎊🎊
devlog 11 - BOYS I AM BACKKKK, AND I HAVE A WHOLE LOT OF AN UPDATE, FIRST OF ALL..WE FLIPPIN CREATED LEVEL 4 WITH A FLIPPIN ENTITY (the dragon)..AND ALSO, WE FLIPPIN CREATED OUR FIRST PIXEL ART AND IMPLEMENTED IT IN OUR LEVEL 2 TO MAKE IT HARDER LESSSSSS GOOOOOOO DUDEEESSSS…WE EVEN CREATED A NEW WINNING SCREEN FOR LEVEL 4..Minigame 2 only left AND THEN SHIPPING TIMEEEEE..LESSSSS GOOOOOOO🎊🎊🎊🎊🎊🎊🎊🎊
devlog 12 - BOYS, Announcement time people, WE HAVE OFFICIALLY MADE OUR MINIGAME 2 LAYOUT AND THIS GAME BOUT TO BE REAL HARD (atleast for me that is💀💀😭😭😭😭), i have barely made 2 entities and im losing lol 😭😭😭😭, btw..i wont be able to upload devlogs for a few days cuz of burnout..so, STAY TUNED FOR ME NEXT DEVLOG (probably like next week or smthn idk, well…oh yea btw, shout out to username - rajveer0123n and tanixsh, real good coders out there)
Devlog 13 - IM BACK, THE GOATS BACK BOYSSS, and i have..COMPLETED MY FLIPPIN GAME DUDE, ITS DONE..READY TO SHIP, EVERYTHING CREATED NOW…my journey’s over now…its over, BUT WE DID IT GUYS, WE DID IT TOGETHER..THANK YOU FOR ALL THE LOVE AND SUPPORT🎊🎊🎊🎊, until then..gentleman-signing off
Devlog 14 - boys, after shipping our project, WE HAVE MADE OUR FINISHING TOUCHES, ADDED THE BORDERS, AN EXIT SCREEN AN ENDING SCENE AS WELL AS UPDATED OUR EXITS IN BOTH LEVEL 1 AND LEVEL 2 OF minigame 1..i mean, hope my project finally gets accepted..PEACE
Devlog 15: YOOO GENTLEMEN, WASS GOOD?, so update, we have officially started creating minigame 3…the game is bout to be real fun, well i suppose it is..created the base outline first, writing the code right now..hopefully it turns out great..and usable lol..well CYA LATER HONEYPIES
DEVLOG 16: The code is starting to take its shape finally, i had to debug it a lot..I MEAN A LOT GENTLEMEN…so, i js hope by tmrw this minigame is complete so that maybe..we can focus on…“STORY MODE”
Devlog 17: yea..so, I BASICALLY SOMEHOW LOST HALF OF MY PROJECT, I HAD TO CREATE HALF OF IT BACK..IT TOOK ME 6 HOURS DUDE, 6 AND I FLIPPIN HAVE MY EXAMS IN 18 DAYS…oh god, yea im cooked guys..btw, wish me luck for both (this and my exams)
Devlog 18: Finally the animations r getting together boys…OUR EMPIRE IS SLOWLY BEING BUILT ONCE AGAIN, LETSSS GOOOOOOO
Devlog 18: WE HAVE FINALLY DONE THE CODING PART, WE JUST NOW NEED TO ADD A TIMER..AND OUR MINIGAME 3 IS OVER DUDE..LESSS GOOOOOOOOO, btw, for minigame 4..u guys need to give me some ideas, im confused what to do on it.
devlog 20: BOYS AND GIRLS, WE HAVE DONE IT..WE HAVE OFFICIALLY DONE IT, OUR MINIGAME 3 IS FINALLY COMPLETE WOOOOOOOOOOO🎊🎊🎊🎊🎊🎊🎊🎊🎊🎊
devlog 21 - WE R BACK DUDES, AFTER A LONG TIME, WITH SOME WORK DONE IN OUR BACK…. WE HAVE STARTED ON THE CREATION OF OUR MINIGAME FLIPPIN 4…LESSS GOOO dudes…WE WILL BE CREATING A PLATFORM MOVING GAME, THEN SHIPPING TIME LESS GO
devlog 22 - The level is looking pretty good as far now folks, LETS SEE WHERE WE WILL HEAD TO DUDES, HOPE WE CAN FINISH IT IN A FEW DAYS..i will also add stars and a time limit of around 15 to 20 seconds..we will see how it turns out..till then, Peace Gentlemen and Ladies…
Devlog 23 - LADIES AND GENTLEMEN, I HAVE THE GREATEST ANNOUNCEMENT IN MY HISTORY OF THIS EMPIRE, WE HAVE…(drumrolls please)….HAVE OFFICIALLY COMPLETED OUR GAME, ITS TIME TO SHIP IT NOW BOYZZZZZZ
devlog 24: guys, we have officially exported the game to ITCHI.IO..CAN U BELIEVE IT, 2ND SHIP HERE I COME
Ships:
I made a Warioware, well wouldn’t even call it that because I made it completely different, as a beginner to Game Development and this type of serious coding, I feel like “HOLYYY COW, I MADE A GAME MOM, I DID IT, I’M ONE STEP CLOSER TO BECOMING SPIDER MAN.” - but in all seriousness, the game was amazing to build, and I am, js Happy…
Folks, The empire creation of Warioware, is over….its completed, we have done it..AS A COMMUNITY OF AT LEAST 50, WE HAVE DONE IT BOYS. The journey, was amazing..seeing new people, figuring out game developing, it was beautiful…hope you all like it..hope we can meet again and form a community..i don’t mind if i even get 125 stardust, i js need a plushie for my sister, if you guys are generous and rate me a bit high, i will be obliged, anyways…its done, go enjoy it folks..LESSSS GOOOOOO...
|
1793105441.3633335
|
1793191841.3633335
|
|
43167
|
LifeOs - App by @SussyBungus | Stardance
|
SussyBungus
|
0
|
37.0
|
0
|
[]
|
[{"post_id": 42734, "ts": "202 [{"post_id": 42734, "ts": "2026-08-07T16:28:41Z", "hours": 12.0, "text": "Devlog #6 made the task page functional and connected data to every component. Might fix up UI as it doesnt look that clean rn"}, {"post_id": 42399, "ts": "2026-08-07T02:48:44Z", "hours": 3.0, "text": "Devlog #5 Finished add pages for account settings. Everything is all placeholder items for now. Next Update: Task Page Functional Tasking addon Local Data maybe priority task suggestions ontop"}, {"post_id": 42106, "ts": "2026-08-06T17:50:26Z", "hours": 15.0, "text": "Devlog #4 Fixed header bug where the profile and notification modal wouldn’t open on certain pages. Added an account settings page and some placeholder items, along with the About app and privacy policy."}, {"post_id": 41404, "ts": "2026-08-05T16:23:00Z", "hours": 0.0, "text": "Devlog #3 Added placeholder items inside pages of designated app."}, {"post_id": 41374, "ts": "2026-08-05T15:25:15Z", "hours": 7.0, "text": "Devlog #2 Added some basic features, tasks, profile, and basic navbar. Currently no pages or what so ever Comming soon!!"}, {"post_id": 39867, "ts": "2026-08-03T04:09:23Z", "hours": 0.0, "text": "Devlog #1 My very first Android app using React Native and Expo! Still working on it and learning as I go. About The App: Life Os is designed to simplify your day by making multiple personal tasks simple. Manages your life in a single app. The ultimate goal is to save you time and make daily planning effortless. Feedback & Suggestions: I’d love to hear your thoughts!What features or widgets would you find most useful on a home dashboard like this?Any feedback on the visual hierarchy or overall layout?"}]...
|
Title: LifeOs - App by @SussyBungus | Stardance
D Title: LifeOs - App by @SussyBungus | Stardance
Devlogs:
Devlog #1 My very first Android app using React Native and Expo! Still working on it and learning as I go. About The App: Life Os is designed to simplify your day by making multiple personal tasks simple. Manages your life in a single app. The ultimate goal is to save you time and make daily planning effortless. Feedback & Suggestions: I’d love to hear your thoughts!What features or widgets would you find most useful on a home dashboard like this?Any feedback on the visual hierarchy or overall layout?
Devlog #2 Added some basic features, tasks, profile, and basic navbar. Currently no pages or what so ever Comming soon!!
Devlog #3 Added placeholder items inside pages of designated app.
Devlog #4 Fixed header bug where the profile and notification modal wouldn’t open on certain pages. Added an account settings page and some placeholder items, along with the About app and privacy policy.
Devlog #5 Finished add pages for account settings. Everything is all placeholder items for now. Next Update: Task Page Functional Tasking addon Local Data maybe priority task suggestions ontop
Devlog #6 made the task page functional and connected data to every component. Might fix up UI as it doesnt look that clean rn...
|
1792914861.8304532
|
1793778861.8304532
|
|
48047
|
WildOS by @Raphel | Stardance
|
Raphel
|
2
|
37.0
|
452
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-16T12:17:29Z", "hours": 31.0, "multiplier": 14.67, "payout": 452, "blessing": "neutral", "text": "WILDOS at last i completed WildOS for the WebOS 2 JAM . WildOS is a web-based but nature-themed OS and my second WebOS. My first WebOS helped me understand how a WebOS works, so this time i wanted to make something bigger and more functional. What I Built I made 9 apps : Wild Notes - write notes Wild Music Player - play music Wild Files - explore and download files Wild Settings - change the appearance Wild Weather - shows the weather of the Amazon Rainforest Wild Store - download and install apps Wild Gallery - view pictures Wild Sounds - play some crazy sounds Wildo - the personal assistant of WildOS The Music Player and Wild Store took me the most time. While making them, i learned more about JavaScript , app structures and how different parts of the OS connect together. Features Custom backgrounds Appearance settings Background sounds Boot animation Boot percentage Boot music Filters Custom cursor 3 new songs Draggable windows Fullscreen support App downloading and installation I also completely changed Wildo . Now he can give guides about WildOS and generate 2 images using JavaScript . Problems I Faced One big problem i faced was having 1000+ lines of HTML in one file . As the project became bigger, it became harder to find things and fix bugs. I spent time aligning and organising the code. I also faced some lag and dragging bugs while building it. This helped me learn how important it is to keep the code organised when a project gets bigger. How It Works mainly WildOS works like a small OS inside the browser. You can open apps from the dock, move the windows around, change the appearance, play music and download apps from the Store. You can play it directly in the browser. Use fullscreen and headphones for a better experience. Easter Eggs There are some Easter Eggs hidden inside WildOS. Double-click the tree icon on the top Double-click the WildOS text on the top There are also some more things hidden around the WildOS. I really enjoyed building WildOS and learned a lot about JavaScript, app structures, dragging windows, music players and fixing bugs . That’s it for WebOS 2 . check it out, ya tried!", "repo": "https://github.com/RaphelReji/WildOS", "demo": "https://raphelreji.github.io/WildOS/"}, {"ship_num": 2, "ts": "2026-09-09T03:07:49Z", "hours": 6.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "WildOS It was so cool to complete the WebOS 1 JAM. I made WildOS, a web-based but nature-themed OS. Thanks to MeowOS for inspiring me to build one too. Also thanks to the WebOS Guide that helped me understand what to build, and thanks to the team that built that guide. So what I built is a nature-themed OS called WildOS. It is fully nature-themed and has some awesome features. This one is web playable, so anyone can test it directly in the browser. I added 5 apps to it. The first one is WildNotes, where you can write your notes. The second one is a music player that lets you play some cool music. The third one is Files, which is just a simple file window. The fourth one is Settings, where you can change the theme. And the fifth one is WILDO, WildOS’s personal assistant, but it is always unreachable. I also added a booting window, text animations, a live clock, customizable themes, and draggable windows. This is my second WebOS. The first one gave me an idea of how a WebOS could work, and while building WildOS I learned more about JavaScript, especially dragging windows and making the booting screen. I also took a little inspiration from macOS for the dock and some of the icons, but I tried to make the rest of the design my own and keep everything around the nature theme. It was really interesting to build and I learned a lot from it. That’s it for WebOS 1. let’s see what I can build for WebOS 2.", "repo": "https://github.com/RaphelReji/WildOS", "demo": "https://raphelreji.github.io/WildOS/"}]...
|
[{"post_id": 68944, "ts": "202 [{"post_id": 68944, "ts": "2026-09-16T02:53:40Z", "hours": 1.4153, "text": "completed the readme for the project and made it properly written with the project details and everything needed. it took some time to arrange everything in the readme so it looks clean and understandable. i also aligned the 1000 line html code properly because it was not properly aligned before and it was hard to read and work with. now the readme is completed and the html code is properly aligned."}, {"post_id": 68735, "ts": "2026-09-15T17:19:06Z", "hours": 7.9703, "text": "WILDOS FINAL-DEVLOG at last i completed the wildos. i completed the store and the rest of the apps . the store took a long time to make but at last i completed it and made it functional. i also changed some app styles from webos1, made my own backgrounds for the boot and main window, added filters and a cursor image. also added boot percentage, boot music, some easter eggs and 3 new songs. i completely changed wildo and now he can give guides and generate 2 images. i also aligned the 1000 line html code and added the wifi logo. at last everything is done. ready to ship..!"}, {"post_id": 67756, "ts": "2026-09-14T00:10:29Z", "hours": 3.3075, "text": "WEBOS 2 today was another interesting day of working on my webos 2. i added two more apps to the webos — Gallery and Sounds . i also somehow managed to fix the lag bug that was happening when using the webos. it was a really annoying bug because sometimes the ui would get stuck or become slow, but after working on it i finally got it working much better. after that i completed the design of the Store app . the store is going to be one of the bigger parts of the webos because it can be used to show and add different apps. the design part is now completed and i also started working on the JS for it. i also added a click sound when interacting with things in the webos. its a small feature but it makes the experience feel much better and gives the webos a little more life. added Gallery app added Sounds app fixed the lag bug completed the Store design started the Store JS added click sounds today also taught me a lot about JavaScript, app structures, bugs and how different parts of the webos connect together . the wildos is slowly becoming bigger and more complete with every update. there is still a lot left to build I am trying to make it fast ,bye!"}, {"post_id": 67245, "ts": "2026-09-13T09:32:47Z", "hours": 5.0822, "text": "Devlog WildOS Today I worked on APP STORE mostly and sometime on settings as well. I added store app struture and details for apps in store . I also have some lag bugs with web but i am trying to resolve that Next, I am going to: resolve the lag bug finish the store app with js build sounds and galllery app yay bugs bugs let me complete this one"}, {"post_id": 66588, "ts": "2026-09-12T13:13:04Z", "hours": 3.57, "text": "wildOS Worked on settings today. I added appearance , customisable backgrounds and background music . I also worked on fixing javascript bugs and learned more about music ,dragging etc . Next, I am going to: completeing settings app store some music Getting closer to completing my WebOS2"}, {"post_id": 66357, "ts": "2026-09-12T04:37:35Z", "hours": 2.8344, "text": "I ADDED MUSIC PLAYER ,THE FILES- ALL BUTTONS IS WORKING ADDED A STORE BUT NOT COMPLTED ALSO FIXED SOME BUGS OF DRAGGING WINDOW"}, {"post_id": 65689, "ts": "2026-09-11T00:38:15Z", "hours": 2.0319, "text": "worked on music player added the javascript now adding the store app and inside that some apps to download also added new fonts , changed all macos style icons in green icons more comming"}, {"post_id": 65408, "ts": "2026-09-10T15:02:23Z", "hours": 4.5831, "text": "I started working on WebOS 2.Today, I added some new things:Added a new structure for the Music Player Added a Weather app Added file downloading in the File app Added full-size windows for all apps Next, I’m going to finish the Music Player and start working on a Store app."}, {"post_id": 64587, "ts": "2026-09-09T02:59:52Z", "hours": 5.2072, "text": "At last i completed it.It was so cool to complete the WebOS 1 JAM. I made WildOS, a web-based but nature-themed OS.Thanks to MeowOS for inspiring me to build one too, and also thanks to the WebOS Guide that helped me understand what to build. Also thanks to the team that built that guide.So what i built is a nature-themed OS called WildOS.It is fully nature-themed and has some awesome features. This one is web-playable, so anyone can test it directly in the browser.I added 5 apps to it. The first one is WildNotes, where you can write your notes. The second one is a music player that lets you play some cool music. The third one is Files, which is just a simple file window. The fourth one is Settings, where you can change the theme. And the fifth one is WILDO, WildOS’s personal assistant, but it is always unreachable.I also added a clock based on the WebOS Guide.I took a little inspiration from macOS, mainly for the dock and the icons, but most of the design is based around my own nature theme.Overall, it was really fun to build WildOS and learn how a WebOS works while making it.Now I’m ready for WebOS 2."}, {"post_id": 58221, "ts": "2026-08-30T16:04:35Z", "hours": 0.7883, "text": "WILDOS Hi i am using my free time to complete the webos i am mainly using html,css,and some javascript.So i making the first webOS so a very simple.btw i created the booting screen and a dragable window now i want to style it and thanks to the guide by stardance and meowos , i take it a inspiration to bulid this . see ya"}, {"post_id": 54947, "ts": "2026-08-26T11:25:46Z", "hours": 0.4189, "text": "WildOS — 2DayDevlog Day 1 The Beginning Today I started working on WildOS, The main goal is to create an OS with a unique identity SO I began by planning the overall design, user interface, and the features I want WildOS to have.I worked on the basic structure of the project and thought about how the desktop, applications, settings, and navigation should work together. I also started experimenting with the visual style and layout.There is still a lot to build, but getting the foundation started feels like a big step. Day 1 progress :Started the WildOS project Planned the basic OS structureDesigned the initial UI conceptStarted working on the desktop experienceListed features for future versions Day 2 — Building the WildOS focused more on turning the initial idea into something that actually feels like an operating system.I worked on the interface and started connecting different parts of the system together. I also thought about how users will interact with WildOS, including the desktop, applications, menus, and settings.The project is still in an early stage, but the direction is becoming much clearer. There are plenty of things left to improve. so at last i created the desktop booting and the first window ,still a lot more"}]...
|
Title: WildOS by @Raphel | Stardance
Devlogs:
Wil Title: WildOS by @Raphel | Stardance
Devlogs:
WildOS — 2DayDevlog Day 1 The Beginning Today I started working on WildOS, The main goal is to create an OS with a unique identity SO I began by planning the overall design, user interface, and the features I want WildOS to have.I worked on the basic structure of the project and thought about how the desktop, applications, settings, and navigation should work together. I also started experimenting with the visual style and layout.There is still a lot to build, but getting the foundation started feels like a big step. Day 1 progress :Started the WildOS project Planned the basic OS structureDesigned the initial UI conceptStarted working on the desktop experienceListed features for future versions Day 2 — Building the WildOS focused more on turning the initial idea into something that actually feels like an operating system.I worked on the interface and started connecting different parts of the system together. I also thought about how users will interact with WildOS, including the desktop, applications, menus, and settings.The project is still in an early stage, but the direction is becoming much clearer. There are plenty of things left to improve. so at last i created the desktop booting and the first window ,still a lot more
WILDOS Hi i am using my free time to complete the webos i am mainly using html,css,and some javascript.So i making the first webOS so a very simple.btw i created the booting screen and a dragable window now i want to style it and thanks to the guide by stardance and meowos , i take it a inspiration to bulid this . see ya
At last i completed it.It was so cool to complete the WebOS 1 JAM. I made WildOS, a web-based but nature-themed OS.Thanks to MeowOS for inspiring me to build one too, and also thanks to the WebOS Guide that helped me understand what to build. Also thanks to the team that built that guide.So what i built is a nature-themed OS called WildOS.It is fully nature-themed and has some awesome features. This one is web-playable, so anyone can test it directly in the browser.I added 5 apps to it. The first one is WildNotes, where you can write your notes. The second one is a music player that lets you play some cool music. The third one is Files, which is just a simple file window. The fourth one is Settings, where you can change the theme. And the fifth one is WILDO, WildOS’s personal assistant, but it is always unreachable.I also added a clock based on the WebOS Guide.I took a little inspiration from macOS, mainly for the dock and the icons, but most of the design is based around my own nature theme.Overall, it was really fun to build WildOS and learn how a WebOS works while making it.Now I’m ready for WebOS 2.
I started working on WebOS 2.Today, I added some new things:Added a new structure for the Music Player Added a Weather app Added file downloading in the File app Added full-size windows for all apps Next, I’m going to finish the Music Player and start working on a Store app.
worked on music player added the javascript now adding the store app and inside that some apps to download also added new fonts , changed all macos style icons in green icons more comming
I ADDED MUSIC PLAYER ,THE FILES- ALL BUTTONS IS WORKING ADDED A STORE BUT NOT COMPLTED ALSO FIXED SOME BUGS OF DRAGGING WINDOW
wildOS Worked on settings today. I added appearance , customisable backgrounds and background music . I also worked on fixing javascript bugs and learned more about music ,dragging etc . Next, I am going to: completeing settings app store some music Getting closer to completing my WebOS2
Devlog WildOS Today I worked on APP STORE mostly and sometime on settings as well. I added store app struture and details for apps in store . I also have some lag bugs with web but i am trying to resolve that Next, I am going to: resolve the lag bug finish the store app with js build sounds and galllery app yay bugs bugs let me complete this one
WEBOS 2 today was another interesting day of working on my webos 2. i added two more apps to the webos — Gallery and Sounds . i also somehow managed to fix the lag bug that was happening when using the webos. it was a really annoying bug because sometimes the ui would get stuck or become slow, but after working on it i finally got it working much better. after that i completed the design of the Store app . the store is going to be one of the bigger parts of the webos because it can be used to show and add different apps. the design part is now completed and i also started working on the JS for it. i also added a click sound when interacting with things in the webos. its a small feature but it makes the experience feel much better and gives the webos a little more life. added Gallery app added Sounds app fixed the lag bug completed the Store design started the Store JS added click sounds today also taught me a lot about JavaScript, app structures, bugs and how different parts of the webos connect together . the wildos is slowly becoming bigger and more complete with every update. there is still a lot left to build I am trying to make it fast ,bye!
WILDOS FINAL-DEVLOG at last i completed the wildos. i completed the store and the rest of the apps . the store took a long time to make but at last i completed it and made it functional. i also changed some app styles from webos1, made my own backgrounds for the boot and main window, added filters and a cursor image. also added boot percentage, boot music, some easter eggs and 3 new songs. i completely changed wildo and now he can give guides and generate 2 images. i also aligned the 1000 line html code and added the wifi logo. at last everything is done. ready to ship..!
completed the readme for the project and made it properly written with the project details and everything needed. it took some time to arrange everything in the readme so it looks clean and understandable. i also aligned the 1000 line html code properly because it was not properly aligned before and it was hard to read and work with. now the readme is completed and the html code is properly aligned.
Ships:
WildOS It was so cool to complete the WebOS 1 JAM. I made WildOS, a web-based but nature-themed OS. Thanks to MeowOS for inspiring me to build one too. Also thanks to the WebOS Guide that helped me understand what to build, and thanks to the team that built that guide. So what I built is a nature-themed OS called WildOS. It is fully nature-themed and has some awesome features. This one is web playable, so anyone can test it directly in the browser. I added 5 apps to it. The first one is WildNotes, where you can write your notes. The second one is a music player that lets you play some cool music. The third one is Files, which is just a simple file window. The fourth one is Settings, where you can change the theme. And the fifth one is WILDO, WildOS’s personal assistant, but it is always unreachable. I also added a booting window, text animations, a live clock, customizable themes, and draggable windows. This is my second WebOS. The first one gave me an idea of how a WebOS could work, and while building WildOS I learned more about JavaScript, especially dragging windows and making the booting screen. I also took a little inspiration from macOS for the dock and some of the icons, but I tried to make the rest of the design my own and keep everything around the nature theme. It was really interesting to build and I learned a lot from it. That’s it for WebOS 1. let’s see what I can build for WebOS 2.
WILDOS at last i completed WildOS for the WebOS 2 JAM . WildOS is a web-based but nature-themed OS and my second WebOS. My first WebOS helped me understand how a WebOS works, so this time i wanted to make something bigger and more functional. What I Built I made 9 apps : Wild Notes - write notes Wild Music Player - play music Wild Files - explore and download files Wild Settings - change the appearance Wild Weather - shows the weather of the Amazon Rainforest Wild Store - download and install apps Wild Gallery - view pictures Wild Sounds - play some crazy sounds Wildo - the personal assistant of WildOS The Music Player and Wild Store took me the most time. While making them, i learned more about JavaScript , app structures and how different parts of the OS connect together. Features Custom backgrounds Appearance settings Background sounds Boot animation Boot percentage Boot music Filters Custom cursor 3 new songs Draggable windows Fullscreen support App downloading and installation I also completely changed Wildo . Now he can give guides about WildOS and generate 2 images using JavaScript . Problems I Faced One big problem i faced was having 1000+ lines of HTML in one file . As the project became bigger, it became harder to find things and fix bugs. I spent time aligning and organising the code. I also faced some lag and dragging bugs while building it. This helped me learn how important it is to keep the code organised when a project gets bigger. How It Works mainly WildOS works like a small OS inside the browser. You can open apps from the dock, move the windows around, change the appearance, play music and download apps from the Store. You can play it directly in the browser. Use fullscreen and headphones for a better experience. Easter Eggs There are some Easter Eggs hidden inside WildOS. Double-click the tree icon on the top Double-click the WildOS text on the top There are also some more things hidden around the WildOS. I really enjoyed building WildOS and learned a lot about JavaScript, app structures, dragging windows, music players and fixing bugs . That’s it for WebOS 2 . check it out, ya tried!...
|
1793148453.6680048
|
1793234853.6680048
|
|
50524
|
OtterOS by @p1zZa | Stardance
|
p1zZa
|
2
|
37.0
|
92
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-24T18:07:22Z", "hours": 15.0, "multiplier": 6.16, "payout": 92, "blessing": "neutral", "text": "Since the last ship of this project i have added 5 new features which include a clicker game, JS paint, a to-do app, a typing animation for the title of the webpage, a little otter which follows your mouse around. I’m really proud of how the whole project turned out since i’m a complete beginner. The most challenging part was coming up with features that i can add with my current skill set 〒▽〒. I worked really hard on this so i hope you enjoy!!!!!", "repo": "https://github.com/piZzA-175/OtterOS", "demo": "https://pizza-175.github.io/OtterOS/"}, {"ship_num": 2, "ts": "2026-09-29T15:07:58Z", "hours": 22.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Presenting to you — OTTEROS. It is a WebOS based on otters and it contains an app called Otterwiki and a calculator app. I would say the hardest thing for me was figuring out how the Javascript works becuz i’m a complete beginner /_ . I’m really proud of the Otterwiki app cuz it honestly took a lot of time and effort to gather all that information. (i actually felt like giving up cuz it was taking so long to complete) i’m happy i powered through anyway (/≧▽≦)/", "repo": "https://github.com/piZzA-175/OtterOS", "demo": "https://pizza-175.github.io/OtterOS/"}]...
|
[{"post_id": 82383, "ts": "202 [{"post_id": 82383, "ts": "2026-10-24T17:49:57Z", "hours": 1.0125, "text": "I finished working on the To-do app so now even if you close the OS and reopen; ur tasks will still be there!! I also updated the README."}, {"post_id": 82218, "ts": "2026-10-24T09:52:31Z", "hours": 4.3272, "text": "I made a new app- its a To-Do app ( ̄▽ ̄) * I’m almost done, i just need to make sure the todos get saved even when you close the website and open it again and also i need to work on the delete button."}, {"post_id": 81061, "ts": "2026-10-19T18:18:15Z", "hours": 3.7069, "text": "Sorry for the late update- I finished the Clicker game and added JS Paint asw (●ˇ∀ˇ●). Andd yeaaa thats about it. I’m still searching for more things to add to this OS but i genuinely can’t think of anything(┬┬﹏┬┬)"}, {"post_id": 80219, "ts": "2026-10-16T19:43:35Z", "hours": 2.7222, "text": "I added my first upgrade to the clicker game. I still need to work on the javascript for this upgrade but i shall do so tmrw. i also added a otter that follows the cursor and also leaves a trail >.< honestly i do not know how it took me almost 3 hours to design the first upgrade TwT but atleast now the rest of the upgrades will take lesser time."}, {"post_id": 79735, "ts": "2026-10-15T08:09:11Z", "hours": 3.16, "text": "I added a typing animation to the title of the webpage and also started working on A clicker game. hehe (¬‿¬)"}, {"post_id": 75206, "ts": "2026-09-29T14:16:29Z", "hours": 3.3836, "text": "I made a calculator!!!!!!!!!!!!!!!!! i think i can make it look better but im too busy rn so it’ll have to do T-T. i hope yall like it!! ALSO HAPPY SEA OTTER AWARENESS WEEK!!!"}, {"post_id": 72401, "ts": "2026-09-22T20:54:19Z", "hours": 4.7261, "text": "I’ve finished the first app in the OS (/≧▽≦)/. This app is called Otterwiki and it contains information about each of the 14 otter species. Making this took a very long time lol-cuz i had to gather a lot of information. I hope yall like it!!!"}, {"post_id": 70728, "ts": "2026-09-19T17:39:19Z", "hours": 10.2133, "text": "Almost done with my first app!! its called Otterwiki and i will update you on what it is when its done. till now i wrote 4 different sections and rn im gonna work on the javascript to hide the sections and only open it when u toggle it in the side bar. Will update yall soon!!(oh yea i also added an otter in the corner since this is an otteros but there was no otter in sight ( ̄▽ ̄)* )"}, {"post_id": 59768, "ts": "2026-09-01T18:17:20Z", "hours": 2.9067, "text": "I finished the 2nd and 3rd parts. I made the welcome window thingy a little bigger and also added a top bar along with making the window movable. When you click on the brown circle it closes and when u click on the “live laugh love otters”, it opens the welcome window. i might change it later so u can open it by clicking an ‘app’. But yea this is what i have so far. ^^"}, {"post_id": 50316, "ts": "2026-08-19T14:09:06Z", "hours": 0.7908, "text": "I finished the 1st and half of the second part of the guide. Instead of styling everything in the html file i put all the style elements in a css file cuz its hard to read when theyre in the same file. About the background- i dont really know if i should keep it or not but i’ll change it in the future if i want. Also i had no idea what to keep for the intro so i kept it simple, might also change that in the future. Now i’m gonna need to add the Javascript. I do not know javascript so i might learn it first and then add the javascript instead of just copying the guide. :P"}]...
|
Title: OtterOS by @p1zZa | Stardance
Devlogs:
I f Title: OtterOS by @p1zZa | Stardance
Devlogs:
I finished the 1st and half of the second part of the guide. Instead of styling everything in the html file i put all the style elements in a css file cuz its hard to read when theyre in the same file. About the background- i dont really know if i should keep it or not but i’ll change it in the future if i want. Also i had no idea what to keep for the intro so i kept it simple, might also change that in the future. Now i’m gonna need to add the Javascript. I do not know javascript so i might learn it first and then add the javascript instead of just copying the guide. :P
I finished the 2nd and 3rd parts. I made the welcome window thingy a little bigger and also added a top bar along with making the window movable. When you click on the brown circle it closes and when u click on the “live laugh love otters”, it opens the welcome window. i might change it later so u can open it by clicking an ‘app’. But yea this is what i have so far. ^^
Almost done with my first app!! its called Otterwiki and i will update you on what it is when its done. till now i wrote 4 different sections and rn im gonna work on the javascript to hide the sections and only open it when u toggle it in the side bar. Will update yall soon!!(oh yea i also added an otter in the corner since this is an otteros but there was no otter in sight ( ̄▽ ̄)* )
I’ve finished the first app in the OS (/≧▽≦)/. This app is called Otterwiki and it contains information about each of the 14 otter species. Making this took a very long time lol-cuz i had to gather a lot of information. I hope yall like it!!!
I made a calculator!!!!!!!!!!!!!!!!! i think i can make it look better but im too busy rn so it’ll have to do T-T. i hope yall like it!! ALSO HAPPY SEA OTTER AWARENESS WEEK!!!
I added a typing animation to the title of the webpage and also started working on A clicker game. hehe (¬‿¬)
I added my first upgrade to the clicker game. I still need to work on the javascript for this upgrade but i shall do so tmrw. i also added a otter that follows the cursor and also leaves a trail >.< honestly i do not know how it took me almost 3 hours to design the first upgrade TwT but atleast now the rest of the upgrades will take lesser time.
Sorry for the late update- I finished the Clicker game and added JS Paint asw (●ˇ∀ˇ●). Andd yeaaa thats about it. I’m still searching for more things to add to this OS but i genuinely can’t think of anything(┬┬﹏┬┬)
I made a new app- its a To-Do app ( ̄▽ ̄) * I’m almost done, i just need to make sure the todos get saved even when you close the website and open it again and also i need to work on the delete button.
I finished working on the To-do app so now even if you close the OS and reopen; ur tasks will still be there!! I also updated the README.
Ships:
Presenting to you — OTTEROS. It is a WebOS based on otters and it contains an app called Otterwiki and a calculator app. I would say the hardest thing for me was figuring out how the Javascript works becuz i’m a complete beginner /_ . I’m really proud of the Otterwiki app cuz it honestly took a lot of time and effort to gather all that information. (i actually felt like giving up cuz it was taking so long to complete) i’m happy i powered through anyway (/≧▽≦)/
Since the last ship of this project i have added 5 new features which include a clicker game, JS paint, a to-do app, a typing animation for the title of the webpage, a little otter which follows your mouse around. I’m really proud of how the whole project turned out since i’m a complete beginner. The most challenging part was coming up with features that i can add with my current skill set 〒▽〒. I worked really hard on this so i hope you enjoy!!!!!...
|
1793148878.7544396
|
1793235278.7544396
|
|
52434
|
Chatbot by @aliraza | Stardance
|
aliraza
|
1
|
37.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-04T06:51:46Z", "hours": 37.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made Sylqora AI, a study companion that helps students understand topics, practice with quizzes and flashcards and ask question about study material. The PDFs gave me PTSD especially scanned PDFs that needed OCR. Getting AI responses to stream also was a lot of debugging. In the end I did manage to turn idea into working app with advanced AI features like PDF uploads, OCR, quizzes, flashcards, streaming messages and chat history. Try asking Sylqora a study question, then try Explain mode, Flashcards, Quiz mode. You can also upload PDF and ask about it but length should be 3 pages and less", "repo": "https://github.com/aliraza-glitch/Sylqora.AI", "demo": "https://sylqora-2tjpakhfw-aliraza-glitch.vercel.app/"}]...
|
[{"post_id": 76376, "ts": "202 [{"post_id": 76376, "ts": "2026-10-03T10:37:26Z", "hours": 0.9631, "text": "OK so I improved the main chattin page. It looked plain before but now mwah. I added a subtle purple glow behing the welcome text and also fixed some scaling problems. The structure of entire CSS file was changed to :root since it is more convinient and easy to handle. I made the send button glow rather than stay rigid purple. Also the sidebar was fixed too.I also added mobile responsiveness. Check it out at https://sylqora-b80j2x291-aliraza-glitch.vercel.app/"}, {"post_id": 76333, "ts": "2026-10-03T07:22:13Z", "hours": 0.2978, "text": "Fixed the mobile responsiveness, The about section cards were leaking out making them look messy and get started button was weird overall page composition was trash and not good at all so I fixed it for mobile users. Try it out at https://sylqora-6eww0xam9-aliraza-glitch.vercel.app/"}, {"post_id": 76229, "ts": "2026-10-02T19:31:48Z", "hours": 2.7119, "text": "I prettied up the landing page. Sylqora is now getting it’s finishing touches. Just aesthetic really! I converted the landing page from previous flat version of it to a more sleek, modern and professional version using advanced CSS concepts like :root etc. The landing page is fully purple themed and I also changed size of texts at different places and gave a glow behind main heading. The nav bar is transparent glass type and the get started button is also much much better. But it still looks ugly on phone so I will fix that tomorrow I mean I am writing this at midnight. The overall landing page is so cool but who am I to brag check it out for yourselves on desktop at https://sylqora-evmi55cgw-aliraza-glitch.vercel.app/"}, {"post_id": 74891, "ts": "2026-09-28T15:09:11Z", "hours": 2.2025, "text": "I enabled streaming in the request of Sylqora so now the messages are streamed instead of a block just appearing on the screen. which means that it now generates responses in real time. I changed the front end and backend to handle streaming. I also added an Abort Controller which means that user can cancel their requests. Try Sylqora yourself at https://sylqora-78fvmrxhz-aliraza-glitch.vercel.app/"}, {"post_id": 70810, "ts": "2026-09-19T19:55:57Z", "hours": 2.0689, "text": "I am excited to announce that Sylqora can now read text files uploaded to it and answer questions related to it. The attach file button is a paperclip but there are limitation such as the content should be plain text and not a scanned image or OCR. Pdf with text only can be read and well processed by Sylqora. File chip showing file’s name and the ability to cancel the upload is also included. I am planning on connecting ability to read files in modes such as quiz mode and explain mode so it doesn’t just sit there. It is also possible that I add the feature to read OCR and scanned image. I will also make the input bar sticky so it doesn’t get lost while scrolling. Check Sylqora out at https://sylqora-cod6nfhx5-aliraza-glitch.vercel.app/"}, {"post_id": 68575, "ts": "2026-09-15T10:38:29Z", "hours": 1.5392, "text": "Improved the UI and UX so much and its 100 times better. The annoying sidebar is now closable like a drawer. The Bot message bubble is gone and now it only shows clean text on screen which looks neat and aesthetic. I also learned about SVG and implemented it which took most of my time. The SVG is just too complex but I got the hang of it. The sidebar open and close icons are SVG. I also improved the way it renders equations. I also coded it to keep response length reasonable and short. The 3 modes work very fine. I also added responsiveness for phones and now Mobile phone users can also use Sylqora without a crashing interface. Try it yourself at https://sylqora-2g4j7b8o9-aliraza-glitch.vercel.app/"}, {"post_id": 66396, "ts": "2026-09-12T06:41:11Z", "hours": 1.5786, "text": "Ok so I just finished making Flashcard mode. Once the user clicks on the flashcard mode on the suggestions menu, Sylqora asks in input place name of the topic and once topic name is entered, the flashcards are generated. The proportions of the flashcard mimick the actual card. The Reveal Answer button is also present to check whether you remember or forgot. The Next Card button generates Next flash card not same as previous one. While a card is being generated, a neat Loading Card message is shown on a screen. It’s literally a banger get amongst it! https://sylqora-rcf3kmb64-aliraza-glitch.vercel.app/"}, {"post_id": 66089, "ts": "2026-09-11T17:45:29Z", "hours": 1.4408, "text": "So I refined the Quiz mode even more. Explain Mode was also upgraded. The topic heading of Explain Mode. And termination of Explain mode once another chat is opened. Explained paragraph is also well formatted since I enhanced markdown even more like It is so neat and professional. I also increased max tokens and restricted the LaTex notation making the ## and – appear in responses. Explain Mode is finished. I am now making flashcards mode. Try it on https://sylqora-e1txs56h0-aliraza-glitch.vercel.app/"}, {"post_id": 63646, "ts": "2026-09-07T15:51:41Z", "hours": 1.4519, "text": "Made the heading for Quiz mode It only asks 5 questions. The heading appears up showing topic of quiz when it is in quizmode and keeps locked in place until 5 questions are asked and then displays score and heading is gone too. Going to the New Chat disbles the quiz mode. Try it yourself at https://sylqora-o6vwi4ha6-aliraza-glitch.vercel.app/"}, {"post_id": 63045, "ts": "2026-09-06T16:50:47Z", "hours": 1.4414, "text": "I added a feature for sidebar to change height incase of large messages by user to improve readability. I also made the Quiz mode. Once the quiz mode is pressed, It asks on the placeholder what topic should the quiz be on. So user just names the topic and sends and the rest of the prompt is generated automatically and sent. I also modified the Quiz mode. It can now ask you 5 questions in a quiz and tells you the score for the quiz. Check it out at https://sylqora-f0r4pa9ur-aliraza-glitch.vercel.app/"}, {"post_id": 62260, "ts": "2026-09-05T15:26:44Z", "hours": 0.3106, "text": "Finished Sylqora version 1. Had to give final touches to the bot such as the Sylqora is thinking was light mode whereas rest of the site is dark mode so I just changed the message’s theme. Also changed number of max tokens again. Gave the feature of highlight current chat in the sidebar so user isn’t confused. Also handled the chats overflow and title overflow in the sidebar. Try Sylqora at https://sylqora-fd08yehag-aliraza-glitch.vercel.app/"}, {"post_id": 62174, "ts": "2026-09-05T13:10:43Z", "hours": 2.3347, "text": "Done styling the chat box. I realized it was way too plain and boring. But now everything is alive. I changed the send button to an arrow. Added heading and subtitle in the sidebar. Improved the New Chat button. I also created a welcome screen that comes with options. If you click on Explain me a topic it automatically types “Explain “ and you have to complete it with what ever you want same goes with with Quiz me one. I also changed the input to a proper professional Chatgpt style input area. I also changed the dimensions of messages so that it looks like a dialogue box rather than a rectangle. I thought that was all true but then script.js threw a barrage of errors. One time it would load previous chat’s response in New chat. Then it just stopped working. Then I realized I was running activechatid before autosave which ruined the whole program and caused the message to not render on the screen. Test Sylqora yourself at https://sylqora-l9bzpy2gn-aliraza-glitch.vercel.app/"}, {"post_id": 61783, "ts": "2026-09-04T21:11:33Z", "hours": 2.3183, "text": "I added a sidebar and made it so that it can start a new chat and switch between chats. Not as complex and hellish but wasn’t easy either. The clickable chats and resolving errors was a major change. I also learned a lot in this such as duplication of an array, dealing with localStorage, pushing the right objects and elements into the functions. Overall a great session I’d say. Try it yourself at https://sylqora-qle4c0c7x-aliraza-glitch.vercel.app/"}, {"post_id": 60874, "ts": "2026-09-03T14:58:54Z", "hours": 1.3014, "text": "I have done giving Sylqora memory. Now it doesn’t just forget what you just told it and keep greeting you like a very smart person. Something funny also happened. I kept debugging and writing code so confused what was wrong. The landing page opened but when I clicked on Get Started it just didn’t have memory when tested. So then I realised that Get Started was pointing to older version of Sylqora and URL wasn’t refreshed to newer version so I then linked it to app.html and boooom it worked!"}, {"post_id": 60449, "ts": "2026-09-02T19:45:12Z", "hours": 1.8067, "text": "Ok i finished the landing page, improved nav bar, made it so that the links in navbar lead to the sections. I also added the feature that animation of the features and about section is triggered only when user scrolls down to them. I also added animations for hero section and navbar and now it looks so cool"}, {"post_id": 59579, "ts": "2026-09-01T14:14:50Z", "hours": 1.625, "text": "I just made the landing page for Sylqora so that user first lands on the page and then when Get Started is clicked, it leads to the main app. I made use of all the CSS knowledge I possessed and managed to make it and it was the easiest thing I ever did for Sylqora. You can look at the website at https://aliraza-glitch.github.io/Sylqora.AI/"}, {"post_id": 59081, "ts": "2026-08-31T18:07:48Z", "hours": 2.5072, "text": "So I cleaned up all the coded mess. Sylqora is now intelligent and has a personality. The textContent was changed to innerHTML and the model was also changed. I also changed the UI and added a Sylqora is thinking box. I removed the Check Server button Since it was annoying and unnecessary. The inner HTML part was difficult. The HTML escaping and Markdown parsing were easy to understand but difficult to write. Also I had to deal with Sylqora just dumping infomation and unnecessary gibberish by limiting max tokens to 400 and also begged it in the role to not give unnecessary details. Do try Sylqora and tell how good it is in the comments. Sylqora is live at https://sylqora-b5h77ipua-aliraza-glitch.vercel.app/"}, {"post_id": 57976, "ts": "2026-08-30T09:44:58Z", "hours": 0.8425, "text": "Finally! It can recieve and reply. A major milestone. I used Groq API key and vercel. The coding wasn’t much but dealing with errors again and again was very discouraging but in the end I updated the script.js and got it right. But still needs work with formatting the messages, UI and giving it a personality. Test Sylqora yourself at https://sylqora-5w8pp1mrn-aliraza-glitch.vercel.app/"}, {"post_id": 57472, "ts": "2026-08-29T17:00:00Z", "hours": 2.1475, "text": "Pure sweat and blood for deployment of Sylqora AI like using vercel for this was so confusing. Although the code is a mess and way too unorgainzed but it did work. I changed the structure and stuff so vercel can run it and now the backend is live. Though the logic and responses are almost the same but we are getting close to adding API key. Anyways Sylqora is live at https://sylqora-ai-git-master-aliraza-glitch.vercel.app/ only ask questions containg acceleration, momenum and hello and what in lower case only"}, {"post_id": 53185, "ts": "2026-08-23T16:58:35Z", "hours": 2.1283, "text": "Today was HELL! It was so confusing and frustrating the front and backend were so humiliating. I was literally in tears referring again and again to tutorials. Anyways, I made a front end that only sends message to backend, a backend at a local host. Today theory and understanding took most of the time making me dizzy. I learned a lot of new things such as JSON, headers, stringify, await, async, fetch, req and res along with HTTP server making, making CORS and connecting frontend and backend. Right now the immediate issue is [object Object] is printed whenever write anything. No actual AI responds but the terminal is smart enough to show me what I typed so I guess that’s it for today."}, {"post_id": 52336, "ts": "2026-08-22T13:23:03Z", "hours": 1.2025, "text": "Today was a hassle. I just kept experimenting with stuff and learned about a lot of new things in JavaScript. At first I made it so it only answer commands word to word. But then I made the user input case insensitive and then I used includes function. It also has some sarcasm making it feel less like a teacher and more like a study buddy. For testing it, the acceptance data includes acceleration, momentum and hello greeting. It doesn’t have an API integration yet but that is something I will be working on in the near future. The bot is live at https://aliraza-glitch.github.io/Sylqora.AI/"}, {"post_id": 51728, "ts": "2026-08-21T15:40:51Z", "hours": 2.8689, "text": "I just made a User Interface for study companion “Sylqora” using HTML, CSS and I also wrote the function for sending messages in Java Script. Though the CSS part was way too frustrating but it is solved now"}]...
|
Title: Chatbot by @aliraza | Stardance
Devlogs:
I Title: Chatbot by @aliraza | Stardance
Devlogs:
I just made a User Interface for study companion “Sylqora” using HTML, CSS and I also wrote the function for sending messages in Java Script. Though the CSS part was way too frustrating but it is solved now
Today was a hassle. I just kept experimenting with stuff and learned about a lot of new things in JavaScript. At first I made it so it only answer commands word to word. But then I made the user input case insensitive and then I used includes function. It also has some sarcasm making it feel less like a teacher and more like a study buddy. For testing it, the acceptance data includes acceleration, momentum and hello greeting. It doesn’t have an API integration yet but that is something I will be working on in the near future. The bot is live at https://aliraza-glitch.github.io/Sylqora.AI/
Today was HELL! It was so confusing and frustrating the front and backend were so humiliating. I was literally in tears referring again and again to tutorials. Anyways, I made a front end that only sends message to backend, a backend at a local host. Today theory and understanding took most of the time making me dizzy. I learned a lot of new things such as JSON, headers, stringify, await, async, fetch, req and res along with HTTP server making, making CORS and connecting frontend and backend. Right now the immediate issue is [object Object] is printed whenever write anything. No actual AI responds but the terminal is smart enough to show me what I typed so I guess that’s it for today.
Pure sweat and blood for deployment of Sylqora AI like using vercel for this was so confusing. Although the code is a mess and way too unorgainzed but it did work. I changed the structure and stuff so vercel can run it and now the backend is live. Though the logic and responses are almost the same but we are getting close to adding API key. Anyways Sylqora is live at https://sylqora-ai-git-master-aliraza-glitch.vercel.app/ only ask questions containg acceleration, momenum and hello and what in lower case only
Finally! It can recieve and reply. A major milestone. I used Groq API key and vercel. The coding wasn’t much but dealing with errors again and again was very discouraging but in the end I updated the script.js and got it right. But still needs work with formatting the messages, UI and giving it a personality. Test Sylqora yourself at https://sylqora-5w8pp1mrn-aliraza-glitch.vercel.app/
So I cleaned up all the coded mess. Sylqora is now intelligent and has a personality. The textContent was changed to innerHTML and the model was also changed. I also changed the UI and added a Sylqora is thinking box. I removed the Check Server button Since it was annoying and unnecessary. The inner HTML part was difficult. The HTML escaping and Markdown parsing were easy to understand but difficult to write. Also I had to deal with Sylqora just dumping infomation and unnecessary gibberish by limiting max tokens to 400 and also begged it in the role to not give unnecessary details. Do try Sylqora and tell how good it is in the comments. Sylqora is live at https://sylqora-b5h77ipua-aliraza-glitch.vercel.app/
I just made the landing page for Sylqora so that user first lands on the page and then when Get Started is clicked, it leads to the main app. I made use of all the CSS knowledge I possessed and managed to make it and it was the easiest thing I ever did for Sylqora. You can look at the website at https://aliraza-glitch.github.io/Sylqora.AI/
Ok i finished the landing page, improved nav bar, made it so that the links in navbar lead to the sections. I also added the feature that animation of the features and about section is triggered only when user scrolls down to them. I also added animations for hero section and navbar and now it looks so cool
I have done giving Sylqora memory. Now it doesn’t just forget what you just told it and keep greeting you like a very smart person. Something funny also happened. I kept debugging and writing code so confused what was wrong. The landing page opened but when I clicked on Get Started it just didn’t have memory when tested. So then I realised that Get Started was pointing to older version of Sylqora and URL wasn’t refreshed to newer version so I then linked it to app.html and boooom it worked!
I added a sidebar and made it so that it can start a new chat and switch between chats. Not as complex and hellish but wasn’t easy either. The clickable chats and resolving errors was a major change. I also learned a lot in this such as duplication of an array, dealing with localStorage, pushing the right objects and elements into the functions. Overall a great session I’d say. Try it yourself at https://sylqora-qle4c0c7x-aliraza-glitch.vercel.app/
Done styling the chat box. I realized it was way too plain and boring. But now everything is alive. I changed the send button to an arrow. Added heading and subtitle in the sidebar. Improved the New Chat button. I also created a welcome screen that comes with options. If you click on Explain me a topic it automatically types “Explain “ and you have to complete it with what ever you want same goes with with Quiz me one. I also changed the input to a proper professional Chatgpt style input area. I also changed the dimensions of messages so that it looks like a dialogue box rather than a rectangle. I thought that was all true but then script.js threw a barrage of errors. One time it would load previous chat’s response in New chat. Then it just stopped working. Then I realized I was running activechatid before autosave which ruined the whole program and caused the message to not render on the screen. Test Sylqora yourself at https://sylqora-l9bzpy2gn-aliraza-glitch.vercel.app/
Finished Sylqora version 1. Had to give final touches to the bot such as the Sylqora is thinking was light mode whereas rest of the site is dark mode so I just changed the message’s theme. Also changed number of max tokens again. Gave the feature of highlight current chat in the sidebar so user isn’t confused. Also handled the chats overflow and title overflow in the sidebar. Try Sylqora at https://sylqora-fd08yehag-aliraza-glitch.vercel.app/
I added a feature for sidebar to change height incase of large messages by user to improve readability. I also made the Quiz mode. Once the quiz mode is pressed, It asks on the placeholder what topic should the quiz be on. So user just names the topic and sends and the rest of the prompt is generated automatically and sent. I also modified the Quiz mode. It can now ask you 5 questions in a quiz and tells you the score for the quiz. Check it out at https://sylqora-f0r4pa9ur-aliraza-glitch.vercel.app/
Made the heading for Quiz mode It only asks 5 questions. The heading appears up showing topic of quiz when it is in quizmode and keeps locked in place until 5 questions are asked and then displays score and heading is gone too. Going to the New Chat disbles the quiz mode. Try it yourself at https://sylqora-o6vwi4ha6-aliraza-glitch.vercel.app/
So I refined the Quiz mode even more. Explain Mode was also upgraded. The topic heading of Explain Mode. And termination of Explain mode once another chat is opened. Explained paragraph is also well formatted since I enhanced markdown even more like It is so neat and professional. I also increased max tokens and restricted the LaTex notation making the ## and – appear in responses. Explain Mode is finished. I am now making flashcards mode. Try it on https://sylqora-e1txs56h0-aliraza-glitch.vercel.app/
Ok so I just finished making Flashcard mode. Once the user clicks on the flashcard mode on the suggestions menu, Sylqora asks in input place name of the topic and once topic name is entered, the flashcards are generated. The proportions of the flashcard mimick the actual card. The Reveal Answer button is also present to check whether you remember or forgot. The Next Card button generates Next flash card not same as previous one. While a card is being generated, a neat Loading Card message is shown on a screen. It’s literally a banger get amongst it! https://sylqora-rcf3kmb64-aliraza-glitch.vercel.app/
Improved the UI and UX so much and its 100 times better. The annoying sidebar is now closable like a drawer. The Bot message bubble is gone and now it only shows clean text on screen which looks neat and aesthetic. I also learned about SVG and implemented it which took most of my time. The SVG is just too complex but I got the hang of it. The sidebar open and close icons are SVG. I also improved the way it renders equations. I also coded it to keep response length reasonable and short. The 3 modes work very fine. I also added responsiveness for phones and now Mobile phone users can also use Sylqora without a crashing interface. Try it yourself at https://sylqora-2g4j7b8o9-aliraza-glitch.vercel.app/
I am excited to announce that Sylqora can now read text files uploaded to it and answer questions related to it. The attach file button is a paperclip but there are limitation such as the content should be plain text and not a scanned image or OCR. Pdf with text only can be read and well processed by Sylqora. File chip showing file’s name and the ability to cancel the upload is also included. I am planning on connecting ability to read files in modes such as quiz mode and explain mode so it doesn’t just sit there. It is also possible that I add the feature to read OCR and scanned image. I will also make the input bar sticky so it doesn’t get lost while scrolling. Check Sylqora out at https://sylqora-cod6nfhx5-aliraza-glitch.vercel.app/
I enabled streaming in the request of Sylqora so now the messages are streamed instead of a block just appearing on the screen. which means that it now generates responses in real time. I changed the front end and backend to handle streaming. I also added an Abort Controller which means that user can cancel their requests. Try Sylqora yourself at https://sylqora-78fvmrxhz-aliraza-glitch.vercel.app/
I prettied up the landing page. Sylqora is now getting it’s finishing touches. Just aesthetic really! I converted the landing page from previous flat version of it to a more sleek, modern and professional version using advanced CSS concepts like :root etc. The landing page is fully purple themed and I also changed size of texts at different places and gave a glow behind main heading. The nav bar is transparent glass type and the get started button is also much much better. But it still looks ugly on phone so I will fix that tomorrow I mean I am writing this at midnight. The overall landing page is so cool but who am I to brag check it out for yourselves on desktop at https://sylqora-evmi55cgw-aliraza-glitch.vercel.app/
Fixed the mobile responsiveness, The about section cards were leaking out making them look messy and get started button was weird overall page composition was trash and not good at all so I fixed it for mobile users. Try it out at https://sylqora-6eww0xam9-aliraza-glitch.vercel.app/
OK so I improved the main chattin page. It looked plain before but now mwah. I added a subtle purple glow behing the welcome text and also fixed some scaling problems. The structure of entire CSS file was changed to :root since it is more convinient and easy to handle. I made the send button glow rather than stay rigid purple. Also the sidebar was fixed too.I also added mobile responsiveness. Check it out at https://sylqora-b80j2x291-aliraza-glitch.vercel.app/
Ships:
I made Sylqora AI, a study companion that helps students understand topics, practice with quizzes and flashcards and ask question about study material. The PDFs gave me PTSD especially scanned PDFs that needed OCR. Getting AI responses to stream also was a lot of debugging. In the end I did manage to turn idea into working app with advanced AI features like PDF uploads, OCR, quizzes, flashcards, streaming messages and chat history. Try asking Sylqora a study question, then try Explain mode, Flashcards, Quiz mode. You can also upload PDF and ask about it but length should be 3 pages and less...
|
1793152266.9744928
|
1793238666.9744928
|
|
57003
|
Jamly by @prymeknona | Stardance
|
prymeknona
|
1
|
37.0
|
417
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-15T19:34:18Z", "hours": 37.0, "multiplier": 11.2, "payout": 417, "blessing": "neutral", "text": "I built Jamly, a platform where musicians can find other musicians, discover people nearby, and connect to create music together. The hardest part was building the backend and messaging system, and I’m proud that Jamly is now live and ready to use!", "repo": "https://github.com/tadeusz12121/baza_muzykow", "demo": "https://www.jamly.pl"}]...
|
[{"post_id": 68789, "ts": "202 [{"post_id": 68789, "ts": "2026-09-15T19:11:40Z", "hours": 1.7944, "text": "Improved the look of the login form, the .HEIC images upload on group chat works now"}, {"post_id": 67662, "ts": "2026-09-13T20:19:49Z", "hours": 2.1094, "text": "Added nearby musician search using GPS coordinates and Mongodb geolocation"}, {"post_id": 67201, "ts": "2026-09-13T08:10:12Z", "hours": 3.2406, "text": "Locked down profile picture uploads with size/type limits, added rate limiting on login/registration. Built a real-time group chat from scratch with Socket.IO including image uploads compressed on the fly with sharp"}, {"post_id": 66731, "ts": "2026-09-12T16:56:10Z", "hours": 2.4583, "text": "better profile ui"}, {"post_id": 66173, "ts": "2026-09-11T20:37:22Z", "hours": 2.8572, "text": "still working on a chat design"}, {"post_id": 65610, "ts": "2026-09-10T21:01:22Z", "hours": 3.1111, "text": "Built a notification system for incoming messages"}, {"post_id": 64814, "ts": "2026-09-09T14:21:29Z", "hours": 4.4819, "text": "Added a private chat feature"}, {"post_id": 62913, "ts": "2026-09-06T13:30:01Z", "hours": 8.2556, "text": "register form"}, {"post_id": 59712, "ts": "2026-09-01T17:12:53Z", "hours": 4.0675, "text": "some css now"}, {"post_id": 59473, "ts": "2026-09-01T10:38:19Z", "hours": 1.4558, "text": "Still working on a backend and added some new features the html"}, {"post_id": 59393, "ts": "2026-09-01T05:45:52Z", "hours": 3.3919, "text": "Built the backend for my musician networking platform. Added authentication checks and a musician search API with filters for instrument, skill level, and city."}]...
|
Title: Jamly by @prymeknona | Stardance
Devlogs:
Title: Jamly by @prymeknona | Stardance
Devlogs:
Built the backend for my musician networking platform. Added authentication checks and a musician search API with filters for instrument, skill level, and city.
Still working on a backend and added some new features the html
some css now
register form
Added a private chat feature
Built a notification system for incoming messages
still working on a chat design
better profile ui
Locked down profile picture uploads with size/type limits, added rate limiting on login/registration. Built a real-time group chat from scratch with Socket.IO including image uploads compressed on the fly with sharp
Added nearby musician search using GPS coordinates and Mongodb geolocation
Improved the look of the login form, the .HEIC images upload on group chat works now
Ships:
I built Jamly, a platform where musicians can find other musicians, discover people nearby, and connect to create music together. The hardest part was building the backend and messaging system, and I’m proud that Jamly is now live and ready to use!...
|
1793152196.4754927
|
1793238596.4754927
|
|
57515
|
Web Beats by @lantern | Stardance
|
lantern
|
1
|
37.0
|
236
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-12T14:38:31Z", "hours": 37.0, "multiplier": 6.45, "payout": 236, "blessing": "neutral", "text": "An interactive, zero-latency browser synthesizer and real-time audio visualizer:- It uses uses native web midi to talk to external keyboards. Reads time-domain audio data straight from an analyser node to draw live, low-latency waveforms. It has release, and filter knobs, then save your setups locally or dump them into a json file to share", "repo": "https://github.com/jigneshphalsawal-cloud/Web-Beats", "demo": "https://jigneshphalsawal-cloud.github.io/Web-Beats/"}]...
|
[{"post_id": 66568, "ts": "202 [{"post_id": 66568, "ts": "2026-09-12T12:29:26Z", "hours": 6.2619, "text": "Progress:- Completed the style.css Made the Live visualizer work by connecting analyserNode directly into the Web Audio processing graph. Added 3 modes to change the sounds of the midi 4 effects to change the sound of midi - Volume, Filter cutoff, delay time and delay feedback"}, {"post_id": 65934, "ts": "2026-09-11T12:32:13Z", "hours": 6.2167, "text": "Working on the style.css , had to debug the script the midi buttons were not working…"}, {"post_id": 65312, "ts": "2026-09-10T11:39:47Z", "hours": 9.6836, "text": "style.css in progress"}, {"post_id": 64045, "ts": "2026-09-08T05:31:08Z", "hours": 4.0633, "text": "Finally made the script working after facing some errors , now i will design the site!!"}, {"post_id": 62731, "ts": "2026-09-06T07:10:57Z", "hours": 6.1333, "text": "Progress :- Completed the main format(index.html) of the site. Working on the audio engine script ( this is a little hard step , using online articles to learn more about writing code for this ). -next i will try to get ideas for new features that i can add to the site and style the site"}, {"post_id": 60681, "ts": "2026-09-03T06:38:12Z", "hours": 4.1833, "text": "Working on this new project , its called Web Midi . Its purpose is :- To be able to play notes like midi keyboard but using your key board Customize the tone of the sound like filter cutoff,delay, distortion…etc to be able to record and loop the beats to add more instruments to it It will have a Live visualizer which will react to sounds played"}]...
|
Title: Web Beats by @lantern | Stardance
Devlogs: Title: Web Beats by @lantern | Stardance
Devlogs:
Working on this new project , its called Web Midi . Its purpose is :- To be able to play notes like midi keyboard but using your key board Customize the tone of the sound like filter cutoff,delay, distortion…etc to be able to record and loop the beats to add more instruments to it It will have a Live visualizer which will react to sounds played
Progress :- Completed the main format(index.html) of the site. Working on the audio engine script ( this is a little hard step , using online articles to learn more about writing code for this ). -next i will try to get ideas for new features that i can add to the site and style the site
Finally made the script working after facing some errors , now i will design the site!!
style.css in progress
Working on the style.css , had to debug the script the midi buttons were not working…
Progress:- Completed the style.css Made the Live visualizer work by connecting analyserNode directly into the Web Audio processing graph. Added 3 modes to change the sounds of the midi 4 effects to change the sound of midi - Volume, Filter cutoff, delay time and delay feedback
Ships:
An interactive, zero-latency browser synthesizer and real-time audio visualizer:- It uses uses native web midi to talk to external keyboards. Reads time-domain audio data straight from an analyser node to draw live, low-latency waveforms. It has release, and filter knobs, then save your setups locally or dump them into a json file to share...
|
1792958078.904945
|
1793822078.904945
|
|
68005
|
Roblox Blox Hook game by @DaintyDust | Stardance
|
DaintyDust
|
1
|
37.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-24T01:28:16Z", "hours": 37.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I created a game thats hugely inspired by “Stickman Hook” by Madbox. I always played this when i was younger, so i tried to make it in roblox. Even with 3-4 years of experience making roblox games, the swinging and bouncing where hard to get right. The physics didn’t feel like the original, but after some trial and error i finally got it right. And for a while the player kept sticking to walls and bounce pads. After I figured that out it went pretty smooth, just a few bugs here and there. Sadly roblox only allows games to be published for under 16 once your game reaches 250 visits (or you pay 50k robux), so thats why some people can’t sadly test the game (yet?). For the people who can’t i uploaded a demo video on youtube. Blox Hook gameplay video on youtube Or play it here: https://www.roblox.com/games/115240211962865/Blox-Hook", "repo": "https://github.com/DaintyDust/Blox-Hook", "demo": "https://www.roblox.com/games/115240211962865/Blox-Hook"}]...
|
[{"post_id": 82127, "ts": "202 [{"post_id": 82127, "ts": "2026-10-24T01:04:52Z", "hours": 7.2353, "text": "My last post before shipping. I did alot of bug fixes, such as sticking to a wall of floor when swinging. and a really annoying bug which took me ages to find out. apparently roblox only allows 30 highlight in the same game, otherwise they won’t be rendered. i didn’t know this so i was troubleshooting alot why it didn’t work. I solved it by only adding the highlights to the levels that where currently loaded. I added sound effects to make the game sound more alive."}, {"post_id": 80217, "ts": "2026-10-16T19:32:45Z", "hours": 5.0892, "text": "Added IkControls, these allow you to control the movement of the arms and legs, but keep the natural movement of the joints. so a arm can only move in a way a arm can normally move. This makes it look like the player is actually grabbing the string. instead of floating in the air."}, {"post_id": 79645, "ts": "2026-10-14T20:25:57Z", "hours": 4.8022, "text": "added 20 levels, and made the UI fit on smaller screens like phones. (even in verticial mode)"}, {"post_id": 78882, "ts": "2026-10-11T21:10:10Z", "hours": 1.6183, "text": "added a way to pauze the game. in the beginning it was quite tricky because when you where already swining the momentum carried on even when your body was anchored. so that caused the camera to still move in circles."}, {"post_id": 78347, "ts": "2026-10-10T14:56:01Z", "hours": 4.3861, "text": "updated the level loader to be more reliable. sometimes it bugged and caused nothing to load, that has been resolved. now you can only play levels that you have unlocked, you can unlock a level by completing the previous one. also added data saving and loading, you can now join and leave the gaming with your data being saved. i also display it in the playerlist"}, {"post_id": 77943, "ts": "2026-10-08T21:50:49Z", "hours": 1.7217, "text": "I added functionality to the menu. You can now select a level and play, you can also continue to the next level when finishing."}, {"post_id": 77889, "ts": "2026-10-08T17:44:58Z", "hours": 3.2558, "text": "Added death detection when falling to low or going to high in the map. Also added the finish. it slows you down and gives you options to restart or go to the menu. (the buttons don’t work yet) also designed the UI for the main menu"}, {"post_id": 77403, "ts": "2026-10-06T20:01:53Z", "hours": 2.1008, "text": "I made the bouncers work! I wanted a bounce animation for the bouncer. but instead of just changing the size i decided to use the editable mesh. A editable mesh is basically a mesh that can have “bones” and those bones can move individually to control how the part moves. So i added a bone that moves up and down to make a little bounce animation."}, {"post_id": 77303, "ts": "2026-10-06T14:15:35Z", "hours": 2.6031, "text": "added the first level. the bouncer in the beginning and the finish don’t work yet."}, {"post_id": 77169, "ts": "2026-10-05T21:44:24Z", "hours": 0.7639, "text": "added a target ring so you can see what the nearest hook point is that your gonne hook onto next."}, {"post_id": 77162, "ts": "2026-10-05T20:50:35Z", "hours": 3.2211, "text": "I began with adding a 2D camera, and disabling movement in the Z direction. after that i began with the actual grappling system. I did this by checking which hook point is the closest to you and then creating a attachment. then with some math (sin and cos) i added a swinging animation"}]...
|
Title: Roblox Blox Hook game by @DaintyDust | Star Title: Roblox Blox Hook game by @DaintyDust | Stardance
Devlogs:
I began with adding a 2D camera, and disabling movement in the Z direction. after that i began with the actual grappling system. I did this by checking which hook point is the closest to you and then creating a attachment. then with some math (sin and cos) i added a swinging animation
added a target ring so you can see what the nearest hook point is that your gonne hook onto next.
added the first level. the bouncer in the beginning and the finish don’t work yet.
I made the bouncers work! I wanted a bounce animation for the bouncer. but instead of just changing the size i decided to use the editable mesh. A editable mesh is basically a mesh that can have “bones” and those bones can move individually to control how the part moves. So i added a bone that moves up and down to make a little bounce animation.
Added death detection when falling to low or going to high in the map. Also added the finish. it slows you down and gives you options to restart or go to the menu. (the buttons don’t work yet) also designed the UI for the main menu
I added functionality to the menu. You can now select a level and play, you can also continue to the next level when finishing.
updated the level loader to be more reliable. sometimes it bugged and caused nothing to load, that has been resolved. now you can only play levels that you have unlocked, you can unlock a level by completing the previous one. also added data saving and loading, you can now join and leave the gaming with your data being saved. i also display it in the playerlist
added a way to pauze the game. in the beginning it was quite tricky because when you where already swining the momentum carried on even when your body was anchored. so that caused the camera to still move in circles.
added 20 levels, and made the UI fit on smaller screens like phones. (even in verticial mode)
Added IkControls, these allow you to control the movement of the arms and legs, but keep the natural movement of the joints. so a arm can only move in a way a arm can normally move. This makes it look like the player is actually grabbing the string. instead of floating in the air.
My last post before shipping. I did alot of bug fixes, such as sticking to a wall of floor when swinging. and a really annoying bug which took me ages to find out. apparently roblox only allows 30 highlight in the same game, otherwise they won’t be rendered. i didn’t know this so i was troubleshooting alot why it didn’t work. I solved it by only adding the highlights to the levels that where currently loaded. I added sound effects to make the game sound more alive.
Ships:
I created a game thats hugely inspired by “Stickman Hook” by Madbox. I always played this when i was younger, so i tried to make it in roblox. Even with 3-4 years of experience making roblox games, the swinging and bouncing where hard to get right. The physics didn’t feel like the original, but after some trial and error i finally got it right. And for a while the player kept sticking to walls and bounce pads. After I figured that out it went pretty smooth, just a few bugs here and there. Sadly roblox only allows games to be published for under 16 once your game reaches 250 visits (or you pay 50k robux), so thats why some people can’t sadly test the game (yet?). For the people who can’t i uploaded a demo video on youtube. Blox Hook gameplay video on youtube Or play it here: https://www.roblox.com/games/115240211962865/Blox-Hook...
|
1793116333.9844177
|
1793202733.9844177
|
|
62499
|
RoboTrack by @CatPowerz | Stardance
|
CatPowerz
|
0
|
36.98
|
0
|
[]
|
[{"post_id": 77276, "ts": "202 [{"post_id": 77276, "ts": "2026-10-06T12:19:27Z", "hours": 5.8583, "text": "Wooohoo, it can actually sync to the robot and read the flash! With bi-directional communication, you can send commands and recieve data, like, in the picture below “GETSLOTS” which recieves what slots are occupied! Overall really nice, and I polished it a bit."}, {"post_id": 75114, "ts": "2026-09-29T05:10:49Z", "hours": 2.2922, "text": "Added a virtual/live robot connected mark (so you can actually see if the robot is a mock or not) with a package counter and hopefully working battery indicator in the future! Also better visualisations and less lag due to setState being called every 20ms (which rebuilds the entire page every tick)"}, {"post_id": 74888, "ts": "2026-09-28T15:02:06Z", "hours": 6.1944, "text": "The project is getting way better, mostly because of the BLE-telemetry now working and connecting! You can actually see your robot live due to my python changes. Now it’s time to work on recording and changing specific slots."}, {"post_id": 74267, "ts": "2026-09-27T03:14:28Z", "hours": 5.425, "text": "Getting way better using Flutter, I’m really learning it. I now have a cool analytics page, starring a location visualisation, battery bar, X/Y and yaw/pitch/roll gyro plus visualisation. I’m ready to start coding Bluetooth communication now."}, {"post_id": 73471, "ts": "2026-09-25T06:04:07Z", "hours": 2.8561, "text": "I’m almost done with the python script, but I started to work on the big boy RoboTrack app, which you can see a visualisation of what the RoboTrack robot thinks. Every grid square is 1 cm and it nearly updates live. I also implemented some mock data generators. If you do not have a SPIKE robot, you can still test it out because the app emulates a robot."}, {"post_id": 72997, "ts": "2026-09-24T05:55:22Z", "hours": 3.4147, "text": "I’ve started to work on the Flutter Dart Frontend for RoboTrack and made the python script way more robust. It’s hard, really hard to make sure that the hardware-side of this project is doing as it should. It always spins or lives it’s own life."}, {"post_id": 72359, "ts": "2026-09-22T19:06:50Z", "hours": 1.0619, "text": "OMG I was busy for SO long finding ONE simple bug regarding the robot spinning in circles. It was really simple. Most bugs are. However, I found it out and now it’s getting better every update! I really hope no more bugs show up, but it’s inevitable."}, {"post_id": 72291, "ts": "2026-09-22T16:27:33Z", "hours": 1.3131, "text": "I got motorsnapshots working, so you can program motors other than wheels. This is really important for the robot but really hard to implement with the strict 8-byte limit on each instruction. I managed to get it working by combining signed 16-bit integers and unsigned 8-bit integers."}, {"post_id": 72202, "ts": "2026-09-22T13:25:02Z", "hours": 3.1122, "text": "I finished the framework of the RoboTrack main Python script. It now uses odometry to calculate it’s position and can drive to specific coordinates. It can write bytes to flash memory and can read them. It’s now time to write a bytecode interpreter to actually give meaning to the written and read bytes."}, {"post_id": 71240, "ts": "2026-09-20T14:41:42Z", "hours": 2.5156, "text": "I started to work on the logic for the LEGO robot, it can now track it’s position using sin(rad) and cos(rad) where rad = angle * pi / 180 and applies it to x, y and last_distance. Sorry sometimes I use devlogs to nerd talk :)"}, {"post_id": 69794, "ts": "2026-09-17T20:02:35Z", "hours": 2.9344, "text": "I FINALLY, FINALLY managed to finish the Pybricks firmware-fork in order to upgrade limited storage size of 512 bytes to 8 kilobytes. This allows longer programs to be stored on the flash without needing a computer attached. I also fixed some annoying problems with btstack, which is apparently a seperate github thing, or so I thought? I’ll find what the problem actually was. Fixing it was mostly time consuming trial-and-error."}]...
|
Title: RoboTrack by @CatPowerz | Stardance
Devlog Title: RoboTrack by @CatPowerz | Stardance
Devlogs:
I FINALLY, FINALLY managed to finish the Pybricks firmware-fork in order to upgrade limited storage size of 512 bytes to 8 kilobytes. This allows longer programs to be stored on the flash without needing a computer attached. I also fixed some annoying problems with btstack, which is apparently a seperate github thing, or so I thought? I’ll find what the problem actually was. Fixing it was mostly time consuming trial-and-error.
I started to work on the logic for the LEGO robot, it can now track it’s position using sin(rad) and cos(rad) where rad = angle * pi / 180 and applies it to x, y and last_distance. Sorry sometimes I use devlogs to nerd talk :)
I finished the framework of the RoboTrack main Python script. It now uses odometry to calculate it’s position and can drive to specific coordinates. It can write bytes to flash memory and can read them. It’s now time to write a bytecode interpreter to actually give meaning to the written and read bytes.
I got motorsnapshots working, so you can program motors other than wheels. This is really important for the robot but really hard to implement with the strict 8-byte limit on each instruction. I managed to get it working by combining signed 16-bit integers and unsigned 8-bit integers.
OMG I was busy for SO long finding ONE simple bug regarding the robot spinning in circles. It was really simple. Most bugs are. However, I found it out and now it’s getting better every update! I really hope no more bugs show up, but it’s inevitable.
I’ve started to work on the Flutter Dart Frontend for RoboTrack and made the python script way more robust. It’s hard, really hard to make sure that the hardware-side of this project is doing as it should. It always spins or lives it’s own life.
I’m almost done with the python script, but I started to work on the big boy RoboTrack app, which you can see a visualisation of what the RoboTrack robot thinks. Every grid square is 1 cm and it nearly updates live. I also implemented some mock data generators. If you do not have a SPIKE robot, you can still test it out because the app emulates a robot.
Getting way better using Flutter, I’m really learning it. I now have a cool analytics page, starring a location visualisation, battery bar, X/Y and yaw/pitch/roll gyro plus visualisation. I’m ready to start coding Bluetooth communication now.
The project is getting way better, mostly because of the BLE-telemetry now working and connecting! You can actually see your robot live due to my python changes. Now it’s time to work on recording and changing specific slots.
Added a virtual/live robot connected mark (so you can actually see if the robot is a mock or not) with a package counter and hopefully working battery indicator in the future! Also better visualisations and less lag due to setState being called every 20ms (which rebuilds the entire page every tick)
Wooohoo, it can actually sync to the robot and read the flash! With bi-directional communication, you can send commands and recieve data, like, in the picture below “GETSLOTS” which recieves what slots are occupied! Overall really nice, and I polished it a bit....
|
1793044459.8713224
|
1793649259.8713224
|
|
10
|
Arcade Mania by @ryankruger008 | Stardance
|
ryankruger008
|
0
|
36.97
|
0
|
[]
|
[{"post_id": 72978, "ts": "202 [{"post_id": 72978, "ts": "2026-09-24T04:47:41Z", "hours": 6.605, "text": "I have made Space Invaders successfully!, building it around a formation-based alien system with a CharacterBody2D player, grouped collision detection, and a Formation node that spawns rows of aliens, moves them as one unit, and steps them down and speeds them up as more get killed. Aliens fire back at random intervals, the player has lives with a brief invulnerability window after getting hit, and there are destructible shield blocks and a bonus UFO for extra points. I have integrated this with my original machine manager, so the game runs on the same flow as the pong game from before, attract mode when idle, countdown on start, and a continue system that spends a credit to keep a match going after a game over. Score, lives, and a persistent high score are all tracked and saved to disk. I am now going to move onto a simple snake game and then maybe even breakout? please leave suggestions."}, {"post_id": 69926, "ts": "2026-09-18T02:30:49Z", "hours": 1.6756, "text": "Today i have created a test space invaders game, it has a little bit of functionality and it works!"}, {"post_id": 68357, "ts": "2026-09-15T00:30:50Z", "hours": 6.4394, "text": "i have begun writing my devlogs per day in word but i forgot to give my last one so heres both in one. Today I have implemented the backend for a racing game for the arcade, I have utilized the characterbody3d controller with spherecast3d for the wheels to simulate suspension realistically (if it worked) I have had many issues with handling and stability so looking forward this concept will stay in the files if I have an idea how to improve but I am now going to move onto recreating space invaders. Today I have spent some time creating a spacewar remake with not much success with a few glitches. It has the ability to shoot bullets from both ends in the code but none of the actually shoot. The aliens then end up falling out of the world for some reason. I have cleaned up the code for the arcade machine manager to make it extendable to many other use cases using export variables to be able to easily adapt it."}, {"post_id": 61305, "ts": "2026-09-04T04:50:59Z", "hours": 2.0833, "text": "I have begun working on some of the main mechanics for the game and the game map itself, the game now has a credits ssytem that saves to your local system, by having this i can implement achievements and stuff down the road. I have fixed the pong game a bit and made it a lot more stable to play and made the ai work. It also has attract mode! i am doing all of this so i can easily replicate the systems throughout many machines using the same base scripts. I have added textures and made the graphics better also adding mountains. My next steps are finishing the first game and the mechanics to do with it and then moving onto the next game, please give me recommendations on slack or here :)"}, {"post_id": 54340, "ts": "2026-08-25T09:25:21Z", "hours": 4.9264, "text": "I have begun working on the arcade machine side of things it is very buggy at this stage but it works, there will be a lot of changes. 1. I have created a simple game of pong with a CPU character and one that you can control, it has scores, high scores (saved locally) and a countdown system. 2. The machine has a manager, this handles things such as the inputting of credits (currency for the machines that you can earn by doing things like high scores and stuff) and it handles the area3d node that detects that you are trying to play the machine (and insert credits), It also handles a simple attract mode with a blinking INSERT CREDIT text that is very horribly optimised but it works!. I have added in a wallet system that saves your credits and i have modelled a cool arcade machine. The next things i am going to work on is perfecting the game of pong, making the machine art for it, and then moving onto creating another game (possibly a racing game but not confirmed!)"}, {"post_id": 49287, "ts": "2026-08-18T00:24:45Z", "hours": 2.3928, "text": "I have begun transforming the aim and genre of the game, it is now going to be a game where you play arcade machines and stuff (using all the original maps and code i had already) i have created a simple area and optimised the player controller, the original protocol-z will also be a game in the arcade!"}, {"post_id": 11715, "ts": "2026-06-19T02:25:53Z", "hours": 1.3586, "text": "Today I worked on a few small issues and implemented a few things What I worked on: Fixed the player killing system, the player now effectively takes damageImplemented controller input and rumble supportFixed a AI performance issuebegan creating the base script for the inventory – you can now pick up and put items in your inventory What needs doing/fixing A usable UI for the inventoryImplement a death screen and a way to eat and drink to healbackend for the inventory"}, {"post_id": 10420, "ts": "2026-06-17T03:45:59Z", "hours": 8.5253, "text": "I have been working on the 3D modelling side of things to populate the game world for a few weeks now, I have modeled and rigged a zombie and a human using Rigify and i have modeled a town for the game as well. I also modeled a van that will be driveable within the game. There is a lot of room for improvement that will definitely be happening but i am now going to focus on the coding side of things before i finish the game map and stuff. I have no idea why it will only let me attach one image so i added in a image of my very “detailed” car"}, {"post_id": 655, "ts": "2026-06-02T05:27:56Z", "hours": 1.7719, "text": "I have begun making hoyuses for the map, i had no idea what i was doing so thats why it took me so long"}, {"post_id": 522, "ts": "2026-06-02T00:15:33Z", "hours": 1.1917, "text": "Began working on a map for the game! to be improved though, it is going to be in a city!"}]...
|
Title: Arcade Mania by @ryankruger008 | Stardance
Title: Arcade Mania by @ryankruger008 | Stardance
Devlogs:
Began working on a map for the game! to be improved though, it is going to be in a city!
I have begun making hoyuses for the map, i had no idea what i was doing so thats why it took me so long
I have been working on the 3D modelling side of things to populate the game world for a few weeks now, I have modeled and rigged a zombie and a human using Rigify and i have modeled a town for the game as well. I also modeled a van that will be driveable within the game. There is a lot of room for improvement that will definitely be happening but i am now going to focus on the coding side of things before i finish the game map and stuff. I have no idea why it will only let me attach one image so i added in a image of my very “detailed” car
Today I worked on a few small issues and implemented a few things What I worked on: Fixed the player killing system, the player now effectively takes damageImplemented controller input and rumble supportFixed a AI performance issuebegan creating the base script for the inventory – you can now pick up and put items in your inventory What needs doing/fixing A usable UI for the inventoryImplement a death screen and a way to eat and drink to healbackend for the inventory
I have begun transforming the aim and genre of the game, it is now going to be a game where you play arcade machines and stuff (using all the original maps and code i had already) i have created a simple area and optimised the player controller, the original protocol-z will also be a game in the arcade!
I have begun working on the arcade machine side of things it is very buggy at this stage but it works, there will be a lot of changes. 1. I have created a simple game of pong with a CPU character and one that you can control, it has scores, high scores (saved locally) and a countdown system. 2. The machine has a manager, this handles things such as the inputting of credits (currency for the machines that you can earn by doing things like high scores and stuff) and it handles the area3d node that detects that you are trying to play the machine (and insert credits), It also handles a simple attract mode with a blinking INSERT CREDIT text that is very horribly optimised but it works!. I have added in a wallet system that saves your credits and i have modelled a cool arcade machine. The next things i am going to work on is perfecting the game of pong, making the machine art for it, and then moving onto creating another game (possibly a racing game but not confirmed!)
I have begun working on some of the main mechanics for the game and the game map itself, the game now has a credits ssytem that saves to your local system, by having this i can implement achievements and stuff down the road. I have fixed the pong game a bit and made it a lot more stable to play and made the ai work. It also has attract mode! i am doing all of this so i can easily replicate the systems throughout many machines using the same base scripts. I have added textures and made the graphics better also adding mountains. My next steps are finishing the first game and the mechanics to do with it and then moving onto the next game, please give me recommendations on slack or here :)
i have begun writing my devlogs per day in word but i forgot to give my last one so heres both in one. Today I have implemented the backend for a racing game for the arcade, I have utilized the characterbody3d controller with spherecast3d for the wheels to simulate suspension realistically (if it worked) I have had many issues with handling and stability so looking forward this concept will stay in the files if I have an idea how to improve but I am now going to move onto recreating space invaders. Today I have spent some time creating a spacewar remake with not much success with a few glitches. It has the ability to shoot bullets from both ends in the code but none of the actually shoot. The aliens then end up falling out of the world for some reason. I have cleaned up the code for the arcade machine manager to make it extendable to many other use cases using export variables to be able to easily adapt it.
Today i have created a test space invaders game, it has a little bit of functionality and it works!
I have made Space Invaders successfully!, building it around a formation-based alien system with a CharacterBody2D player, grouped collision detection, and a Formation node that spawns rows of aliens, moves them as one unit, and steps them down and speeds them up as more get killed. Aliens fire back at random intervals, the player has lives with a brief invulnerability window after getting hit, and there are destructible shield blocks and a bonus UFO for extra points. I have integrated this with my original machine manager, so the game runs on the same flow as the pong game from before, attract mode when idle, countdown on start, and a continue system that spends a credit to keep a match going after a game over. Score, lives, and a persistent high score are all tracked and saved to disk. I am now going to move onto a simple snake game and then maybe even breakout? please leave suggestions....
|
1792709627.8621466
|
1793314427.8621466
|
|
41302
|
Raycaster Sandbox by @indcader | Stardance
|
indcader
|
0
|
36.79
|
0
|
[]
|
[{"post_id": 80548, "ts": "202 [{"post_id": 80548, "ts": "2026-10-18T04:09:36Z", "hours": 2.5531, "text": "I added item pickups and enemy health to the game. In order to do this I had to separate entities into two classes: items and enemies. Of course, doing this led to weird and bizarre errors which eventually was revealed to be caused by simple index errors. I also implemented “animations” if you can even call them animations (its just a flashing sprite). I’m not too happy with the system behind them and the code that makes it work is messy. However, it works and that makes me happy :D With all of these changes, now anyone can fulfill their greatest fantasy: walking through a boring “maze” while terrorizing random innocent bystanders with totally real guns that aren’t toys trust"}, {"post_id": 80079, "ts": "2026-10-16T05:30:17Z", "hours": 3.52, "text": "I added directional sprites to the game along with a first person gun that the player can use to kill enemies. I also added a bunch of background features like in the hud I added a line for every entity dot that depicts its direction. I also fixed a bug where the player would get stuck inside of walls by passing by the wall. I fixed this by calculating the actual change in a certain axis needed to correct the player’s position. Other bugs were also (not sadly) squashed. Next, I will add pickups like guns and ammo, a player inventory, basic enemy logic, menus, etc. I hope to get this project released before school comes along to drain me of all my energy."}, {"post_id": 79700, "ts": "2026-10-15T03:36:46Z", "hours": 2.2486, "text": "Game Additions I optimized the entities and fixed some bugs that arose when the scale factor went to absurd digits due to the player getting too close to a wall. I also made it so that the mouse is used to rotate the player viewing angle. Finally, I added some castle themed textures inspired by Wolfenstein to the game. I doubt I’m going to use them for the game but I guess they are there if I need it lol Next Features Entity classes like items, weapons, and enemies along with a inventory to pick up certain items Player UI like a health bar, weapon, etc I’m also going to add enemy logic and menus I had a lot of fun implementing these features this time around and I think that the UI side of thing will be especially fun. I hope to release a playable Wolfenstein-like shooter soon."}, {"post_id": 79470, "ts": "2026-10-14T05:20:16Z", "hours": 2.4381, "text": "I implemented entities in the game! They’re kinda jank though and there are a lot of bugs which I have to fix. I mainly relied on Lodev’s tutorial and formulas for implementing entities. I still don’t 100% understand it but I am being to grasp it somewhat. I hope to do mostly polish and fixing various bugs. Namely the bug where the entities for some reason disappear when the player rotates."}, {"post_id": 79244, "ts": "2026-10-13T05:49:59Z", "hours": 4.2919, "text": "I changed the code so that each wall can have four individual wall textures and the image below demonstrates this! I decided to make some huts for it and I think it turned out great! In my last devlog I said that I was going to implement entities next. However, that turned out to be super hard and it drained all of my motivation so I decided to implement this in the meanwhile. I hope this explains why I have like 4 hours of coding in but nothing to show for it lol. I tried to use a bunch of resources for implementing entities but they’ve all been confusing and I really don’t wanna just copy code so if anyone has any advice on this it would be much appeciated. Anyways, I’m probably going to clean up the code and have another crack at making entities. I also kinda want thin walls as a option also soon."}, {"post_id": 78479, "ts": "2026-10-10T22:22:31Z", "hours": 5.1672, "text": "Hello again! Its fall break for me so I can now lock in on this project!!! YAYAY! In my last devlog I thought that september was the deadline for stardance but I was kinda wrong lol. Anyways in the project I replaced my angle calculations with vector math which fixed the warping I was experiencing along the edges. This was possible with Lodev’s tutorial which is an amazing graphics guide. I also added a small shadow along the north and south side of the walls. I hope that I can release a working project by the end of the fall break. Next feature will hopefully be entities."}, {"post_id": 71507, "ts": "2026-09-20T23:23:59Z", "hours": 0.5269, "text": "I can’t believe that the hack club is almost over! I kinda realized that I would not be able to ship this project within the end date of September 30th especially since I got a bunch of schoolwork. It has been an amazing experience being able to participate in this Hackathon! I had so much fun and it was very cool to actually use the Python skills I developed last year. I’ll still be intermittently working on these projects and updating them. Thank you guys so much for actually seeing my projects!!!! BYEEEEEE :3333"}, {"post_id": 70406, "ts": "2026-09-19T03:45:56Z", "hours": 1.0897, "text": "I was trying to figure out hot to draw floors and I was just testing drawing a bunch of 4x4 pixels on the lower half of the screen before grabbing the pixel texture with the converted 2d position. But apparently it turns out that drawing over 20,000 pixels over and over every frame is detrimental to performance (who knew!) I gotta figure out how DOOM does it before I implement it lol. Nothing new other than that though. (except for importing the all-important anti-gravity ofc)"}, {"post_id": 67816, "ts": "2026-09-14T02:17:43Z", "hours": 1.0425, "text": "I figured out collision! There is probably a better way to do it but it allows for wall sliding which the other system didn’t allow. Now you can stick your face into a wall and slide off of it! It works by checking adjacent tiles and comparing that to the player’s position in the tile. Technically in the system the player isn’t moved to exactly the wall’s plane but instead a little back but this was put in to avoid scaling errors with the wall textures. I gotta think about what I want this project to really become though. I want room over room and probably the walls to be thin slices rather than huge blocks. But I gotta figure out what I want first."}, {"post_id": 67751, "ts": "2026-09-14T00:01:36Z", "hours": 3.4878, "text": "I fixed up the texture system a bit and added some new textures! The textures still look weird at a distance but I’ll deal with that later. I’m working on collision right now. Also! New Backroom texture drop!!!!"}, {"post_id": 60016, "ts": "2026-09-02T03:32:57Z", "hours": 2.2792, "text": "I added textures to the walls! They’re kind of broken however. This is because the code that grabs the texture position is kinda jank. The screenshot below shows the textures I’ve added. I also changed the sky and floor back to solid colors since it looks happy now :D"}, {"post_id": 53409, "ts": "2026-08-23T23:00:58Z", "hours": 6.5378, "text": "Hello! Its been awhile since I’ve posted. School just started up and it took a lot of time out of my schedule. Anyways, I’ve implemented the DDA algorithm into the raycaster. It was very hard and it took a bunch of resources/tutorials before I understood the underlying logic. But it was worth it because it makes the walls look 100 times better while also making the game way faster. I also got rid of collision for now because how it used to work was kind dumb since it didn’t allow the user to “slide” off the wall if going in a diagonal direction. So I’ll come back to that soon. Anyways, I hope to also soon add textures to the walls, floors, and celling. I also hope to add a infinite world and a save/load system. NPCs will also come too."}, {"post_id": 37292, "ts": "2026-07-29T21:58:18Z", "hours": 0.8103, "text": "I added the ability to walk sideways and added some essential features like not being able to walk off the map. I also cleaned up the code. I wanted to put the image below just to show the repercussions of not using DDA in a raycaster. It looks all jagged because my rays are moving at fixed intervals instead of moving from grid space to grid space. This causes the ray to detect walls irregularly. To fix this, you would need your ray steps to be incredibly small (very laggy) or implement DDA. The next devlog should be me implementing it hopefully!"}, {"post_id": 36792, "ts": "2026-07-29T02:17:37Z", "hours": 0.7925, "text": "I’m making a raycaster and so far I’ve got the essentials down. I added a editable map, a raycaster, and basic collision. I have not implemented the DDA algorithm yet because I don’t totally understand it but once I do I will implement it. Will also add a bigger map; textured walls, ceilings, and floors; npcs; objects; and other cool things. Right now I decided to make it look like the Backrooms for fun. I’m thinking this game could take place in a city."}]...
|
Title: Raycaster Sandbox by @indcader | Stardance
Title: Raycaster Sandbox by @indcader | Stardance
Devlogs:
I’m making a raycaster and so far I’ve got the essentials down. I added a editable map, a raycaster, and basic collision. I have not implemented the DDA algorithm yet because I don’t totally understand it but once I do I will implement it. Will also add a bigger map; textured walls, ceilings, and floors; npcs; objects; and other cool things. Right now I decided to make it look like the Backrooms for fun. I’m thinking this game could take place in a city.
I added the ability to walk sideways and added some essential features like not being able to walk off the map. I also cleaned up the code. I wanted to put the image below just to show the repercussions of not using DDA in a raycaster. It looks all jagged because my rays are moving at fixed intervals instead of moving from grid space to grid space. This causes the ray to detect walls irregularly. To fix this, you would need your ray steps to be incredibly small (very laggy) or implement DDA. The next devlog should be me implementing it hopefully!
Hello! Its been awhile since I’ve posted. School just started up and it took a lot of time out of my schedule. Anyways, I’ve implemented the DDA algorithm into the raycaster. It was very hard and it took a bunch of resources/tutorials before I understood the underlying logic. But it was worth it because it makes the walls look 100 times better while also making the game way faster. I also got rid of collision for now because how it used to work was kind dumb since it didn’t allow the user to “slide” off the wall if going in a diagonal direction. So I’ll come back to that soon. Anyways, I hope to also soon add textures to the walls, floors, and celling. I also hope to add a infinite world and a save/load system. NPCs will also come too.
I added textures to the walls! They’re kind of broken however. This is because the code that grabs the texture position is kinda jank. The screenshot below shows the textures I’ve added. I also changed the sky and floor back to solid colors since it looks happy now :D
I fixed up the texture system a bit and added some new textures! The textures still look weird at a distance but I’ll deal with that later. I’m working on collision right now. Also! New Backroom texture drop!!!!
I figured out collision! There is probably a better way to do it but it allows for wall sliding which the other system didn’t allow. Now you can stick your face into a wall and slide off of it! It works by checking adjacent tiles and comparing that to the player’s position in the tile. Technically in the system the player isn’t moved to exactly the wall’s plane but instead a little back but this was put in to avoid scaling errors with the wall textures. I gotta think about what I want this project to really become though. I want room over room and probably the walls to be thin slices rather than huge blocks. But I gotta figure out what I want first.
I was trying to figure out hot to draw floors and I was just testing drawing a bunch of 4x4 pixels on the lower half of the screen before grabbing the pixel texture with the converted 2d position. But apparently it turns out that drawing over 20,000 pixels over and over every frame is detrimental to performance (who knew!) I gotta figure out how DOOM does it before I implement it lol. Nothing new other than that though. (except for importing the all-important anti-gravity ofc)
I can’t believe that the hack club is almost over! I kinda realized that I would not be able to ship this project within the end date of September 30th especially since I got a bunch of schoolwork. It has been an amazing experience being able to participate in this Hackathon! I had so much fun and it was very cool to actually use the Python skills I developed last year. I’ll still be intermittently working on these projects and updating them. Thank you guys so much for actually seeing my projects!!!! BYEEEEEE :3333
Hello again! Its fall break for me so I can now lock in on this project!!! YAYAY! In my last devlog I thought that september was the deadline for stardance but I was kinda wrong lol. Anyways in the project I replaced my angle calculations with vector math which fixed the warping I was experiencing along the edges. This was possible with Lodev’s tutorial which is an amazing graphics guide. I also added a small shadow along the north and south side of the walls. I hope that I can release a working project by the end of the fall break. Next feature will hopefully be entities.
I changed the code so that each wall can have four individual wall textures and the image below demonstrates this! I decided to make some huts for it and I think it turned out great! In my last devlog I said that I was going to implement entities next. However, that turned out to be super hard and it drained all of my motivation so I decided to implement this in the meanwhile. I hope this explains why I have like 4 hours of coding in but nothing to show for it lol. I tried to use a bunch of resources for implementing entities but they’ve all been confusing and I really don’t wanna just copy code so if anyone has any advice on this it would be much appeciated. Anyways, I’m probably going to clean up the code and have another crack at making entities. I also kinda want thin walls as a option also soon.
I implemented entities in the game! They’re kinda jank though and there are a lot of bugs which I have to fix. I mainly relied on Lodev’s tutorial and formulas for implementing entities. I still don’t 100% understand it but I am being to grasp it somewhat. I hope to do mostly polish and fixing various bugs. Namely the bug where the entities for some reason disappear when the player rotates.
Game Additions I optimized the entities and fixed some bugs that arose when the scale factor went to absurd digits due to the player getting too close to a wall. I also made it so that the mouse is used to rotate the player viewing angle. Finally, I added some castle themed textures inspired by Wolfenstein to the game. I doubt I’m going to use them for the game but I guess they are there if I need it lol Next Features Entity classes like items, weapons, and enemies along with a inventory to pick up certain items Player UI like a health bar, weapon, etc I’m also going to add enemy logic and menus I had a lot of fun implementing these features this time around and I think that the UI side of thing will be especially fun. I hope to release a playable Wolfenstein-like shooter soon.
I added directional sprites to the game along with a first person gun that the player can use to kill enemies. I also added a bunch of background features like in the hud I added a line for every entity dot that depicts its direction. I also fixed a bug where the player would get stuck inside of walls by passing by the wall. I fixed this by calculating the actual change in a certain axis needed to correct the player’s position. Other bugs were also (not sadly) squashed. Next, I will add pickups like guns and ammo, a player inventory, basic enemy logic, menus, etc. I hope to get this project released before school comes along to drain me of all my energy.
I added item pickups and enemy health to the game. In order to do this I had to separate entities into two classes: items and enemies. Of course, doing this led to weird and bizarre errors which eventually was revealed to be caused by simple index errors. I also implemented “animations” if you can even call them animations (its just a flashing sprite). I’m not too happy with the system behind them and the code that makes it work is messy. However, it works and that makes me happy :D With all of these changes, now anyone can fulfill their greatest fantasy: walking through a boring “maze” while terrorizing random innocent bystanders with totally real guns that aren’t toys trust...
|
1792799480.0220659
|
1793404280.0220659
|
|
70389
|
Physics & Chemistry Sandbox by @Nimax | Starda Physics & Chemistry Sandbox by @Nimax | Stardance...
|
Nimax
|
0
|
36.7
|
0
|
[]
|
[{"post_id": 82783, "ts": "202 [{"post_id": 82783, "ts": "2026-10-25T20:22:22Z", "hours": 4.8719, "text": "Devlog 7 As always, a lot of work has been done around the physics simulations; in fact, I’ve finished them all (except the Fluid Simulation for reasons that I’ll explain here). The simulations finished today are the Refraction and Temperature Simulations. If you are interested in the work that has been done, here is the list: created a function in the Refraction Simulation .py file to calculate the value of the refracted angle based on the initial incidence angle as well as the refractive indexes of the mediums by using Snell-Descartes Law and some trigonometry to change the x and y positions of the refracted light ray as well as the main ray defined some lists that contain real life physical values (refractive indexes of air, water, glass, ethanol, diamond and plastic as well as their color) created the .py file for the Temperature Simulation calculated some physics formulae to simulate the entropy (or increase in disorder) of the particles in a gas (in this case, your regular air) by using the Stokes-Einstein equation to calculate the diffusion coefficient for each particle (how fast the particle spreads) as well as Sutherland’s Law to calculate the dynamic viscosity of the air mentioned above added a damping factor when calculating the dynamic viscosity of the air containing the particles because Sutherland’s Law tends to break when reaching absolute zero (for reference, -273.15°C or 0°K) added a function to simulate Brownian Motion for the particles based on the values calculated before as well as functions to create those particles and draw them on the screen fixed some physics bugs on the first Projectile Simulation created the .py file for the Bohr Atomic Simulation If I didn’t make the Fluid Simulation as of now, it’s because I don’t know if I’m going to use the simple method (springs connected to each other to simulate waves propagating) or the complex method (using Navier-Stokes equations to simulate the fluid’s motion, pressure, diffusion and external forces ). I will see how much time I can allocate for this simulation and decide. Again and as always, thanks for taking the time to read my devlogs and supporting me."}, {"post_id": 82418, "ts": "2026-10-24T19:12:38Z", "hours": 6.5842, "text": "Devlog 6 Today, I got a lot of work done around the physics simulations; in fact, I managed to finish the Spring Simulation, the Planet Orbits Simulation, the Gravity Simulation and started working on the Refraction Simulation. This means that only 2 (or 2 and a half) physics simulation are left (for reference, a little bit of the Refraction Simulation as well as the Fluid and Temperature Simulation). The simulations made today being a little bit more complex than the previous ones, albeit very fun to make, I will summarize everything to make it as simple as possible. Enough talking, here is the list: created the .py files for the Spring Simulation, Planet Orbits, Gravity Simulation as well as the Refraction Simulation added the values of the physical properties extracted from the launcher (still didn’t implement the interface between the launcher and the simulations, that will come later) calculated the physical formulae needed to make every simulation possible ( for the Spring Simulation: calculated the “spring” force using Hooke’s Law and another variables such as the stiffness and damping coefficient of the spring and this time, I used the Pygame.Vector2 which made everything more simple; for the Planet Orbits: the solution to the N-body problem to be able to simulate more than 2 planets interacting upon each other by using a function to integrate the result values numerically with Euler’s Method; for the Gravity Simulation: the simple f = mg formula as well as the drag force formula taking a lot of variables into account such as the air density, surface area of the simulated object, its mass and the drag coefficient but also the restitution coefficient to make the object bounce when it collides with the ground; for the Refraction Simulation: still haven’t implemented the Snell-Descartes Law needed to calculate the angle of the refracted light ray) modified some values in the Projectile Simulation (physical properties) For those that might be asking: I did not use OOP for the planet creation function in the Planet Orbits simulation because I didn’t want to use it for this project. I hope to finish the physics simulations tomorrow and start working on the chemistry ones. As always, thanks for supporting my project; it really means a lot."}, {"post_id": 82094, "ts": "2026-10-23T20:56:56Z", "hours": 5.1125, "text": "Devlog 5 Yesterday, I hoped to finish the configuration tabs of the last chemistry simulations but guess what? I didn’t finish them. You might be asking yourself: “Why?” Well, I decided to start working on the simulations in Pygame rather than spending more time on the last 4 configuration tabs; I think that it is more efficient and less time consuming . In fact, I’ve finished the 2 first physics simulations (for reference, the Projectile and Pendulum simulations) and the result is actually pretty neat ; the simulations are based on real physical properties and they seem to work really good. If you want to see the things that I’ve done in detail today, here is, as always, the list: created a new folder in the GitHub repository for the physics simulations created an “ init .py” file to be able to access the functions of the physics simulations from the launcher finished the Projectile and Pendulum simulations by defining some physical variables whose values will be extracted from the launcher calculated some physics formulae (x and y components for the velocities , drag force formula based on the air density, surface area, drag coefficient and the total velocity of the projectile squared by using Euler’s Method to integrate these values numerically for both the Projectile and Pendulum simulations in order to update their respective x and y positions but also the angular velocity and angle of the pendulum by using the same method previously mentioned ) created some functions to draw the projectile and the pendulum mass (or bob) added labels to track the values of the physical properties for the simulations mentioned above changed the position of these labels as well as their font weight (actually their size) to make everything look more uniform added the color palette of the launcher to the simulations I have to admit that I stumbled across a lot of bugs today when trying to implement the 2D vectors for the first simulation (velocity, gravity, total force which is equal to the sum of the gravity and drag force) so I decided to use another method without these vectors. However, I will probably implement the vectors in the future (as you can see on a comment of the code) because they are simpler to use. Finally, I will continue working on the simulations and after finishing them, the 4 configuration tabs left will be done. I really appreciate the support received by reading the devlogs that I post and liking them; I hope that you, the person reading this, know that it means a lot for me."}, {"post_id": 81834, "ts": "2026-10-22T17:49:46Z", "hours": 4.5803, "text": "Devlog 4 As I said yesterday, I hoped to finish the configuration tabs for all the physics and chemistry simulations. Well, guess what? I almost managed to finish them all; in fact, only 4 of them are left (Reaction Lab, Combustion Simulation, Smoke Simulation and Atom Collision). I have to admit that making the configuration tabs takes a lot of time, but I guarantee that it will be worth the wait. If you want to see what I did in detail today, here’s the list: added the frames for each element in the Fluid & Temperature simulations, Bohr Representation, Solution Maker and Molecular Lab configuration tabs (frames for the simulation preview image, title, description and instructions on how to setup the simulation, configurators as well as the “Launch” button) filled those frames with their respective elements (placeholder image of an atom that you can literally see on every tab of the app , text labels for the titles, descriptions and instructions as well as some configurators such as sliders, option menus, buttons and switches) rescaled the sliders of the first physics simulation configuration tabs to make everything more uniform and clean This time, I stumbled across some minor bugs that were irritating (having to move multiple elements by a fraction of a pixel just to align them) I am actually surprised that I didn’t have any considerable bugs or inconveniences to fix but: I really hope to finish the configuration tabs of every simulation tomorrow once for all in order to get started with the making of those simulations. In the future, I will also add labels describing the initial and final values of the sliders as well as labels to monitor their values. As always, thanks for spending a bit of your time to read my devlog, I really appreciate it."}, {"post_id": 81608, "ts": "2026-10-21T18:55:28Z", "hours": 6.0803, "text": "Devlog 3 I think that today has also been very productive; in fact, I finished 6/8 configuration tabs (or windows) for the physics simulations. In addition, I also managed to get more things done (even if making the configuration tabs is long, I really appreciate the process) that I summarized in this list: added the frames for each element of the 6 first physics simulation config. tabs filled those said frames with placeholder images, titles of each simulation, their respective descriptions and instructions in order to make their configuration easy, sliders representing physical properties that can be seen on the video (velocity, angular velocity, mass, gravitational acceleration, damping, stiffness, etc…), entries to enter custom values for those properties, option menus (for example, to choose the color of the light ray in the Refraction Simulation tab) and switches (on/off options such as the “Show Orbit Trail” option) added the frames (but not their content) for each element of the chemistry simulation config. tabs rescaled the labels describing the configurators of the simulations (“Initial Damping”, etc…) Something that made me waste a bit of my time today was the fact that I didn’t use a method (fancy word for a function in Python) correctly. Besides that, I hope to finish the configuration tabs for the last two physics simulations as well as the chemistry ones tomorrow to finally get started on the making of the simulations. Thanks for taking the time to read this, it really means a lot for me to know that my work is being taken into consideration."}, {"post_id": 81341, "ts": "2026-10-20T21:49:23Z", "hours": 6.0458, "text": "Devlog 2 I worked on a lot of core features to the launcher of the sandbox today; here is what I did in detail: added placeholder images for each simulation (physics and chemistry) added titles for each simulation of the sandbox added descriptions to each simulation so as to make them understandable and let the user choose before clicking on one added the logic of the buttons in order to be able to select them added individual windows for every physics and chemistry simulation added configurators (sliders, checkboxes) representing some physical properties (initial velocity, angle, gravitational acceleration, mass, diameter and drag coefficient) for the first physics simulation (Projectile Simulation) as well as its launch button added a placeholder image to preview the simulation mentioned above I didn’t have to fight against a bug today, but we’ll see tomorrow. Thanks for taking the time to read this."}, {"post_id": 81087, "ts": "2026-10-19T20:07:47Z", "hours": 3.4219, "text": "Devlog 1 Hello everyone, first time writing here. What did I do today? Well, I began working on the launcher of my sandbox-simulator. To sum everything up, these are the things that I’ve worked on: creating the main window of the launcher with CustomTkinter loading a custom theme for the launcher making the buttons, frames and tabs of each category of the sandbox (physics, chemistry, the Place, the launcher settings and credits) adding the events (interaction logic) for each button Even if I spent some time trying to get the buttons to change the tabs without display bugs , the core of the launcher has been made. Last but not least: why did I make a launcher for the sandbox? I always liked the “ImGUI” style interfaces for custom C++ apps (for example, the modded versions of some games) because of their simplicity. Thanks for stopping by to read this and see you on the next devlog."}]...
|
Title: Physics & Chemistry Sandbox by @Nimax | Title: Physics & Chemistry Sandbox by @Nimax | Stardance
Devlogs:
Devlog 1 Hello everyone, first time writing here. What did I do today? Well, I began working on the launcher of my sandbox-simulator. To sum everything up, these are the things that I’ve worked on: creating the main window of the launcher with CustomTkinter loading a custom theme for the launcher making the buttons, frames and tabs of each category of the sandbox (physics, chemistry, the Place, the launcher settings and credits) adding the events (interaction logic) for each button Even if I spent some time trying to get the buttons to change the tabs without display bugs , the core of the launcher has been made. Last but not least: why did I make a launcher for the sandbox? I always liked the “ImGUI” style interfaces for custom C++ apps (for example, the modded versions of some games) because of their simplicity. Thanks for stopping by to read this and see you on the next devlog.
Devlog 2 I worked on a lot of core features to the launcher of the sandbox today; here is what I did in detail: added placeholder images for each simulation (physics and chemistry) added titles for each simulation of the sandbox added descriptions to each simulation so as to make them understandable and let the user choose before clicking on one added the logic of the buttons in order to be able to select them added individual windows for every physics and chemistry simulation added configurators (sliders, checkboxes) representing some physical properties (initial velocity, angle, gravitational acceleration, mass, diameter and drag coefficient) for the first physics simulation (Projectile Simulation) as well as its launch button added a placeholder image to preview the simulation mentioned above I didn’t have to fight against a bug today, but we’ll see tomorrow. Thanks for taking the time to read this.
Devlog 3 I think that today has also been very productive; in fact, I finished 6/8 configuration tabs (or windows) for the physics simulations. In addition, I also managed to get more things done (even if making the configuration tabs is long, I really appreciate the process) that I summarized in this list: added the frames for each element of the 6 first physics simulation config. tabs filled those said frames with placeholder images, titles of each simulation, their respective descriptions and instructions in order to make their configuration easy, sliders representing physical properties that can be seen on the video (velocity, angular velocity, mass, gravitational acceleration, damping, stiffness, etc…), entries to enter custom values for those properties, option menus (for example, to choose the color of the light ray in the Refraction Simulation tab) and switches (on/off options such as the “Show Orbit Trail” option) added the frames (but not their content) for each element of the chemistry simulation config. tabs rescaled the labels describing the configurators of the simulations (“Initial Damping”, etc…) Something that made me waste a bit of my time today was the fact that I didn’t use a method (fancy word for a function in Python) correctly. Besides that, I hope to finish the configuration tabs for the last two physics simulations as well as the chemistry ones tomorrow to finally get started on the making of the simulations. Thanks for taking the time to read this, it really means a lot for me to know that my work is being taken into consideration.
Devlog 4 As I said yesterday, I hoped to finish the configuration tabs for all the physics and chemistry simulations. Well, guess what? I almost managed to finish them all; in fact, only 4 of them are left (Reaction Lab, Combustion Simulation, Smoke Simulation and Atom Collision). I have to admit that making the configuration tabs takes a lot of time, but I guarantee that it will be worth the wait. If you want to see what I did in detail today, here’s the list: added the frames for each element in the Fluid & Temperature simulations, Bohr Representation, Solution Maker and Molecular Lab configuration tabs (frames for the simulation preview image, title, description and instructions on how to setup the simulation, configurators as well as the “Launch” button) filled those frames with their respective elements (placeholder image of an atom that you can literally see on every tab of the app , text labels for the titles, descriptions and instructions as well as some configurators such as sliders, option menus, buttons and switches) rescaled the sliders of the first physics simulation configuration tabs to make everything more uniform and clean This time, I stumbled across some minor bugs that were irritating (having to move multiple elements by a fraction of a pixel just to align them) I am actually surprised that I didn’t have any considerable bugs or inconveniences to fix but: I really hope to finish the configuration tabs of every simulation tomorrow once for all in order to get started with the making of those simulations. In the future, I will also add labels describing the initial and final values of the sliders as well as labels to monitor their values. As always, thanks for spending a bit of your time to read my devlog, I really appreciate it.
Devlog 5 Yesterday, I hoped to finish the configuration tabs of the last chemistry simulations but guess what? I didn’t finish them. You might be asking yourself: “Why?” Well, I decided to start working on the simulations in Pygame rather than spending more time on the last 4 configuration tabs; I think that it is more efficient and less time consuming . In fact, I’ve finished the 2 first physics simulations (for reference, the Projectile and Pendulum simulations) and the result is actually pretty neat ; the simulations are based on real physical properties and they seem to work really good. If you want to see the things that I’ve done in detail today, here is, as always, the list: created a new folder in the GitHub repository for the physics simulations created an “ init .py” file to be able to access the functions of the physics simulations from the launcher finished the Projectile and Pendulum simulations by defining some physical variables whose values will be extracted from the launcher calculated some physics formulae (x and y components for the velocities , drag force formula based on the air density, surface area, drag coefficient and the total velocity of the projectile squared by using Euler’s Method to integrate these values numerically for both the Projectile and Pendulum simulations in order to update their respective x and y positions but also the angular velocity and angle of the pendulum by using the same method previously mentioned ) created some functions to draw the projectile and the pendulum mass (or bob) added labels to track the values of the physical properties for the simulations mentioned above changed the position of these labels as well as their font weight (actually their size) to make everything look more uniform added the color palette of the launcher to the simulations I have to admit that I stumbled across a lot of bugs today when trying to implement the 2D vectors for the first simulation (velocity, gravity, total force which is equal to the sum of the gravity and drag force) so I decided to use another method without these vectors. However, I will probably implement the vectors in the future (as you can see on a comment of the code) because they are simpler to use. Finally, I will continue working on the simulations and after finishing them, the 4 configuration tabs left will be done. I really appreciate the support received by reading the devlogs that I post and liking them; I hope that you, the person reading this, know that it means a lot for me.
Devlog 6 Today, I got a lot of work done around the physics simulations; in fact, I managed to finish the Spring Simulation, the Planet Orbits Simulation, the Gravity Simulation and started working on the Refraction Simulation. This means that only 2 (or 2 and a half) physics simulation are left (for reference, a little bit of the Refraction Simulation as well as the Fluid and Temperature Simulation). The simulations made today being a little bit more complex than the previous ones, albeit very fun to make, I will summarize everything to make it as simple as possible. Enough talking, here is the list: created the .py files for the Spring Simulation, Planet Orbits, Gravity Simulation as well as the Refraction Simulation added the values of the physical properties extracted from the launcher (still didn’t implement the interface between the launcher and the simulations, that will come later) calculated the physical formulae needed to make every simulation possible ( for the Spring Simulation: calculated the “spring” force using Hooke’s Law and another variables such as the stiffness and damping coefficient of the spring and this time, I used the Pygame.Vector2 which made everything more simple; for the Planet Orbits: the solution to the N-body problem to be able to simulate more than 2 planets interacting upon each other by using a function to integrate the result values numerically with Euler’s Method; for the Gravity Simulation: the simple f = mg formula as well as the drag force formula taking a lot of variables into account such as the air density, surface area of the simulated object, its mass and the drag coefficient but also the restitution coefficient to make the object bounce when it collides with the ground; for the Refraction Simulation: still haven’t implemented the Snell-Descartes Law needed to calculate the angle of the refracted light ray) modified some values in the Projectile Simulation (physical properties) For those that might be asking: I did not use OOP for the planet creation function in the Planet Orbits simulation because I didn’t want to use it for this project. I hope to finish the physics simulations tomorrow and start working on the chemistry ones. As always, thanks for supporting my project; it really means a lot.
Devlog 7 As always, a lot of work has been done around the physics simulations; in fact, I’ve finished them all (except the Fluid Simulation for reasons that I’ll explain here). The simulations finished today are the Refraction and Temperature Simulations. If you are interested in the work that has been done, here is the list: created a function in the Refraction Simulation .py file to calculate the value of the refracted angle based on the initial incidence angle as well as the refractive indexes of the mediums by using Snell-Descartes Law and some trigonometry to change the x and y positions of the refracted light ray as well as the main ray defined some lists that contain real life physical values (refractive indexes of air, water, glass, ethanol, diamond and plastic as well as their color) created the .py file for the Temperature Simulation calculated some physics formulae to simulate the entropy (or increase in disorder) of the particles in a gas (in this case, your regular air) by using the Stokes-Einstein equation to calculate the diffusion coefficient for each particle (how fast the particle spreads) as well as Sutherland’s Law to calculate the dynamic viscosity of the air mentioned above added a damping factor when calculating the dynamic viscosity of the air containing the particles because Sutherland’s Law tends to break when reaching absolute zero (for reference, -273.15°C or 0°K) added a function to simulate Brownian Motion for the particles based on the values calculated before as well as functions to create those particles and draw them on the screen fixed some physics bugs on the first Projectile Simulation created the .py file for the Bohr Atomic Simulation If I didn’t make the Fluid Simulation as of now, it’s because I don’t know if I’m going to use the simple method (springs connected to each other to simulate waves propagating) or the complex method (using Navier-Stokes equations to simulate the fluid’s motion, pressure, diffusion and external forces ). I will see how much time I can allocate for this simulation and decide. Again and as always, thanks for taking the time to read my devlogs and supporting me....
|
1793008391.7040994
|
1793613191.7040994
|
|
38862
|
Polaris by @b1j2754 | Stardance
|
b1j2754
|
0
|
36.65
|
0
|
[]
|
[{"post_id": 51981, "ts": "202 [{"post_id": 51981, "ts": "2026-08-21T23:50:17Z", "hours": 21.2322, "text": "Hii Small Update: I have moved this to Macondo! https://macondo.hackclub.com/projects/16810 Some progress below:"}, {"post_id": 38208, "ts": "2026-07-31T14:37:24Z", "hours": 2.5144, "text": "Site Selection Finally got around to adding and implementing sites into Polaris! No longer are you land-locked to your current position, you can now plan ahead for other locations and times. Sites You can now have multiple sites, switch between them, and add them. Fully fleshed out menu Lookahead I moved to a 3-tab layout. Now A detailed overview of everything currently in the sky. Includes coordinates and other diagnostics for all objects in the sky, ranked using the algorithm Tonight A list view of all objects visible tonight. Less organized, as the algorithm that is used on tonight isn’t present Weeks ahead Looks 3 weeks ahead, and predicts what you will be able to see. Doesn’t take weather into account because our prediction models that far into the future suck."}, {"post_id": 34334, "ts": "2026-07-24T22:56:30Z", "hours": 1.1092, "text": "YAY MATH Jokes aside, this was one of the more fun and easy coding sessions I’ve had. I built most of the functions I needed, wrapping the astronomy library I use. So it was just a culmination of cobbling together functions + iterating over them to form coherent graphs. They still look a bit off to me, but I will clean things up later. My focus is on finishing the demo, then going back. Impl features list Stubbed section for tonight / upcoming sections for sky diagnosis Pill bar for time selection for graph display Actual graph displaying altitude above horizon. Also includes grayed out bars for non-visible sections (not featured here, couldn’t get a good example)"}, {"post_id": 33696, "ts": "2026-07-23T20:25:21Z", "hours": 11.7939, "text": "Recap Aesthetic My friend, a large astronomy enthusiast, pointed out that many apps have an entirely red mode to block out blue light, as it distorts vision when its most critical to seeing stars in the night sky or through a telescope. So I designed the entire app in shades of black and gray, with the intention of supporting a red-scale version with a very plug-and-play approach. Gray-scale ensured the app wouldn’t look horrendous when I switched to red. DB This is my first project with a database. I opted to use sqlite and learn all about how it works. Though much of the commands are based on stack overflow threads, and my understanding is still lacking, I plan to further and devlop this skill as I work on storage for users and pictures. This is definently an important part of an app like this. Glass layout This doesn’t really deserve its own section, but I thought it was interesting. The cleanest apps imo are ones that use the system colors and design. So react-native was an obvious choice. However, liquid glass is an experimental feature, and furthermore requires packaging and building the react-native in a way that makes it near impossible to hot-reload using expo-go. For this reason, I opted to make my own liquid glass elements, pulling in the native ui library to apply it to elements of my own. Astronomy logic This is the core portion of the app. The main idea of the app is to engage users, and provide a constant influx of ideas and targets to see. It is hard for some to constantly have to look up what would be fun to see, with their equipment and location, and current weather. Our app solves this by crunching all the data for this and displaying it in an easy-to-read format. We first calculate the different weather and astrological conditions at the time for the user. This involves calculating a multitude of values, but it all collapses into a single equation: score: reasons.length === 0 ? 0.5 + quality / 2 : (quality / 2) * 0.5 where quality is based off headroom and moonroom, and the other weather conditions (pulled from a local weather api)"}]...
|
Title: Polaris by @b1j2754 | Stardance
Devlogs:
R Title: Polaris by @b1j2754 | Stardance
Devlogs:
Recap Aesthetic My friend, a large astronomy enthusiast, pointed out that many apps have an entirely red mode to block out blue light, as it distorts vision when its most critical to seeing stars in the night sky or through a telescope. So I designed the entire app in shades of black and gray, with the intention of supporting a red-scale version with a very plug-and-play approach. Gray-scale ensured the app wouldn’t look horrendous when I switched to red. DB This is my first project with a database. I opted to use sqlite and learn all about how it works. Though much of the commands are based on stack overflow threads, and my understanding is still lacking, I plan to further and devlop this skill as I work on storage for users and pictures. This is definently an important part of an app like this. Glass layout This doesn’t really deserve its own section, but I thought it was interesting. The cleanest apps imo are ones that use the system colors and design. So react-native was an obvious choice. However, liquid glass is an experimental feature, and furthermore requires packaging and building the react-native in a way that makes it near impossible to hot-reload using expo-go. For this reason, I opted to make my own liquid glass elements, pulling in the native ui library to apply it to elements of my own. Astronomy logic This is the core portion of the app. The main idea of the app is to engage users, and provide a constant influx of ideas and targets to see. It is hard for some to constantly have to look up what would be fun to see, with their equipment and location, and current weather. Our app solves this by crunching all the data for this and displaying it in an easy-to-read format. We first calculate the different weather and astrological conditions at the time for the user. This involves calculating a multitude of values, but it all collapses into a single equation: score: reasons.length === 0 ? 0.5 + quality / 2 : (quality / 2) * 0.5 where quality is based off headroom and moonroom, and the other weather conditions (pulled from a local weather api)
YAY MATH Jokes aside, this was one of the more fun and easy coding sessions I’ve had. I built most of the functions I needed, wrapping the astronomy library I use. So it was just a culmination of cobbling together functions + iterating over them to form coherent graphs. They still look a bit off to me, but I will clean things up later. My focus is on finishing the demo, then going back. Impl features list Stubbed section for tonight / upcoming sections for sky diagnosis Pill bar for time selection for graph display Actual graph displaying altitude above horizon. Also includes grayed out bars for non-visible sections (not featured here, couldn’t get a good example)
Site Selection Finally got around to adding and implementing sites into Polaris! No longer are you land-locked to your current position, you can now plan ahead for other locations and times. Sites You can now have multiple sites, switch between them, and add them. Fully fleshed out menu Lookahead I moved to a 3-tab layout. Now A detailed overview of everything currently in the sky. Includes coordinates and other diagnostics for all objects in the sky, ranked using the algorithm Tonight A list view of all objects visible tonight. Less organized, as the algorithm that is used on tonight isn’t present Weeks ahead Looks 3 weeks ahead, and predicts what you will be able to see. Doesn’t take weather into account because our prediction models that far into the future suck.
Hii Small Update: I have moved this to Macondo! https://macondo.hackclub.com/projects/16810 Some progress below:...
|
1792713308.2885685
|
1793318108.2885685
|
|
27452
|
ASTRALIS: An Overactuated Aerial Manipulation Quad ASTRALIS: An Overactuated Aerial Manipulation Quadcopter by @Scorchify | Stardance...
|
Scorchify
|
0
|
36.6
|
0
|
[]
|
[{"post_id": 44316, "ts": "202 [{"post_id": 44316, "ts": "2026-08-10T00:03:29Z", "hours": 3.3033, "text": "Devlog 9: README Finished, Screws Added, and Diagrams Finalized! This devlog will be short since most of the work involved writing and documentation. README Finished! It took me a while to stop procrastinating, sit down, and write the README.md, but it’s finally done! I gave a basic introduction to each part of ASTRALIS and explained how it works. I also added dedicated sections covering the electronics, software, and bill of materials. I also added some renders which I’ve included on this devlog. Outside of the README, I added the remaining screws to the CAD and finalized the project diagrams. Next Steps Submit the project Revise it based on feedback"}, {"post_id": 42475, "ts": "2026-08-07T07:21:43Z", "hours": 7.9461, "text": "Devlog 8: Aerial Manipulator Redone, BOM Revised, and ¼ of Programming Done! Across the last three days, I’ve had a realization. My project was a little too expensive for me to want to self-fund, even with the grant. I felt that I was paying too much of a premium for certain items. In addition, after a comment I got on my previous devlog (thanks @Abracadabra3 !), I realized the servo motors I was using probably wouldn’t hold enough weight to create good research data. So, to solve both of these problems (or at least reduce them), I switched from the Dynamixel XL430/XL330 ecosystem to the Waveshare ST3215 serial bus servos. Reasons to Switch Advantages Much cheaper per servo ( $20.63 vs. $27.50 ) Much cheaper power/control distribution board ( $4.99 vs. ~$40 ) Documentation is still acceptable, and CAD files are still provided (even if they’re a little janky) Significantly higher rated torque ( 1 N·m vs. 0.28 N·m ) Standardized servo motors across the entire arm (making assembly much easier) Accepted Losses Slight loss of precision (no adjustable PID/feedforward gains) I deemed this overkill for Astralis. Increased weight per servo 12 g heavier than the XL430 and 50 g heavier than the XL330 Increased current draw (slightly reducing battery life) Robotic Arm I adapted the robotic arm to be compatible with the Waveshare ST3215 servos, with an emphasis on reducing the weight of each joint. The biggest change was redesigning the base joint so that it only encloses the servo instead of mounting it off to the side. I also used more generous material pocketing throughout the design to reduce weight. I further increased the arm’s maximum reach so that it can reach the landing gear if needed. I also started doing the math on how much the arm can actually hold (currently using both a whiteboard and Excel), but I haven’t finished it yet. This isn’t a huge priority right now, as I’d like to improve the linkage system and continue working on the code first. Coding I started by creating the architecture of my codebase. I also established the basic MAVLink initialization code and built a listener that filters messages such as battery data (voltage and battery remaining) and GPS data. Files Worked On vehicle_states.py mavlink_interface.py Next Steps Finalize the tilting pod CAD and select ball end and threaded rod options Finish basic drone connectivity Write the README and submit for initial review Add all fasteners to the CAD model and clean it up for Onshape publication Calculate the maximum payload the robotic arm can carry"}, {"post_id": 40558, "ts": "2026-08-04T06:02:42Z", "hours": 3.7081, "text": "Devlog 7: Renders, BOMs, and the Start of Software! After taking a short break from ASTRALIS to avoid burnout (and do college application stuff), I’m back to continue refining the design and begin software development. With the mechanical design mostly complete, I’ve shifted focus toward reducing costs, preparing the project for funding submission, and laying the groundwork for future testing. General Design Updates The primary goal during this stage was standardizing hardware and optimizing the Bill of Materials while preparing the project for prototyping. Standardized most fasteners around M3×8 self-threading Phillips Plastite screws to simplify assembly and reduce the variety of hardware required (hopefully to use only one small sorting box) Updated the Bill of Materials with nearly every required component. The only remaining hardware to source is the tilt pod pushrods and ball ends, which will be selected after prototyping. Reused hardware from previous combat robotics projects wherever possible to reduce overall project cost (mostly m3 and m4 fasteners). Created renders of ASTRALIS in Fusion 360 for documentation and future presentations (maker portfolios!) Finalized the electronics diagram, completing the planned electrical architecture. Beginning Software Development With the mechanical design approaching completion, I also began planning the companion software architecture that will run on my Raspberry Pi 4. The initial implementation will focus on: Establishing communication with the Pixhawk flight controller through MAVLink. Initializing the onboard camera. Developing a preliminary arm-disturbance test routine. Recording telemetry and experiment logs for later analysis. The long-term goal is to use this software as the foundation for testing disturbance rejection using the aerial manipulator. Future Plans To prepare for the hardware funding request, I’ll continue improving the design where I can while mainly directing effort towards software development. Optimize the remaining Bill of Materials. Develop the preliminary companion software. Implement a basic arm-disturbance test with automatic log generation."}, {"post_id": 32147, "ts": "2026-07-21T03:32:49Z", "hours": 6.5958, "text": "Devlog 6: Aerial Manipulator Finalized, Tilt Pods Finished, and Frame Finished Over the past few days, I finalized the overall airframe, completed the aerial manipulator, and finished the design of the thrust-vectoring tilt pods. This was probably one of the toughest and most detailed-focus stages of the project so far (definitely stayed up super late fixing it sometimes!), prompting several redesigns to accommodate the Dynamixel XL330-M288-T servos while also standardizing hardware throughout the drone. Note: I have another CAD timelapse recorded in Lookout that I’m still trying to transfer into Stardance. General Design Updates A major focus during this stage was reducing complexity and improving ease of assembly. Standardized as many fasteners as possible across the drone. Reused hardware from previous combat robotics and robotics projects whenever practical. Organized the CAD assembly by separating self-tapping screws into dedicated PLASTITES folders while leaving machine screws in the default folders to simplify the assembly process. Landing Gear The landing gear went through two complete design iterations. The original concept used a dedicated clamp that attached independently to the carbon fiber arms. After evaluating the design, I integrated the landing gear directly into the arm end cap instead. This redesign: Reduced the total number of printed components. Increased the distance between the landing feet, improving stability. Maximizes operating space of arm. Minimized interference with the thrust-vectoring pod geometry. Each landing gear assembly consists of three printed components, including TPU feet intended to improve grip and absorb landing impacts. Tilt Pods The thrust-vectoring pods are now mechanically complete. The largest addition during this stage was designing the pushrod linkage connecting each servo horn to its corresponding tilt pod. At the moment: The linkage geometry has been finalized. The linkage components will be 3D printed and prototyped. Mechanical advantage calculations and linkage calibration still need to be completed before the CAD animation accurately reflects the pod motion. Aerial Manipulator The aerial manipulator has now been finalized. One of the largest changes was redesigning the arm to properly mount the Dynamixel XL330-M288-T servos internally instead of externally. Benefits of the redesign include: Cleaner overall appearance. More compact packaging. The servos will be mounted using the provided M2 self-tapping screws directly into the printed components. Battery Holder V2 The battery mounting system also received a significant redesign. Originally, the battery was positioned underneath the frame because I assumed lowering the center of gravity would improve stability. After learning more about quadcopter dynamics, I realized this configuration introduces a pendulum effect that complicates flight control. The updated design mounts the battery on top of the frame using a PLA battery cradle secured with four M4 machine screws and a Velcro strap. This redesign also frees the entire underside of the frame for the aerial manipulator, allowing the arm to rotate through a full 360° without the battery obstructing its workspace. Next Steps Assign materials to all CAD components and calculate the drone’s center of gravity. Finalize the complete electrical component placement within the body and wiring diagram. Characterize the thrust-vectoring linkage and determine its mechanical advantage. Begin firmware development and hardware testing routines. Write assembly documentation and build guides. Begin printing and validating mechanical prototypes."}, {"post_id": 25766, "ts": "2026-07-10T06:46:27Z", "hours": 6.725, "text": "Devlog 5: Aerial Manipulator Design Over the past couple of days, I completed the aerial manipulator — the robot arm — for the drone. The current design assumes the use of DYNAMIXEL XL430 and XL330 servos , though the final servo mounting is not fully finalized in CAD yet. Cool Things The arm is animated in CAD The full manipulator is now integrated into the drone assembly I designed and compared two different gripper concepts The Arm The arm uses DYNAMIXEL smart servos because they provide positional feedback and include many features that may be useful later. The current manipulator is a 4-DOF robotic arm with a gripper : Base rotation about the Z-axis Shoulder rotation about the X-axis Elbow rotation about the X-axis Wrist rotation about the X-axis Servo-driven gripper as the end effector The arm is intended to be fully 3D printed , allowing for fast iteration and easier replacement of parts if the design changes. The Gripper The bulk of the time was spent on the gripper, partly because I designed two different models: A linkage gripper A standard parallel gripper , inspired by this guide: 3D Printed Parallel Gripper for Robotic Arms Linkages… The linkage gripper was designed with compactness in mind. It used a gear-driven linkage system and was intended to use TPU fingers to grip rigid payloads. However, maintaining printing tolerances and designing around the linkage geometry made the CAD extremely messy. The mechanism had too many small pivot points, tolerance-sensitive parts, and potential failure points. Because of that, I could not justify printing and prototyping this version. The main focus of the project is not the gripper itself. The focus is on testing how the drone handles disturbances induced by arm movement and held payloads . Because of this, I need full confidence that the gripper will work reliably without spending too much project time reprinting and redesigning it. Parallel Gripper! Following the Instructables guide, I designed a simpler parallel gripper using a similar bearing, rod, and rack-and-pinion layout. This gripper uses: A 3D-printed main body Rigid 3D-printed fingers instead of TPU fingers Two identical gear racks A central pinion gear Linear rods for jaw guidance The CAD design was much simpler, and I am more confident that this version will produce reliable performance. The parallel gripper should be easier to print, easier to assemble, and easier to debug than the linkage gripper. Next Things to Do Add push/pull rods in CAD to the tilting pods Finalize internal electronics mounting Evaluate costs for plates and add weights in CAD Bias the center of gravity toward the ideal location Research and add drone motors and propellers to the BOM Add the DYNAMIXEL XL330 mount in the arm"}, {"post_id": 21982, "ts": "2026-07-04T06:23:59Z", "hours": 4.0675, "text": "Devlog 4: CAD Day ! Today, I completed the body frame of the drone with the addition of a Pi Camera Module 2 mount; I also worked on improving the battery holder design, this time ensuring it can be added and removed without extreme disassembly. Cool Things: I tinkered around with the “Convex Polyhedron” OnShape featurescript to make the drone’s body have a low poly aesthetic Added Colors! Main Things: I developed the Pi Camera Mount , having the mount protrude outwards from the X-wing configuration and angle thirty degrees downward. The Pi Camera was added because it provides future upgrade possibilities regarding software decisions, as well as gives the opportunity to get some footage of the drone (I also had two Pi Cams in my stash) There was lots of experimentation regarding this part. I tried using lofts to make the camera mount first and then loft outwards, but frustratingly I was not able to get the geometry to work (too tight of geometry to be lofting like that!) I ended up using the Convex Polyhedron Featurescript, which allowed me to select a few points and enclose an area with a low-poly extruded body, which I then hollowed out to create more overflow space for wiring I finally added some material pockets, mainly for aesthetics. I will need to evaluate the printability of this part and the pockets will be the first thing to be edited if it bars printability. The battery holder received minor improvements regarding tolerances and the addition of the closer arm, which is mounted by two screws on each side I added more space for the battery The spacing between the top and bottom plates received an update, increasing 10mm so that a Dynamixel XL430 can fit within the drone’s frame (for the design of the manipulator) This also resulted in the arm tube clamp being changed Next Things to Do: Start Arm/Manipulator Development Finish Tilt Pods (add m2 push rods) Update the BOM"}, {"post_id": 19788, "ts": "2026-07-01T05:31:15Z", "hours": 1.9506, "text": "Continued work on BOM (found out the project is extremely expensive; will look for ways to cut down cost). Mainly worked on designing the “Servo Pod” part – aimed to be 3D printed – which holds the servo in parallel with the tilting pod. Later, I intend implement a pull rod system to facilitate the tilting motion. The servo pod is inspired by one designs featured in a research paper I read, exhibiting an almost shaft-collar like clamping design, intending to clamp around the CF tubes that are the arms. Tomorrow, I plan to start the manipulator V1 subsystem, while implementing the push rods in CAD."}, {"post_id": 19055, "ts": "2026-06-30T07:30:48Z", "hours": 1.8503, "text": "Added more research papers (will review next time), worked on v1 of electronics diagram, started BOM."}, {"post_id": 17988, "ts": "2026-06-28T23:09:14Z", "hours": 0.4503, "text": "Battery Holder v1 (not final, just something that fits the battery)"}]...
|
Title: ASTRALIS: An Overactuated Aerial Manipulati Title: ASTRALIS: An Overactuated Aerial Manipulation Quadcopter by @Scorchify | Stardance
Devlogs:
Battery Holder v1 (not final, just something that fits the battery)
Added more research papers (will review next time), worked on v1 of electronics diagram, started BOM.
Continued work on BOM (found out the project is extremely expensive; will look for ways to cut down cost). Mainly worked on designing the “Servo Pod” part – aimed to be 3D printed – which holds the servo in parallel with the tilting pod. Later, I intend implement a pull rod system to facilitate the tilting motion. The servo pod is inspired by one designs featured in a research paper I read, exhibiting an almost shaft-collar like clamping design, intending to clamp around the CF tubes that are the arms. Tomorrow, I plan to start the manipulator V1 subsystem, while implementing the push rods in CAD.
Devlog 4: CAD Day ! Today, I completed the body frame of the drone with the addition of a Pi Camera Module 2 mount; I also worked on improving the battery holder design, this time ensuring it can be added and removed without extreme disassembly. Cool Things: I tinkered around with the “Convex Polyhedron” OnShape featurescript to make the drone’s body have a low poly aesthetic Added Colors! Main Things: I developed the Pi Camera Mount , having the mount protrude outwards from the X-wing configuration and angle thirty degrees downward. The Pi Camera was added because it provides future upgrade possibilities regarding software decisions, as well as gives the opportunity to get some footage of the drone (I also had two Pi Cams in my stash) There was lots of experimentation regarding this part. I tried using lofts to make the camera mount first and then loft outwards, but frustratingly I was not able to get the geometry to work (too tight of geometry to be lofting like that!) I ended up using the Convex Polyhedron Featurescript, which allowed me to select a few points and enclose an area with a low-poly extruded body, which I then hollowed out to create more overflow space for wiring I finally added some material pockets, mainly for aesthetics. I will need to evaluate the printability of this part and the pockets will be the first thing to be edited if it bars printability. The battery holder received minor improvements regarding tolerances and the addition of the closer arm, which is mounted by two screws on each side I added more space for the battery The spacing between the top and bottom plates received an update, increasing 10mm so that a Dynamixel XL430 can fit within the drone’s frame (for the design of the manipulator) This also resulted in the arm tube clamp being changed Next Things to Do: Start Arm/Manipulator Development Finish Tilt Pods (add m2 push rods) Update the BOM
Devlog 5: Aerial Manipulator Design Over the past couple of days, I completed the aerial manipulator — the robot arm — for the drone. The current design assumes the use of DYNAMIXEL XL430 and XL330 servos , though the final servo mounting is not fully finalized in CAD yet. Cool Things The arm is animated in CAD The full manipulator is now integrated into the drone assembly I designed and compared two different gripper concepts The Arm The arm uses DYNAMIXEL smart servos because they provide positional feedback and include many features that may be useful later. The current manipulator is a 4-DOF robotic arm with a gripper : Base rotation about the Z-axis Shoulder rotation about the X-axis Elbow rotation about the X-axis Wrist rotation about the X-axis Servo-driven gripper as the end effector The arm is intended to be fully 3D printed , allowing for fast iteration and easier replacement of parts if the design changes. The Gripper The bulk of the time was spent on the gripper, partly because I designed two different models: A linkage gripper A standard parallel gripper , inspired by this guide: 3D Printed Parallel Gripper for Robotic Arms Linkages… The linkage gripper was designed with compactness in mind. It used a gear-driven linkage system and was intended to use TPU fingers to grip rigid payloads. However, maintaining printing tolerances and designing around the linkage geometry made the CAD extremely messy. The mechanism had too many small pivot points, tolerance-sensitive parts, and potential failure points. Because of that, I could not justify printing and prototyping this version. The main focus of the project is not the gripper itself. The focus is on testing how the drone handles disturbances induced by arm movement and held payloads . Because of this, I need full confidence that the gripper will work reliably without spending too much project time reprinting and redesigning it. Parallel Gripper! Following the Instructables guide, I designed a simpler parallel gripper using a similar bearing, rod, and rack-and-pinion layout. This gripper uses: A 3D-printed main body Rigid 3D-printed fingers instead of TPU fingers Two identical gear racks A central pinion gear Linear rods for jaw guidance The CAD design was much simpler, and I am more confident that this version will produce reliable performance. The parallel gripper should be easier to print, easier to assemble, and easier to debug than the linkage gripper. Next Things to Do Add push/pull rods in CAD to the tilting pods Finalize internal electronics mounting Evaluate costs for plates and add weights in CAD Bias the center of gravity toward the ideal location Research and add drone motors and propellers to the BOM Add the DYNAMIXEL XL330 mount in the arm
Devlog 6: Aerial Manipulator Finalized, Tilt Pods Finished, and Frame Finished Over the past few days, I finalized the overall airframe, completed the aerial manipulator, and finished the design of the thrust-vectoring tilt pods. This was probably one of the toughest and most detailed-focus stages of the project so far (definitely stayed up super late fixing it sometimes!), prompting several redesigns to accommodate the Dynamixel XL330-M288-T servos while also standardizing hardware throughout the drone. Note: I have another CAD timelapse recorded in Lookout that I’m still trying to transfer into Stardance. General Design Updates A major focus during this stage was reducing complexity and improving ease of assembly. Standardized as many fasteners as possible across the drone. Reused hardware from previous combat robotics and robotics projects whenever practical. Organized the CAD assembly by separating self-tapping screws into dedicated PLASTITES folders while leaving machine screws in the default folders to simplify the assembly process. Landing Gear The landing gear went through two complete design iterations. The original concept used a dedicated clamp that attached independently to the carbon fiber arms. After evaluating the design, I integrated the landing gear directly into the arm end cap instead. This redesign: Reduced the total number of printed components. Increased the distance between the landing feet, improving stability. Maximizes operating space of arm. Minimized interference with the thrust-vectoring pod geometry. Each landing gear assembly consists of three printed components, including TPU feet intended to improve grip and absorb landing impacts. Tilt Pods The thrust-vectoring pods are now mechanically complete. The largest addition during this stage was designing the pushrod linkage connecting each servo horn to its corresponding tilt pod. At the moment: The linkage geometry has been finalized. The linkage components will be 3D printed and prototyped. Mechanical advantage calculations and linkage calibration still need to be completed before the CAD animation accurately reflects the pod motion. Aerial Manipulator The aerial manipulator has now been finalized. One of the largest changes was redesigning the arm to properly mount the Dynamixel XL330-M288-T servos internally instead of externally. Benefits of the redesign include: Cleaner overall appearance. More compact packaging. The servos will be mounted using the provided M2 self-tapping screws directly into the printed components. Battery Holder V2 The battery mounting system also received a significant redesign. Originally, the battery was positioned underneath the frame because I assumed lowering the center of gravity would improve stability. After learning more about quadcopter dynamics, I realized this configuration introduces a pendulum effect that complicates flight control. The updated design mounts the battery on top of the frame using a PLA battery cradle secured with four M4 machine screws and a Velcro strap. This redesign also frees the entire underside of the frame for the aerial manipulator, allowing the arm to rotate through a full 360° without the battery obstructing its workspace. Next Steps Assign materials to all CAD components and calculate the drone’s center of gravity. Finalize the complete electrical component placement within the body and wiring diagram. Characterize the thrust-vectoring linkage and determine its mechanical advantage. Begin firmware development and hardware testing routines. Write assembly documentation and build guides. Begin printing and validating mechanical prototypes.
Devlog 7: Renders, BOMs, and the Start of Software! After taking a short break from ASTRALIS to avoid burnout (and do college application stuff), I’m back to continue refining the design and begin software development. With the mechanical design mostly complete, I’ve shifted focus toward reducing costs, preparing the project for funding submission, and laying the groundwork for future testing. General Design Updates The primary goal during this stage was standardizing hardware and optimizing the Bill of Materials while preparing the project for prototyping. Standardized most fasteners around M3×8 self-threading Phillips Plastite screws to simplify assembly and reduce the variety of hardware required (hopefully to use only one small sorting box) Updated the Bill of Materials with nearly every required component. The only remaining hardware to source is the tilt pod pushrods and ball ends, which will be selected after prototyping. Reused hardware from previous combat robotics projects wherever possible to reduce overall project cost (mostly m3 and m4 fasteners). Created renders of ASTRALIS in Fusion 360 for documentation and future presentations (maker portfolios!) Finalized the electronics diagram, completing the planned electrical architecture. Beginning Software Development With the mechanical design approaching completion, I also began planning the companion software architecture that will run on my Raspberry Pi 4. The initial implementation will focus on: Establishing communication with the Pixhawk flight controller through MAVLink. Initializing the onboard camera. Developing a preliminary arm-disturbance test routine. Recording telemetry and experiment logs for later analysis. The long-term goal is to use this software as the foundation for testing disturbance rejection using the aerial manipulator. Future Plans To prepare for the hardware funding request, I’ll continue improving the design where I can while mainly directing effort towards software development. Optimize the remaining Bill of Materials. Develop the preliminary companion software. Implement a basic arm-disturbance test with automatic log generation.
Devlog 8: Aerial Manipulator Redone, BOM Revised, and ¼ of Programming Done! Across the last three days, I’ve had a realization. My project was a little too expensive for me to want to self-fund, even with the grant. I felt that I was paying too much of a premium for certain items. In addition, after a comment I got on my previous devlog (thanks @Abracadabra3 !), I realized the servo motors I was using probably wouldn’t hold enough weight to create good research data. So, to solve both of these problems (or at least reduce them), I switched from the Dynamixel XL430/XL330 ecosystem to the Waveshare ST3215 serial bus servos. Reasons to Switch Advantages Much cheaper per servo ( $20.63 vs. $27.50 ) Much cheaper power/control distribution board ( $4.99 vs. ~$40 ) Documentation is still acceptable, and CAD files are still provided (even if they’re a little janky) Significantly higher rated torque ( 1 N·m vs. 0.28 N·m ) Standardized servo motors across the entire arm (making assembly much easier) Accepted Losses Slight loss of precision (no adjustable PID/feedforward gains) I deemed this overkill for Astralis. Increased weight per servo 12 g heavier than the XL430 and 50 g heavier than the XL330 Increased current draw (slightly reducing battery life) Robotic Arm I adapted the robotic arm to be compatible with the Waveshare ST3215 servos, with an emphasis on reducing the weight of each joint. The biggest change was redesigning the base joint so that it only encloses the servo instead of mounting it off to the side. I also used more generous material pocketing throughout the design to reduce weight. I further increased the arm’s maximum reach so that it can reach the landing gear if needed. I also started doing the math on how much the arm can actually hold (currently using both a whiteboard and Excel), but I haven’t finished it yet. This isn’t a huge priority right now, as I’d like to improve the linkage system and continue working on the code first. Coding I started by creating the architecture of my codebase. I also established the basic MAVLink initialization code and built a listener that filters messages such as battery data (voltage and battery remaining) and GPS data. Files Worked On vehicle_states.py mavlink_interface.py Next Steps Finalize the tilting pod CAD and select ball end and threaded rod options Finish basic drone connectivity Write the README and submit for initial review Add all fasteners to the CAD model and clean it up for Onshape publication Calculate the maximum payload the robotic arm can carry
Devlog 9: README Finished, Screws Added, and Diagrams Finalized! This devlog will be short since most of the work involved writing and documentation. README Finished! It took me a while to stop procrastinating, sit down, and write the README.md, but it’s finally done! I gave a basic introduction to each part of ASTRALIS and explained how it works. I also added dedicated sections covering the electronics, software, and bill of materials. I also added some renders which I’ve included on this devlog. Outside of the README, I added the remaining screws to the CAD and finalized the project diagrams. Next Steps Submit the project Revise it based on feedback...
|
1792785151.7514567
|
1793389951.7514567
|
|
44928
|
Event Countdown by @yadi | Stardance
|
yadi
|
0
|
36.58
|
0
|
[]
|
[{"post_id": 45903, "ts": "202 [{"post_id": 45903, "ts": "2026-08-12T17:37:12Z", "hours": 9.8019, "text": "I built a popup when you first enter the webpage so that you can enter the API key of the places where the website fetches information from"}, {"post_id": 45295, "ts": "2026-08-11T17:38:38Z", "hours": 6.1642, "text": "I got most f it to work but the picture of the day and near earth object features are not consistent they work one time and they don’t when i reload them"}, {"post_id": 45051, "ts": "2026-08-11T09:31:59Z", "hours": 6.4956, "text": "I just can’t get the website to fetch information from the internet ,any ideas on how i can do that ,plssss"}, {"post_id": 44816, "ts": "2026-08-10T20:49:03Z", "hours": 7.3225, "text": "Almost done with the project and then all that’s left is refinement"}, {"post_id": 44201, "ts": "2026-08-09T20:08:43Z", "hours": 3.9581, "text": "Just a couple of hours and some error fixes until I’m done"}, {"post_id": 43973, "ts": "2026-08-09T13:26:44Z", "hours": 1.7, "text": "i just completed the widgets for the website and now I’m building the rest of the home page"}, {"post_id": 43911, "ts": "2026-08-09T11:10:13Z", "hours": 1.1369, "text": "I currently just started building an event countdown website and i don’t have any visuals of the website to show you yet but here is my progress till now. And i would like to know what other ideas y’all have so that i can add them later on."}]...
|
Title: Event Countdown by @yadi | Stardance
Devlo Title: Event Countdown by @yadi | Stardance
Devlogs:
I currently just started building an event countdown website and i don’t have any visuals of the website to show you yet but here is my progress till now. And i would like to know what other ideas y’all have so that i can add them later on.
i just completed the widgets for the website and now I’m building the rest of the home page
Just a couple of hours and some error fixes until I’m done
Almost done with the project and then all that’s left is refinement
I just can’t get the website to fetch information from the internet ,any ideas on how i can do that ,plssss
I got most f it to work but the picture of the day and near earth object features are not consistent they work one time and they don’t when i reload them
I built a popup when you first enter the webpage so that you can enter the API key of the places where the website fetches information from...
|
1792605041.4534714
|
1793209841.4534714
|
|
45960
|
CIE Computer Science DBML Playground by @hackyc | CIE Computer Science DBML Playground by @hackyc | Stardance...
|
hackyc
|
0
|
36.52
|
0
|
[]
|
[{"post_id": 63928, "ts": "202 [{"post_id": 63928, "ts": "2026-09-08T00:02:18Z", "hours": 1.5114, "text": "Local Flask Server FULLY DONE The project is under active development for an online version accessible to the public. It will be in the next ship. 2026-08-15 - v0.4.1 Summary Refined repository hygiene after the static migration planning work. Changed Updated root ignore rules to exclude macOS .DS_Store metadata from version control. 2026-07-22 - v0.4.0 Summary Documented the static GitHub Pages migration strategy before implementation began. Added Added github-static/implementation_plan.md describing the browser SQLite architecture, static deployment model, client-owned database persistence, API replacement map, test plan, security considerations, and GitHub Pages deployment options. 2026-07-18 - v0.3.1 Summary Adjusted the Flask development server documentation and runtime configuration for local network access. changed Updated the Flask server port configuration. Updated README run instructions to match the locally accessible development server."}, {"post_id": 50647, "ts": "2026-08-19T22:13:58Z", "hours": 10.0631, "text": "Added DML syntax for CIE. Started backend re-write for the github static page."}, {"post_id": 48507, "ts": "2026-08-16T21:42:50Z", "hours": 12.7036, "text": "Working on the github static page. This is somewhat much harder than I think, 3 hours went into relearning js… Also need the fix the UI bug where the selected category in dark mode is still black text."}, {"post_id": 47855, "ts": "2026-08-16T02:42:23Z", "hours": 5.0339, "text": "Plan written for Github Static Page. It’s so hard that I need to re-write nearly all backend logic as the processing part has to be on client-end as github pages are static only."}, {"post_id": 47331, "ts": "2026-08-15T06:39:37Z", "hours": 5.6633, "text": "Wooooooo light mode! Imported more syntax rules :P"}, {"post_id": 47154, "ts": "2026-08-14T20:45:31Z", "hours": 1.54, "text": "Base UI is working finally… SQL syntax still need to be checked to strictly only allow CIE syntax! Need to get a “Light Mode” for UI."}]...
|
Title: CIE Computer Science DBML Playground by @ha Title: CIE Computer Science DBML Playground by @hackyc | Stardance
Devlogs:
Base UI is working finally… SQL syntax still need to be checked to strictly only allow CIE syntax! Need to get a “Light Mode” for UI.
Wooooooo light mode! Imported more syntax rules :P
Plan written for Github Static Page. It’s so hard that I need to re-write nearly all backend logic as the processing part has to be on client-end as github pages are static only.
Working on the github static page. This is somewhat much harder than I think, 3 hours went into relearning js… Also need the fix the UI bug where the selected category in dark mode is still black text.
Added DML syntax for CIE. Started backend re-write for the github static page.
Local Flask Server FULLY DONE The project is under active development for an online version accessible to the public. It will be in the next ship. 2026-08-15 - v0.4.1 Summary Refined repository hygiene after the static migration planning work. Changed Updated root ignore rules to exclude macOS .DS_Store metadata from version control. 2026-07-22 - v0.4.0 Summary Documented the static GitHub Pages migration strategy before implementation began. Added Added github-static/implementation_plan.md describing the browser SQLite architecture, static deployment model, client-owned database persistence, API replacement map, test plan, security considerations, and GitHub Pages deployment options. 2026-07-18 - v0.3.1 Summary Adjusted the Flask development server documentation and runtime configuration for local network access. changed Updated the Flask server port configuration. Updated README run instructions to match the locally accessible development server....
|
1792918382.4480612
|
1793782382.4480612
|
|
143
|
Big Brother by @kingvon | Stardance
|
kingvon
|
0
|
36.51
|
0
|
[]
|
[{"post_id": 13765, "ts": "202 [{"post_id": 13765, "ts": "2026-06-22T15:49:11Z", "hours": 1.0486, "text": "Status Update in Detection so i have added other statuses in detections, which are: resolved , investigating , fase positive and i made a dropdown button component to update the status, making it was lowk creative lmao i didnt think i would be pull that off"}, {"post_id": 13717, "ts": "2026-06-22T14:14:06Z", "hours": 1.2025, "text": "Noise Filtering in Process Collector so i already had this but it was a bit stupid so i improved it, its still stupid but less stupid lol __ so right now it has bigger and more lists of stuff to ignore and it also checks for parent-child relation like kitty -> zsh and other terminals opening a shell cuz thats common, and it also ignores the processes fired by kernel for small things, and many other stuff, you check a list of stuff it ignores in lilbro/internal/collectors/processes/filter.go __ umm i dont have anyting to show as its a filtering a function i implement and wtf i am supposed to show, so have a look at this snapperd process lol"}, {"post_id": 13180, "ts": "2026-06-21T15:57:20Z", "hours": 1.1108, "text": "Containerization buzz word lmao basically i updated the docker compose files and made everything easily spin up with docker compose and that was like 20m of work, the rest was a fight between me vs pnpm security features and pyscopg2 building lmao"}, {"post_id": 13138, "ts": "2026-06-21T14:18:43Z", "hours": 0.7856, "text": "Standardized Context Fields and Timestamps so the way these two things were really messy lol in process info i had the go struct PascalCase context fields and in auth info i had snake_case context fields so i made snake_case the standard way __ and all the timestamps were timezone-naive which was really bad and there were conflicts in places, so i made all the columns timezone aware and migrated the existing tables to timestampz columns and now in frontend i am converting it to local timezone in the screenshot you can see two timestamp, one is UTC and the other is IST because i am converting it to local timezone on frontend instead of handling that stuff on backend, cuz well the agents could be hosted on any system across the globe note: the second timestamp is old, dont assume its same time just different timezones"}, {"post_id": 13052, "ts": "2026-06-21T10:42:27Z", "hours": 4.8544, "text": "Entire Rule Engine and Detection Pipeline lol big update, lemme go in chronological order what i did Bug fixes so i fixed a bug in SSH Pipeline where it was trying to send an event for EVERY journal ingestion which is not what i want because not every sshd journal log is important, so i added a check where if the log isnt about password failed or accepted then it wont ignore it. __ i also added Rule Name column in detection table which i forgot to add. Rule Engine setup so in this “setup” i made the database table and seeded it with 2 rules manually so i can make the detection functions first. ofc the two rules were the Sus Process match type rule and SSH Bruteforce threshold type rule. __ the detection engine is just the previous hardcoded one but now works with database variables, it still has the same the group by checking for threshold based rules, and for match rules i made the input be command seperated for example the values to be matched with can be nc, netcat, ncat, nmap Rule CRUD Endpoints created 5 endpoints on backend GET /rules/ - lists all rules POST /rules/ - creates rule PATCH - /rules/id - update a rule DELETE - /rules/id - delete a rule PATCH - /rules/id/toggle - toggle on a rule, small thing so made a seperate endpoint Dashboard created pages: /rules - shows rules table /rules/new - creates new rules Pending things: /rules/id page on dashboard, will do that later with rule updating feature Next: probably more types of events or config improvement, not decided."}, {"post_id": 11414, "ts": "2026-06-18T17:54:58Z", "hours": 1.8, "text": "SSH Auth Log Pipeline damn it was easier than i thought so i made the complete SSH authentication failure and success events pipeline __ what happens is the lil bro (agent) reads the systemd journal logs (yes it only supports this for now T__T) by executing the command journalctl -f -u sshd -o json --since now which basically makes it run the journalctl like tail command so it streams out the logs only when they are ingested. __ the logs are in JSON format which then gets is handled by Auth Collector in agent, which has parser functions for password failure and success then its just the normal event pipeline (create event -> send to queue -> worker sends the event to backend) after that it is displayed on dashboard next threshold based rules (first hardcoded, then proper rule table and stuff)"}, {"post_id": 10753, "ts": "2026-06-17T17:24:07Z", "hours": 3.4436, "text": "Detections lol this was fun too the entire detection pipeline so basically i started Detections work to complete the SOC pipeline (agent -> events -> detections) and since i have no rule engine setup yet so i hardcoded a Sus Process rule in detection function it bascially checks events within a time window of 30 seconds and checks their name for sus process names (which is just an array for now) and the detection function runs on a Background Scheduler every 30 seconds in backend (not agent, i dont want) and after that it stores the detection in the Detections table which stores things like: Rule Name, Triggered Events, Context, Status, etc and the end it is displayed beautifully (i love this so much T___T) on the dashboard thingys made Backend: Detection model, schemas, etc /detections/ - gives list of all detections /detections/{id} - gives the specific detection Dashboard: /detections - shows the all the detections in a table, needs more stuff like filter /detections/[id] - shows detection detail (looks REALLY good) Next see the obvious next step is a rule system to store detection rules but i wont do that, see i am planning to add 2 types of rules just like all the SOC, they are: directing matching rules and threshold based rules and i will build both at once but there is nothing yet which can be used with threshold based rules, and i dont want to edit the rule system again and again so i am planning to make authentication based events first and then work on rules, then process events can be tested with direct matching rules and authentication events can be tested with threshold based rules like SSH Brute force attack"}, {"post_id": 9987, "ts": "2026-06-16T14:57:39Z", "hours": 1.0742, "text": "Per-event info so i added a Sheet component from shadcn, which shows all the info of event like context and all the stuff not much just this, and uhhh it was a pain yeah every frontend thing is a pain."}, {"post_id": 8890, "ts": "2026-06-14T20:06:31Z", "hours": 0.8458, "text": "More Details in Process Event yeah just the title, not much tonight as i have to study so before this it was just PID and Name of process, which is useless, so i made it store this instead: type ProcessInfo struct { PID int PPID int Name string CmdLine string User string Cwd string CreateTime string } and i made the event table in dashboard show only first 2 fields in context and just say “+x more” at the end. next will be a sheet component to show the events in detail"}, {"post_id": 8343, "ts": "2026-06-13T21:25:40Z", "hours": 2.2133, "text": "Process Collector and Event Feed I’ve been waiting for this lol this is was so fun cuz i was locked the hell in okay so hear me out so in agent i made a very basic process collector which has 2 maps and every 10 seconds it updates the currProcesses map and compares it with prevProcesses the resulting differences are the process created/terminated. basic stuff. and then after that it creates an event struct and uses the event.Emit() function which just adds the event to a queue (go channel), and another function RunEventWorker() just has a loop which runs till events queue have events in them, and calls the api.SendEvent() function with the event, and that api function is very dynamic cuz the structure of event payload itself is very dynamic so all types of events can be sent from that small function and the coolest part about this whole pipeline is that it follows best practice of code, each function does only one thing, the collector just collects and emits the event, the event function only adds event to queue, then event worker runs api function with those events, everything is so organised!!! and the feed is semi-live, it just polls every 10 seconds. i REALLY had fun coding this lmao i love go :3 next: probably more processes related events or logs"}, {"post_id": 7373, "ts": "2026-06-12T09:10:49Z", "hours": 5.0419, "text": "Events endpoints and display problem i faced wow this was a pain T___T so basically when i started working on the backend to receive events from lilbro i planned something like this lil bro -> gets logs -> normalizes and understands it -> sends to backend -> dashboard displays it and i created the neccessary endpoints and database tables schemas what not bruh and halfway through i realized: “damn what about logs??” and it snapped. i realized i wasted like 2 hours on this cuz this system was absolutely trash and not afforadable on resources wise cuz we cant shove a whole detection engine in agent, and we gotta think about it from analyst side too cuz they gonna see logs for investigations and cant just depends on pre-build event types better system so then i decided to go with this kinda system: agent will see logs -> normalizes them -> sends to backend with logs and events in this kinda structure: { \"id\" : 1 , \"host\" : { \"id\" : \"\" , \"hostname\" : \"\" }, \"log\" : { \"source\" : \"\" , \"raw\" : \"\" , \"ingested_at\" : \"\" }, \"event_type\" : \"\" , \"context\" :{}, \"created_at\" : \"\" } , this would allow the backend to store the events and also the logs related, it also allows saving events with logs cuz not every event is made from a log and i think this is a nice system, cuz now we can show logs, events, and have a detection engine in backend to create alerts based on rules so to build this i created: Logs table, stores logs Events table, stores events with log ids /events/ - global event feed POST /agents/id/event - endpoint for agents to send events and on the dashboard side i have made /events which displays all events from all hosts in a table, it also has a filter for selecting hosts and/or event types, and also a limit. next next i will be working on sending events from lil bro"}, {"post_id": 5085, "ts": "2026-06-08T19:29:37Z", "hours": 1.5992, "text": "Agents details page so added /agents/[id] in dashboard, which required the same in backend too so i created the /{id} route in backend annd did the SQL magic to get the data, and also moved the schemas into their own folder cuz it was looking hella messy. i am using basic cards in displaying agents data, the top cards are mock data for now but soon i will addd real data in them, currently it looks like this."}, {"post_id": 4846, "ts": "2026-06-08T11:39:46Z", "hours": 1.3797, "text": "Agents Table so i made /agents and it displays the online agents in a nice table! i used the shadcn table component to make that, it fetches /agents/ on backend every 10 seconds and gets the data ofc handling with the goat tanstack query. one stupid thing i encountered was the fact that i was not handling the agent status in backend properly, once it turned online it forever stays online so i went to work on that first and found out that its lowk not a good idea to update and store the online/offline status on database, better way would be to just use last_seen and check if the agent’s last heartbeat was more than 2 minutes ago, if thats true just make the json data display “offline” in /agents endpoint, ez. i will ofc add more status types so i will handle it in a better way, but thats in future. and one more stupid thing i came across, and boy call me an idiot cuz i was PULLING my hair trying to figure out why the table wont update even after the backend endpoint is giving correct status, i thought so many things like cache and shit 😭️ and after like 20 minutes i saw that instead of refetch_interval: 10000 which is 10 seconds, i accidently made a typo and set it to 100000 which is 100 seconds 😭️ well it works now, and works good. next: event storage setup probably?"}, {"post_id": 4395, "ts": "2026-06-07T18:31:31Z", "hours": 1.0978, "text": "Counting Agents so time to show real data on dashboard first i installed tanstack cuz i am not going to fetch everywhere the same data, tanstack query will fetch, cache, store, refetch and handle all that, its a server state management lib. so using tanstack i created the neccessary functions for it to query the server and created the dashboard card component which will display the number of agent. i am also using shadcn skeleton to show the loading part. here’s how the cards look next: agent table"}, {"post_id": 4217, "ts": "2026-06-07T13:31:38Z", "hours": 3.1961, "text": "Woah hella changes Dashboard shell: first version so i made this as first version, took a lot of time cuz i am super trash in frontend, like SUPER trash and i didnt wanted to use AI on it. so after more than a whole hour i completed the first version. it was so hard to make the collapsing thingy work because the style will always mess up and wont go properly inside when clicked on collapsed button. after a shit ton of effort it looked okay and was done. the first image is how the first version looked Dashboard shell: final version after showing my friend and he gave it 2/10, and it trigged my seeking perfection self 💔️ and friend suggested tweakcn for shadcn colors and told me to use sidebar 8 of shadcn sidebar (i didnt even know sidebars existed in shadcn lmao) so i used that and hella time on that too cuz it was still complicated a bit, shadcn gave so many files i was lowk confused which type of nav to use for what things, but at the end it worked and looks beautiful and better! second image is the current one! Other minor changes added cors and stuff in backend so it allows request from dashboard, its just localhost for now but will have to find a permanent solution to that next thing i will do is display the lil bros info"}, {"post_id": 1391, "ts": "2026-06-03T12:16:57Z", "hours": 1.1761, "text": "heartbeats 💓 now the lil bro (agent) can send heartbeats! wow so i am new to go and just discovering the beautiful package based folder structure, makes a lot of sense! so i made a function to send api request to, a function to construct heartbeat by getting system info and UUID is passed from GetConfig() function, and a function to get sys info which includes hostname, os name, and kernel version at first i thought of adding os version instead but getting os version was kinda a pain so i just switched it to kernel version, might add os version later image 1: heartbeats being sent image 2: data from postgres, you can see the registered_at vs last_seen (which gets updated from heartbeats)"}, {"post_id": 952, "ts": "2026-06-02T18:35:42Z", "hours": 1.0694, "text": "GO GO LIL BRO making the lil bro (agent) with go! so i setup the go environment, i am actually a beginner in go lol i am using this project as an excuse to learn go :3 so i wrote some basic code in main.go to get started, and made internals/config.go which has 3 functions EnsureConfig() , CreateConfig() , and GetConfig() , when the code runs it checks with ensure function and creates new config if not found in ~/.config/lilbro/config.json . and Get config is just get config lol, using simple json marshalling with go the screenshot shows the config file that got saved"}, {"post_id": 771, "ts": "2026-06-02T13:09:57Z", "hours": 1.1258, "text": "Heartbeats on backend! so the lilbros (agents) will send heartbeats every few minutes and to handle that i first made a /register endpoint where the agents will first register and then start sending hearbeats but then thought that agents will also restart and i will have to treat their registration attempt as heartbeat, so there a thin line between /register and /heartbeat so i just merged them into /heartbeat lol so now agent generates a UUID locally and sends it along side other metadata about the system to backend, and backend checks if the agent exists then it just updates the last_seen in database and other metadata and if it doesnt then it creates a new agent, simple as hell again, dont have much to show right now as no UI lol"}, {"post_id": 438, "ts": "2026-06-01T20:54:14Z", "hours": 0.7908, "text": "Switched to SQLAlchemy from psycopg hi i am back did it because i started working on /agents/registration endpoint but the psycopg.connect(…) bla bla looked hella weird everywhere so i just ragequit and installed SQLAlchemy, then made the models (only agent table for now) and setup a simple function get_db() to get a quick db session, fixed my problem ezzz not using alembic rn tho, will do in future i dont have anything to show so i will just show this ig?"}, {"post_id": 398, "ts": "2026-06-01T19:41:40Z", "hours": 1.6497, "text": "HIIIIII, first dev log! so i started working on the docker setup first so i can spin up a postgres container, so i wrote a docker compose file, also had some problems cuz postgres-18 wouldnt take the /var/lib/bla/bla path, that was a small issue tho fixed that quick. then i started working on the connection part so i used psycopg on python backend to connect to my pgsql container after that i had to make tables, which took the most time lmao cuz it was hard to decide how should i do it, first i thought i should use SQLAlchemy and the whole database migration setup but that felt too much for now, so i went the usual way using psycopg and decided to create tables using CREATE TABLE IF NOT EXISTS , even with that my dumb ahh spent time making sure if i wrote the init_db() function the best way lmao, but at the end it worked nice and created the table after that i just setup fastapi and created / endpoint which just returns “hello fellas :3”"}]...
|
Title: Big Brother by @kingvon | Stardance
Devlog Title: Big Brother by @kingvon | Stardance
Devlogs:
HIIIIII, first dev log! so i started working on the docker setup first so i can spin up a postgres container, so i wrote a docker compose file, also had some problems cuz postgres-18 wouldnt take the /var/lib/bla/bla path, that was a small issue tho fixed that quick. then i started working on the connection part so i used psycopg on python backend to connect to my pgsql container after that i had to make tables, which took the most time lmao cuz it was hard to decide how should i do it, first i thought i should use SQLAlchemy and the whole database migration setup but that felt too much for now, so i went the usual way using psycopg and decided to create tables using CREATE TABLE IF NOT EXISTS , even with that my dumb ahh spent time making sure if i wrote the init_db() function the best way lmao, but at the end it worked nice and created the table after that i just setup fastapi and created / endpoint which just returns “hello fellas :3”
Switched to SQLAlchemy from psycopg hi i am back did it because i started working on /agents/registration endpoint but the psycopg.connect(…) bla bla looked hella weird everywhere so i just ragequit and installed SQLAlchemy, then made the models (only agent table for now) and setup a simple function get_db() to get a quick db session, fixed my problem ezzz not using alembic rn tho, will do in future i dont have anything to show so i will just show this ig?
Heartbeats on backend! so the lilbros (agents) will send heartbeats every few minutes and to handle that i first made a /register endpoint where the agents will first register and then start sending hearbeats but then thought that agents will also restart and i will have to treat their registration attempt as heartbeat, so there a thin line between /register and /heartbeat so i just merged them into /heartbeat lol so now agent generates a UUID locally and sends it along side other metadata about the system to backend, and backend checks if the agent exists then it just updates the last_seen in database and other metadata and if it doesnt then it creates a new agent, simple as hell again, dont have much to show right now as no UI lol
GO GO LIL BRO making the lil bro (agent) with go! so i setup the go environment, i am actually a beginner in go lol i am using this project as an excuse to learn go :3 so i wrote some basic code in main.go to get started, and made internals/config.go which has 3 functions EnsureConfig() , CreateConfig() , and GetConfig() , when the code runs it checks with ensure function and creates new config if not found in ~/.config/lilbro/config.json . and Get config is just get config lol, using simple json marshalling with go the screenshot shows the config file that got saved
heartbeats 💓 now the lil bro (agent) can send heartbeats! wow so i am new to go and just discovering the beautiful package based folder structure, makes a lot of sense! so i made a function to send api request to, a function to construct heartbeat by getting system info and UUID is passed from GetConfig() function, and a function to get sys info which includes hostname, os name, and kernel version at first i thought of adding os version instead but getting os version was kinda a pain so i just switched it to kernel version, might add os version later image 1: heartbeats being sent image 2: data from postgres, you can see the registered_at vs last_seen (which gets updated from heartbeats)
Woah hella changes Dashboard shell: first version so i made this as first version, took a lot of time cuz i am super trash in frontend, like SUPER trash and i didnt wanted to use AI on it. so after more than a whole hour i completed the first version. it was so hard to make the collapsing thingy work because the style will always mess up and wont go properly inside when clicked on collapsed button. after a shit ton of effort it looked okay and was done. the first image is how the first version looked Dashboard shell: final version after showing my friend and he gave it 2/10, and it trigged my seeking perfection self 💔️ and friend suggested tweakcn for shadcn colors and told me to use sidebar 8 of shadcn sidebar (i didnt even know sidebars existed in shadcn lmao) so i used that and hella time on that too cuz it was still complicated a bit, shadcn gave so many files i was lowk confused which type of nav to use for what things, but at the end it worked and looks beautiful and better! second image is the current one! Other minor changes added cors and stuff in backend so it allows request from dashboard, its just localhost for now but will have to find a permanent solution to that next thing i will do is display the lil bros info
Counting Agents so time to show real data on dashboard first i installed tanstack cuz i am not going to fetch everywhere the same data, tanstack query will fetch, cache, store, refetch and handle all that, its a server state management lib. so using tanstack i created the neccessary functions for it to query the server and created the dashboard card component which will display the number of agent. i am also using shadcn skeleton to show the loading part. here’s how the cards look next: agent table
Agents Table so i made /agents and it displays the online agents in a nice table! i used the shadcn table component to make that, it fetches /agents/ on backend every 10 seconds and gets the data ofc handling with the goat tanstack query. one stupid thing i encountered was the fact that i was not handling the agent status in backend properly, once it turned online it forever stays online so i went to work on that first and found out that its lowk not a good idea to update and store the online/offline status on database, better way would be to just use last_seen and check if the agent’s last heartbeat was more than 2 minutes ago, if thats true just make the json data display “offline” in /agents endpoint, ez. i will ofc add more status types so i will handle it in a better way, but thats in future. and one more stupid thing i came across, and boy call me an idiot cuz i was PULLING my hair trying to figure out why the table wont update even after the backend endpoint is giving correct status, i thought so many things like cache and shit 😭️ and after like 20 minutes i saw that instead of refetch_interval: 10000 which is 10 seconds, i accidently made a typo and set it to 100000 which is 100 seconds 😭️ well it works now, and works good. next: event storage setup probably?
Agents details page so added /agents/[id] in dashboard, which required the same in backend too so i created the /{id} route in backend annd did the SQL magic to get the data, and also moved the schemas into their own folder cuz it was looking hella messy. i am using basic cards in displaying agents data, the top cards are mock data for now but soon i will addd real data in them, currently it looks like this.
Events endpoints and display problem i faced wow this was a pain T___T so basically when i started working on the backend to receive events from lilbro i planned something like this lil bro -> gets logs -> normalizes and understands it -> sends to backend -> dashboard displays it and i created the neccessary endpoints and database tables schemas what not bruh and halfway through i realized: “damn what about logs??” and it snapped. i realized i wasted like 2 hours on this cuz this system was absolutely trash and not afforadable on resources wise cuz we cant shove a whole detection engine in agent, and we gotta think about it from analyst side too cuz they gonna see logs for investigations and cant just depends on pre-build event types better system so then i decided to go with this kinda system: agent will see logs -> normalizes them -> sends to backend with logs and events in this kinda structure: { "id" : 1 , "host" : { "id" : "" , "hostname" : "" }, "log" : { "source" : "" , "raw" : "" , "ingested_at" : "" }, "event_type" : "" , "context" :{}, "created_at" : "" } , this would allow the backend to store the events and also the logs related, it also allows saving events with logs cuz not every event is made from a log and i think this is a nice system, cuz now we can show logs, events, and have a detection engine in backend to create alerts based on rules so to build this i created: Logs table, stores logs Events table, stores events with log ids /events/ - global event feed POST /agents/id/event - endpoint for agents to send events and on the dashboard side i have made /events which displays all events from all hosts in a table, it also has a filter for selecting hosts and/or event types, and also a limit. next next i will be working on sending events from lil bro
Process Collector and Event Feed I’ve been waiting for this lol this is was so fun cuz i was locked the hell in okay so hear me out so in agent i made a very basic process collector which has 2 maps and every 10 seconds it updates the currProcesses map and compares it with prevProcesses the resulting differences are the process created/terminated. basic stuff. and then after that it creates an event struct and uses the event.Emit() function which just adds the event to a queue (go channel), and another function RunEventWorker() just has a loop which runs till events queue have events in them, and calls the api.SendEvent() function with the event, and that api function is very dynamic cuz the structure of event payload itself is very dynamic so all types of events can be sent from that small function and the coolest part about this whole pipeline is that it follows best practice of code, each function does only one thing, the collector just collects and emits the event, the event function only adds event to queue, then event worker runs api function with those events, everything is so organised!!! and the feed is semi-live, it just polls every 10 seconds. i REALLY had fun coding this lmao i love go :3 next: probably more processes related events or logs
More Details in Process Event yeah just the title, not much tonight as i have to study so before this it was just PID and Name of process, which is useless, so i made it store this instead: type ProcessInfo struct { PID int PPID int Name string CmdLine string User string Cwd string CreateTime string } and i made the event table in dashboard show only first 2 fields in context and just say “+x more” at the end. next will be a sheet component to show the events in detail
Per-event info so i added a Sheet component from shadcn, which shows all the info of event like context and all the stuff not much just this, and uhhh it was a pain yeah every frontend thing is a pain.
Detections lol this was fun too the entire detection pipeline so basically i started Detections work to complete the SOC pipeline (agent -> events -> detections) and since i have no rule engine setup yet so i hardcoded a Sus Process rule in detection function it bascially checks events within a time window of 30 seconds and checks their name for sus process names (which is just an array for now) and the detection function runs on a Background Scheduler every 30 seconds in backend (not agent, i dont want) and after that it stores the detection in the Detections table which stores things like: Rule Name, Triggered Events, Context, Status, etc and the end it is displayed beautifully (i love this so much T___T) on the dashboard thingys made Backend: Detection model, schemas, etc /detections/ - gives list of all detections /detections/{id} - gives the specific detection Dashboard: /detections - shows the all the detections in a table, needs more stuff like filter /detections/[id] - shows detection detail (looks REALLY good) Next see the obvious next step is a rule system to store detection rules but i wont do that, see i am planning to add 2 types of rules just like all the SOC, they are: directing matching rules and threshold based rules and i will build both at once but there is nothing yet which can be used with threshold based rules, and i dont want to edit the rule system again and again so i am planning to make authentication based events first and then work on rules, then process events can be tested with direct matching rules and authentication events can be tested with threshold based rules like SSH Brute force attack
SSH Auth Log Pipeline damn it was easier than i thought so i made the complete SSH authentication failure and success events pipeline __ what happens is the lil bro (agent) reads the systemd journal logs (yes it only supports this for now T__T) by executing the command journalctl -f -u sshd -o json --since now which basically makes it run the journalctl like tail command so it streams out the logs only when they are ingested. __ the logs are in JSON format which then gets is handled by Auth Collector in agent, which has parser functions for password failure and success then its just the normal event pipeline (create event -> send to queue -> worker sends the event to backend) after that it is displayed on dashboard next threshold based rules (first hardcoded, then proper rule table and stuff)
Entire Rule Engine and Detection Pipeline lol big update, lemme go in chronological order what i did Bug fixes so i fixed a bug in SSH Pipeline where it was trying to send an event for EVERY journal ingestion which is not what i want because not every sshd journal log is important, so i added a check where if the log isnt about password failed or accepted then it wont ignore it. __ i also added Rule Name column in detection table which i forgot to add. Rule Engine setup so in this “setup” i made the database table and seeded it with 2 rules manually so i can make the detection functions first. ofc the two rules were the Sus Process match type rule and SSH Bruteforce threshold type rule. __ the detection engine is just the previous hardcoded one but now works with database variables, it still has the same the group by checking for threshold based rules, and for match rules i made the input be command seperated for example the values to be matched with can be nc, netcat, ncat, nmap Rule CRUD Endpoints created 5 endpoints on backend GET /rules/ - lists all rules POST /rules/ - creates rule PATCH - /rules/id - update a rule DELETE - /rules/id - delete a rule PATCH - /rules/id/toggle - toggle on a rule, small thing so made a seperate endpoint Dashboard created pages: /rules - shows rules table /rules/new - creates new rules Pending things: /rules/id page on dashboard, will do that later with rule updating feature Next: probably more types of events or config improvement, not decided.
Standardized Context Fields and Timestamps so the way these two things were really messy lol in process info i had the go struct PascalCase context fields and in auth info i had snake_case context fields so i made snake_case the standard way __ and all the timestamps were timezone-naive which was really bad and there were conflicts in places, so i made all the columns timezone aware and migrated the existing tables to timestampz columns and now in frontend i am converting it to local timezone in the screenshot you can see two timestamp, one is UTC and the other is IST because i am converting it to local timezone on frontend instead of handling that stuff on backend, cuz well the agents could be hosted on any system across the globe note: the second timestamp is old, dont assume its same time just different timezones
Containerization buzz word lmao basically i updated the docker compose files and made everything easily spin up with docker compose and that was like 20m of work, the rest was a fight between me vs pnpm security features and pyscopg2 building lmao
Noise Filtering in Process Collector so i already had this but it was a bit stupid so i improved it, its still stupid but less stupid lol __ so right now it has bigger and more lists of stuff to ignore and it also checks for parent-child relation like kitty -> zsh and other terminals opening a shell cuz thats common, and it also ignores the processes fired by kernel for small things, and many other stuff, you check a list of stuff it ignores in lilbro/internal/collectors/processes/filter.go __ umm i dont have anyting to show as its a filtering a function i implement and wtf i am supposed to show, so have a look at this snapperd process lol
Status Update in Detection so i have added other statuses in detections, which are: resolved , investigating , fase positive and i made a dropdown button component to update the status, making it was lowk creative lmao i didnt think i would be pull that off...
|
1792641237.9594507
|
1793246037.9594507
|
|
19361
|
My MIDI Controller! by @arfet | Stardance
|
arfet
|
0
|
36.5
|
0
|
[]
|
[{"post_id": 55977, "ts": "202 [{"post_id": 55977, "ts": "2024-10-04T00:00:00Z", "hours": 1.5, "text": "I finished my overall chassis! Ensured that m3 screws will work, and checked clearances for the components, made the USB hole for the Pico as well. Separated the top and bottom for printing ease"}, {"post_id": 55945, "ts": "2024-10-04T00:00:00Z", "hours": 0.25, "text": "Realized I forgot to make a gap for the potentiometer lol, so I just added it"}, {"post_id": 55944, "ts": "2024-10-04T00:00:00Z", "hours": 1.5, "text": "I finished my overall chassis! Ensured that m3 screws will work, and checked clearances for the components, made the USB hole for the Pico as well. Separated the top and bottom for printing ease"}, {"post_id": 55943, "ts": "2024-10-04T00:00:00Z", "hours": 2.0, "text": "I worked on the top plate, kept it at a height of 1.5mm since thats the standard for keyboards, also made holes for the jumpers and encoders"}, {"post_id": 55978, "ts": "2024-10-04T00:00:00Z", "hours": 0.25, "text": "Realized I forgot to make a gap for the potentiometer lol, so I just added it"}, {"post_id": 55976, "ts": "2024-10-04T00:00:00Z", "hours": 2.0, "text": "I worked on the top plate, kept it at a height of 1.5mm since thats the standard for keyboards, also made holes for the jumpers and encoders"}, {"post_id": 55942, "ts": "2024-10-03T00:00:00Z", "hours": 2.75, "text": "I continued to work on some CAD for the chassis, I added internal supports, some keyswitches for refererence, and some barriers on the side."}, {"post_id": 55975, "ts": "2024-10-03T00:00:00Z", "hours": 2.75, "text": "I continued to work on some CAD for the chassis, I added internal supports, some keyswitches for refererence, and some barriers on the side."}, {"post_id": 55974, "ts": "2024-10-02T00:00:00Z", "hours": 2.0, "text": "I routed my PCB, I kept it simple with an autorouter. I also decided to work on my chassis after, to keep it simple, I just used TinkerCad. I added my PCB as a .stl file and started working on the base"}, {"post_id": 55941, "ts": "2024-10-02T00:00:00Z", "hours": 2.0, "text": "I routed my PCB, I kept it simple with an autorouter. I also decided to work on my chassis after, to keep it simple, I just used TinkerCad. I added my PCB as a .stl file and started working on the base"}, {"post_id": 55940, "ts": "2024-10-01T00:00:00Z", "hours": 1.75, "text": "I finally converted to a PCB and arranged my parts"}, {"post_id": 55939, "ts": "2024-10-01T00:00:00Z", "hours": 1.5, "text": "I had to refine my schematics and footprints for my I2S DAC, so I updated them and cross checked the correct pins"}, {"post_id": 55973, "ts": "2024-10-01T00:00:00Z", "hours": 1.75, "text": "I finally converted to a PCB and arranged my parts"}, {"post_id": 55972, "ts": "2024-10-01T00:00:00Z", "hours": 1.5, "text": "I had to refine my schematics and footprints for my I2S DAC, so I updated them and cross checked the correct pins"}, {"post_id": 55938, "ts": "2024-09-30T00:00:00Z", "hours": 1.0, "text": "I made the footprint of the I2S DAC module, I efficiently used the .brd file, imported it into kicad, then copied the footprint over."}, {"post_id": 55971, "ts": "2024-09-30T00:00:00Z", "hours": 1.0, "text": "I made the footprint of the I2S DAC module, I efficiently used the .brd file, imported it into kicad, then copied the footprint over."}, {"post_id": 55937, "ts": "2024-09-29T00:00:00Z", "hours": 2.0, "text": "After some reasearch, I figured out that I needed more ADC pins, so I looked into another breakout board and came across the ADS1015, I then implemented it, and found a footprint online that I could use. After that, I made a simple linear slide potentiometer footprint, and found a 7.5mm one on Adafruit, I then connected it to the ADS breakout board."}, {"post_id": 55970, "ts": "2024-09-29T00:00:00Z", "hours": 2.0, "text": "After some reasearch, I figured out that I needed more ADC pins, so I looked into another breakout board and came across the ADS1015, I then implemented it, and found a footprint online that I could use. After that, I made a simple linear slide potentiometer footprint, and found a 7.5mm one on Adafruit, I then connected it to the ADS breakout board."}, {"post_id": 56146, "ts": "2024-09-29T00:00:00Z", "hours": 1.0, "text": "To finish off, I got my work checked over, fixed an issue with the switches, and then did some organizing. This was my final BASE schematic. I am hoping to add a slide, potentiometer later on and customize it to my liking."}, {"post_id": 56145, "ts": "2024-09-27T00:00:00Z", "hours": 2.0, "text": "I then proceeded to add on the SD card and LCD screen, I decided to stick with the guide here, because I am new. The LCD was pretty easy to add, but I had to ask some questions regarding the SD card because there wasn’t a full screenshot for it. In the end I got it working though."}, {"post_id": 56144, "ts": "2024-09-26T00:00:00Z", "hours": 2.0, "text": "After I made my rows, I started to work and learn about rotary encoders, initially, I had made a 6x6 matrix, but I realized that I only need a 4x5 matrix, and I leave the other 2 rows for my rotary encoders. It took me a while to figure it out, because I was new to making schematics, but I luckily got some help on the slack, and then made a schematic like so:"}, {"post_id": 56143, "ts": "2024-09-24T00:00:00Z", "hours": 2.0, "text": "I started by looking at the mini MIDI magic guide. Alognside that I also installed KiCad and started to learn how it works. I also learned about the switch matrix system, and decided to implement that in my project. Initially, I was confused about the switch matrix and what it meant, but I figured it out and got started by making 4 rows like this"}]...
|
Title: My MIDI Controller! by @arfet | Stardance
Title: My MIDI Controller! by @arfet | Stardance
Devlogs:
I started by looking at the mini MIDI magic guide. Alognside that I also installed KiCad and started to learn how it works. I also learned about the switch matrix system, and decided to implement that in my project. Initially, I was confused about the switch matrix and what it meant, but I figured it out and got started by making 4 rows like this
After I made my rows, I started to work and learn about rotary encoders, initially, I had made a 6x6 matrix, but I realized that I only need a 4x5 matrix, and I leave the other 2 rows for my rotary encoders. It took me a while to figure it out, because I was new to making schematics, but I luckily got some help on the slack, and then made a schematic like so:
I then proceeded to add on the SD card and LCD screen, I decided to stick with the guide here, because I am new. The LCD was pretty easy to add, but I had to ask some questions regarding the SD card because there wasn’t a full screenshot for it. In the end I got it working though.
To finish off, I got my work checked over, fixed an issue with the switches, and then did some organizing. This was my final BASE schematic. I am hoping to add a slide, potentiometer later on and customize it to my liking.
After some reasearch, I figured out that I needed more ADC pins, so I looked into another breakout board and came across the ADS1015, I then implemented it, and found a footprint online that I could use. After that, I made a simple linear slide potentiometer footprint, and found a 7.5mm one on Adafruit, I then connected it to the ADS breakout board.
After some reasearch, I figured out that I needed more ADC pins, so I looked into another breakout board and came across the ADS1015, I then implemented it, and found a footprint online that I could use. After that, I made a simple linear slide potentiometer footprint, and found a 7.5mm one on Adafruit, I then connected it to the ADS breakout board.
I made the footprint of the I2S DAC module, I efficiently used the .brd file, imported it into kicad, then copied the footprint over.
I made the footprint of the I2S DAC module, I efficiently used the .brd file, imported it into kicad, then copied the footprint over.
I had to refine my schematics and footprints for my I2S DAC, so I updated them and cross checked the correct pins
I finally converted to a PCB and arranged my parts
I had to refine my schematics and footprints for my I2S DAC, so I updated them and cross checked the correct pins
I finally converted to a PCB and arranged my parts
I routed my PCB, I kept it simple with an autorouter. I also decided to work on my chassis after, to keep it simple, I just used TinkerCad. I added my PCB as a .stl file and started working on the base
I routed my PCB, I kept it simple with an autorouter. I also decided to work on my chassis after, to keep it simple, I just used TinkerCad. I added my PCB as a .stl file and started working on the base
I continued to work on some CAD for the chassis, I added internal supports, some keyswitches for refererence, and some barriers on the side.
I continued to work on some CAD for the chassis, I added internal supports, some keyswitches for refererence, and some barriers on the side.
I worked on the top plate, kept it at a height of 1.5mm since thats the standard for keyboards, also made holes for the jumpers and encoders
Realized I forgot to make a gap for the potentiometer lol, so I just added it
I worked on the top plate, kept it at a height of 1.5mm since thats the standard for keyboards, also made holes for the jumpers and encoders
I finished my overall chassis! Ensured that m3 screws will work, and checked clearances for the components, made the USB hole for the Pico as well. Separated the top and bottom for printing ease
Realized I forgot to make a gap for the potentiometer lol, so I just added it
I finished my overall chassis! Ensured that m3 screws will work, and checked clearances for the components, made the USB hole for the Pico as well. Separated the top and bottom for printing ease...
|
1792694920.138642
|
1793299720.138642
|
|
58464
|
atomic by @ttyChud | Stardance
|
ttyChud
|
0
|
36.45
|
0
|
[]
|
[{"post_id": 65584, "ts": "202 [{"post_id": 65584, "ts": "2026-09-10T20:25:58Z", "hours": 7.5739, "text": "atomic Devlog #6: the atom stops lying and starts solving itself Since last time i added a whole layer: fine structure, real spectral lines, a hot-gas version, and Hartree-Fock — the atom now solves its own electrons. Change 1: real levels. The clean Bohr ladder hides structure, so i added five closed-form refinements: fine structure, Dirac (which shows 2s1/2=2p1/2 exactly — reality splits them with the Lamb shift, and the model admits it), Zeeman’s full Breit-Rabi crossover, Stark, and the hyperfine 21 cm line. Each carries its own trust tier. Change 2: line strengths. I compute the dipole integral, then oscillator strength, Einstein A and lifetimes, and check everything against vendored NIST wavelengths (never live). The silent killer: both states in a transition must share one grid, so a test feeds a pair whose natural boxes differ. Change 3: it’s a gas now. Boltzmann + Saha populations, Gaussian/Lorentzian/Voigt profiles, optical depth, transfer I=B(1-e^-tau), and the curve of growth. Where a choice is a choice (plasma level truncation), it’s tagged MODEL. Change 4: Hartree-Fock. GSZ was a fitted model — no sulfur or chlorine, double-counted energy, unsigned error. HF is variational, so E_HF >= E_exact: a bounded, one-signed error the provenance can state. Slater integrals, angular coefficients pinned four ways, matrix-free LOBPCG for the non-local exchange, three independent energy checks. Payoff: Li->P, plus sulfur and chlorine — atoms GSZ couldn’t do. Result: 888 Python + 179 frontend tests green. Next: counterfactual electrons and HF 3D clouds."}, {"post_id": 65048, "ts": "2026-09-09T21:38:28Z", "hours": 8.0586, "text": "atomic Devlog #5: breaking physics on purpose, then adding real atoms Two big landings since last time: the What-If labs (altered constants, custom force laws, classical ghosts) and screened multi-electron atoms all the way from engine to UI. 359 tests green. You can now break the laws of physics Five sliders over the raw constants of nature — double the electron charge, quadruple vacuum permittivity, watch alpha, the Bohr radius and binding energy refuse to move. That degeneracy is the whole lesson: only dimensionless combinations are observable. Next to it, force-law presets (power law, Yukawa, harmonic, finite well, Coulomb-plus-core) plus a type-your-own V(r) box with a whitelist parser and a trust gate that flags unconverged levels instead of silently serving them. And the classical ghost: what Newton predicts for hydrogen, a spiral into the nucleus in picoseconds, which quantum mechanics forbids. That refusal is the point. Real multi-electron atoms GSZ screened model with honest transcribed parameters for 15 elements, self-consistent-solver-free but validated against ionization data. Monte-Carlo cloud sampling with KS-tested distributions, y=0 plane cross-sections, screened levels and radial endpoints on the API, atom picker entries and an occupancy ladder in the UI. Sulfur and chlorine get a named refusal instead of invented numbers — no fitted parameters exist for them, so the server says exactly that."}, {"post_id": 64197, "ts": "2026-09-08T12:55:37Z", "hours": 8.1053, "text": "atomic Devlog #3: solver, server, and the web instrument Three phases landed since last time: the numerical solver, the FastAPI backend, and the React + Three.js frontend. 193 backend tests and 48 frontend tests green, everything pushed. Change 1: numerical radial solver Built a 3-point finite-difference solver for arbitrary central potentials, plus a grid-halving error estimator. Validated against the exact hydrogen answers: energies match, 1s overlap > 0.99999, convergence measures exactly 2.00 across all cases. Two of my own test assertions were wrong along the way (forgot reduced mass in the expected energy, grid too coarse for the normalization check) — the engine was right both times. Change 2: FastAPI backend atomic serve now runs a real server: health, systems, state, levels, radial endpoints, plus background jobs (cloud sampling, plane cross-sections) with websocket progress and binary data channels. Sampling is honest inverse-transform Monte Carlo of |psi|². Also fixed a URL-encoding bug where the he+ key decoded as “he “ and got refused everywhere — verified against the live server. Change 3: web instrument Full frontend: orbitable 3D point clouds with density/phase coloring, y=0 plane canvas views, clickable energy ladders, radial R/P plots with node marks and mean-radius markers, shareable URLs for every state, zustand store underneath. Production build splits Three.js into a lazy chunk; the server mounts the built UI directly."}, {"post_id": 63080, "ts": "2026-09-06T17:50:33Z", "hours": 6.7197, "text": "atomic Devlog #2: exact hydrogen engine + systems registry I had two goals in my mind in this session. One was to build the exact hydrogen-like physics engine and the other is to add a systems registry plus the element tables. Here is what and how I implemented this stuff and the challenges i faced: Change/Problem 1: Before I even got started on the new stuff i wanted to add, i faced a big problem. The moment i wired the new physics into last session’s spine, 4 tests instantly failed. My Field type (the container every array result travels in) demanded its grid be strictly increasing, but wavefunction sampling evaluates on scattered, unsorted points, so every single evaluation got rejected with a ValueError. The fix: It is important to know what a Field actually is here. It’s not a mesh — it’s just samples of a function on a set of points, plus the provenance saying how they were computed. Sorted-ness is a quadrature concern and belongs to the mesh module, not the container. So i dropped just the ordering rule and kept the finite/shape guards, then added a regression test pinning the decision so nobody re-adds it later and silently breaks everything again. Change 2: hydrogen engine implementation I implemented the exact closed-form hydrogen-like solutions, all in Hartree atomic units. The energy is E_n = −mu_ratio · Z² / (2n²), and the trick that makes it powerful is the reduced-mass ratio mu/m_e sitting right in the formula — deuterium, tritium, muonic hydrogen and positronium all fall out of the same code just by changing that one number. The radial functions use the normalized generalized-Laguerre form R_nl = N · exp(−ρ/2) · ρ^l · L(ρ) with ρ = 2Zμ′r/n, and mean radii come from = (3n² − l(l+1)) / (2Zμ′). I checked the 1s case by hand: = 1.5 bohr, exactly like the textbooks say. Change 3: angular bases + systems + proof I implemented both angular bases as first-class outputs: complex spherical harmonics (with the Condon-Shortley phase, so Y_1^1 has a negative real part at phi=0) and real chemistry orbitals (p_x, p_y, d_xy and friends with proper orientation). On top of that sits the systems registry — H, D, T, muonic hydrogen, positronium, He+, plus a generic hydrogen_like(Z) — each carrying CODATA-cited reduced masses and honest nuclear radii (positronium gets None instead of a fake zero, because its “nucleus” is a point positron). The last batch of work was the proof: 139 tests green. Normalization, orthogonality, node counts coming out as exactly n−l−1 every time, angular orthonormality up to l=3 in both bases. Nothing’s shipped anywhere yet though — next is Phase 2, the numerical solver, validated against these exact answers. That’s the first real solver-vs-truth showdown."}, {"post_id": 62261, "ts": "2026-09-05T15:27:04Z", "hours": 5.99, "text": "atomic Devlog #1: foundation is done, the atom has a spine i just kick started a new project called atomic, and the aim is kinda crazy: a quantum-mechanical atom model that never quietly lies about its physics. every number that crosses a module boundary carries a record of how it was computed and how far it can be trusted, with tiers going from EXACT (closed-form) all the way to COUNTERFACTUAL (deliberately altered physics, computed rigorously). i’ve got the whole thing mapped out as a 15-phase plan. today was all about Phase 0: the foundation. no physics yet, just the spine everything else will stand on. Change 1: environment setup (this fought me) my machine had no conda, no pip, no uv, nothing. just bare python 3.14. i almost gave up and then found out python ships with ensurepip, so i bootstrapped a venv with python3 -m venv .venv and pip-installed numpy, scipy, pytest and ruff into it. worked first try after that. lesson learned: check ensurepip before panicking. Change 2: the provenance spine + constants + mesh i scaffolded the actual package: provenance.py (the fidelity tiers plus the Quantity and Field types that carry them), constants.py (CODATA values with a counterfactual-universe hook for the future What-If lab, where you’ll be able to mess with constants like e and watch what breaks), and numerics/mesh.py (uniform + exponential radial meshes with a ghost-node fix at the inner wall, since an exponential mesh can’t reach the origin). getting the discretization right now means every solver later stands on solid ground. Change 3: evidence-style tests, all green i wrote 34 tests and they all pass in 0.2 seconds. they’re written as evidence, not coverage: solver checks against the exact hydrogen ground state, mesh guards that refuse bad inputs, constants checked against published CODATA values. the idea is that if i ever break the physics, CI screams at me immediately."}]...
|
Title: atomic by @ttyChud | Stardance
Devlogs:
at Title: atomic by @ttyChud | Stardance
Devlogs:
atomic Devlog #1: foundation is done, the atom has a spine i just kick started a new project called atomic, and the aim is kinda crazy: a quantum-mechanical atom model that never quietly lies about its physics. every number that crosses a module boundary carries a record of how it was computed and how far it can be trusted, with tiers going from EXACT (closed-form) all the way to COUNTERFACTUAL (deliberately altered physics, computed rigorously). i’ve got the whole thing mapped out as a 15-phase plan. today was all about Phase 0: the foundation. no physics yet, just the spine everything else will stand on. Change 1: environment setup (this fought me) my machine had no conda, no pip, no uv, nothing. just bare python 3.14. i almost gave up and then found out python ships with ensurepip, so i bootstrapped a venv with python3 -m venv .venv and pip-installed numpy, scipy, pytest and ruff into it. worked first try after that. lesson learned: check ensurepip before panicking. Change 2: the provenance spine + constants + mesh i scaffolded the actual package: provenance.py (the fidelity tiers plus the Quantity and Field types that carry them), constants.py (CODATA values with a counterfactual-universe hook for the future What-If lab, where you’ll be able to mess with constants like e and watch what breaks), and numerics/mesh.py (uniform + exponential radial meshes with a ghost-node fix at the inner wall, since an exponential mesh can’t reach the origin). getting the discretization right now means every solver later stands on solid ground. Change 3: evidence-style tests, all green i wrote 34 tests and they all pass in 0.2 seconds. they’re written as evidence, not coverage: solver checks against the exact hydrogen ground state, mesh guards that refuse bad inputs, constants checked against published CODATA values. the idea is that if i ever break the physics, CI screams at me immediately.
atomic Devlog #2: exact hydrogen engine + systems registry I had two goals in my mind in this session. One was to build the exact hydrogen-like physics engine and the other is to add a systems registry plus the element tables. Here is what and how I implemented this stuff and the challenges i faced: Change/Problem 1: Before I even got started on the new stuff i wanted to add, i faced a big problem. The moment i wired the new physics into last session’s spine, 4 tests instantly failed. My Field type (the container every array result travels in) demanded its grid be strictly increasing, but wavefunction sampling evaluates on scattered, unsorted points, so every single evaluation got rejected with a ValueError. The fix: It is important to know what a Field actually is here. It’s not a mesh — it’s just samples of a function on a set of points, plus the provenance saying how they were computed. Sorted-ness is a quadrature concern and belongs to the mesh module, not the container. So i dropped just the ordering rule and kept the finite/shape guards, then added a regression test pinning the decision so nobody re-adds it later and silently breaks everything again. Change 2: hydrogen engine implementation I implemented the exact closed-form hydrogen-like solutions, all in Hartree atomic units. The energy is E_n = −mu_ratio · Z² / (2n²), and the trick that makes it powerful is the reduced-mass ratio mu/m_e sitting right in the formula — deuterium, tritium, muonic hydrogen and positronium all fall out of the same code just by changing that one number. The radial functions use the normalized generalized-Laguerre form R_nl = N · exp(−ρ/2) · ρ^l · L(ρ) with ρ = 2Zμ′r/n, and mean radii come from = (3n² − l(l+1)) / (2Zμ′). I checked the 1s case by hand: = 1.5 bohr, exactly like the textbooks say. Change 3: angular bases + systems + proof I implemented both angular bases as first-class outputs: complex spherical harmonics (with the Condon-Shortley phase, so Y_1^1 has a negative real part at phi=0) and real chemistry orbitals (p_x, p_y, d_xy and friends with proper orientation). On top of that sits the systems registry — H, D, T, muonic hydrogen, positronium, He+, plus a generic hydrogen_like(Z) — each carrying CODATA-cited reduced masses and honest nuclear radii (positronium gets None instead of a fake zero, because its “nucleus” is a point positron). The last batch of work was the proof: 139 tests green. Normalization, orthogonality, node counts coming out as exactly n−l−1 every time, angular orthonormality up to l=3 in both bases. Nothing’s shipped anywhere yet though — next is Phase 2, the numerical solver, validated against these exact answers. That’s the first real solver-vs-truth showdown.
atomic Devlog #3: solver, server, and the web instrument Three phases landed since last time: the numerical solver, the FastAPI backend, and the React + Three.js frontend. 193 backend tests and 48 frontend tests green, everything pushed. Change 1: numerical radial solver Built a 3-point finite-difference solver for arbitrary central potentials, plus a grid-halving error estimator. Validated against the exact hydrogen answers: energies match, 1s overlap > 0.99999, convergence measures exactly 2.00 across all cases. Two of my own test assertions were wrong along the way (forgot reduced mass in the expected energy, grid too coarse for the normalization check) — the engine was right both times. Change 2: FastAPI backend atomic serve now runs a real server: health, systems, state, levels, radial endpoints, plus background jobs (cloud sampling, plane cross-sections) with websocket progress and binary data channels. Sampling is honest inverse-transform Monte Carlo of |psi|². Also fixed a URL-encoding bug where the he+ key decoded as “he “ and got refused everywhere — verified against the live server. Change 3: web instrument Full frontend: orbitable 3D point clouds with density/phase coloring, y=0 plane canvas views, clickable energy ladders, radial R/P plots with node marks and mean-radius markers, shareable URLs for every state, zustand store underneath. Production build splits Three.js into a lazy chunk; the server mounts the built UI directly.
atomic Devlog #5: breaking physics on purpose, then adding real atoms Two big landings since last time: the What-If labs (altered constants, custom force laws, classical ghosts) and screened multi-electron atoms all the way from engine to UI. 359 tests green. You can now break the laws of physics Five sliders over the raw constants of nature — double the electron charge, quadruple vacuum permittivity, watch alpha, the Bohr radius and binding energy refuse to move. That degeneracy is the whole lesson: only dimensionless combinations are observable. Next to it, force-law presets (power law, Yukawa, harmonic, finite well, Coulomb-plus-core) plus a type-your-own V(r) box with a whitelist parser and a trust gate that flags unconverged levels instead of silently serving them. And the classical ghost: what Newton predicts for hydrogen, a spiral into the nucleus in picoseconds, which quantum mechanics forbids. That refusal is the point. Real multi-electron atoms GSZ screened model with honest transcribed parameters for 15 elements, self-consistent-solver-free but validated against ionization data. Monte-Carlo cloud sampling with KS-tested distributions, y=0 plane cross-sections, screened levels and radial endpoints on the API, atom picker entries and an occupancy ladder in the UI. Sulfur and chlorine get a named refusal instead of invented numbers — no fitted parameters exist for them, so the server says exactly that.
atomic Devlog #6: the atom stops lying and starts solving itself Since last time i added a whole layer: fine structure, real spectral lines, a hot-gas version, and Hartree-Fock — the atom now solves its own electrons. Change 1: real levels. The clean Bohr ladder hides structure, so i added five closed-form refinements: fine structure, Dirac (which shows 2s1/2=2p1/2 exactly — reality splits them with the Lamb shift, and the model admits it), Zeeman’s full Breit-Rabi crossover, Stark, and the hyperfine 21 cm line. Each carries its own trust tier. Change 2: line strengths. I compute the dipole integral, then oscillator strength, Einstein A and lifetimes, and check everything against vendored NIST wavelengths (never live). The silent killer: both states in a transition must share one grid, so a test feeds a pair whose natural boxes differ. Change 3: it’s a gas now. Boltzmann + Saha populations, Gaussian/Lorentzian/Voigt profiles, optical depth, transfer I=B(1-e^-tau), and the curve of growth. Where a choice is a choice (plasma level truncation), it’s tagged MODEL. Change 4: Hartree-Fock. GSZ was a fitted model — no sulfur or chlorine, double-counted energy, unsigned error. HF is variational, so E_HF >= E_exact: a bounded, one-signed error the provenance can state. Slater integrals, angular coefficients pinned four ways, matrix-free LOBPCG for the non-local exchange, three independent energy checks. Payoff: Li->P, plus sulfur and chlorine — atoms GSZ couldn’t do. Result: 888 Python + 179 frontend tests green. Next: counterfactual electrons and HF 3D clouds....
|
1792932855.3437366
|
1793796855.3437366
|