|
4361
|
Untitled project by @ARCreator | Stardance
|
ARCreator
|
0
|
0.31
|
0
|
[]
|
[{"post_id": 734, "ts": "2026- [{"post_id": 734, "ts": "2026-06-02T10:45:14Z", "hours": 0.3133, "text": "this is supposed to be an air quality monitorr but idk how to us erhackatimer toi damn track my work"}]...
|
Title: Untitled project by @ARCreator | Stardance
Title: Untitled project by @ARCreator | Stardance
Devlogs:
this is supposed to be an air quality monitorr but idk how to us erhackatimer toi damn track my work...
|
1792921959.157686
|
1793785959.157686
|
|
60002
|
OpenTasks by @noahplaysmario | Stardance
|
noahplaysmario
|
1
|
16.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-25T01:51:56Z", "hours": 16.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made an open-source server for tracking tasks and events. Everything is securely encrypted, and easy to make custom clients for. One thing you should know is that this software only contains the server and a basic testing client, but a custom client is very simple, especially if you use the testing client as a starting point.", "repo": "https://github.com/noah560/OpenTasks", "demo": "https://github.com/noah560/OpenTasks/blob/main/server.py"}]...
|
[{"post_id": 73392, "ts": "202 [{"post_id": 73392, "ts": "2026-09-25T01:48:45Z", "hours": 3.2003, "text": "I finished the server and test client!!!!!!!!! I am very happy, if it isn’t obvious by the number of exclamation points in the top line of this devlog. I finally finished the main part, now I can use this myself and implement clients for whatever I want. Also, I added a debug mode to help with client development."}, {"post_id": 71552, "ts": "2026-09-21T01:40:11Z", "hours": 2.6672, "text": "Finished server code for now- now to make a testing client to make sure it works! I am almost done with the project. For this devlog, I mainly fixed a bunch of errors found by AI (even if it doesn’t code the best, it can still find mistakes after all it’s pretty much just a lot of pattern detection) and fixed them(myself, not with AI). Next, I will make a simple CLI test/demo client to make sure it works."}, {"post_id": 71218, "ts": "2026-09-20T14:01:27Z", "hours": 5.6742, "text": "Redesigned protocol to be more extensible without modifying the server much."}, {"post_id": 68920, "ts": "2026-09-16T01:38:08Z", "hours": 2.2131, "text": "Started work on the actual server code!"}, {"post_id": 65714, "ts": "2026-09-11T01:46:52Z", "hours": 0.6372, "text": "Made it more secure and added a version number to the protocol. Next thing to do: the server code!"}, {"post_id": 65683, "ts": "2026-09-11T00:23:37Z", "hours": 0.9097, "text": "Documented the TCP protocol and request types."}, {"post_id": 64736, "ts": "2026-09-09T11:26:19Z", "hours": 0.5064, "text": "Started making the protocol. I am making the protocol first so I know exactly what to program and custom clients can easily be made."}]...
|
Title: OpenTasks by @noahplaysmario | Stardance
D Title: OpenTasks by @noahplaysmario | Stardance
Devlogs:
Started making the protocol. I am making the protocol first so I know exactly what to program and custom clients can easily be made.
Documented the TCP protocol and request types.
Made it more secure and added a version number to the protocol. Next thing to do: the server code!
Started work on the actual server code!
Redesigned protocol to be more extensible without modifying the server much.
Finished server code for now- now to make a testing client to make sure it works! I am almost done with the project. For this devlog, I mainly fixed a bunch of errors found by AI (even if it doesn’t code the best, it can still find mistakes after all it’s pretty much just a lot of pattern detection) and fixed them(myself, not with AI). Next, I will make a simple CLI test/demo client to make sure it works.
I finished the server and test client!!!!!!!!! I am very happy, if it isn’t obvious by the number of exclamation points in the top line of this devlog. I finally finished the main part, now I can use this myself and implement clients for whatever I want. Also, I added a debug mode to help with client development.
Ships:
I made an open-source server for tracking tasks and events. Everything is securely encrypted, and easy to make custom clients for. One thing you should know is that this software only contains the server and a basic testing client, but a custom client is very simple, especially if you use the testing client as a starting point....
|
1793681759.5769575
|
1793768159.5769575
|
|
55598
|
WackyRecipes by @OrangeJuice | Stardance
|
OrangeJuice
|
0
|
8.97
|
0
|
[]
|
[{"post_id": 73391, "ts": "202 [{"post_id": 73391, "ts": "2026-09-25T01:47:59Z", "hours": 3.1381, "text": "WackyRecipes A rng-like website that gives you weird foods to make! Background info I swear imma get more consistent with these devlogs💔 BUT we’re taking major steps forward regarding this project!!! What’s new Recipe generator is complete!!! (sorta) The main generate area is complete. check out it’s designated section for more info! Added more recipes and images! Created basic outline for the recipe collection/index This page will have all the recipes for those who want to choose the recipe themselves. Clicking on the images will bring in another container that has the name, ingredients, and instructions (not finished with this part tho) Removed the ‘saved’ page Supposed to be the page where you could see all your fav recipes I felt like this page would too hard to implement and was redundant I’ll probably just add the main feature to the ‘collection’ page somehow Feature done!: Generate page I used an array to store all the info about each recipe (the images, recipe name, etc.) Then I connected it to each and . The array value is connected to a rng that changes everytime the page refreshes. Then, to make the recipes “reroll” I just used the refresh function. Here’s where I could use some help. I want each ingredient and instruction to be on it’s own seperate line. I’ve tried joining each value with ‘/n’, ‘/ln’, ‘/br’, ‘’, but nothing worked. So if anyone knows how to fix this, please let me know!! To-do Add ingredients and instructions to the remaining of the recipes Work on the collection page Hopefully by the next devlog, when the image is clicked, a sidebar will appear. And, maybe it’ll have some animations too :^) !! That’s it for now. Until next time!"}, {"post_id": 66297, "ts": "2026-09-12T01:53:14Z", "hours": 4.1181, "text": "WackyRecipes A rng-like website that gives you weird foods to make! Background info Just like I mentioned in my last devlog, I mainly focused on making the home page look better. I also worked on the rng-like mechanics of the generate page and worked a bit on the js. What’s new Changed the color scheme I replaced the brown with this deep red color because it looks more inviting and yummy New home page layout I put each section into a box to keep the layout organized. I might make some tweaks to it, but I’m happy with it for now! Created basically on the generate page so far Made the roll box, the recipe box, and made the buttons actually work (except there’s no randomizing yet </3) Created an array for all the recipes Linked the css to the other 2 pages To-do Mainly focus on finishing the generate page Upload images of the food Work on the js to actually make the recipes appear Extra info I wanted to work on this project a bit more but I’m already over 4 hours for this devlog so I just decided to showcase what I have so far. Hopefully next devlog will be a bit more interesting. That’s it for now. Until next time!"}, {"post_id": 59340, "ts": "2026-09-01T02:30:48Z", "hours": 1.715, "text": "WackyRecipes - First devlog! A rng-like website that gives you weird foods to make! Background info New project wooooo!! I’ve had the idea of a website that gives you absurd recipes for a while. Now that sticky streaks came out, I finally have a reason to start a new project!! What I have so far I was mostly focused on getting the aesthetics of the website down. Top/nav bar with css animations I love css animations so much they’re so cool. Originally, the hovered text covered the other. However, this was quickly fixed by changing the transform from scale() to font-size Added text/instructions to home screen Linked the other pages (e.g. generate, saved) to the main/home page To-do Change the top bar color to a more reddish color Format the text on the home page better Right now it looks a bit ugly since I was just trying to get an outline of what I want. By the next devlog it should be looking a little better Add css to button at the bottom Add/link css to the other pages Extra This project’s looks was inspired by Flavortown’s website. Though I never participated in it, I thought the website looked really cute. I’m planning for this to be a short project (~10 hours) but I’m not the most professional expert coder, so it might take longer. That’s it for now. Until next time!"}]...
|
Title: WackyRecipes by @OrangeJuice | Stardance
D Title: WackyRecipes by @OrangeJuice | Stardance
Devlogs:
WackyRecipes - First devlog! A rng-like website that gives you weird foods to make! Background info New project wooooo!! I’ve had the idea of a website that gives you absurd recipes for a while. Now that sticky streaks came out, I finally have a reason to start a new project!! What I have so far I was mostly focused on getting the aesthetics of the website down. Top/nav bar with css animations I love css animations so much they’re so cool. Originally, the hovered text covered the other. However, this was quickly fixed by changing the transform from scale() to font-size Added text/instructions to home screen Linked the other pages (e.g. generate, saved) to the main/home page To-do Change the top bar color to a more reddish color Format the text on the home page better Right now it looks a bit ugly since I was just trying to get an outline of what I want. By the next devlog it should be looking a little better Add css to button at the bottom Add/link css to the other pages Extra This project’s looks was inspired by Flavortown’s website. Though I never participated in it, I thought the website looked really cute. I’m planning for this to be a short project (~10 hours) but I’m not the most professional expert coder, so it might take longer. That’s it for now. Until next time!
WackyRecipes A rng-like website that gives you weird foods to make! Background info Just like I mentioned in my last devlog, I mainly focused on making the home page look better. I also worked on the rng-like mechanics of the generate page and worked a bit on the js. What’s new Changed the color scheme I replaced the brown with this deep red color because it looks more inviting and yummy New home page layout I put each section into a box to keep the layout organized. I might make some tweaks to it, but I’m happy with it for now! Created basically on the generate page so far Made the roll box, the recipe box, and made the buttons actually work (except there’s no randomizing yet </3) Created an array for all the recipes Linked the css to the other 2 pages To-do Mainly focus on finishing the generate page Upload images of the food Work on the js to actually make the recipes appear Extra info I wanted to work on this project a bit more but I’m already over 4 hours for this devlog so I just decided to showcase what I have so far. Hopefully next devlog will be a bit more interesting. That’s it for now. Until next time!
WackyRecipes A rng-like website that gives you weird foods to make! Background info I swear imma get more consistent with these devlogs💔 BUT we’re taking major steps forward regarding this project!!! What’s new Recipe generator is complete!!! (sorta) The main generate area is complete. check out it’s designated section for more info! Added more recipes and images! Created basic outline for the recipe collection/index This page will have all the recipes for those who want to choose the recipe themselves. Clicking on the images will bring in another container that has the name, ingredients, and instructions (not finished with this part tho) Removed the ‘saved’ page Supposed to be the page where you could see all your fav recipes I felt like this page would too hard to implement and was redundant I’ll probably just add the main feature to the ‘collection’ page somehow Feature done!: Generate page I used an array to store all the info about each recipe (the images, recipe name, etc.) Then I connected it to each and . The array value is connected to a rng that changes everytime the page refreshes. Then, to make the recipes “reroll” I just used the refresh function. Here’s where I could use some help. I want each ingredient and instruction to be on it’s own seperate line. I’ve tried joining each value with ‘/n’, ‘/ln’, ‘/br’, ‘’, but nothing worked. So if anyone knows how to fix this, please let me know!! To-do Add ingredients and instructions to the remaining of the recipes Work on the collection page Hopefully by the next devlog, when the image is clicked, a sidebar will appear. And, maybe it’ll have some animations too :^) !! That’s it for now. Until next time!...
|
1793166848.080417
|
1793771648.080417
|
|
35799
|
TurboNinja by @TheGeekachu | Stardance
|
TheGeekachu
|
1
|
15.0
|
161
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-25T01:34:28Z", "hours": 15.0, "multiplier": 10.89, "payout": 161, "blessing": "neutral", "text": "I made this. TurboNinja. Yes, I suck at naming stuff. But this game taught me more about gamedev than any game I’ve made, mostly because I didn’t use an engine. Nope. This is all pure code, written by yours truly. Thanks for being here! BTW, arrow keys to move and X to dash attack.", "repo": "https://github.com/vijayakasee-debug/TurboNinja", "demo": "https://thegeekachu.itch.io/turboninja-preview"}]...
|
[{"post_id": 73383, "ts": "202 [{"post_id": 73383, "ts": "2026-09-25T01:30:42Z", "hours": 0.6725, "text": "I’m done. I’m finally done. The game is now on Itch.io and available to play! THE GAME DOES NOT WORK ON SAFARI BECAUSE APPLE IS STUPID. I just discovered this after the ship, so I came back to edit. Please play on Chrome or Firefox."}, {"post_id": 72905, "ts": "2026-09-24T00:16:24Z", "hours": 0.6064, "text": "IM DONE!!!! All that’s left is making an exec and putting it on Itch.io!!!! THE GRAPHICS ARE AMAZING!!!"}, {"post_id": 72893, "ts": "2026-09-23T23:40:35Z", "hours": 0.3989, "text": "I’m currently working on silhouettes for the game and all characters, but I’m having just a teensy bit of layering issues… Only the silhouettes are visible and literally nothing else…"}, {"post_id": 72377, "ts": "2026-09-22T19:48:13Z", "hours": 0.7825, "text": "SO, I added level transitions. You can now beat a level and go to the next one. I also just realised that the levels I’ve been designing are insanely hard, so good luck playing them all the way through!"}, {"post_id": 71984, "ts": "2026-09-21T22:13:01Z", "hours": 2.9931, "text": "AAaaaaahhhh!!! I finally implemented a particle system for sparks that uses advanced trigonometry, and I added enemy and player death, the animations for which are completely written without any assets using only trigonometry, pygame.polygon() and the math module. PAINNN!!!"}, {"post_id": 70824, "ts": "2026-09-19T20:39:05Z", "hours": 0.6794, "text": "I added a Dash mechanic. After much pain in the arse, I realised that the reason he was shooting leaves when dashing was I forgot to import the Ninja dash effect, so VS Code for some reason decided to import leaves instead. He no longer spews leaves when dashing, which I consider a win!"}, {"post_id": 70408, "ts": "2026-09-19T04:04:20Z", "hours": 0.4569, "text": "He no longer can jump to the high heavens to meet Jesus. He gets one jump, and I’ve added some really nice walljumps, yippee!"}, {"post_id": 70402, "ts": "2026-09-19T03:29:51Z", "hours": 1.0106, "text": "So, I really didn’t need to do this, but the tutorial I’m following for the base functionality because it comes with the assets I’m using said I can add a particle system for leaves, so I thought, why not? The results look beautiful and I’m glad I did it. Also, check out the new levels, made by yours truly with the new level editor!"}, {"post_id": 66847, "ts": "2026-09-12T19:25:12Z", "hours": 0.5358, "text": "After much pain and annoyance, I got fed up with coding my own level editor, and got a pre-made Python file for one, then modified it to the controls I like, which took longer than I appreciate. Unfortunately, some editing work was done on a different computer, so Hackatime didn’t track it. Not much though, so no biggie."}, {"post_id": 40830, "ts": "2026-08-04T16:27:24Z", "hours": 1.3808, "text": "I added animations. I realised that you wouldn’t be able to tell there were animations if I just took a photo of the idle one, so I locked in and took a screenshot while he was in midair, in the jumping animation. Next step is gonna be cooked. I have to write a level editor from scratch!"}, {"post_id": 37756, "ts": "2026-07-30T17:47:05Z", "hours": 0.8744, "text": "I added clouds. Exciting, I know. But this took a lot more work than I care to admit. At first the clouds were going diagonal. I spent half an hour fixing it, and succeeded in making them go the other way, still diagonal. Then I realised that in my endless wisdom, I’d updated the y-axis with the values meant for the x-axis. Now it’s fixed."}, {"post_id": 31022, "ts": "2026-07-19T02:35:16Z", "hours": 0.5706, "text": "I added a camera that follows the player, so you can watch him infinitely jump across the heavens. Bro’s on his god tier loadout."}, {"post_id": 29739, "ts": "2026-07-16T20:40:52Z", "hours": 1.5772, "text": "Added collisions and jumping so he doesn’t fall endlessly. I have the opposite problem now. He isn’t restricted to double jumps. Either my ninja knows how to fly or air is solid. Pick one, beats me!"}, {"post_id": 29196, "ts": "2026-07-15T22:41:02Z", "hours": 2.2247, "text": "Added gravity, tilemaps, and a ninja. You can’t see him in the photo because I’v added gravity, but, er, not collisions as of yet, so he’s infinitely falling through space, poor guy."}]...
|
Title: TurboNinja by @TheGeekachu | Stardance
Dev Title: TurboNinja by @TheGeekachu | Stardance
Devlogs:
Added gravity, tilemaps, and a ninja. You can’t see him in the photo because I’v added gravity, but, er, not collisions as of yet, so he’s infinitely falling through space, poor guy.
Added collisions and jumping so he doesn’t fall endlessly. I have the opposite problem now. He isn’t restricted to double jumps. Either my ninja knows how to fly or air is solid. Pick one, beats me!
I added a camera that follows the player, so you can watch him infinitely jump across the heavens. Bro’s on his god tier loadout.
I added clouds. Exciting, I know. But this took a lot more work than I care to admit. At first the clouds were going diagonal. I spent half an hour fixing it, and succeeded in making them go the other way, still diagonal. Then I realised that in my endless wisdom, I’d updated the y-axis with the values meant for the x-axis. Now it’s fixed.
I added animations. I realised that you wouldn’t be able to tell there were animations if I just took a photo of the idle one, so I locked in and took a screenshot while he was in midair, in the jumping animation. Next step is gonna be cooked. I have to write a level editor from scratch!
After much pain and annoyance, I got fed up with coding my own level editor, and got a pre-made Python file for one, then modified it to the controls I like, which took longer than I appreciate. Unfortunately, some editing work was done on a different computer, so Hackatime didn’t track it. Not much though, so no biggie.
So, I really didn’t need to do this, but the tutorial I’m following for the base functionality because it comes with the assets I’m using said I can add a particle system for leaves, so I thought, why not? The results look beautiful and I’m glad I did it. Also, check out the new levels, made by yours truly with the new level editor!
He no longer can jump to the high heavens to meet Jesus. He gets one jump, and I’ve added some really nice walljumps, yippee!
I added a Dash mechanic. After much pain in the arse, I realised that the reason he was shooting leaves when dashing was I forgot to import the Ninja dash effect, so VS Code for some reason decided to import leaves instead. He no longer spews leaves when dashing, which I consider a win!
AAaaaaahhhh!!! I finally implemented a particle system for sparks that uses advanced trigonometry, and I added enemy and player death, the animations for which are completely written without any assets using only trigonometry, pygame.polygon() and the math module. PAINNN!!!
SO, I added level transitions. You can now beat a level and go to the next one. I also just realised that the levels I’ve been designing are insanely hard, so good luck playing them all the way through!
I’m currently working on silhouettes for the game and all characters, but I’m having just a teensy bit of layering issues… Only the silhouettes are visible and literally nothing else…
IM DONE!!!! All that’s left is making an exec and putting it on Itch.io!!!! THE GRAPHICS ARE AMAZING!!!
I’m done. I’m finally done. The game is now on Itch.io and available to play! THE GAME DOES NOT WORK ON SAFARI BECAUSE APPLE IS STUPID. I just discovered this after the ship, so I came back to edit. Please play on Chrome or Firefox.
Ships:
I made this. TurboNinja. Yes, I suck at naming stuff. But this game taught me more about gamedev than any game I’ve made, mostly because I didn’t use an engine. Nope. This is all pure code, written by yours truly. Thanks for being here! BTW, arrow keys to move and X to dash attack....
|
1793674283.9268215
|
1793760683.9268215
|
|
64293
|
MatchRatingCalc by @Allen | Stardance
|
Allen
|
1
|
11.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-25T01:33:57Z", "hours": 11.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made Veyro", "repo": "https://github.com/awang03-crypto/Veyrov2.6", "demo": "https://darksalmon-lark-983637.hostingersite.com/calculator"}]...
|
[{"post_id": 73381, "ts": "202 [{"post_id": 73381, "ts": "2026-09-25T01:29:20Z", "hours": 10.9056, "text": "I just worked on making the site better"}]...
|
Title: MatchRatingCalc by @Allen | Stardance
Devl Title: MatchRatingCalc by @Allen | Stardance
Devlogs:
I just worked on making the site better
Ships:
I made Veyro...
|
1793685225.0268111
|
1793771625.0268111
|
|
21375
|
STANDTall by @akshay369 | Stardance
|
akshay369
|
3
|
7.0
|
37
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-25T01:01:00Z", "hours": 2.0, "multiplier": 6.33, "payout": 5, "blessing": "neutral", "text": "I built StandTall, a lightweight system tray utility designed for desk workers to encourage regular movement and help prevent back pain during long working hours. So try this and StandTall", "repo": "https://github.com/akshaykpillai369-max/StandTall", "demo": "https://github.com/akshaykpillai369-max/StandTall/releases/tag/v4.0"}, {"ship_num": 2, "ts": "2026-07-06T13:36:46Z", "hours": 2.0, "multiplier": 3.17, "payout": 5, "blessing": "neutral", "text": "I made the app modern, added more features so it is worth check in out . So try it and StandTall.", "repo": "https://github.com/akshaykpillai369-max/StandTall", "demo": "https://github.com/akshaykpillai369-max/StandTall/releases/tag/v4.0"}, {"ship_num": 3, "ts": "2026-06-29T10:05:50Z", "hours": 3.0, "multiplier": 9.57, "payout": 27, "blessing": "neutral", "text": "I made an application for those who sit more, and it is challenging to look for bugs and test the app", "repo": "https://github.com/akshaykpillai369-max/StandTall", "demo": "https://github.com/akshaykpillai369-max/StandTall/releases/tag/v4.0"}]...
|
[{"post_id": 73372, "ts": "202 [{"post_id": 73372, "ts": "2026-09-25T00:54:27Z", "hours": 1.5414, "text": "Version V4 is live. The major feature in this version is Cursor Inactivity Pause — automatically pauses the timer after five minutes of cursor inactivity and resumes when you move the cursor again. So guys, Try it and always StandTall"}, {"post_id": 23293, "ts": "2026-07-06T05:03:27Z", "hours": 0.7544, "text": "Previously, there was a bug of multiple instances running, now it is solved and new features have been added NEW FEATURES 1, Break Nudges — Full-screen overlay during eye breaks with countdown + Dismiss button. Toggle on/off in Settings. 2, Statistics Dashboard — Tracks stands and eye breaks per day. View today’s totals, all-time totals, and a 7-day bar chart. 3, Tray Tooltip — Hover the tray icon to see remaining time until next stand and eye break (Stand↑ Xm Eye Ym). 4, Auto-Update Check — “Check for Updates” button in Settings queries GitHub releases and notifies you when a newer version is available."}, {"post_id": 22226, "ts": "2026-07-04T16:18:09Z", "hours": 0.5997, "text": "StandTall Pro is now available on Windows, macOS, and Linux! This release features a completely rewritten cross-platform codebase, near-zero startup impact, a first-launch setup window, and standalone packages for all platforms. What’s new 1, 🌍 Cross-platform — works on Windows, macOS, and Linux 2, 🚀 Near-zero startup impact — CustomTkinter now loads only when you open Settings 3, 🪟 First-launch window — settings appear automatically on first run so new users can configure the app 4, 🔒 Single-instance lock — prevents duplicate app instances (works on all OS)"}, {"post_id": 20778, "ts": "2026-07-02T13:59:09Z", "hours": 0.3683, "text": "How to install it correctly 1, Download the zip file from the assets 2, Unzip it 3, Open the exe file 4, It does not show any windows at first; look at the system tray and right-click the application, then select Settings 5, Done. Now you can adjust the remainder"}, {"post_id": 18229, "ts": "2026-06-29T09:43:42Z", "hours": 2.8225, "text": "StandTall Pro is a health-focused Windows desktop utility tailored for desk-bound professionals. Operating quietly from the system tray, it helps mitigate back pain and digital eye strain by prompting users to take physical standing breaks and practice the 20-20-20 rule (looking at an object 20 feet away for 20 seconds every 20 minutes)."}]...
|
Title: STANDTall by @akshay369 | Stardance
Devlog Title: STANDTall by @akshay369 | Stardance
Devlogs:
StandTall Pro is a health-focused Windows desktop utility tailored for desk-bound professionals. Operating quietly from the system tray, it helps mitigate back pain and digital eye strain by prompting users to take physical standing breaks and practice the 20-20-20 rule (looking at an object 20 feet away for 20 seconds every 20 minutes).
How to install it correctly 1, Download the zip file from the assets 2, Unzip it 3, Open the exe file 4, It does not show any windows at first; look at the system tray and right-click the application, then select Settings 5, Done. Now you can adjust the remainder
StandTall Pro is now available on Windows, macOS, and Linux! This release features a completely rewritten cross-platform codebase, near-zero startup impact, a first-launch setup window, and standalone packages for all platforms. What’s new 1, 🌍 Cross-platform — works on Windows, macOS, and Linux 2, 🚀 Near-zero startup impact — CustomTkinter now loads only when you open Settings 3, 🪟 First-launch window — settings appear automatically on first run so new users can configure the app 4, 🔒 Single-instance lock — prevents duplicate app instances (works on all OS)
Previously, there was a bug of multiple instances running, now it is solved and new features have been added NEW FEATURES 1, Break Nudges — Full-screen overlay during eye breaks with countdown + Dismiss button. Toggle on/off in Settings. 2, Statistics Dashboard — Tracks stands and eye breaks per day. View today’s totals, all-time totals, and a 7-day bar chart. 3, Tray Tooltip — Hover the tray icon to see remaining time until next stand and eye break (Stand↑ Xm Eye Ym). 4, Auto-Update Check — “Check for Updates” button in Settings queries GitHub releases and notifies you when a newer version is available.
Version V4 is live. The major feature in this version is Cursor Inactivity Pause — automatically pauses the timer after five minutes of cursor inactivity and resumes when you move the cursor again. So guys, Try it and always StandTall
Ships:
I made an application for those who sit more, and it is challenging to look for bugs and test the app
I made the app modern, added more features so it is worth check in out . So try it and StandTall.
I built StandTall, a lightweight system tray utility designed for desk workers to encourage regular movement and help prevent back pain during long working hours. So try this and StandTall...
|
1793670489.798141
|
1793756889.798141
|
|
43023
|
Worlds Unbound - Terrain Engine by @alpeka | Stard Worlds Unbound - Terrain Engine by @alpeka | Stardance...
|
alpeka
|
1
|
125.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-25T01:05:30Z", "hours": 125.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "— SHIP No.1 — I spent the last couple of months making a model terrain, which I will use for my game that I will continue to build after this competition. My game idea is quite ambitious, and given how long it took for me to get this basic terrain to work properly and well, that won’t even be coming with the extra month added one. I lot of you may be thinking though, what on earth were you doing for 125 hours, when all you came up with is a glorified green and grey piece of paper you could walk on. Well, not only was I learning and using Godot for the first time, it was the first time I learnt anything as complicated as this. I had to wrap my head around complex (at least for me) maths and computer science topics, like vectors and cross product, noise and FBM, TBN model, and UVs, not to mention just the sheer amount of logic I had to get through. It was so tiring to keep getting bugs for the chunking system I had, or the collisions. But thankfully, all that is behind me 😼. I’ll give you a more indepth look into what I’ve done over the past couple months. Devlogs 1-12: This period was the general beginning of my project. Not only was I learning Godot, and watching tutorials on it, I was also spending time on the player character, the camera system, and the world environment. Devlogs 13-15: I tried to implement LODs into my chunks, since the performance was simply too bad. Somehow this made it worse, possibly because of more chunks (the ones at the broder of LOD borders) being forced to be unloaded and loaded back in. Devlogs 16-21: I used my current technique, heavily based from devmars video on youtube about procedural terrain during this period. School had also started, so I spent less and less time on it, being significantly burnt out and tired. So I basically went through 3 iterations of terrain for my game, so that is why it took so long to get to this point.", "repo": "https://github.com/jona-mtw/Celestial", "demo": "https://alpeka.itch.io/worlds-unbound-terrain-engine"}]...
|
[{"post_id": 73370, "ts": "202 [{"post_id": 73370, "ts": "2026-09-25T00:42:51Z", "hours": 2.2056, "text": "Devlog 21 - Ship Prep!!! Colours I added colours to the terrain depending on how high the vertex is. This does create a very harsh border between the two colours, but I didn’t want to learn lerping, ik how to larp enough. Cleaned up my commits My commits were, and probably are still messy, and when I went ahead to revert some changes it said there were errors, but now thankfully that’s all fixed. :) I also updated quite small normals and some technical stuff."}, {"post_id": 72564, "ts": "2026-09-23T07:21:06Z", "hours": 3.9622, "text": "Devlog 20: GPU noise I found a way to make noise using a Godot addon called FastNoiseLite Runtime Shader . It was apparently identical to the FastNoiseLite in GDScript. So I gave it a try. I knew it was a gamble, given how much time I got left to ship an decent project, but I gave it a try since it seemed interesting. It wasn’t that hard to get the noise working, but to get it to sync with the collisions was a nightmare. In the end, I decided that even though the README stated it was 99.9% the same, the output seed by seed was different. So I decided to scrap it and now I’m going back to the old version with heightmaps. Why did I really want to switch? Because of the limited colour depth in images (has to be 8-bit for GDShader to read), theres not enough heights for each vertex to be at, so every so often, there’s this massive wall. It looks fine from afar, but thats probably because my terrain is 20km x 20km, so of course an 8m tall wall would look fine. (the image is from the addon readme)"}, {"post_id": 70779, "ts": "2026-09-19T19:04:39Z", "hours": 6.5594, "text": "Devlog 19 - Main Menu Added (and other things)! I spent quite a lot of time making the background for the main menu in Blender. After just copy and pasting the player model used in the game, I went ahead and made the main attraction: ✨ the planet in the background ✨ . My knowledge of noise that I gained from my previous attempts at the terrain generation helped me create the stars in the background, and the texture for the actual planet in the shader editor. I also added a slight atmosphere, which is (somewhat?) noticeable. I also went ahead and updated the shader code. Before, I used to use the visual shaders, since it was quite similar to the shader editor in Blender, which I was familiar with. But then I realised there’s just more flexibility with using GLSL . I can group uniforms in the inspector, making it clearer and less cluttered if I want to add textures in the future, including different images for the same texture (like Ambient Occlusion, Normals, Colours, and Roughness). Thus being able to group those different types images for the same texture was very important for future usability. Thankfully, Godot allows you to see the shader code that is generated from the visual shaders. Unfortunately, it was not readable at all. The generated code used a random(ish) collection of numbers and letters, and it was too long. Look below for the comparision for just the vertex shader, but it was something like 84 lines that was shruken down to 10 for the vertex shader. Even if you account for spaces in the generated code (which then it might be like 50-60 lines) thats a huge difference. So it took quite some time to get it to a readable state. edit: idk why the actual background looks so bumcheeks compared to the banner, hopefully itll be fixed by then 🤞"}, {"post_id": 67802, "ts": "2026-09-14T01:51:22Z", "hours": 4.0497, "text": "Devlog 18 - I am happy once again!! I FINALLY got the collisions to work!! Basically, it looks at the terrain model that is imported into Godot, and aligns the vertices of the CollisionShape3D with it. It also updates its position every time the player moves 1 unit (whatever the size of a quad of the mesh is). Then it looks at the heightmap, looks up the height of its coresponding pixel, multiplies that by the height shader param (2000, like in the vertex shaders), and thats the collision shape done. I noticed while walking around the world, that there were these massive ridges on the terrain. This is due to the lack of precision in the heightmap. The heightmap only has 256 shades of grey, and I need 2000 values. It is quite impossible to make a image file with that much precision, so instead, I’ll make it so that the CPU will just send an array to the vertex shader. Also, I’ve rebranded my project to Worlds Unbound, and this specific Stardance project will just be handling the terrain stuff for the game. p.s, it never goes above 16ms, i think thats probably because i was recording"}, {"post_id": 65723, "ts": "2026-09-11T02:05:18Z", "hours": 6.0086, "text": "Devlog 17 - I am incredibly frustrated. No matter what I do it feels like I just can’t get the collisions to work. Basically, I’m trying to fetch the heights from the height map to input into the CollisionShape3D, but the coordinates are always offset in some way or the other. I even used AI my friend to basically rewrite the entire script over and over again, but that didn’t work either. Maybe it’s cos school has started now, and I haven’t been able to spend that much time on this project than I would like to As you can see in the photo, the collision mesh (in blue) is offset from the normal terrain (in white)"}, {"post_id": 63142, "ts": "2026-09-06T19:41:46Z", "hours": 7.2203, "text": "Devlog 16 - AMAZING PROGRESS!! I’ve managed to get a massive 20km render distance with huge mountains and ridges using FastNoiseLite and vertex shaders. I used devmar ’s terrain technique, which he named the “Wandering Clipmap Terrain Technique”. The reason why the technique is called the “ Wandering Clipmap Terrain Technique” is because a flat plane that is subdivided a bunch (to make varrying levels of detail (LODs)) that follows the player. The vertex shaders then offset the heightmap so it gives off the illusions that your moving about in a massive world. All the displacement is done by the vertex shaders, which looks at a heightmap. In the future, I might make this heightmap be generated in gdscript instead of in the inspector, to deal with texture resolutions. Currently, from afar, the terrain looks amazing (except from the fact its not textured) but upclose, you can see rings in the terrain, which is caused by the heightmap’s resolution being too low. In fact each ring is about 8m tall so I really need to fix that 😭 The normals are calculated by just copying the heightmap and setting it ‘as normals’ in the inspector. They also are multiplied by a normal basis matrix, which allows me to configure the specific normal settings. I’ll need to calculate the normals in the fragment shader as well in the future for more convincing shadows, but for the mean time, the vertex shaders should do just fine. I’m planning on adding collisions, then maybe textures, biomes and vegetation soon!!"}, {"post_id": 61230, "ts": "2026-09-04T01:57:24Z", "hours": 4.8533, "text": "Devlog 15 - I’m an Idiot For the past 95ish hours, I’ve been working on a way to make procedural terrain for my game. I tried 2 main methods, one centred round the CPU, and one I was building centred around the GPU. The endless chunk seam bugs caused me to burnout/get tired of the entire project, and there was so many stuff (that I won’t really be explaining for the sake of my poor reader’s sanity) leading to me ✨ youtube ✨ I saw this AMAZINGLY smart video by devmar, showing an alternate way of generating terrain. I urge you to watch the video as well, the whole technique is very very clever, and he even goes on to make further videos on making collisions, recalculating normals and adding vegetation, especially if your interested in procedural generation. After watching this video however, I became incredibly frustrated. I spent nearly 100hrs of my summer making this procedural terrain which I know hadn’t gotten anywhere and theres this incredibly smart video from 4yrs ago that pops up on my feed. Welp, now ig i gotta try out this way, and quick cos my parents are on my tail talking about me finishing this project before school starts 🙏 (its my gcse year so ig its valid but still ) Now what I actually did that counted to my time Experimented with vertex shaders, and sending heightmaps to vertex shaders to displace. This however caused immense lag and caused VERY ANNOYING chunk seams. #epicfails"}, {"post_id": 59673, "ts": "2026-09-01T16:27:07Z", "hours": 9.5572, "text": "Devlog 14 - LOD chunks ——— OPTIMISATION IS SOO HARDD 10hrs to do practically do something I’ve already done? (i had already made a chunk system in previous devlogs) Well, whilst some of that time was transferring code from my old commits to the current one and making sure it works, most of the time I spent on this devlog was spent on ✨ “optimisation” ✨ Optimisation First of all, I added LODs into the chunk mesh. What this means is that since further away chunks take up less of your screen, the level of detail (LOD) is reduced the further away it is. I had already made the script that handled the creation of those different meshes with different LODs, so in this devlog, I added it to the main terrain generation script, and assigned each LOD to a certain distance, so that any chunk with a certain distance has a certain LOD. In my last version of the terrain generation, I relied on the name of the MeshInstance3d nodes created to identify what chunk they were. I realised when making this updated version that it was prone to failure, since if the node did not exist or a node with the same name were some how added to the scene tree, errors would be raised or at the very least, a logic error would occur. To recetify this, I switched to using dictionaries to house all the information of all the chunks: chunks : Dictionary [ Vector2i , int ] = { Vector2i ( 0 , 0 ): 0 , Vector2i ( 0 , 1 ): 0 , #etc } The key is chunk coordinate, and the value is the LOD (0 being the highest, 4 being the lowest) Every time I wanted to update the terrain, I would search the scene tree if a particular node was unwanted (again, by looking at the name) and then generating the rest of the ones wanted. This way would not work with LODs, since some chunks may still exist, but may have to change LOD depending on where the player is. So I made use of the dictionary and also created a new one that would store the chunks that I want created. It would loop through the dictionarys, checking certain conditions, and the terrain would be updated. All this looping is somewhat inefficient, and did cause some lag spikes, so I will try to fix that next devlog by only checking the chunks that would be affected based on which way the player moved. To help with the looping, I created chunk and lod lookup tables, that can be offset based on the players_position. These lookup tables are only changed when the render distance is changed, so the same calculation doesn’t have to run hundreds of times in 16ms (60 fps)."}, {"post_id": 57389, "ts": "2026-08-29T15:03:50Z", "hours": 3.8103, "text": "Devlog 13 - LOD template I basically deleted all the old code, and started over, by making a function where the noise will be given to the vertex shader, and one that will generate the actual flat mesh for it (which is going to be changed by the vertex shader). I made the template for making flat planes with different levels of detail (LOD), which will be changed by the vertex shaders, applying the noise to the mesh. I created a new script called lod.gd and gave it a class name, so that I can call multiple instances of it in the main terrain generation program. Every time the program wants to make another chunk, I have to pass the arguements: resolution - what ive defined as a synoymn of LOD chunk_pos - where the chunk is The function then loads an ArrayMesh from a pre-generated list of possible meshes and creates a new MeshInstance3D node to display it. Extra stuff I also added player coords and chunk position in the debug_screen :)"}, {"post_id": 56938, "ts": "2026-08-28T23:24:46Z", "hours": 4.2589, "text": "Devlog 12 - General updates 3.0 I PROMISE THIS IS THE LAST ONE GUYS 🙏 Performance Stats I added a little HUD showing the FPS, the time it takes to make one frame (has to be below 16.67ms (60fps) or there will be noticeable lag), and the memory usage. Lighting, Shadows, and World Environment I slightly changed the shadow bias and normal bias so that shadow artifacts are to a minimum. On top of that, I set it so that shadows aren’t cast for the terrain, which unintentionally handles with some of the artifacts, whilst keeping the “shadows” by illuminating the terrain depending on where the DirectionalLight3d is, making the “shadows” reponsive to a future day-night cycle. Also the volumetric fog and lighting looks better Camera Issues 2.0 So previously I had the player hide() when you go into first person, but that also effects the shadows. So instead I made the visor disappear when you go into first person. But then there was another problem. The head would move during the idle and walking animations, which is quite distracting and could be problematic for some players. So I stopped the animtions whilst in first person. It is a very rudimentary fix, since players can look at their shadows and see the lack of animation. Furthermore if I want to add multiplayer in the future, it’ll look very weird. Performance checks In preparation of the biome generation, I wanted to make sure the performance is fine. It takes a bit for the terrain to generate at the start, but thats common across nearly every game. And this will be lightened a bit when I implement LODs. Once the game is running, it runs relatively fine, except with (very quick) lag spikes when the chunks update. To address this, I’m planning of offloading some of the terrain generation to the GPU, which can calculate normals a LOT more effeciently and quicker than the CPU. Current, the CPU calculates all the vertices, indices, normals, and then compiles it into an ArrayMesh , which is given to the GPU for rendering. This can put a lot of strain on the CPU, especially later down the line, so it’s better and more effiecient if the GPU does the very repetetive calculations, by making it do all the normal calculations, including other stuff."}, {"post_id": 56302, "ts": "2026-08-28T01:02:37Z", "hours": 5.1292, "text": "Devlog 11 - General updates 2.0 Editor Tools!! - (to see the terrain in the editor) So in a previous devlog, I think I talked about how I added @tool in my terrain generation program to be able to see it in the editor. Once I made it dependent on the player position, it didn’t generate in the editor because the player wasn’t loaded in. So now I made it so that if the script was running while the editor (not the game) is open, the terrain would generate around (0, 0) based on how ever big the render distance is. Also I made it so that if you tweak the value of any of the primary noise settings in the editor, it updates in the editor. On top of that, I set the viewport to display wireframe so that I can see the triangles at different resolutions, which is where I came across:…. FLOATING POINT ERRORS!!! (yay ) I noticed that if I set the resolution to a decimal value that was not a power of 2, the triangles would be off by some amount, causing neighbouring triangles to overlap each other, causing normal and collision problems. The resolution variable is going to be eventually used for LODs, so since I’ll be the only setting it, I’ll just make sure to use a value thats a power of 2 The reason why this happens is because 16 (my chunk size) can be multplied and divided by 0.125 (2^-3) evenly to create an integer, compared to 0.1 which results in 1.6. Any smaller power of two is rounded it to the nearest 3dp, so 0.0625 (2^-4) doesn’t work. Camera Issues So I made functionality with the camera where you can scroll to zoom the camera in and out, and if you scroll far enough in, you’ll be in first person, much like how it works in Roblox. There was one problem though. Since the material for the visor on the player model was somewhat transluscent, your view would get darker. Also, you could free look inside the helmet, looking at the areas I wasn’t bothered to model and texture hadn’t modelled. So I disabled that in first person. The biggest timewaste of my life In an attempt to offload some of the generation to the GPU for more effecient parallel processing, I tried to figure out which parts of the algorthim were going to be handled by the CPU and GPU. There were some that had to be handled by the CPU, and there was no choice about those, and they were: collisions and figuring out what chunks should be rendered. At first I thought, how about I offload nearly everything to the GPU, including the noise function. Then I learnt that FastNoiseLite didn’t exist in .gdshader . So I did what any normal person would do, and CODE PERLIN NOISE BY HAND. I spent HOURS learning everything my dumbass could about it: vectors, normals, gradients, deviation, erosional generation, and finite difference approximation. At least I probably learnt something useful for FSMQ 🤷 (a British maths exam most students do in yr11 along with their other GCSEs)."}, {"post_id": 55266, "ts": "2026-08-26T23:25:21Z", "hours": 4.5936, "text": "Devlog 10 - General updates Alright, so ik I said I would work on the procedural terrain, but instead I worked on:… Debugging Tools!! (yayy! ) When tab is pressed, it toggles on debug mode, where all meshes turn into wireframes (to check LOD) and chunk boudaries are shown. There are problems with chunk boundaries not despawning when the terrain its on is gone, but that’s fixed when you toggle debug mode again :). I could fix it but icba I have other stuff that needs to be prioritsed. Resizabile UI So before, if you resized the window, the pause menu and settings menu would be offset from the centre and wouldn’t scale with the window. Now when you scale it, the pause and settings menu stay in the centre and scale accordingly. (the flickering in the video is just an artifact created by the godot editor, and will apparently be fixed once exported)"}, {"post_id": 55025, "ts": "2026-08-26T13:34:07Z", "hours": 7.725, "text": "Devlog 9 - Player Animation!! Walking and Idle Animations I finished a basic walking and idle animation for the player. The walking animation is also somewhat inspired from the kerbals from KSP. Both the animations are kinda choppy, especially when the animation loops round, but frankly icba I didn’t have enough time to fix them rn (mbmb 😭 ). Thankfully the walking animation is timed properly so that the player doesn’t look like its sliding around. Camera updates I added functionality to the camera where you can freelook around the player when holding the right mouse button. Once released, it goes back to the normal position (motion is lerped). Prepartions for next steps For the next steps, I want to go back to the terrain_generation program and start to add variation across the world (like biomes, mountains, etc.). I’m also looking to optimise it, making it generate terrain and collisions faster in prepartion for any future implementation of faster travel. So I added functionality that can allow me to make LODs, which will likely be implemented next devlog."}, {"post_id": 53506, "ts": "2026-08-24T02:34:01Z", "hours": 9.7758, "text": "Devlog 8 - Player Model and other assets! Player Model I finished with texturing, rigging and weight painting. Next Step is to make the walking and jumping animations. Worked on the settings menu I updated the setting menu layout to account for different settings I’ll add in the future Stupid Bugs So when trying to break the terrain generation, I set the speed of the player to like 300 (which it will never be in the game except when in a space ship) but when I tried to do that, the game kept crashing, spitting out an error saying that something didn’t exist. It was coming from my unload_terrain() function. Basically how it works is it checks for all the instances of the MeshInstance3D node, and checks the name of it. For every chunk that is created, I assigned a unique name to it on creation based on the x and y coordinates of it. The function would checking all the nodes, and seeing which ones were out of the “ collision_chunk_size ” radius, and then would delete them. But when going super fast, the processing of things got all weird, meaning that when it tried to delete a chunk, and if it didn’t exist, it would crash. So I added a simple if statement if len(child_name_array) > 2: (basically it would check if the length of the name was long enough to see if there was the coord data). Stupidly I wrote the greater than sign the wrong way round, which led to me being stumped for SO long on why the terrain was just not unloading. tldr: > was the wrong way round and cost me hours."}, {"post_id": 48656, "ts": "2026-08-17T04:20:08Z", "hours": 6.7203, "text": "Devlog 7 - Chunks # 2: PROCEDURAL GENERATION DONE (mostly) Bugs Managed to fix all the bugs related to this part of terrain generation. Weird chunk errors There was an if statement (I changed it out for something else that’s more efficient) that was like: if abs(player_position.x - chunk_pos.x) > collision_chunk_size or abs(player_position.y - chunk_pos.y) > collision_chunk_size This logic error create weird stuttering issues and lag. The fix was to switch or with and . Normals DEFINITELY the bane of my existence. I know roughly what normals are due to me doing 3D modelling/rendering, but I have no clue how it actually works. And plus, I’ve barely covered the maths I need for this in school, so I spent sooo much time (much of which wasn’t recorded) just researching about normals and how they work. I think that definitely helped me find a solution to the annoying chunk borders and random artifacts found inside each chunk. Chunk Sizing I stupidly and randomly changed the chunk size from 16 to 10, which worked completely fine, except for the fact that the player script was still using the 16x16 chunk system, causing the generation to lag behind, eventually leading to the player falling off the map. New Features There were also some ✨ features ✨ that I added. Colour I added colour to the world, and if I match it to the fog and sky, I think it would look AMAZING I will make it so that the colour does vary across the planet. Player I added the rig and refined the topology for animation."}, {"post_id": 47230, "ts": "2026-08-15T00:41:31Z", "hours": 7.1208, "text": "Devlog 6 - Chunks # 1 Previously, I had it so that the entire world was one big mesh, that could not be expanded without unloading and reloading the whole thing and more. This is obviously very inefficient, especially if I want the terrain to load in and out based on where the player is. Chunks is the answer to that. Split the world into chunks of your choice (I chose 16x16), and load/unload just the chunks you need to, not the whole thing. It seemed easy for me at first, clearly it wasn’t (the #1 for the header, ik this isnt gonna be the only devlog on this 😭 ). Bug 1 - The Normals aren’t normal Last devlog, I talked about calculating the normals, which went smoothly… For the old mesh… You see, to calculate normals, you need the vertices surrounding the vertex your trying to find out, and with chunks, that meant every 16 vertices, the normals were being calculated incorrectly, causing seams to be found in the terrain. However, since we did calculate the normals (for the most part) some pretty nice shadows have been cast on our terrain. Despite it being a bug, it is useful to find out where the chunk boundaries are, which is EXTREMELY useful for debugging, so I haven’t tried fixing it just yet. Bug 2 - Not so Good Performance After dividing the terrain into chunks, and making new chunks generate when the player moved into a new chunk, I tested it out. And every time I tried to cross a chunk border, there would be a huge lag spike. This would be caused by the fact the game prioritised the generation of chunks instead of the game. Thankfully I was able to make it so that the chunks would load whenever the processor was ready, to make sure not to overload it too much. Bug 3 - (Lack of) Collisions Another reason why chunks are useful is for limiting the area with active collisions. When the terrain was one big mesh, the entire mesh had active collisions, which would all be checking if something hit it, which is very resource intensive. Which is why I limited the area with collisions to a small radius around the player. While coding it, many logic erros came up, such as one that caused the collisions to just not work."}, {"post_id": 46583, "ts": "2026-08-13T22:19:41Z", "hours": 8.0178, "text": "Devlog 5 - Procedural Terrain (FINALLY!!) I made a start at making the procedural terrain, made some progress with the player model, and with configuring the basic shaders of the game. Elephant in the Room - Procedural Terrain Technically calling it procedural terrain is cheating a bit, cos really all it is right now is perlin noise applied to each vertex’s height. And with that, you can change the shape of the terrain by changing the values of some variables, like the seed, frequency, and octaves. I exported these variables so I could change them in the editor, and added @tool at the start so I can see it in the editor. I’m starting to work on a chunk system at the moment, which will load and unload chunks of the world as the player moves about. Player Model I finished modelling the player (added this version to the game) and added the bones for rigging, except when I move the arm bone, the helmet deforms, so next time I will be doing some weight painting Thankfully UV unwrapping is done as well so I should be able to texture everything before the next devlog. Also, addressing my last devlog, I said Lapse wasn’t syncing with hackatime. Turns out, if I just told it to create a new project called Celestial (which is what my project is called on hackatime), it’ll just add the time to it, so thats amazing!!! The WorldEnvironment Node I accidentally deleted my old configuration of this node while experimenting with stuff, and so I made some changes to the shading of the world. Next up is to recalculate all the normals of each triangle so shadows can be cast properly. I tried using SSAO, but every time I used that to make some sort of shadow, it changed depending on where the camera was and it made the terrain very pixelated. As you can see in the video, you can see the outlines of the terrain. That is because of the volumetric fog added. It sounds resource intensive, so if it starts to lag out my game I might remove it, which is a shame cos it looks really nice."}, {"post_id": 45513, "ts": "2026-08-12T01:47:27Z", "hours": 6.4792, "text": "Devlog 4 - A little bit of a few things I mostly did a combination of small bits, which is probably bad in terms of github commits and actual progress, but at least it’s not burning me out because I’m doing whatever part of the project I fancy at the time. UI I spent most of the time making a (hopefully) futuristic(?) looking pause menu that can also redirect you to a settings page, where I’m planning to hold the settings for terrain generation for the player to manipulate. Much of this time was spent experimenting with different Control nodes, finding out what they do and what they’re helpful for and manipulating the styles of them. I ended up with a style shown below 👇👇👇 Player Model I think I’ve finalised on a particular style, now I basically just have to make it and then texture it. The sad thing is that for some reason lapse doesn’t recognise my hackclub project anymore (already logged 5+ hrs on lapse), so all the time I spent on Blender wasn’t actually logged. If someone could please tell me how to fix this or if theres an extension for blender that would be SO helpful 🙏. Extras I also added the devlogs to my repository, it should appear there when I next commit, which should be soon!! I realise that the popular devlogs have assets from the get-go, so I probably might focus more on that, despite lapse not working if I wanna record time on Blender or Affinity. Again, if someone could please tell me if something is up with lapse or if there’s an extension that I can download for Blender or Affinity, that would be SOO helpful!! 🙏"}, {"post_id": 44908, "ts": "2026-08-10T23:37:53Z", "hours": 2.1228, "text": "Devlog 3 - Flat Plane I know this sounds INCREDIBLY trivial, but I finally figured out how to make a flat plane in Godot, that can be used to make an actual terrain. There were 2 main ways that I could have used to make this: Method 1: I can use a PlaneMesh and then subdivide it down into triangles. Then use vertex shaders or custom scripts to displace the plane as a whole based on noise. It is faster to make the flat plane using this method since you give Godot most of the control over the tessellation, and the individual vertex placement. This means however that it is a lot harder to load and unload certain parts of the terrain, and it is generally harder to add noise to the terrain since you do not have control over each vertex. Method 2: I can use an ArrayMesh , where I create the grid from scratch, telling Godot how to connect every single vertex to create triangles. The downside to this is how long this took. I know it seems short compared to my first devlog (I think the main reason I took so long in that one was not only because I was learning Godot, but it was also because I was experimenting with player models on Blender but hopefully now I’ll be more time efficient) but it is still more time consuming to tell Godot how to connect each and every vertex. I was in fact so stumped on how to go about doing this that it suddenly came to me when I was playing with my little cousin. I even noted down how to do it on my phones notes app (excuse my bad handwriting I was in the car writing with my finger) :/ Despite it being longer to setup, it is overall better for the needs of my game, since I’ll not only need to be able to change the height of each vertex based on a heightmap, but it can also aid with making biomes, by adding custom values to each vertex, which is simply not possible with PlaneMesh . It is also easier to load and unload certain parts of the mesh, and it is better for larger maps, since your CPU isnt doing all the hard work of choosing all the vertices and indexing them. In order to make the actually interesting part of the terrain (which btw I haven’t done in this devlog, I guess this is just like a future plans part) I can use either vertex shaders or custom scripts to make noise in the terrain. Both of these have their respective use cases, and I wouldn’t be able to say one is better than the other for my case. Vertex Shaders: GPU based no collisions (purely visual) written in Godot Shader Language (which is written in C, which is terrifying for me who practically only knows Python ( GDScript and Python are similar enough for me)) Custom Scripts: CPU based can create collisions (actually changes the vertex’s height) written in GDScript (happy days (ik I can write it in C# , but I’m staying far away from that)) Despite my fear of anything not similar to Python , I will still need to use vertex shaders. And I will explain that in my next devlog because this is getting too long. Now onto my struggles incredible skill when making a.. flat plane in Godot. I chose to do Method 2, because of it’s functionality later down the line. But that means I have to tell Godot what vertices to make, and how to connect them up. Obviously that was as simple as could be.. (you can see my failures in the screen recordings below)"}, {"post_id": 44630, "ts": "2026-08-10T15:03:15Z", "hours": 1.7508, "text": "Devlog 2 - One Lone Triangle I spent 2ish hours trying to make a triangle. In GDScript.. Absoutely terrible progress. I see people on Stardance making whole ass projects in 2 hours, and I’m spending those 2 hours making a simple triangle. I have no idea why decided to do a game with procedural terrain generation as my FIRST Godot project. I somewhat understand the theory behind procedural generation, mainly from watching a video on the breakdown of Minecraft’s code when I was like 10, but yeah 🤷 Unfortunately, I have no clue how to do it in practise.. so I guess hours of looking through the Godot docs awaits me yay -_-. (jk the docs are extremely helpful tysm godot 🙏)"}, {"post_id": 43355, "ts": "2026-08-08T15:43:46Z", "hours": 12.8333, "text": "Devlog 1 - Player Movement Okay I know what your thinking. 12 hours for just player movement. Surely you must be wasting time just to get as much stardust as possible. The thing is.. I’ve never used Godot before. Everything from the node tree, to project settings was all pretty much new to me. I should have honestly done the WarioWave Godot mission thingy, so that I would have at least been fimilarised with how Godot worked in 3D. And here I am thinking about making a game where you explore a procedurally generated world. Never before have I touched Godot, and I’m dreaming of making a game with procedural terrain, like in Minecraft or No Mans Sky. Time Waste No. 1 - Learning Godot I had to look through the docs just to figure out how to assign a key to going forwards, mind you all the code needed is given to you when you use the PlayerCharacter3D class. This is on of the many things I struggled with in Godot. 😭 Time Waste No. 2 - Experimenting with player models in blender I experiemented with different styles of player models to use in the game, and I landed on one inspired from the infamous space game Kerbal Space Program. Time Waste No. 3 - Being petty about a camera system 📷 I think this is what took up most of my time. As soon as I made a moveable player that doesn’t fall through the ground (a very quickly made glorified cube in blender), I thought about adding a third person camera. I initially thought of making it toggleable, like in Minecraft, where you press F5, it toggles between first, second(?) and third person. But you can’t change the distance away the camera is from the player in third person. Besides, my stupid ass made it so that each time you pressed F, the camera would keep zooming out endlessly instead of toggling between first and third person. So instead I made it zoomable, like in Roblox. First I tried to manually change the offset based on the scroll wheel (that took me so much time because I had no clue how to get inputs from the scroll wheel). But that posed a problem, which was that the player could clip through walls. Then I found there was a literal node called SpringArm3D to do all of this for me 😭 And its so useful, like I can change how much it zoom’s out by my just changing one variable, and it automatically detects collisions an stops clipping through them. This may seem like somehting that is really basic to some of you who have actually cared to read this far (ty btw :)) but this was crazy for me. And now, I realised you can’t orbit around the camera without the player moving. But that’s something to add next time 🤷 lmao this feels like smth to convince ppl that i wasnt afk or smth to farm stardust. i PROMISE im not trying to farm them, although i would love to get some, im not trying to cheat the system guys 😭"}]...
|
Title: Worlds Unbound - Terrain Engine by @alpeka Title: Worlds Unbound - Terrain Engine by @alpeka | Stardance
Devlogs:
Devlog 1 - Player Movement Okay I know what your thinking. 12 hours for just player movement. Surely you must be wasting time just to get as much stardust as possible. The thing is.. I’ve never used Godot before. Everything from the node tree, to project settings was all pretty much new to me. I should have honestly done the WarioWave Godot mission thingy, so that I would have at least been fimilarised with how Godot worked in 3D. And here I am thinking about making a game where you explore a procedurally generated world. Never before have I touched Godot, and I’m dreaming of making a game with procedural terrain, like in Minecraft or No Mans Sky. Time Waste No. 1 - Learning Godot I had to look through the docs just to figure out how to assign a key to going forwards, mind you all the code needed is given to you when you use the PlayerCharacter3D class. This is on of the many things I struggled with in Godot. 😭 Time Waste No. 2 - Experimenting with player models in blender I experiemented with different styles of player models to use in the game, and I landed on one inspired from the infamous space game Kerbal Space Program. Time Waste No. 3 - Being petty about a camera system 📷 I think this is what took up most of my time. As soon as I made a moveable player that doesn’t fall through the ground (a very quickly made glorified cube in blender), I thought about adding a third person camera. I initially thought of making it toggleable, like in Minecraft, where you press F5, it toggles between first, second(?) and third person. But you can’t change the distance away the camera is from the player in third person. Besides, my stupid ass made it so that each time you pressed F, the camera would keep zooming out endlessly instead of toggling between first and third person. So instead I made it zoomable, like in Roblox. First I tried to manually change the offset based on the scroll wheel (that took me so much time because I had no clue how to get inputs from the scroll wheel). But that posed a problem, which was that the player could clip through walls. Then I found there was a literal node called SpringArm3D to do all of this for me 😭 And its so useful, like I can change how much it zoom’s out by my just changing one variable, and it automatically detects collisions an stops clipping through them. This may seem like somehting that is really basic to some of you who have actually cared to read this far (ty btw :)) but this was crazy for me. And now, I realised you can’t orbit around the camera without the player moving. But that’s something to add next time 🤷 lmao this feels like smth to convince ppl that i wasnt afk or smth to farm stardust. i PROMISE im not trying to farm them, although i would love to get some, im not trying to cheat the system guys 😭
Devlog 2 - One Lone Triangle I spent 2ish hours trying to make a triangle. In GDScript.. Absoutely terrible progress. I see people on Stardance making whole ass projects in 2 hours, and I’m spending those 2 hours making a simple triangle. I have no idea why decided to do a game with procedural terrain generation as my FIRST Godot project. I somewhat understand the theory behind procedural generation, mainly from watching a video on the breakdown of Minecraft’s code when I was like 10, but yeah 🤷 Unfortunately, I have no clue how to do it in practise.. so I guess hours of looking through the Godot docs awaits me yay -_-. (jk the docs are extremely helpful tysm godot 🙏)
Devlog 3 - Flat Plane I know this sounds INCREDIBLY trivial, but I finally figured out how to make a flat plane in Godot, that can be used to make an actual terrain. There were 2 main ways that I could have used to make this: Method 1: I can use a PlaneMesh and then subdivide it down into triangles. Then use vertex shaders or custom scripts to displace the plane as a whole based on noise. It is faster to make the flat plane using this method since you give Godot most of the control over the tessellation, and the individual vertex placement. This means however that it is a lot harder to load and unload certain parts of the terrain, and it is generally harder to add noise to the terrain since you do not have control over each vertex. Method 2: I can use an ArrayMesh , where I create the grid from scratch, telling Godot how to connect every single vertex to create triangles. The downside to this is how long this took. I know it seems short compared to my first devlog (I think the main reason I took so long in that one was not only because I was learning Godot, but it was also because I was experimenting with player models on Blender but hopefully now I’ll be more time efficient) but it is still more time consuming to tell Godot how to connect each and every vertex. I was in fact so stumped on how to go about doing this that it suddenly came to me when I was playing with my little cousin. I even noted down how to do it on my phones notes app (excuse my bad handwriting I was in the car writing with my finger) :/ Despite it being longer to setup, it is overall better for the needs of my game, since I’ll not only need to be able to change the height of each vertex based on a heightmap, but it can also aid with making biomes, by adding custom values to each vertex, which is simply not possible with PlaneMesh . It is also easier to load and unload certain parts of the mesh, and it is better for larger maps, since your CPU isnt doing all the hard work of choosing all the vertices and indexing them. In order to make the actually interesting part of the terrain (which btw I haven’t done in this devlog, I guess this is just like a future plans part) I can use either vertex shaders or custom scripts to make noise in the terrain. Both of these have their respective use cases, and I wouldn’t be able to say one is better than the other for my case. Vertex Shaders: GPU based no collisions (purely visual) written in Godot Shader Language (which is written in C, which is terrifying for me who practically only knows Python ( GDScript and Python are similar enough for me)) Custom Scripts: CPU based can create collisions (actually changes the vertex’s height) written in GDScript (happy days (ik I can write it in C# , but I’m staying far away from that)) Despite my fear of anything not similar to Python , I will still need to use vertex shaders. And I will explain that in my next devlog because this is getting too long. Now onto my struggles incredible skill when making a.. flat plane in Godot. I chose to do Method 2, because of it’s functionality later down the line. But that means I have to tell Godot what vertices to make, and how to connect them up. Obviously that was as simple as could be.. (you can see my failures in the screen recordings below)
Devlog 4 - A little bit of a few things I mostly did a combination of small bits, which is probably bad in terms of github commits and actual progress, but at least it’s not burning me out because I’m doing whatever part of the project I fancy at the time. UI I spent most of the time making a (hopefully) futuristic(?) looking pause menu that can also redirect you to a settings page, where I’m planning to hold the settings for terrain generation for the player to manipulate. Much of this time was spent experimenting with different Control nodes, finding out what they do and what they’re helpful for and manipulating the styles of them. I ended up with a style shown below 👇👇👇 Player Model I think I’ve finalised on a particular style, now I basically just have to make it and then texture it. The sad thing is that for some reason lapse doesn’t recognise my hackclub project anymore (already logged 5+ hrs on lapse), so all the time I spent on Blender wasn’t actually logged. If someone could please tell me how to fix this or if theres an extension for blender that would be SO helpful 🙏. Extras I also added the devlogs to my repository, it should appear there when I next commit, which should be soon!! I realise that the popular devlogs have assets from the get-go, so I probably might focus more on that, despite lapse not working if I wanna record time on Blender or Affinity. Again, if someone could please tell me if something is up with lapse or if there’s an extension that I can download for Blender or Affinity, that would be SOO helpful!! 🙏
Devlog 5 - Procedural Terrain (FINALLY!!) I made a start at making the procedural terrain, made some progress with the player model, and with configuring the basic shaders of the game. Elephant in the Room - Procedural Terrain Technically calling it procedural terrain is cheating a bit, cos really all it is right now is perlin noise applied to each vertex’s height. And with that, you can change the shape of the terrain by changing the values of some variables, like the seed, frequency, and octaves. I exported these variables so I could change them in the editor, and added @tool at the start so I can see it in the editor. I’m starting to work on a chunk system at the moment, which will load and unload chunks of the world as the player moves about. Player Model I finished modelling the player (added this version to the game) and added the bones for rigging, except when I move the arm bone, the helmet deforms, so next time I will be doing some weight painting Thankfully UV unwrapping is done as well so I should be able to texture everything before the next devlog. Also, addressing my last devlog, I said Lapse wasn’t syncing with hackatime. Turns out, if I just told it to create a new project called Celestial (which is what my project is called on hackatime), it’ll just add the time to it, so thats amazing!!! The WorldEnvironment Node I accidentally deleted my old configuration of this node while experimenting with stuff, and so I made some changes to the shading of the world. Next up is to recalculate all the normals of each triangle so shadows can be cast properly. I tried using SSAO, but every time I used that to make some sort of shadow, it changed depending on where the camera was and it made the terrain very pixelated. As you can see in the video, you can see the outlines of the terrain. That is because of the volumetric fog added. It sounds resource intensive, so if it starts to lag out my game I might remove it, which is a shame cos it looks really nice.
Devlog 6 - Chunks # 1 Previously, I had it so that the entire world was one big mesh, that could not be expanded without unloading and reloading the whole thing and more. This is obviously very inefficient, especially if I want the terrain to load in and out based on where the player is. Chunks is the answer to that. Split the world into chunks of your choice (I chose 16x16), and load/unload just the chunks you need to, not the whole thing. It seemed easy for me at first, clearly it wasn’t (the #1 for the header, ik this isnt gonna be the only devlog on this 😭 ). Bug 1 - The Normals aren’t normal Last devlog, I talked about calculating the normals, which went smoothly… For the old mesh… You see, to calculate normals, you need the vertices surrounding the vertex your trying to find out, and with chunks, that meant every 16 vertices, the normals were being calculated incorrectly, causing seams to be found in the terrain. However, since we did calculate the normals (for the most part) some pretty nice shadows have been cast on our terrain. Despite it being a bug, it is useful to find out where the chunk boundaries are, which is EXTREMELY useful for debugging, so I haven’t tried fixing it just yet. Bug 2 - Not so Good Performance After dividing the terrain into chunks, and making new chunks generate when the player moved into a new chunk, I tested it out. And every time I tried to cross a chunk border, there would be a huge lag spike. This would be caused by the fact the game prioritised the generation of chunks instead of the game. Thankfully I was able to make it so that the chunks would load whenever the processor was ready, to make sure not to overload it too much. Bug 3 - (Lack of) Collisions Another reason why chunks are useful is for limiting the area with active collisions. When the terrain was one big mesh, the entire mesh had active collisions, which would all be checking if something hit it, which is very resource intensive. Which is why I limited the area with collisions to a small radius around the player. While coding it, many logic erros came up, such as one that caused the collisions to just not work.
Devlog 7 - Chunks # 2: PROCEDURAL GENERATION DONE (mostly) Bugs Managed to fix all the bugs related to this part of terrain generation. Weird chunk errors There was an if statement (I changed it out for something else that’s more efficient) that was like: if abs(player_position.x - chunk_pos.x) > collision_chunk_size or abs(player_position.y - chunk_pos.y) > collision_chunk_size This logic error create weird stuttering issues and lag. The fix was to switch or with and . Normals DEFINITELY the bane of my existence. I know roughly what normals are due to me doing 3D modelling/rendering, but I have no clue how it actually works. And plus, I’ve barely covered the maths I need for this in school, so I spent sooo much time (much of which wasn’t recorded) just researching about normals and how they work. I think that definitely helped me find a solution to the annoying chunk borders and random artifacts found inside each chunk. Chunk Sizing I stupidly and randomly changed the chunk size from 16 to 10, which worked completely fine, except for the fact that the player script was still using the 16x16 chunk system, causing the generation to lag behind, eventually leading to the player falling off the map. New Features There were also some ✨ features ✨ that I added. Colour I added colour to the world, and if I match it to the fog and sky, I think it would look AMAZING I will make it so that the colour does vary across the planet. Player I added the rig and refined the topology for animation.
Devlog 8 - Player Model and other assets! Player Model I finished with texturing, rigging and weight painting. Next Step is to make the walking and jumping animations. Worked on the settings menu I updated the setting menu layout to account for different settings I’ll add in the future Stupid Bugs So when trying to break the terrain generation, I set the speed of the player to like 300 (which it will never be in the game except when in a space ship) but when I tried to do that, the game kept crashing, spitting out an error saying that something didn’t exist. It was coming from my unload_terrain() function. Basically how it works is it checks for all the instances of the MeshInstance3D node, and checks the name of it. For every chunk that is created, I assigned a unique name to it on creation based on the x and y coordinates of it. The function would checking all the nodes, and seeing which ones were out of the “ collision_chunk_size ” radius, and then would delete them. But when going super fast, the processing of things got all weird, meaning that when it tried to delete a chunk, and if it didn’t exist, it would crash. So I added a simple if statement if len(child_name_array) > 2: (basically it would check if the length of the name was long enough to see if there was the coord data). Stupidly I wrote the greater than sign the wrong way round, which led to me being stumped for SO long on why the terrain was just not unloading. tldr: > was the wrong way round and cost me hours.
Devlog 9 - Player Animation!! Walking and Idle Animations I finished a basic walking and idle animation for the player. The walking animation is also somewhat inspired from the kerbals from KSP. Both the animations are kinda choppy, especially when the animation loops round, but frankly icba I didn’t have enough time to fix them rn (mbmb 😭 ). Thankfully the walking animation is timed properly so that the player doesn’t look like its sliding around. Camera updates I added functionality to the camera where you can freelook around the player when holding the right mouse button. Once released, it goes back to the normal position (motion is lerped). Prepartions for next steps For the next steps, I want to go back to the terrain_generation program and start to add variation across the world (like biomes, mountains, etc.). I’m also looking to optimise it, making it generate terrain and collisions faster in prepartion for any future implementation of faster travel. So I added functionality that can allow me to make LODs, which will likely be implemented next devlog.
Devlog 10 - General updates Alright, so ik I said I would work on the procedural terrain, but instead I worked on:… Debugging Tools!! (yayy! ) When tab is pressed, it toggles on debug mode, where all meshes turn into wireframes (to check LOD) and chunk boudaries are shown. There are problems with chunk boundaries not despawning when the terrain its on is gone, but that’s fixed when you toggle debug mode again :). I could fix it but icba I have other stuff that needs to be prioritsed. Resizabile UI So before, if you resized the window, the pause menu and settings menu would be offset from the centre and wouldn’t scale with the window. Now when you scale it, the pause and settings menu stay in the centre and scale accordingly. (the flickering in the video is just an artifact created by the godot editor, and will apparently be fixed once exported)
Devlog 11 - General updates 2.0 Editor Tools!! - (to see the terrain in the editor) So in a previous devlog, I think I talked about how I added @tool in my terrain generation program to be able to see it in the editor. Once I made it dependent on the player position, it didn’t generate in the editor because the player wasn’t loaded in. So now I made it so that if the script was running while the editor (not the game) is open, the terrain would generate around (0, 0) based on how ever big the render distance is. Also I made it so that if you tweak the value of any of the primary noise settings in the editor, it updates in the editor. On top of that, I set the viewport to display wireframe so that I can see the triangles at different resolutions, which is where I came across:…. FLOATING POINT ERRORS!!! (yay ) I noticed that if I set the resolution to a decimal value that was not a power of 2, the triangles would be off by some amount, causing neighbouring triangles to overlap each other, causing normal and collision problems. The resolution variable is going to be eventually used for LODs, so since I’ll be the only setting it, I’ll just make sure to use a value thats a power of 2 The reason why this happens is because 16 (my chunk size) can be multplied and divided by 0.125 (2^-3) evenly to create an integer, compared to 0.1 which results in 1.6. Any smaller power of two is rounded it to the nearest 3dp, so 0.0625 (2^-4) doesn’t work. Camera Issues So I made functionality with the camera where you can scroll to zoom the camera in and out, and if you scroll far enough in, you’ll be in first person, much like how it works in Roblox. There was one problem though. Since the material for the visor on the player model was somewhat transluscent, your view would get darker. Also, you could free look inside the helmet, looking at the areas I wasn’t bothered to model and texture hadn’t modelled. So I disabled that in first person. The biggest timewaste of my life In an attempt to offload some of the generation to the GPU for more effecient parallel processing, I tried to figure out which parts of the algorthim were going to be handled by the CPU and GPU. There were some that had to be handled by the CPU, and there was no choice about those, and they were: collisions and figuring out what chunks should be rendered. At first I thought, how about I offload nearly everything to the GPU, including the noise function. Then I learnt that FastNoiseLite didn’t exist in .gdshader . So I did what any normal person would do, and CODE PERLIN NOISE BY HAND. I spent HOURS learning everything my dumbass could about it: vectors, normals, gradients, deviation, erosional generation, and finite difference approximation. At least I probably learnt something useful for FSMQ 🤷 (a British maths exam most students do in yr11 along with their other GCSEs).
Devlog 12 - General updates 3.0 I PROMISE THIS IS THE LAST ONE GUYS 🙏 Performance Stats I added a little HUD showing the FPS, the time it takes to make one frame (has to be below 16.67ms (60fps) or there will be noticeable lag), and the memory usage. Lighting, Shadows, and World Environment I slightly changed the shadow bias and normal bias so that shadow artifacts are to a minimum. On top of that, I set it so that shadows aren’t cast for the terrain, which unintentionally handles with some of the artifacts, whilst keeping the “shadows” by illuminating the terrain depending on where the DirectionalLight3d is, making the “shadows” reponsive to a future day-night cycle. Also the volumetric fog and lighting looks better Camera Issues 2.0 So previously I had the player hide() when you go into first person, but that also effects the shadows. So instead I made the visor disappear when you go into first person. But then there was another problem. The head would move during the idle and walking animations, which is quite distracting and could be problematic for some players. So I stopped the animtions whilst in first person. It is a very rudimentary fix, since players can look at their shadows and see the lack of animation. Furthermore if I want to add multiplayer in the future, it’ll look very weird. Performance checks In preparation of the biome generation, I wanted to make sure the performance is fine. It takes a bit for the terrain to generate at the start, but thats common across nearly every game. And this will be lightened a bit when I implement LODs. Once the game is running, it runs relatively fine, except with (very quick) lag spikes when the chunks update. To address this, I’m planning of offloading some of the terrain generation to the GPU, which can calculate normals a LOT more effeciently and quicker than the CPU. Current, the CPU calculates all the vertices, indices, normals, and then compiles it into an ArrayMesh , which is given to the GPU for rendering. This can put a lot of strain on the CPU, especially later down the line, so it’s better and more effiecient if the GPU does the very repetetive calculations, by making it do all the normal calculations, including other stuff.
Devlog 13 - LOD template I basically deleted all the old code, and started over, by making a function where the noise will be given to the vertex shader, and one that will generate the actual flat mesh for it (which is going to be changed by the vertex shader). I made the template for making flat planes with different levels of detail (LOD), which will be changed by the vertex shaders, applying the noise to the mesh. I created a new script called lod.gd and gave it a class name, so that I can call multiple instances of it in the main terrain generation program. Every time the program wants to make another chunk, I have to pass the arguements: resolution - what ive defined as a synoymn of LOD chunk_pos - where the chunk is The function then loads an ArrayMesh from a pre-generated list of possible meshes and creates a new MeshInstance3D node to display it. Extra stuff I also added player coords and chunk position in the debug_screen :)
Devlog 14 - LOD chunks ——— OPTIMISATION IS SOO HARDD 10hrs to do practically do something I’ve already done? (i had already made a chunk system in previous devlogs) Well, whilst some of that time was transferring code from my old commits to the current one and making sure it works, most of the time I spent on this devlog was spent on ✨ “optimisation” ✨ Optimisation First of all, I added LODs into the chunk mesh. What this means is that since further away chunks take up less of your screen, the level of detail (LOD) is reduced the further away it is. I had already made the script that handled the creation of those different meshes with different LODs, so in this devlog, I added it to the main terrain generation script, and assigned each LOD to a certain distance, so that any chunk with a certain distance has a certain LOD. In my last version of the terrain generation, I relied on the name of the MeshInstance3d nodes created to identify what chunk they were. I realised when making this updated version that it was prone to failure, since if the node did not exist or a node with the same name were some how added to the scene tree, errors would be raised or at the very least, a logic error would occur. To recetify this, I switched to using dictionaries to house all the information of all the chunks: chunks : Dictionary [ Vector2i , int ] = { Vector2i ( 0 , 0 ): 0 , Vector2i ( 0 , 1 ): 0 , #etc } The key is chunk coordinate, and the value is the LOD (0 being the highest, 4 being the lowest) Every time I wanted to update the terrain, I would search the scene tree if a particular node was unwanted (again, by looking at the name) and then generating the rest of the ones wanted. This way would not work with LODs, since some chunks may still exist, but may have to change LOD depending on where the player is. So I made use of the dictionary and also created a new one that would store the chunks that I want created. It would loop through the dictionarys, checking certain conditions, and the terrain would be updated. All this looping is somewhat inefficient, and did cause some lag spikes, so I will try to fix that next devlog by only checking the chunks that would be affected based on which way the player moved. To help with the looping, I created chunk and lod lookup tables, that can be offset based on the players_position. These lookup tables are only changed when the render distance is changed, so the same calculation doesn’t have to run hundreds of times in 16ms (60 fps).
Devlog 15 - I’m an Idiot For the past 95ish hours, I’ve been working on a way to make procedural terrain for my game. I tried 2 main methods, one centred round the CPU, and one I was building centred around the GPU. The endless chunk seam bugs caused me to burnout/get tired of the entire project, and there was so many stuff (that I won’t really be explaining for the sake of my poor reader’s sanity) leading to me ✨ youtube ✨ I saw this AMAZINGLY smart video by devmar, showing an alternate way of generating terrain. I urge you to watch the video as well, the whole technique is very very clever, and he even goes on to make further videos on making collisions, recalculating normals and adding vegetation, especially if your interested in procedural generation. After watching this video however, I became incredibly frustrated. I spent nearly 100hrs of my summer making this procedural terrain which I know hadn’t gotten anywhere and theres this incredibly smart video from 4yrs ago that pops up on my feed. Welp, now ig i gotta try out this way, and quick cos my parents are on my tail talking about me finishing this project before school starts 🙏 (its my gcse year so ig its valid but still ) Now what I actually did that counted to my time Experimented with vertex shaders, and sending heightmaps to vertex shaders to displace. This however caused immense lag and caused VERY ANNOYING chunk seams. #epicfails
Devlog 16 - AMAZING PROGRESS!! I’ve managed to get a massive 20km render distance with huge mountains and ridges using FastNoiseLite and vertex shaders. I used devmar ’s terrain technique, which he named the “Wandering Clipmap Terrain Technique”. The reason why the technique is called the “ Wandering Clipmap Terrain Technique” is because a flat plane that is subdivided a bunch (to make varrying levels of detail (LODs)) that follows the player. The vertex shaders then offset the heightmap so it gives off the illusions that your moving about in a massive world. All the displacement is done by the vertex shaders, which looks at a heightmap. In the future, I might make this heightmap be generated in gdscript instead of in the inspector, to deal with texture resolutions. Currently, from afar, the terrain looks amazing (except from the fact its not textured) but upclose, you can see rings in the terrain, which is caused by the heightmap’s resolution being too low. In fact each ring is about 8m tall so I really need to fix that 😭 The normals are calculated by just copying the heightmap and setting it ‘as normals’ in the inspector. They also are multiplied by a normal basis matrix, which allows me to configure the specific normal settings. I’ll need to calculate the normals in the fragment shader as well in the future for more convincing shadows, but for the mean time, the vertex shaders should do just fine. I’m planning on adding collisions, then maybe textures, biomes and vegetation soon!!
Devlog 17 - I am incredibly frustrated. No matter what I do it feels like I just can’t get the collisions to work. Basically, I’m trying to fetch the heights from the height map to input into the CollisionShape3D, but the coordinates are always offset in some way or the other. I even used AI my friend to basically rewrite the entire script over and over again, but that didn’t work either. Maybe it’s cos school has started now, and I haven’t been able to spend that much time on this project than I would like to As you can see in the photo, the collision mesh (in blue) is offset from the normal terrain (in white)
Devlog 18 - I am happy once again!! I FINALLY got the collisions to work!! Basically, it looks at the terrain model that is imported into Godot, and aligns the vertices of the CollisionShape3D with it. It also updates its position every time the player moves 1 unit (whatever the size of a quad of the mesh is). Then it looks at the heightmap, looks up the height of its coresponding pixel, multiplies that by the height shader param (2000, like in the vertex shaders), and thats the collision shape done. I noticed while walking around the world, that there were these massive ridges on the terrain. This is due to the lack of precision in the heightmap. The heightmap only has 256 shades of grey, and I need 2000 values. It is quite impossible to make a image file with that much precision, so instead, I’ll make it so that the CPU will just send an array to the vertex shader. Also, I’ve rebranded my project to Worlds Unbound, and this specific Stardance project will just be handling the terrain stuff for the game. p.s, it never goes above 16ms, i think thats probably because i was recording
Devlog 19 - Main Menu Added (and other things)! I spent quite a lot of time making the background for the main menu in Blender. After just copy and pasting the player model used in the game, I went ahead and made the main attraction: ✨ the planet in the background ✨ . My knowledge of noise that I gained from my previous attempts at the terrain generation helped me create the stars in the background, and the texture for the actual planet in the shader editor. I also added a slight atmosphere, which is (somewhat?) noticeable. I also went ahead and updated the shader code. Before, I used to use the visual shaders, since it was quite similar to the shader editor in Blender, which I was familiar with. But then I realised there’s just more flexibility with using GLSL . I can group uniforms in the inspector, making it clearer and less cluttered if I want to add textures in the future, including different images for the same texture (like Ambient Occlusion, Normals, Colours, and Roughness). Thus being able to group those different types images for the same texture was very important for future usability. Thankfully, Godot allows you to see the shader code that is generated from the visual shaders. Unfortunately, it was not readable at all. The generated code used a random(ish) collection of numbers and letters, and it was too long. Look below for the comparision for just the vertex shader, but it was something like 84 lines that was shruken down to 10 for the vertex shader. Even if you account for spaces in the generated code (which then it might be like 50-60 lines) thats a huge difference. So it took quite some time to get it to a readable state. edit: idk why the actual background looks so bumcheeks compared to the banner, hopefully itll be fixed by then 🤞
Devlog 20: GPU noise I found a way to make noise using a Godot addon called FastNoiseLite Runtime Shader . It was apparently identical to the FastNoiseLite in GDScript. So I gave it a try. I knew it was a gamble, given how much time I got left to ship an decent project, but I gave it a try since it seemed interesting. It wasn’t that hard to get the noise working, but to get it to sync with the collisions was a nightmare. In the end, I decided that even though the README stated it was 99.9% the same, the output seed by seed was different. So I decided to scrap it and now I’m going back to the old version with heightmaps. Why did I really want to switch? Because of the limited colour depth in images (has to be 8-bit for GDShader to read), theres not enough heights for each vertex to be at, so every so often, there’s this massive wall. It looks fine from afar, but thats probably because my terrain is 20km x 20km, so of course an 8m tall wall would look fine. (the image is from the addon readme)
Devlog 21 - Ship Prep!!! Colours I added colours to the terrain depending on how high the vertex is. This does create a very harsh border between the two colours, but I didn’t want to learn lerping, ik how to larp enough. Cleaned up my commits My commits were, and probably are still messy, and when I went ahead to revert some changes it said there were errors, but now thankfully that’s all fixed. :) I also updated quite small normals and some technical stuff.
Ships:
— SHIP No.1 — I spent the last couple of months making a model terrain, which I will use for my game that I will continue to build after this competition. My game idea is quite ambitious, and given how long it took for me to get this basic terrain to work properly and well, that won’t even be coming with the extra month added one. I lot of you may be thinking though, what on earth were you doing for 125 hours, when all you came up with is a glorified green and grey piece of paper you could walk on. Well, not only was I learning and using Godot for the first time, it was the first time I learnt anything as complicated as this. I had to wrap my head around complex (at least for me) maths and computer science topics, like vectors and cross product, noise and FBM, TBN model, and UVs, not to mention just the sheer amount of logic I had to get through. It was so tiring to keep getting bugs for the chunking system I had, or the collisions. But thankfully, all that is behind me 😼. I’ll give you a more indepth look into what I’ve done over the past couple months. Devlogs 1-12: This period was the general beginning of my project. Not only was I learning Godot, and watching tutorials on it, I was also spending time on the player character, the camera system, and the world environment. Devlogs 13-15: I tried to implement LODs into my chunks, since the performance was simply too bad. Somehow this made it worse, possibly because of more chunks (the ones at the broder of LOD borders) being forced to be unloaded and loaded back in. Devlogs 16-21: I used my current technique, heavily based from devmars video on youtube about procedural terrain during this period. School had also started, so I spent less and less time on it, being significantly burnt out and tired. So I basically went through 3 iterations of terrain for my game, so that is why it took so long to get to this point....
|
1793670795.7781034
|
1793757195.7781034
|
|
24968
|
Game Randomiser by @Pixeleyesd | Stardance
|
Pixeleyesd
|
1
|
8.82
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-23T00:36:05Z", "hours": 5.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a hardware project designed for ESP32 to help decide what game to play as well as what difficulty, alongside a timer feature. It features an I2c OLED as the display out and a rotary encoder for input.", "repo": "https://github.com/Pixeleyesd/Game-Chooser", "demo": ""}]...
|
[{"post_id": 73364, "ts": "202 [{"post_id": 73364, "ts": "2026-09-25T00:15:32Z", "hours": 3.0986, "text": "Sooooo i forgot that I’d have to update the README.md and do the BOM.csv, so there goes 3 hours of my life :/"}, {"post_id": 70912, "ts": "2026-09-20T00:55:05Z", "hours": 0.7247, "text": "I didn’t track any of my time, but here is the new progress :) I made a new case, with screws securing basically everything together. I have physically built this, and I am now printing the finalised project."}, {"post_id": 41026, "ts": "2026-08-04T22:54:47Z", "hours": 0.2744, "text": "I finished my readme.md complete with images, and I am making the release."}, {"post_id": 41023, "ts": "2026-08-04T22:32:15Z", "hours": 1.1128, "text": "I finished up my game randomiser, and I’m approaching 1k lines of code cuz im js that bad at coding guys T-T."}, {"post_id": 32190, "ts": "2026-07-21T06:05:29Z", "hours": 1.6272, "text": "I put everything together, making a menu and sub menus, following the flowchart.I then implemented the OLED display for a better viewing experience. Next step is to implement the SD Card reader, so the lists and consoles chosen in config stay remembered in persistent storage"}, {"post_id": 21800, "ts": "2026-07-03T22:32:28Z", "hours": 2.4717, "text": "I have already assembled my circuit. To begin with, I made a simple test code to run on the LCD. I then made the random function correlate to a list of games I made. Next, I integrated my game randomisation and my menu to randomise in specific categories. The current categories are: Xbox, Playstation, Nintendo and PC. I didn’t come across too many errors, as I was just combining code. An issue I did come across however, was mismatched list names, which was an easy fix (renaming case 0: chosenGame = String(xboxgames[index]); break; To case 0: chosenGame = String(xboxGames[index]); break;, notice the capital G.) After this, I made a menu and game randomisation work together to make a full version of my flowchart below. I will now make it use the SD card for the lists, and a webserver to send updated versions of the lists. (oh yeah I also added a rotary encoder to the circuit)"}]...
|
Title: Game Randomiser by @Pixeleyesd | Stardance
Title: Game Randomiser by @Pixeleyesd | Stardance
Devlogs:
I have already assembled my circuit. To begin with, I made a simple test code to run on the LCD. I then made the random function correlate to a list of games I made. Next, I integrated my game randomisation and my menu to randomise in specific categories. The current categories are: Xbox, Playstation, Nintendo and PC. I didn’t come across too many errors, as I was just combining code. An issue I did come across however, was mismatched list names, which was an easy fix (renaming case 0: chosenGame = String(xboxgames[index]); break; To case 0: chosenGame = String(xboxGames[index]); break;, notice the capital G.) After this, I made a menu and game randomisation work together to make a full version of my flowchart below. I will now make it use the SD card for the lists, and a webserver to send updated versions of the lists. (oh yeah I also added a rotary encoder to the circuit)
I put everything together, making a menu and sub menus, following the flowchart.I then implemented the OLED display for a better viewing experience. Next step is to implement the SD Card reader, so the lists and consoles chosen in config stay remembered in persistent storage
I finished up my game randomiser, and I’m approaching 1k lines of code cuz im js that bad at coding guys T-T.
I finished my readme.md complete with images, and I am making the release.
I didn’t track any of my time, but here is the new progress :) I made a new case, with screws securing basically everything together. I have physically built this, and I am now printing the finalised project.
Sooooo i forgot that I’d have to update the README.md and do the BOM.csv, so there goes 3 hours of my life :/
Ships:
I made a hardware project designed for ESP32 to help decide what game to play as well as what difficulty, alongside a timer feature. It features an I2c OLED as the display out and a rotary encoder for input....
|
1793699687.1908135
|
1794563687.1908135
|
|
64789
|
Riftbook by @inoty | Stardance
|
inoty
|
0
|
5.32
|
0
|
[]
|
[{"post_id": 73360, "ts": "202 [{"post_id": 73360, "ts": "2026-09-25T00:04:38Z", "hours": 1.8511, "text": "Rough Draft - Driftbook Day 2-3 Hello, it’s me, Inoty, you know your weird uncle who was strangely into inspecting syringes at pharmacies? Yeah anyways, I don’t have much progress to share today… BUT! I still have lots of things to talk about as for the future of this project! Where have I been? I was busy getting my home pc to be remote accessible from school, so I can work on this project even more! This took a while, but it’s finally done. That’s why there wasn’t much progress yesterday, things should speed up from now on. What did I even do? Glad you asked! I worked a lot on the graphics this time around, made a banner for the project as you can tell, made a semi-finished readme.md, and guess what? The script finally DOES something! Yeah that’s right, The script will now install all the necessary packages! Will it configure them? No. But its certainly a start! I also made a lot of banner graphics and such, which took me a while… What’s next? After I make the script fully configure and install your system, I’ll make a proper CLI for it, after that design a custom launcher to start XPRA from! Then I’ll do little tweaks to the DE to make it truly good looking! Planning on adding the option to choose between Lxqt and Sway, right now it’ll only allow you to install sway unfortunately. Conclusion I am slowly losing my sanity, as the world spins, spins! The world keep moving on as im stuck here coding this project, I actually skipped gym today to finish this in preparation for this exact post! Why am I doing this? I got no clue honestly… Anyways, see you next time!"}, {"post_id": 72504, "ts": "2026-09-23T03:01:57Z", "hours": 3.47, "text": "Starting Work On Riftbook! - Day 0-1 Hello, it’s me, Inoty. You know, your long-list twin brother? Family relations aside, I want to talk about my great and amazing new project named “Riftbook”! Isn’t it just amazing? I certainly think so, Riftbook is a glorified install script for a Debian container meant to run inside of Chromebooks! “Oh but Inoty, oh your so cool and awesome, but doesn’t ChromeOS already ship with a Debian Container?” First off, shut up, and yeah, it does. But not all Chromebooks support it, either way this comes with a separate Desktop Enviroment that gets streamed directly to your browser for your pleasure! So even if you do have access to the container, I’d recommend using this anyway. (Not Biased In Any Way) What’s Currently Completed I have completed the watermark and branding for the project; alongside a rough outline of the install script, right now it’ll only install the container with some bundled packages, but fear not! More is coming soon! I want it to configure the Web Display for you, which might take me a while. But I think I may have the brain capacity to make it work (not really) Design Wowzers! A design section, I just cant wait! I designed the logo with the spiral tool in affinity, of course distorted a little, as a cheeky little reference to its Debian origins! The palette was proposed to me by @starvulkan (hate that guy) Where does the name come from? Well, this was originally going to be called “Driftbook” but I decided to change the name, due to the fact that I had the idea of it opening a “Rift” from ChromeOS to the Debian Container! The book comes from Chromebook (Duh) Conclusion My key takeaway from the short amount of time I’ve been working on this project is: I’ve already started going insane please help."}]...
|
Title: Riftbook by @inoty | Stardance
Devlogs:
St Title: Riftbook by @inoty | Stardance
Devlogs:
Starting Work On Riftbook! - Day 0-1 Hello, it’s me, Inoty. You know, your long-list twin brother? Family relations aside, I want to talk about my great and amazing new project named “Riftbook”! Isn’t it just amazing? I certainly think so, Riftbook is a glorified install script for a Debian container meant to run inside of Chromebooks! “Oh but Inoty, oh your so cool and awesome, but doesn’t ChromeOS already ship with a Debian Container?” First off, shut up, and yeah, it does. But not all Chromebooks support it, either way this comes with a separate Desktop Enviroment that gets streamed directly to your browser for your pleasure! So even if you do have access to the container, I’d recommend using this anyway. (Not Biased In Any Way) What’s Currently Completed I have completed the watermark and branding for the project; alongside a rough outline of the install script, right now it’ll only install the container with some bundled packages, but fear not! More is coming soon! I want it to configure the Web Display for you, which might take me a while. But I think I may have the brain capacity to make it work (not really) Design Wowzers! A design section, I just cant wait! I designed the logo with the spiral tool in affinity, of course distorted a little, as a cheeky little reference to its Debian origins! The palette was proposed to me by @starvulkan (hate that guy) Where does the name come from? Well, this was originally going to be called “Driftbook” but I decided to change the name, due to the fact that I had the idea of it opening a “Rift” from ChromeOS to the Debian Container! The book comes from Chromebook (Duh) Conclusion My key takeaway from the short amount of time I’ve been working on this project is: I’ve already started going insane please help.
Rough Draft - Driftbook Day 2-3 Hello, it’s me, Inoty, you know your weird uncle who was strangely into inspecting syringes at pharmacies? Yeah anyways, I don’t have much progress to share today… BUT! I still have lots of things to talk about as for the future of this project! Where have I been? I was busy getting my home pc to be remote accessible from school, so I can work on this project even more! This took a while, but it’s finally done. That’s why there wasn’t much progress yesterday, things should speed up from now on. What did I even do? Glad you asked! I worked a lot on the graphics this time around, made a banner for the project as you can tell, made a semi-finished readme.md, and guess what? The script finally DOES something! Yeah that’s right, The script will now install all the necessary packages! Will it configure them? No. But its certainly a start! I also made a lot of banner graphics and such, which took me a while… What’s next? After I make the script fully configure and install your system, I’ll make a proper CLI for it, after that design a custom launcher to start XPRA from! Then I’ll do little tweaks to the DE to make it truly good looking! Planning on adding the option to choose between Lxqt and Sway, right now it’ll only allow you to install sway unfortunately. Conclusion I am slowly losing my sanity, as the world spins, spins! The world keep moving on as im stuck here coding this project, I actually skipped gym today to finish this in preparation for this exact post! Why am I doing this? I got no clue honestly… Anyways, see you next time!...
|
1793678088.2941864
|
1794282888.2941864
|
|
57294
|
My awesome macropad! by @milo31231 | Stardance
|
milo31231
|
0
|
10.47
|
0
|
[]
|
[{"post_id": 73354, "ts": "202 [{"post_id": 73354, "ts": "2026-09-24T23:38:08Z", "hours": 1.0283, "text": "models done? fitment might need some tweaking"}, {"post_id": 72527, "ts": "2026-09-23T04:19:34Z", "hours": 1.7006, "text": "okay figured out the case finally"}, {"post_id": 68855, "ts": "2026-09-15T21:34:28Z", "hours": 1.5619, "text": "sadly will have to restart the case stuff since I didnt account for the top or bottom case bit… did move the microcontroller though"}, {"post_id": 66356, "ts": "2026-09-12T04:37:01Z", "hours": 1.7086, "text": "setting up the pcb any help with finding models would be greatly appreciated"}, {"post_id": 65656, "ts": "2026-09-10T22:55:06Z", "hours": 1.1239, "text": "its setup now the hard part wiring"}, {"post_id": 65588, "ts": "2026-09-10T20:28:42Z", "hours": 1.3789, "text": "setting up the pcb now"}, {"post_id": 61771, "ts": "2026-09-04T20:49:52Z", "hours": 1.4028, "text": "the base is donnnneeee"}, {"post_id": 60595, "ts": "2026-09-03T01:42:14Z", "hours": 0.5611, "text": "Just starting out with Ki Cad not too confusing I’m excited for using fusion 360 I’ve only really cad in on shape"}]...
|
Title: My awesome macropad! by @milo31231 | Starda Title: My awesome macropad! by @milo31231 | Stardance
Devlogs:
Just starting out with Ki Cad not too confusing I’m excited for using fusion 360 I’ve only really cad in on shape
the base is donnnneeee
setting up the pcb now
its setup now the hard part wiring
setting up the pcb any help with finding models would be greatly appreciated
sadly will have to restart the case stuff since I didnt account for the top or bottom case bit… did move the microcontroller though
okay figured out the case finally
models done? fitment might need some tweaking...
|
1793426156.1221359
|
1794030956.1221359
|
|
28240
|
My awesome macropad! by @Shlok_P | Stardance
|
Shlok_P
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-24T23:07:56Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Made a macropad- Learned a lot about coding and how to make a pcb and solder it", "repo": "https://github.com/shlokrpatel/Shlok-Superpad", "demo": ""}]...
|
[{"post_id": 73345, "ts": "202 [{"post_id": 73345, "ts": "2026-09-24T23:07:15Z", "hours": 0.9333, "text": "Coding some stuff and got it working"}, {"post_id": 26174, "ts": "2026-07-10T20:30:17Z", "hours": 2.3333, "text": "I finally finished my macropad. I troubleshooted my qmk so many times and finally found the problem and fixed with claude. I then spent some time compiling all my files into git and am currently working on the submission"}, {"post_id": 25660, "ts": "2026-07-10T02:16:54Z", "hours": 5.2308, "text": "Absolutely huge day for me. I finished my case after hours of working on it and started on my qmk coding. Coding is sooooo hard. I had to use 3 different websites and some AI to help me and still couldn’t get it right."}, {"post_id": 24790, "ts": "2026-07-08T16:15:31Z", "hours": 4.6169, "text": "First post! I have had some trouble with attaching my timelapses to my project but thanks to some amazing help in the slack I compiled all 3 of my current timelapses into my first devlog. These 3 timelapses include me making my pcb with 9 switches, a oled screen, and a rotary encoder. After I finished with the pcb I spend a lot of time looking at other projects that people made for some inspiration for my case. I finally started making my case and ran into problems with sizing and trying to get a 3 degree tilt on it. I still have to finish my case and will probably seek some help again."}]...
|
Title: My awesome macropad! by @Shlok_P | Stardanc Title: My awesome macropad! by @Shlok_P | Stardance
Devlogs:
First post! I have had some trouble with attaching my timelapses to my project but thanks to some amazing help in the slack I compiled all 3 of my current timelapses into my first devlog. These 3 timelapses include me making my pcb with 9 switches, a oled screen, and a rotary encoder. After I finished with the pcb I spend a lot of time looking at other projects that people made for some inspiration for my case. I finally started making my case and ran into problems with sizing and trying to get a 3 degree tilt on it. I still have to finish my case and will probably seek some help again.
Absolutely huge day for me. I finished my case after hours of working on it and started on my qmk coding. Coding is sooooo hard. I had to use 3 different websites and some AI to help me and still couldn’t get it right.
I finally finished my macropad. I troubleshooted my qmk so many times and finally found the problem and fixed with claude. I then spent some time compiling all my files into git and am currently working on the submission
Coding some stuff and got it working
Ships:
Made a macropad- Learned a lot about coding and how to make a pcb and solder it...
|
1793674188.917757
|
1793760588.917757
|
|
46490
|
Periodic by @crx1x1 | Stardance
|
crx1x1
|
1
|
7.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-03T22:50:27Z", "hours": 7.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "After 8 hours of development, I present the Periodic Table for the Evo! It’s a fully custom and high-performance periodic table app based in MicroPython for the TI-84 Evo calculators. I literally built this because TI half-baked their product launch and forgot about literally every aspect of backwards compatibility! (looking at you, every appvar format ever built for the CE and lower) What I have: -A full 118-Element Data array: Complete data for every single element; atomic mass, electron config, electronegativity, density, phase, discovery year, and oxidation states. -Faithful GUI recreation: I recreated the original TI-84 Plus CE Periodic Table app layout and interface to look and feel exactly like the built-in app (minus the speed, TI really had to lobotomize that) AI Attribution: AI tools used: Google Gemini Scope: Generated almost the entirety of the 118-element dataset (E) as well a debugging partner. From me: everything else! Some side notes: -You might see some strings scattered around in the E array. Those are simply to prevent the calculator from trying to display float inaccuracies that overflow out of the GUI box -The screen recorder given in TI-Connect Evo is so slow, and my device camera is horrible, so whoopsies :P -Go and roast TI for their sloppy rushed release!", "repo": "https://github.com/CrX1x1/periodic_table/", "demo": "https://github.com/CrX1x1/periodic_table"}]...
|
[{"post_id": 73339, "ts": "202 [{"post_id": 73339, "ts": "2026-09-24T22:26:01Z", "hours": 1.9089, "text": "i added basic scrolling and selection in the info panel, adding other stuff like more pages of information and horizontal scrolling to the next element"}, {"post_id": 72456, "ts": "2026-09-23T00:40:10Z", "hours": 1.6164, "text": "I made a splash screen and added softkeys… I dunno what else to say besides that also rewrote the stuff a tiny bit I guess"}, {"post_id": 64244, "ts": "2026-09-08T14:36:22Z", "hours": 1.0072, "text": "I added a way to see the element and the symbol that’s being selected because not everyone remembers their periodic tables. (me neither) I’ll be adding soft buttons and a graph in the next devlog so there will be room for more features. If you haven’t already, you should go check the periodic table app on the TI-84 Plus CE if you have one… or not. (Exactly 1 hour lol)"}, {"post_id": 56311, "ts": "2026-08-28T01:29:03Z", "hours": 1.5047, "text": "Well, I guess you could say I took a long break, huh? Anyways, I spend a good hour of my time hardcoding some extra lookups so it can actually select up and down just like how it is on the TI-84 Plus CE. Yes, I seriously should optimize it, I know, but if it works, it works. I’ll be sure to make it more readable next commit. Catch you in the next devlog!"}, {"post_id": 44799, "ts": "2026-08-10T20:12:55Z", "hours": 0.6464, "text": "Half functional selection, half functional brain, pushed commit anyways todos: add vertical selection as well work on page that says the info and stuff idk, whatever is on the TI-84 Plus CE but not on the Evo (srry for the horrible video quality, i should get a new phone lulz)"}]...
|
Title: Periodic by @crx1x1 | Stardance
Devlogs:
H Title: Periodic by @crx1x1 | Stardance
Devlogs:
Half functional selection, half functional brain, pushed commit anyways todos: add vertical selection as well work on page that says the info and stuff idk, whatever is on the TI-84 Plus CE but not on the Evo (srry for the horrible video quality, i should get a new phone lulz)
Well, I guess you could say I took a long break, huh? Anyways, I spend a good hour of my time hardcoding some extra lookups so it can actually select up and down just like how it is on the TI-84 Plus CE. Yes, I seriously should optimize it, I know, but if it works, it works. I’ll be sure to make it more readable next commit. Catch you in the next devlog!
I added a way to see the element and the symbol that’s being selected because not everyone remembers their periodic tables. (me neither) I’ll be adding soft buttons and a graph in the next devlog so there will be room for more features. If you haven’t already, you should go check the periodic table app on the TI-84 Plus CE if you have one… or not. (Exactly 1 hour lol)
I made a splash screen and added softkeys… I dunno what else to say besides that also rewrote the stuff a tiny bit I guess
i added basic scrolling and selection in the info panel, adding other stuff like more pages of information and horizontal scrolling to the next element
Ships:
After 8 hours of development, I present the Periodic Table for the Evo! It’s a fully custom and high-performance periodic table app based in MicroPython for the TI-84 Evo calculators. I literally built this because TI half-baked their product launch and forgot about literally every aspect of backwards compatibility! (looking at you, every appvar format ever built for the CE and lower) What I have: -A full 118-Element Data array: Complete data for every single element; atomic mass, electron config, electronegativity, density, phase, discovery year, and oxidation states. -Faithful GUI recreation: I recreated the original TI-84 Plus CE Periodic Table app layout and interface to look and feel exactly like the built-in app (minus the speed, TI really had to lobotomize that) AI Attribution: AI tools used: Google Gemini Scope: Generated almost the entirety of the 118-element dataset (E) as well a debugging partner. From me: everything else! Some side notes: -You might see some strings scattered around in the E array. Those are simply to prevent the calculator from trying to display float inaccuracies that overflow out of the GUI box -The screen recorder given in TI-Connect Evo is so slow, and my device camera is horrible, so whoopsies :P -Go and roast TI for their sloppy rushed release!...
|
1793674131.2705345
|
1793760531.2705345
|
|
6035
|
MediScan by @lilboimonke | Stardance
|
lilboimonke
|
0
|
1.39
|
0
|
[]
|
[{"post_id": 7333, "ts": "2026 [{"post_id": 7333, "ts": "2026-06-12T07:17:07Z", "hours": 1.3858, "text": "Worked on some debugging, added some new features to the ui, overall making this look like a usable app. I also finished all the backend."}]...
|
Title: MediScan by @lilboimonke | Stardance
Devlo Title: MediScan by @lilboimonke | Stardance
Devlogs:
Worked on some debugging, added some new features to the ui, overall making this look like a usable app. I also finished all the backend....
|
1793458223.0288787
|
1794063023.0288787
|
|
65227
|
My first OS by @Kuroperenquen | Stardance
|
Kuroperenquen
|
0
|
1.87
|
0
|
[]
|
[{"post_id": 73328, "ts": "202 [{"post_id": 73328, "ts": "2026-09-24T21:33:51Z", "hours": 1.8658, "text": "The Adrian web OS (will change the name later)"}]...
|
Title: My first OS by @Kuroperenquen | Stardance
Title: My first OS by @Kuroperenquen | Stardance
Devlogs:
The Adrian web OS (will change the name later)...
|
1793696276.2947602
|
1794301076.2947602
|
|
62089
|
My first site by @Manu_Gurgel | Stardance
|
Manu_Gurgel
|
1
|
3.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-25T00:14:01Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I created my first website to introduce myself using HTML and CSS; I had never programmed anything like this before, having previously only trained for C++ programming competitions. At first, I found it quite challenging, but with the help of AI to fix errors and understand how to use certain elements, the site began to take shape. On the site, you can find information about my academic background and a link to Neps Academy, where you can create an account to access programming exercises in various languages (C, C++, Python, etc.). I still think there is plenty of room for improvement—such as adding more information and features, and making it look better and more organized—but for now, this is how it stands.", "repo": "https://github.com/Manu-Gurgel/Teste-1", "demo": "https://manu-gurgel.github.io/Teste-1/"}]...
|
[{"post_id": 73323, "ts": "202 [{"post_id": 73323, "ts": "2026-09-24T21:25:12Z", "hours": 1.035, "text": "I’m thinking about more informations that I could add to the site to make a portifolio"}, {"post_id": 71716, "ts": "2026-09-21T11:24:41Z", "hours": 2.4125, "text": "I’m working on my first website to introduce myself and tell about my programming journey"}]...
|
Title: My first site by @Manu_Gurgel | Stardance
Title: My first site by @Manu_Gurgel | Stardance
Devlogs:
I’m working on my first website to introduce myself and tell about my programming journey
I’m thinking about more informations that I could add to the site to make a portifolio
Ships:
I created my first website to introduce myself using HTML and CSS; I had never programmed anything like this before, having previously only trained for C++ programming competitions. At first, I found it quite challenging, but with the help of AI to fix errors and understand how to use certain elements, the site began to take shape. On the site, you can find information about my academic background and a link to Neps Academy, where you can create an account to access programming exercises in various languages (C, C++, Python, etc.). I still think there is plenty of room for improvement—such as adding more information and features, and making it look better and more organized—but for now, this is how it stands....
|
1793684997.7872972
|
1793771397.7872972
|
|
65248
|
Whoami? by @foreignmoney | Stardance
|
foreignmoney
|
0
|
0.6
|
0
|
[]
|
[{"post_id": 73322, "ts": "202 [{"post_id": 73322, "ts": "2026-09-24T21:19:21Z", "hours": 0.6039, "text": "Added new features to the bot, Including: - clairo gif when saying clairo; - laufey gif when saying laufey; - if you say test123 it replies with test + the number of times people said test123(reference to the making of the function of the laufey gif ). whole bot is still in making, btw"}]...
|
Title: Whoami? by @foreignmoney | Stardance
Devlo Title: Whoami? by @foreignmoney | Stardance
Devlogs:
Added new features to the bot, Including: - clairo gif when saying clairo; - laufey gif when saying laufey; - if you say test123 it replies with test + the number of times people said test123(reference to the making of the function of the laufey gif ). whole bot is still in making, btw...
|
1793699293.5122554
|
1794304093.5122554
|
|
61021
|
Expenses-tracker by @kareemwaleed | Stardance
|
kareemwaleed
|
2
|
3.0
|
1
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-24T20:21:21Z", "hours": 1.0, "multiplier": 1.52, "payout": 1, "blessing": "neutral", "text": "I improved the ui /ux I made the site responsive I added animations on hovering", "repo": "https://github.com/kokx138/expenses-tracker", "demo": "https://kokx138.github.io/expenses-tracker/"}, {"ship_num": 2, "ts": "2026-09-21T10:56:20Z", "hours": 2.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a complete working expenses tracker you can add income and expenses in it , it is fully working you can add income by entering positive values you can add expenses by adding - values it saves what you have entered in local storage I found it challenging to write js code and I got many bugs because I often forget the semi column", "repo": "https://github.com/kokx138/expenses-tracker", "demo": "https://kokx138.github.io/expenses-tracker/"}]...
|
[{"post_id": 73308, "ts": "202 [{"post_id": 73308, "ts": "2026-09-24T20:19:46Z", "hours": 1.045, "text": "I improved the ui of my expense tracker and I added some animations also I made it responsive"}, {"post_id": 71705, "ts": "2026-09-21T10:50:33Z", "hours": 0.5956, "text": "MY SITE IS FINALLY WORKING I ADDED JS"}, {"post_id": 67003, "ts": "2026-09-13T01:13:01Z", "hours": 1.5892, "text": "Thats expenses tracker"}]...
|
Title: Expenses-tracker by @kareemwaleed | Stardan Title: Expenses-tracker by @kareemwaleed | Stardance
Devlogs:
Thats expenses tracker
MY SITE IS FINALLY WORKING I ADDED JS
I improved the ui of my expense tracker and I added some animations also I made it responsive
Ships:
I made a complete working expenses tracker you can add income and expenses in it , it is fully working you can add income by entering positive values you can add expenses by adding - values it saves what you have entered in local storage I found it challenging to write js code and I got many bugs because I often forget the semi column
I improved the ui /ux I made the site responsive I added animations on hovering...
|
1793681877.2866616
|
1793768277.2866616
|
|
64739
|
WeatherFetch by @SilentVelocity | Stardance
|
SilentVelocity
|
1
|
9.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-24T20:19:04Z", "hours": 9.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Welcome to Weather Fetch. This Website displays weather of a location by requesting permission for location of user and sends API requests to Open Meteo for weather information and a separate request to bigdatacloud.net for displaying the location. What I found challenging was making the AQI feature work and making the correct URLs for the API calls. I’m Proud of the structure that I’ve given to my JS. The JS is not messily tangled altogether but rather in neat blocks of code. This prevents everything from breaking if one thing breaks. Another thing is the way I’ve used THREE APIs for this. sounds big.", "repo": "https://github.com/VolarQuill/WeatherFetch", "demo": "https://weather-fetch-six.vercel.app/"}]...
|
[{"post_id": 73303, "ts": "202 [{"post_id": 73303, "ts": "2026-09-24T20:09:17Z", "hours": 1.7786, "text": "The project is officially done!!! I got over with the AQI, and went on to add some animations to the website and two separate alerts. One alert for high UV and one alert for high chance of rain."}, {"post_id": 73237, "ts": "2026-09-24T17:12:07Z", "hours": 6.6658, "text": "Okay. A lot has happened now actually. I’ve a big weather condition block, added time, location, added a lot more of CSS, added stickers too! Working on adding AQI and potentially FORECAST! i probably wont be doing forecast cuz AQI adding AQI has a lot more extra steps than adding the other stats, and i dont seem to figure it out. See the github commits for the proper progressions of features. i forgot about devlogs sorry"}, {"post_id": 72144, "ts": "2026-09-22T09:41:56Z", "hours": 0.8428, "text": "I finally got the browser to ask for the user’s permission for location. NOT a fan of making error messages work."}]...
|
Title: WeatherFetch by @SilentVelocity | Stardance Title: WeatherFetch by @SilentVelocity | Stardance
Devlogs:
I finally got the browser to ask for the user’s permission for location. NOT a fan of making error messages work.
Okay. A lot has happened now actually. I’ve a big weather condition block, added time, location, added a lot more of CSS, added stickers too! Working on adding AQI and potentially FORECAST! i probably wont be doing forecast cuz AQI adding AQI has a lot more extra steps than adding the other stats, and i dont seem to figure it out. See the github commits for the proper progressions of features. i forgot about devlogs sorry
The project is officially done!!! I got over with the AQI, and went on to add some animations to the website and two separate alerts. One alert for high UV and one alert for high chance of rain.
Ships:
Welcome to Weather Fetch. This Website displays weather of a location by requesting permission for location of user and sends API requests to Open Meteo for weather information and a separate request to bigdatacloud.net for displaying the location. What I found challenging was making the AQI feature work and making the correct URLs for the API calls. I’m Proud of the structure that I’ve given to my JS. The JS is not messily tangled altogether but rather in neat blocks of code. This prevents everything from breaking if one thing breaks. Another thing is the way I’ve used THREE APIs for this. sounds big....
|
1793685285.8990417
|
1793771685.8990417
|
|
14232
|
FennecOS by @kingsuper195 | Stardance
|
kingsuper195
|
1
|
4.1
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-11T11:55:41Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "FennecOS webEdition is a mock-up gui version of the true FennecOS that is yet to be created.", "repo": "https://github.com/kingsuper195/fennecOSweb", "demo": "https://kingsuper195.github.io/fennecOSweb"}]...
|
[{"post_id": 7330, "ts": "2026 [{"post_id": 7330, "ts": "2026-06-12T07:02:48Z", "hours": 1.0992, "text": "Added notes app with localStorage"}, {"post_id": 6787, "ts": "2026-06-11T11:30:43Z", "hours": 1.8639, "text": "Jam number 4, my custom app was a pocketwatch"}, {"post_id": 6094, "ts": "2026-06-10T07:41:41Z", "hours": 0.6475, "text": "Completed “jam” number 3, and added a header bar to the window."}, {"post_id": 6080, "ts": "2026-06-10T06:57:52Z", "hours": 0.5878, "text": "First two “jams” completed. A welcome window and top bar are complete."}]...
|
Title: FennecOS by @kingsuper195 | Stardance
Devl Title: FennecOS by @kingsuper195 | Stardance
Devlogs:
First two “jams” completed. A welcome window and top bar are complete.
Completed “jam” number 3, and added a header bar to the window.
Jam number 4, my custom app was a pocketwatch
Added notes app with localStorage
Ships:
FennecOS webEdition is a mock-up gui version of the true FennecOS that is yet to be created....
|
1793717774.403483
|
1793804174.403483
|
|
65218
|
mywebsite by @geeky | Stardance
|
geeky
|
1
|
10.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-27T20:54:20Z", "hours": 10.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "ita a tracker that makes keep your streak easier", "repo": "https://github.com/filippoplesca3-wq/habit-tracker", "demo": "https://filippoplesca3-wq.github.io/habit-tracker/"}]...
|
[{"post_id": 73298, "ts": "202 [{"post_id": 73298, "ts": "2026-09-24T19:54:07Z", "hours": 10.0153, "text": "im working on an habit tracker for streaks"}]...
|
Title: mywebsite by @geeky | Stardance
Devlogs:
i Title: mywebsite by @geeky | Stardance
Devlogs:
im working on an habit tracker for streaks
Ships:
ita a tracker that makes keep your streak easier...
|
1793685439.5047026
|
1794549439.5047026
|
|
52019
|
Pointer Fighter (C based) by @nano | Stardance
|
nano
|
1
|
58.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-24T20:19:08Z", "hours": 58.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "A roguelike room crawler completely built in C! What is in it? Randomly generated rooms with a fog of war for you to explore Three different enemy types with scaling difficulty Boss fights with unique item drop RPG Style fighting An interactive inventory that can be used during battle A battle log that tracks everything that happens in battle Items, pickups and a persistent highscore What am I proud of? The enemy pursuit and fleeing system. It was somewhat hard to implement but I think it made the game wayyyy better than before. I’m also proud of how the state machine turned out in the end. The game has strict separations between the different game states and first handles what the player/the game did during the game loop iteration and then after that is done draws it to the screen. That state machine was very prone to bugs and I had to spend a bunch of time to fix (fallthrough bug, etc. all talked about in devlogs). But I think the result that turned out at the end was great and I am very content with it How is it built? As said its completely built in C using ncurses as its graphics library using 12 source files (currently) with each one having a specific task only it does. The build is released using GitHub workflows and the binary can easily be downloaded and used on (almost) all glibc linux distros (the project was compiled for Ubuntu and you will have to install ncurses though) What I learned The game was actually my first real coding project ever apart from a few simple websites so I learned a bunch. I learned how to separate state transitions, I learned the importance of good and bad switch statements, bounds checking (really rough path) and I think most importantly: The power of code separation and making every file do its designated task. I often caught myself picking the easy and sloppy path and then fixing it properly and in retrospect helped with preventing a bunch of bugs Known limitations / plans for the future It’s my first project, so there are likely still issues I haven’t found. Even though I tried to find everything (a.e. using Valgrind told me there are no memory blocks definitely lost) there are still potentially memory safety issues or potential segfaults. It’s possible some edge cases might have slipped through. I’ve tested the project thoroughly and haven’t found any crashes since the last few debugging sessions but I cannot safely say it’s perfect. I think if I will find the time I will maybe add some new features like new special item related enemies or player status effects though I cannot safely say if i can Closing word I think building a game for my first real project was the right decision for me because I really had a bunch of fun building this project. I currently have some ideas for unrelated new projects (one is up on my profile check it out (; ) and I think this project was a really good pathway into coding for me. Check the GitHub and the demo video out and I hope you like the project", "repo": "https://github.com/skibidi-nano/Stardance-roguelike", "demo": "https://github.com/skibidi-nano/Stardance-roguelike/releases/tag/v1.1.0"}]...
|
[{"post_id": 73295, "ts": "202 [{"post_id": 73295, "ts": "2026-09-24T19:37:40Z", "hours": 3.1092, "text": "LOG 26: FINAL DEVLOG MAINLY BUG FIXES AND SOME MINOR CHANGES CHANGES Enemies previously scaled to strongly and beat you too hard after the boss fight. Also because it was hard to scale the opponents down i decided to make the hp of everyone higher (everything got stronger in theory, player has 100 starting hp, does 20 damage etc.) LATE ADDITIONS LICENSE I licensed the project under the MIT licesne because it seemed fitting BUILD FILE I added a build file for the repo so i could upload a release binary (ncurses is required tho) BUG FIXES HIGHSCORE BUG There was a bug with the highscore not being displayed when there was no highscore.txt file. I needed to change the handling of the fact that the open function returned NULL, because NULL either meant, no file was there or no file could be found which resulted in no file being created because the function exited when the open function returned NULL, the fix was pretty simple overall tho (just adding an extra if conditional to check) FULL INVENTORY BUG Previously when having a full inventory, you couldnt pick up new items, issue was when using items that state didnt reset so one full inventory meant no items anymore :( . The fix was just to reset the state after using items BOSS ITEM INVENTORY BUG I forgot to make the boss item return the correct state which resulted in the item sometimes not being put in the inventory. The fix was just to add return ENTER_LEGAL to the boss items if statement SET ROOM ISSUE Because of random rooms sometimes boss room dimensions where bigger than current room which resulted in bugs (see previous devlogs). My previous fix worked in theory but had more affinity for potential bugs so i changed the set room function from two static values to two values that get passed into the function"}, {"post_id": 71417, "ts": "2026-09-20T19:47:13Z", "hours": 5.0142, "text": "LOG 25: FLEEING ENEMIES (CONTAINS MANY CHANGES), BOSS ITEM REFACTOR FLEEING ENEMIES Enemies (except the boss) now have the ability to run away if the enemy would get killed by the next attack. The chance for this to happen is 10% and when they run away, they gain 1 HP per step they take and return to chasing the enemy if their hp is back at half of their max HP. FLEEING REWORK Before adding this feature, fleeing was the same practically as winning (the return type of the fight was STATE_VICTORY), i changed that to the proper STATE _FLED. Also before when fleeing, if you fled and another enemy of another type collided with you, he had normal stats but the enemy before that also got his stats reset. The same went for enemies of the same type. When fleeing from enemy A from type A and then colliding with enemy B from type A, he would have the stats of enemy A. The fix for both was to make a 2D Array of all enemies and their types, so each individual enemy stores its stats, not the battle function. PLAYER POSITION STRUCT Previously the player had ~ 8 different position variables, which was pretty clunky if i wanted to transport the player position to another function. Because of that i put all player positions into a singular struct, so i could pass all the player positions at once if i needed to. ENEMY PURSUIT FUNCTION REWORK Because enemies have to run away instead of chasing i had to rework the pursuit function a bit so it could also work in a reverse way. I had to make the function branch between the two states which took a bit more work than originally anticipated because i had a bunch of wrong ideas for how the function should work. Overall the function implementation was essentially to just use the inverse vector of the normal vector for the direction function BOSS ITEM FUNCTION/ITEM FUNCTION REFACTOR Because previously the boss item detection function and the item detection were separate the code didnt feel clean at all (felt like a lazy implementation for me), so i made the item function work with the boss item which makes the item function overall more open for new item types (if i will add any more)"}, {"post_id": 69703, "ts": "2026-09-17T16:40:29Z", "hours": 4.2308, "text": "LOG 24: BOSS ITEM DROP, CONTROLS SCREEN, NEW IN-GAME BANNER, ITEM TO INVENTORY REFACTOR, BUG FIXES FEATURES BOSS ITEM DROP I added an item that only the boss drops, when killed. Its ability is to make the enemy unable to attack for one turn. You will always get it when defeating the boss and has the ‘?’ glyph compare to regular items (‘+’). Its also the only item that can always be picked up (with normal items, if your inventory is full you cannot pick them up, with the boss item your first slot gets overwritten). CONTROLS SCREEN I added a basic controls screen so people that try the game out (now or when it ships), know what to do when playing. Currently most things are really straightforward but i added it just in case. The most important aspect will probably how to end the game because thats the most unintuitive one (even though i hope anyone testing the game doesnt want to quit it) ITEM TO INVENTORY REFACTOR I thought that the previous state of my item to inventory were pretty lazy so i changed the logic up a bit. Previously when picking up items the items would go into the spot after the last item that was picked up and when the inventory ran full the first item was swappped with the newly picked up item. I didnt like that looking back and because of that the logic now scans through the inventory until it finds an empty spot and puts the item in that empty slot. If the inventory is full no item can be picked up (except the boss item) and the player gets a message on their screen. They can then leave the item screen using ESC and the item is not removed and can be picked up later if you somehow make space in your inventory NEW IN-GAME BANNER Also pretty straightforward, i added a banner so the menu looks a little bit prettier :) BUG FIXES BOSS ROOM BUG Because of map and gamestates and me forgetting to implement a feature in the door collision checks, there was a bug when defeating the boss (the map stayed as it was, but had the usual visible map ‘#’ everywhere you hadnt already explored (you cant really explore much so there where many ‘#’ ’s around the map which was really ugly. The fix was to move a mapstate change from the function that is responsible for handling victory to the function handling doors BOSS BUG There was a bug after defeating the boss which resulted from the previous bug and its fix. Because i forgot an additional check in my door function when defeating the boss the boss would spawn again and overwrite your boss item. The boss also chased you (which normally doesnt happen) and you couldnt leave the room. The fix was just to add another condition to the if statement in the door function responsible for the boss room ENEMY REMOVAL BUG For some reason (i dont know how i made the bug happen), when defeating enemies the visible map lagged behind the normal map which resulted in defeated enemies appearing to still exist on the map for one iteration of the loop (pressing any button made them vanish). The fix was to add a call to the visible_map_init function after defeating enemies"}, {"post_id": 68741, "ts": "2026-09-15T17:34:46Z", "hours": 2.2667, "text": "LOG 23: BATTLE LOG FOR ITEMS, BUG FIXES, BUG FIXES, BUG FIXES, BUG FIXES FEATURE BATTLE LOG FOR ITEMS The previous battle log only logged attacks and the damage dealt, now the log also tracks if items are used or items deal damage BUG FIXES SEGFAULT There was a segfault when trying to render the bottom of deeper rooms because the render guard had a major fault (only disjunctions no conjunctions). Because of that the game tried to reach spaces of the visible_map array out of reach of the array which resulted in a segfault when trying to go into spaces out of reach of the array. The fix was changing the guard from if ((player_y + y) < MAX_HEIGHT || (player_x + x) < MAX_WIDTH || (player_y + y ) >= 0 || (player_x + x >= 0)) to if ((player_y + y) < MAX_HEIGHT && (player_x + x) < MAX_WIDTH && (player_y + y ) >= 0 && (player_x + x >= 0)) which fixed the issue BATTLE LOG NULL TERMINATOR FIX There was a bug with the battle log, where ^ were printed (NUL ascii in ncurses) because the battle log printed out every part of the string character by character (including the \\0 terminator). The fix was to just not print out the \\0 terminator to the screen BATTLE SELECTION BUG There was a bug with conflicting selection variables (multiple variables where named selection which resulted in wrong selections being displayed). The fix was to give every function their own selection variable which fixed the issue VISIBLE MAP GLITCH Because the visible map only updated itself in the perimeter you are standing in if you moved fast enough some characters lagged behind and made it look like there were way more enemies than there actually were. The fix was to update not only the perimeter on every movement but also update everything that had already been explored"}, {"post_id": 68208, "ts": "2026-09-14T18:13:59Z", "hours": 4.045, "text": "LOG 22: POISON ITEM, BATTLE LOG, MAIN LOOP AND ITEM SELECTION REWORK POISON ITEM A new item that does 3 tick damage every enemy turn, for 2 turns. Its the rarest item in the game as of right now and was somewhat complex to add (because of the tick damage and tracking how many turns have passed) BATTLE LOG A log that tracks the last two actions that have happened in the game. It currently only tracks damage and attacks but will track item usage and more detailed information in the future. It was a real headache to implement because i had contradictory logic between the log and my main loop and i had to reimplement it multiple times. But went well overall :) REWORKS MAIN LOOP REWORK I reworked the main loop a bit because even though it worked well in theory it was not really optimized and it was prone to bugs in the future which is why i felt like redoing it a bit. Now instead of every function handling their own init, every changing gamestate instantly also inits the state it was changed to. Because of this there are less possible bugs and its overall easier to do for future gamestates ITEM PICKUP REWORK I noticed that the logic for my items wasn’t really perfect and seemed unoptimized which is why i felt like changing it a bit. Because when picking up items there are only two possible things to do (which both result in the same exit scenario) i swapped my if/else if logic for a switch statement which made the code shorter, and more optimal"}, {"post_id": 67326, "ts": "2026-09-13T12:07:21Z", "hours": 3.1628, "text": "LOG 21: FOG OF WAR, HOMING ENEMIES, BATTLE LOGIC OVERALL AND BUG FIXES FEATURES HOMING ENEMIES The enemies now home on you with every step you take, meaning you actually have to think about where you will go or the enemies will catch up to you. This was implemented by adding a sign function that decide whether the enemy should move +1 or -1 and then moving the enemy by that value. There were some bugs regarding enemies in previous rooms which got fixed by resetting the whole array during map init FOG OF WAR I added a fog of war feature that obstructs everything in the map you haven’t explored yet. This also pairs very well with the homing enemies feature. You have to go around the map to look out for items and enemies which now also walk towards you, so every step matters now BATTLE LOGIC OVERHAUL After revisiting most of my code for commenting i realized how terrible most of my battle logic was so i made it a bit more efficient and most importantly more readable. Overall i realized how great switch statements are in the last few logs BUG FIXES DOOR BUG There was a bug with the map that was somewhat useful when testing but still was a bug. The issue was that if you tried to step into the door the game let you step onto that char. The issue was that i forgot to make the game think that the door (when closed) should behave exactly like a wall. So the fix was just to add the door char to the wall collision check function"}, {"post_id": 66634, "ts": "2026-09-12T14:15:36Z", "hours": 1.4594, "text": "LOG 20: DYNAMIC STATS, BUG FIXES, SMALL UPDATE TO DEBUG MODE AND MORE COMMENTS DYNAMIC STATS The stats of all enemies are now connected to the boss counter which is the number of boss fights that have been fought during the current run so there is real progression and you dont just get stupidly overpowered DEBUG MODE I basically just added the boss to the debug mode nothing much BUG FIXES There was a glitch with the boss room being cut off because the randomly generated room was smaller than the boss room. I had to push a few things around and put every type of map generation (standard, debug, boss) into a switch statement to make it work properly COMMENTS I pretty much forgot most of the comments in the game so i started adding way more comments where they should be so the code is hopefully more intuitive to follow NOTE I think the next update will be pretty big so watch out when it finally drops!!!"}, {"post_id": 66094, "ts": "2026-09-11T17:53:56Z", "hours": 3.0956, "text": "LOG 19: NEW ENEMY TYPE: BOSS FIGHTS, BETTER DOOR LOGIC, NEW SPRITES NEW ENEMY TYPE Because i thought that the normal enemies would be too easy to beat down the run i added the main boss (the pointer which stole the star sprite from the address enemy) and he will always be fought every 5-10 rooms (im not sure on the number) . Currently his stats are static but i plan on making them dynamic based on the number of rooms you went through. BOSS ROOM/BETTER DOOR LOGIC The old door logic practically only worked with a normal room and needed the regular enemies to all be defeated. I tweaked it a little so it works with boss triggers/defeating the boss NEW SPRITE(s) As i said the boss got the star sprite because he is the true pointer so i gave the address an ampersand sprite (which is way more fitting btw). But i am not completely satisfied with the current ampersand sprite (i will maybe change it sometime) NOTE This time there werent really any bugs except during building the boss logic but they got fixed along the way. This time it actually went rather smoothly :) Also ignore the absurd stats of the player"}, {"post_id": 65457, "ts": "2026-09-10T16:29:10Z", "hours": 1.7283, "text": "LOG 18: NEW ITEM AND BUG FIXES BUG FIXES BUG FIXES NEW ITEM DAMAGE POTION I added a new item that can be used in the inventory during battle which deals (currently) 4 damage to the opponent. Its the rarest item in the game right now (i think 1 in 11). Because of the new item i had to make a bunch of code more modular in the inventory logic (a trend in my code). But overall this was the reimplementation that went the smoothest BUG FIXES BATTLE INPUT BUG There was a bug in the battle screen that made the overall input very clunky and previously was only fixed by letting another bug happen but i fixed it by changing something in the switch statements of the battle logic INVENTORY ACCESS AND SELECTION BUG A bug that mainly happened because of the previous bug: When trying to access the inventory in battle the game automatically selected the first item and returned to battle and only after the second time accessing the inventory you could really use your items as you wished INVENTORY SELECTION BUG In the inventory itself a bug was caused by a lazy implementation which caused the display (not the real logic behind the inventory actually) to become very glitched out and very confusing. I just fixed this by fixing my old and bad implementation for a better more modular one (an overall trend in my code to be not that modular lol)"}, {"post_id": 64879, "ts": "2026-09-09T16:10:45Z", "hours": 2.0467, "text": "LOG 17: DEBUG MODE FOR FASTER TESTING DEBUG MODE I added a debug mode because i found that most of my testing time was wasted finding items or players in rooms (which was very annoying most of the time), so i added a debug room so that goes way faster. Though it is very useful it was somewhat hard to implement but it made the code modular the same way the enemy logic is modular now which is an improvement in two ways"}, {"post_id": 63783, "ts": "2026-09-07T18:59:06Z", "hours": 3.6586, "text": "LOG 16: NEW NPC, BETTER CODE MODULARITY, FIXED SOME BUGS NEW FEATURES New “Modulo” / % enemy (based on the modulo operator in c)! It has weaker stats but is way stronger in terms of attack power BETTER CODE MODULARITY Because at the start of the game my main idea was to only implement one enemy type (which was pretty dumb tbh), i had to rework most of the map and battle logic so it was more generic and welcoming to multiple entities (and will help me add more enemies in the future). BUG FIXES VISUAL GLITCH There was a bug for the most of the time in the game (an issue with unititialized variables being printed, which resulted in a visual glitch), which was actually a pretty easy fix (i had to change the switch statements that handle state input and drawing output a bit so that changing the gamestate doesn’t skip to drawing instantly) MEMORY LEAK Because of a dumb implementation of a function that was supposed to carry over the value of a variable in file A to file B which used pointers allocated with malloc i had a memory issue because in a common case i forgot to implement free which resulted in lost memory (the fix was actually just switching over to passing by value because it was just a single char being transported from file A to file B and passing by reference wasn’t necessary)"}, {"post_id": 62408, "ts": "2026-09-05T19:04:09Z", "hours": 2.9256, "text": "LOG 15: MAINLY BUG FIXES AND SOME MINOR NEW FEATURES NEW FEATURES Better life/strength display A feature that was originally used for debugging has turned out as a good feature for the game overall. It always displays your and the enemies HP, and attack power (even though the attack damage is partly random which i have to note somewhere so there will be no confusion) An item descriptor that tells you what the item you are looking at currently does There is only one item to be used in the inventory right now so you can only see what the heal item does but more will be added in the future. BUG FIXES Memory unsafety fixed There was an issue with unsafe memory access if the items in the inventory where bigger than 10. My fix is that if you have more than 10 items and you pick up a new one, the new item will replace the first item, the next one the second one etc. It also resolved a smaller issue with blank inventory space that ate up inventory space even though it was empty. Items not working fixed The functions responsible for changing your hp, healing you or making you stronger hat an issue with their pointer assignment (they were pointing to the wrong variable) which i fixed for all function which work great now. Bug with doors acting the same as item pickups Because of something what seemed to be a typo (a function returned 1 instead of 0), if you tried to go through a door and you haven’t beaten every enemy, instead of nothing happening you got a free item (which turned out to be a great testing feature for items, because i can get many items fast and easily). The fix was really easy (just swap the 1 for a 0) Health bar not drawing properly Because of a badly implemented function i added in the past which turned out to be completely redundant (got cut out) the current hp weren’t imported properly to the function that handles printing out the health bar which i fixed by using another variable responsible for storing the current hp of the player Misc fixes After having to audit most of the code again i noticed that there were some issues with the code (partly because it was fine as it was when it was written, part was just sloppy implementation) which i also fixed even though most of it was minor. CURRENT PLANS FOR THE FUTURE More items that can be used in battle MORE ENEMIES!!! Im planning to add more and stronger enemies in the future even though that will probably will be one of the biggest newfeatures as it requires rewriting most of the battle and map logic Enemies getting stronger if you get farther for better progression Overall some more optimization and bug fixes (there is always something to be fixed ;) )"}, {"post_id": 61748, "ts": "2026-09-04T20:04:49Z", "hours": 4.0994, "text": "LOG 14: Made the items more interactive and functional (items can now be picked up or ignored and will vanish if either is done) and i built a somewhat functional inventory accessible only in battle as of right now. I also had to clean up a bunch of code and had to re-implement some stuff as i implemented some things rather poorly before. There are still some things to be made a bit cleaner which will come in the next few devlogs but i felt like posting one for the current state of the game."}, {"post_id": 60461, "ts": "2026-09-02T19:58:48Z", "hours": 2.5567, "text": "LOG 13: Added items that are supposed to give you power-ups in the future. currently they dont really do anything except open a screen with a sprite for the corresponding item (SPRITES ARE AI GENERATED). The plan for the future is to deicde between regular and activatable items (the first give permanent buffs, the second can be activated) and to be able to choose the items while in battle. For now they can spawn on the map (anywhere except 1|1 and spots where enemies are) and open a random sprite of the 3 that are available right now!"}, {"post_id": 59815, "ts": "2026-09-01T19:33:57Z", "hours": 0.7692, "text": "LOG 12: This came quicker than i thought it would lol. I implemented the two things i spoke about in the last log. I added a highscore system so you can always see how far you came with beating the evil pointers and i also “locked” the rooms until youve beaten every enemy in the room. I plan on adding power ups and some other features (read the README in the repo). STAY UPDATED!!!"}, {"post_id": 59787, "ts": "2026-09-01T18:38:08Z", "hours": 1.3131, "text": "LOG 11: Im Back. After a short break i started to implement that enemies really “die” if you beat them! Now there is some kind of progress added into the game as you can actually beat the enemies!!! The next features will probably be a real highscore and restricitions in leaving the room until youve beaten every enemy. Till then stay updated!!!!"}, {"post_id": 55276, "ts": "2026-08-27T00:06:09Z", "hours": 1.4606, "text": "LOG 10: Added multiple enemies (dynamic based on room size) and stats get reset after battle. Battle still issnt finished yet as i think of two more things to add for every one thing i implement. Stay updated !!!"}, {"post_id": 54777, "ts": "2026-08-25T21:47:45Z", "hours": 1.3933, "text": "LOG 9: Battle now works better and you can see enemy h now. Code is way less tangled (though some stuff still needs to be improved and the battle still isnt fully polished). There are some bugs regarding memory right now (will be fixed ASAP). But as of now you can finally really battle the evil evil evil pointer!"}, {"post_id": 54087, "ts": "2026-08-24T21:27:57Z", "hours": 2.0, "text": "added the first implementation of working battle (taking and dealing damage, working health bar)! The main issues right now are that the code is a bit tangled and that the logic isnt polished at all. But after 2 hours of work i felt like i had to post a log so this is the current state (you can attack or try to run) (winning and running have the same effect as of now)"}, {"post_id": 52721, "ts": "2026-08-23T01:22:10Z", "hours": 1.3925, "text": "Kinda added a battle screen (not reactive yet but will happen soon) and made the ASCII designs for my characters with AI (i cannot make any good ASCII art sadly :( … yet). In the top left is what is supposed to resemble a health bar which also still needs to be implemented. Also made the code a bit cleaner added a few header guards and most importantly i added structs for the entities so their stats could be recorded. Thats it :)"}, {"post_id": 52658, "ts": "2026-08-22T22:08:53Z", "hours": 1.2631, "text": "Added a (somewhat) functional menu screen to view highscore and start the game (highscore function will be implemented soon!!!!. Also built the first prototype of the battle screen though it is no where near finished. I will probably make the menu screen a bit prettier in the future but the current design has to suffice for now. :)"}, {"post_id": 51911, "ts": "2026-08-21T20:21:08Z", "hours": 0.9469, "text": "Added “Npcs” (evil pointers/ampersands). Collision yet have to do something relevant (right now they only trigger a new room). Also fixed a few memory unsafeties."}, {"post_id": 51814, "ts": "2026-08-21T17:36:52Z", "hours": 1.5833, "text": "Implemented doors (currently a minus sign probably going to change that). If you collide with said door/minus sign you will enter a new, different sized room. I did that by choosing a random wall, a random spot on that wall which is the spot where the door will be and if you make contact with the door a new room will be initialized."}, {"post_id": 51346, "ts": "2026-08-20T23:28:52Z", "hours": 0.9203, "text": "Added collision checks for walls so you cant escape the rooms"}, {"post_id": 51318, "ts": "2026-08-20T22:03:55Z", "hours": 1.0767, "text": "Implemented functional Walking (even though there is no real border yet). I also fragmented the code a bit so its more readable!"}, {"post_id": 51226, "ts": "2026-08-20T19:16:10Z", "hours": 0.4381, "text": "“Roguelike” “Game” in C (neither of them has begun to be implemented. But i guess i have set up the very basics as of now"}]...
|
Title: Pointer Fighter (C based) by @nano | Starda Title: Pointer Fighter (C based) by @nano | Stardance
Devlogs:
“Roguelike” “Game” in C (neither of them has begun to be implemented. But i guess i have set up the very basics as of now
Implemented functional Walking (even though there is no real border yet). I also fragmented the code a bit so its more readable!
Added collision checks for walls so you cant escape the rooms
Implemented doors (currently a minus sign probably going to change that). If you collide with said door/minus sign you will enter a new, different sized room. I did that by choosing a random wall, a random spot on that wall which is the spot where the door will be and if you make contact with the door a new room will be initialized.
Added “Npcs” (evil pointers/ampersands). Collision yet have to do something relevant (right now they only trigger a new room). Also fixed a few memory unsafeties.
Added a (somewhat) functional menu screen to view highscore and start the game (highscore function will be implemented soon!!!!. Also built the first prototype of the battle screen though it is no where near finished. I will probably make the menu screen a bit prettier in the future but the current design has to suffice for now. :)
Kinda added a battle screen (not reactive yet but will happen soon) and made the ASCII designs for my characters with AI (i cannot make any good ASCII art sadly :( … yet). In the top left is what is supposed to resemble a health bar which also still needs to be implemented. Also made the code a bit cleaner added a few header guards and most importantly i added structs for the entities so their stats could be recorded. Thats it :)
added the first implementation of working battle (taking and dealing damage, working health bar)! The main issues right now are that the code is a bit tangled and that the logic isnt polished at all. But after 2 hours of work i felt like i had to post a log so this is the current state (you can attack or try to run) (winning and running have the same effect as of now)
LOG 9: Battle now works better and you can see enemy h now. Code is way less tangled (though some stuff still needs to be improved and the battle still isnt fully polished). There are some bugs regarding memory right now (will be fixed ASAP). But as of now you can finally really battle the evil evil evil pointer!
LOG 10: Added multiple enemies (dynamic based on room size) and stats get reset after battle. Battle still issnt finished yet as i think of two more things to add for every one thing i implement. Stay updated !!!
LOG 11: Im Back. After a short break i started to implement that enemies really “die” if you beat them! Now there is some kind of progress added into the game as you can actually beat the enemies!!! The next features will probably be a real highscore and restricitions in leaving the room until youve beaten every enemy. Till then stay updated!!!!
LOG 12: This came quicker than i thought it would lol. I implemented the two things i spoke about in the last log. I added a highscore system so you can always see how far you came with beating the evil pointers and i also “locked” the rooms until youve beaten every enemy in the room. I plan on adding power ups and some other features (read the README in the repo). STAY UPDATED!!!
LOG 13: Added items that are supposed to give you power-ups in the future. currently they dont really do anything except open a screen with a sprite for the corresponding item (SPRITES ARE AI GENERATED). The plan for the future is to deicde between regular and activatable items (the first give permanent buffs, the second can be activated) and to be able to choose the items while in battle. For now they can spawn on the map (anywhere except 1|1 and spots where enemies are) and open a random sprite of the 3 that are available right now!
LOG 14: Made the items more interactive and functional (items can now be picked up or ignored and will vanish if either is done) and i built a somewhat functional inventory accessible only in battle as of right now. I also had to clean up a bunch of code and had to re-implement some stuff as i implemented some things rather poorly before. There are still some things to be made a bit cleaner which will come in the next few devlogs but i felt like posting one for the current state of the game.
LOG 15: MAINLY BUG FIXES AND SOME MINOR NEW FEATURES NEW FEATURES Better life/strength display A feature that was originally used for debugging has turned out as a good feature for the game overall. It always displays your and the enemies HP, and attack power (even though the attack damage is partly random which i have to note somewhere so there will be no confusion) An item descriptor that tells you what the item you are looking at currently does There is only one item to be used in the inventory right now so you can only see what the heal item does but more will be added in the future. BUG FIXES Memory unsafety fixed There was an issue with unsafe memory access if the items in the inventory where bigger than 10. My fix is that if you have more than 10 items and you pick up a new one, the new item will replace the first item, the next one the second one etc. It also resolved a smaller issue with blank inventory space that ate up inventory space even though it was empty. Items not working fixed The functions responsible for changing your hp, healing you or making you stronger hat an issue with their pointer assignment (they were pointing to the wrong variable) which i fixed for all function which work great now. Bug with doors acting the same as item pickups Because of something what seemed to be a typo (a function returned 1 instead of 0), if you tried to go through a door and you haven’t beaten every enemy, instead of nothing happening you got a free item (which turned out to be a great testing feature for items, because i can get many items fast and easily). The fix was really easy (just swap the 1 for a 0) Health bar not drawing properly Because of a badly implemented function i added in the past which turned out to be completely redundant (got cut out) the current hp weren’t imported properly to the function that handles printing out the health bar which i fixed by using another variable responsible for storing the current hp of the player Misc fixes After having to audit most of the code again i noticed that there were some issues with the code (partly because it was fine as it was when it was written, part was just sloppy implementation) which i also fixed even though most of it was minor. CURRENT PLANS FOR THE FUTURE More items that can be used in battle MORE ENEMIES!!! Im planning to add more and stronger enemies in the future even though that will probably will be one of the biggest newfeatures as it requires rewriting most of the battle and map logic Enemies getting stronger if you get farther for better progression Overall some more optimization and bug fixes (there is always something to be fixed ;) )
LOG 16: NEW NPC, BETTER CODE MODULARITY, FIXED SOME BUGS NEW FEATURES New “Modulo” / % enemy (based on the modulo operator in c)! It has weaker stats but is way stronger in terms of attack power BETTER CODE MODULARITY Because at the start of the game my main idea was to only implement one enemy type (which was pretty dumb tbh), i had to rework most of the map and battle logic so it was more generic and welcoming to multiple entities (and will help me add more enemies in the future). BUG FIXES VISUAL GLITCH There was a bug for the most of the time in the game (an issue with unititialized variables being printed, which resulted in a visual glitch), which was actually a pretty easy fix (i had to change the switch statements that handle state input and drawing output a bit so that changing the gamestate doesn’t skip to drawing instantly) MEMORY LEAK Because of a dumb implementation of a function that was supposed to carry over the value of a variable in file A to file B which used pointers allocated with malloc i had a memory issue because in a common case i forgot to implement free which resulted in lost memory (the fix was actually just switching over to passing by value because it was just a single char being transported from file A to file B and passing by reference wasn’t necessary)
LOG 17: DEBUG MODE FOR FASTER TESTING DEBUG MODE I added a debug mode because i found that most of my testing time was wasted finding items or players in rooms (which was very annoying most of the time), so i added a debug room so that goes way faster. Though it is very useful it was somewhat hard to implement but it made the code modular the same way the enemy logic is modular now which is an improvement in two ways
LOG 18: NEW ITEM AND BUG FIXES BUG FIXES BUG FIXES NEW ITEM DAMAGE POTION I added a new item that can be used in the inventory during battle which deals (currently) 4 damage to the opponent. Its the rarest item in the game right now (i think 1 in 11). Because of the new item i had to make a bunch of code more modular in the inventory logic (a trend in my code). But overall this was the reimplementation that went the smoothest BUG FIXES BATTLE INPUT BUG There was a bug in the battle screen that made the overall input very clunky and previously was only fixed by letting another bug happen but i fixed it by changing something in the switch statements of the battle logic INVENTORY ACCESS AND SELECTION BUG A bug that mainly happened because of the previous bug: When trying to access the inventory in battle the game automatically selected the first item and returned to battle and only after the second time accessing the inventory you could really use your items as you wished INVENTORY SELECTION BUG In the inventory itself a bug was caused by a lazy implementation which caused the display (not the real logic behind the inventory actually) to become very glitched out and very confusing. I just fixed this by fixing my old and bad implementation for a better more modular one (an overall trend in my code to be not that modular lol)
LOG 19: NEW ENEMY TYPE: BOSS FIGHTS, BETTER DOOR LOGIC, NEW SPRITES NEW ENEMY TYPE Because i thought that the normal enemies would be too easy to beat down the run i added the main boss (the pointer which stole the star sprite from the address enemy) and he will always be fought every 5-10 rooms (im not sure on the number) . Currently his stats are static but i plan on making them dynamic based on the number of rooms you went through. BOSS ROOM/BETTER DOOR LOGIC The old door logic practically only worked with a normal room and needed the regular enemies to all be defeated. I tweaked it a little so it works with boss triggers/defeating the boss NEW SPRITE(s) As i said the boss got the star sprite because he is the true pointer so i gave the address an ampersand sprite (which is way more fitting btw). But i am not completely satisfied with the current ampersand sprite (i will maybe change it sometime) NOTE This time there werent really any bugs except during building the boss logic but they got fixed along the way. This time it actually went rather smoothly :) Also ignore the absurd stats of the player
LOG 20: DYNAMIC STATS, BUG FIXES, SMALL UPDATE TO DEBUG MODE AND MORE COMMENTS DYNAMIC STATS The stats of all enemies are now connected to the boss counter which is the number of boss fights that have been fought during the current run so there is real progression and you dont just get stupidly overpowered DEBUG MODE I basically just added the boss to the debug mode nothing much BUG FIXES There was a glitch with the boss room being cut off because the randomly generated room was smaller than the boss room. I had to push a few things around and put every type of map generation (standard, debug, boss) into a switch statement to make it work properly COMMENTS I pretty much forgot most of the comments in the game so i started adding way more comments where they should be so the code is hopefully more intuitive to follow NOTE I think the next update will be pretty big so watch out when it finally drops!!!
LOG 21: FOG OF WAR, HOMING ENEMIES, BATTLE LOGIC OVERALL AND BUG FIXES FEATURES HOMING ENEMIES The enemies now home on you with every step you take, meaning you actually have to think about where you will go or the enemies will catch up to you. This was implemented by adding a sign function that decide whether the enemy should move +1 or -1 and then moving the enemy by that value. There were some bugs regarding enemies in previous rooms which got fixed by resetting the whole array during map init FOG OF WAR I added a fog of war feature that obstructs everything in the map you haven’t explored yet. This also pairs very well with the homing enemies feature. You have to go around the map to look out for items and enemies which now also walk towards you, so every step matters now BATTLE LOGIC OVERHAUL After revisiting most of my code for commenting i realized how terrible most of my battle logic was so i made it a bit more efficient and most importantly more readable. Overall i realized how great switch statements are in the last few logs BUG FIXES DOOR BUG There was a bug with the map that was somewhat useful when testing but still was a bug. The issue was that if you tried to step into the door the game let you step onto that char. The issue was that i forgot to make the game think that the door (when closed) should behave exactly like a wall. So the fix was just to add the door char to the wall collision check function
LOG 22: POISON ITEM, BATTLE LOG, MAIN LOOP AND ITEM SELECTION REWORK POISON ITEM A new item that does 3 tick damage every enemy turn, for 2 turns. Its the rarest item in the game as of right now and was somewhat complex to add (because of the tick damage and tracking how many turns have passed) BATTLE LOG A log that tracks the last two actions that have happened in the game. It currently only tracks damage and attacks but will track item usage and more detailed information in the future. It was a real headache to implement because i had contradictory logic between the log and my main loop and i had to reimplement it multiple times. But went well overall :) REWORKS MAIN LOOP REWORK I reworked the main loop a bit because even though it worked well in theory it was not really optimized and it was prone to bugs in the future which is why i felt like redoing it a bit. Now instead of every function handling their own init, every changing gamestate instantly also inits the state it was changed to. Because of this there are less possible bugs and its overall easier to do for future gamestates ITEM PICKUP REWORK I noticed that the logic for my items wasn’t really perfect and seemed unoptimized which is why i felt like changing it a bit. Because when picking up items there are only two possible things to do (which both result in the same exit scenario) i swapped my if/else if logic for a switch statement which made the code shorter, and more optimal
LOG 23: BATTLE LOG FOR ITEMS, BUG FIXES, BUG FIXES, BUG FIXES, BUG FIXES FEATURE BATTLE LOG FOR ITEMS The previous battle log only logged attacks and the damage dealt, now the log also tracks if items are used or items deal damage BUG FIXES SEGFAULT There was a segfault when trying to render the bottom of deeper rooms because the render guard had a major fault (only disjunctions no conjunctions). Because of that the game tried to reach spaces of the visible_map array out of reach of the array which resulted in a segfault when trying to go into spaces out of reach of the array. The fix was changing the guard from if ((player_y + y) < MAX_HEIGHT || (player_x + x) < MAX_WIDTH || (player_y + y ) >= 0 || (player_x + x >= 0)) to if ((player_y + y) < MAX_HEIGHT && (player_x + x) < MAX_WIDTH && (player_y + y ) >= 0 && (player_x + x >= 0)) which fixed the issue BATTLE LOG NULL TERMINATOR FIX There was a bug with the battle log, where ^ were printed (NUL ascii in ncurses) because the battle log printed out every part of the string character by character (including the \0 terminator). The fix was to just not print out the \0 terminator to the screen BATTLE SELECTION BUG There was a bug with conflicting selection variables (multiple variables where named selection which resulted in wrong selections being displayed). The fix was to give every function their own selection variable which fixed the issue VISIBLE MAP GLITCH Because the visible map only updated itself in the perimeter you are standing in if you moved fast enough some characters lagged behind and made it look like there were way more enemies than there actually were. The fix was to update not only the perimeter on every movement but also update everything that had already been explored
LOG 24: BOSS ITEM DROP, CONTROLS SCREEN, NEW IN-GAME BANNER, ITEM TO INVENTORY REFACTOR, BUG FIXES FEATURES BOSS ITEM DROP I added an item that only the boss drops, when killed. Its ability is to make the enemy unable to attack for one turn. You will always get it when defeating the boss and has the ‘?’ glyph compare to regular items (‘+’). Its also the only item that can always be picked up (with normal items, if your inventory is full you cannot pick them up, with the boss item your first slot gets overwritten). CONTROLS SCREEN I added a basic controls screen so people that try the game out (now or when it ships), know what to do when playing. Currently most things are really straightforward but i added it just in case. The most important aspect will probably how to end the game because thats the most unintuitive one (even though i hope anyone testing the game doesnt want to quit it) ITEM TO INVENTORY REFACTOR I thought that the previous state of my item to inventory were pretty lazy so i changed the logic up a bit. Previously when picking up items the items would go into the spot after the last item that was picked up and when the inventory ran full the first item was swappped with the newly picked up item. I didnt like that looking back and because of that the logic now scans through the inventory until it finds an empty spot and puts the item in that empty slot. If the inventory is full no item can be picked up (except the boss item) and the player gets a message on their screen. They can then leave the item screen using ESC and the item is not removed and can be picked up later if you somehow make space in your inventory NEW IN-GAME BANNER Also pretty straightforward, i added a banner so the menu looks a little bit prettier :) BUG FIXES BOSS ROOM BUG Because of map and gamestates and me forgetting to implement a feature in the door collision checks, there was a bug when defeating the boss (the map stayed as it was, but had the usual visible map ‘#’ everywhere you hadnt already explored (you cant really explore much so there where many ‘#’ ’s around the map which was really ugly. The fix was to move a mapstate change from the function that is responsible for handling victory to the function handling doors BOSS BUG There was a bug after defeating the boss which resulted from the previous bug and its fix. Because i forgot an additional check in my door function when defeating the boss the boss would spawn again and overwrite your boss item. The boss also chased you (which normally doesnt happen) and you couldnt leave the room. The fix was just to add another condition to the if statement in the door function responsible for the boss room ENEMY REMOVAL BUG For some reason (i dont know how i made the bug happen), when defeating enemies the visible map lagged behind the normal map which resulted in defeated enemies appearing to still exist on the map for one iteration of the loop (pressing any button made them vanish). The fix was to add a call to the visible_map_init function after defeating enemies
LOG 25: FLEEING ENEMIES (CONTAINS MANY CHANGES), BOSS ITEM REFACTOR FLEEING ENEMIES Enemies (except the boss) now have the ability to run away if the enemy would get killed by the next attack. The chance for this to happen is 10% and when they run away, they gain 1 HP per step they take and return to chasing the enemy if their hp is back at half of their max HP. FLEEING REWORK Before adding this feature, fleeing was the same practically as winning (the return type of the fight was STATE_VICTORY), i changed that to the proper STATE _FLED. Also before when fleeing, if you fled and another enemy of another type collided with you, he had normal stats but the enemy before that also got his stats reset. The same went for enemies of the same type. When fleeing from enemy A from type A and then colliding with enemy B from type A, he would have the stats of enemy A. The fix for both was to make a 2D Array of all enemies and their types, so each individual enemy stores its stats, not the battle function. PLAYER POSITION STRUCT Previously the player had ~ 8 different position variables, which was pretty clunky if i wanted to transport the player position to another function. Because of that i put all player positions into a singular struct, so i could pass all the player positions at once if i needed to. ENEMY PURSUIT FUNCTION REWORK Because enemies have to run away instead of chasing i had to rework the pursuit function a bit so it could also work in a reverse way. I had to make the function branch between the two states which took a bit more work than originally anticipated because i had a bunch of wrong ideas for how the function should work. Overall the function implementation was essentially to just use the inverse vector of the normal vector for the direction function BOSS ITEM FUNCTION/ITEM FUNCTION REFACTOR Because previously the boss item detection function and the item detection were separate the code didnt feel clean at all (felt like a lazy implementation for me), so i made the item function work with the boss item which makes the item function overall more open for new item types (if i will add any more)
LOG 26: FINAL DEVLOG MAINLY BUG FIXES AND SOME MINOR CHANGES CHANGES Enemies previously scaled to strongly and beat you too hard after the boss fight. Also because it was hard to scale the opponents down i decided to make the hp of everyone higher (everything got stronger in theory, player has 100 starting hp, does 20 damage etc.) LATE ADDITIONS LICENSE I licensed the project under the MIT licesne because it seemed fitting BUILD FILE I added a build file for the repo so i could upload a release binary (ncurses is required tho) BUG FIXES HIGHSCORE BUG There was a bug with the highscore not being displayed when there was no highscore.txt file. I needed to change the handling of the fact that the open function returned NULL, because NULL either meant, no file was there or no file could be found which resulted in no file being created because the function exited when the open function returned NULL, the fix was pretty simple overall tho (just adding an extra if conditional to check) FULL INVENTORY BUG Previously when having a full inventory, you couldnt pick up new items, issue was when using items that state didnt reset so one full inventory meant no items anymore :( . The fix was just to reset the state after using items BOSS ITEM INVENTORY BUG I forgot to make the boss item return the correct state which resulted in the item sometimes not being put in the inventory. The fix was just to add return ENTER_LEGAL to the boss items if statement SET ROOM ISSUE Because of random rooms sometimes boss room dimensions where bigger than current room which resulted in bugs (see previous devlogs). My previous fix worked in theory but had more affinity for potential bugs so i changed the set room function from two static values to two values that get passed into the function
Ships:
A roguelike room crawler completely built in C! What is in it? Randomly generated rooms with a fog of war for you to explore Three different enemy types with scaling difficulty Boss fights with unique item drop RPG Style fighting An interactive inventory that can be used during battle A battle log that tracks everything that happens in battle Items, pickups and a persistent highscore What am I proud of? The enemy pursuit and fleeing system. It was somewhat hard to implement but I think it made the game wayyyy better than before. I’m also proud of how the state machine turned out in the end. The game has strict separations between the different game states and first handles what the player/the game did during the game loop iteration and then after that is done draws it to the screen. That state machine was very prone to bugs and I had to spend a bunch of time to fix (fallthrough bug, etc. all talked about in devlogs). But I think the result that turned out at the end was great and I am very content with it How is it built? As said its completely built in C using ncurses as its graphics library using 12 source files (currently) with each one having a specific task only it does. The build is released using GitHub workflows and the binary can easily be downloaded and used on (almost) all glibc linux distros (the project was compiled for Ubuntu and you will have to install ncurses though) What I learned The game was actually my first real coding project ever apart from a few simple websites so I learned a bunch. I learned how to separate state transitions, I learned the importance of good and bad switch statements, bounds checking (really rough path) and I think most importantly: The power of code separation and making every file do its designated task. I often caught myself picking the easy and sloppy path and then fixing it properly and in retrospect helped with preventing a bunch of bugs Known limitations / plans for the future It’s my first project, so there are likely still issues I haven’t found. Even though I tried to find everything (a.e. using Valgrind told me there are no memory blocks definitely lost) there are still potentially memory safety issues or potential segfaults. It’s possible some edge cases might have slipped through. I’ve tested the project thoroughly and haven’t found any crashes since the last few debugging sessions but I cannot safely say it’s perfect. I think if I will find the time I will maybe add some new features like new special item related enemies or player status effects though I cannot safely say if i can Closing word I think building a game for my first real project was the right decision for me because I really had a bunch of fun building this project. I currently have some ideas for unrelated new projects (one is up on my profile check it out (; ) and I think this project was a really good pathway into coding for me. Check the GitHub and the demo video out and I hope you like the project...
|
1793674213.3216746
|
1793760613.3216746
|
|
47889
|
sorting algs by @Lumethra | Stardance
|
Lumethra
|
1
|
16.0
|
212
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-24T19:32:31Z", "hours": 16.0, "multiplier": 13.53, "payout": 212, "blessing": "neutral", "text": "A 3d sorting algorithm visualizer with NextJS and ThreeJS. Also its made with luve and happiness.", "repo": "https://github.com/Lumethra/sorting-algs", "demo": "https://lumethra-sorting-algs.vercel.app/"}]...
|
[{"post_id": 73291, "ts": "202 [{"post_id": 73291, "ts": "2026-09-24T19:30:47Z", "hours": 0.4911, "text": "I wrote my readme in this session, so nothing really to say. It was just typing typing typing and finishing this beautiful readme to be able to submit this project."}, {"post_id": 73279, "ts": "2026-09-24T18:57:15Z", "hours": 0.4069, "text": "Implemented pause logic. I implemented pause logic and added an indicator, which shows, which sorting algorithm is currently active. The pause logic was quite painful, cause it just didnt want to stop. Neither with break, nor with return. After a long long long trouble shooting session, I found out, that I forgot .current and it just wont detect correctly, what a stupid bug to troubleshoot 20 min for. Also I fixed an edge case in the demo vid xD"}, {"post_id": 73266, "ts": "2026-09-24T18:19:33Z", "hours": 2.58, "text": "FINALLYYYY Today was the final coding session. I finally got the UI right and am okay with it. Its not the best, but its acceptable. I decided to only use icons, to keep it clean, but I ran into the problem, that the icons arent clear enough to showcase the specific sorting algorithm. So I decided on making a tooltip. But the build in HTML tooltip is too ugly and the delay is annoying. I did some research and found a W3Schools tutorial, they are the goat ( here it is ). I didnt expect front end being so time intensive, but I did need to adjust every value so it looks good, which is very hard to do :(. Ah, I also fixed the bug that when there is the minimal amount of pillars, it will be weird while shuffling (that wasnt proper english). Also the icons changes depending if we are shuffling or sorting and the disables and reinables, which is cool. Uhh, I remembered sth, I need to implement canceling while sorting. Also the vid is one fix old, i did fix the typo in the sorting alg."}, {"post_id": 72326, "ts": "2026-09-22T17:49:27Z", "hours": 1.4453, "text": "Thats enough, Ima do CSS tomorrow. Today I added a slider style and 2 other sliders for the shuffling and sorting speed. Then I hid those 2 and the remove and adding pillar buttons. Also added some CSS for flex, justify content, space between, to seperate the drop down, which I added too. I tried to add a scrolling drop down thing, but failed, uhh, I also adjusted the pillar speed and camera angle. Also I found out, that I can call functions from an array, so I can store a function in an array and then call it like that, thats weird, but also huge. Dont wanna write too much today, cause I still have stuff to do. Ah, also added prevention of shuffling while sorting."}, {"post_id": 71209, "ts": "2026-09-20T13:27:14Z", "hours": 1.2819, "text": "Slider!! Today I added a slider that controls the adding and removing of pillars. I had some minor problems. (No, they were huge, but I feel better saying that they were minor ). First of all, I needed to figure out how to set default values. Normally its just value=””, but this doesnt work for a input type range. After some research I found out that its simply defaultValue, I feel dumb. Then I tried to add/remove pillars with useEffect and monitor the changes of the slider. This worked, but also didnt. I needed to manually update the pillars. It didnt do it automatically. Then my brain suggested something genius. Using onChange. But now I need to do an extra function for it. I thought, maybe I use a while loop once. While the number array is smaller run add function and while its bigger, the remove function. This was uhh, not that good, because it somehow resulted into an infinite while loop, because js is asynchronous. I also tried with a for loop. This threw the error, that I set the 2 useState too often. After some experimenting I ended up with my current solution. I also added 2 useState variables for the sorting delay and shuffling delay. I am still searching for a great mathematical, anti-proportional, linear function to adjust it corresponding to the pillars count. Ahh and I also updated the camera adjusting logic a bit."}, {"post_id": 70217, "ts": "2026-09-18T18:42:46Z", "hours": 1.0872, "text": "HOLY WAS THIS A STRUGGLE !! In this session I implemented adding and removing numbers for a slider in the future (hopefully tomorrow). THIS WAS A PAIN. Especially the camera handling. The very very basic adding and removing function was quite easy, since its only adding numbers or splicing numbers from the array (stack overflow my goat). The camera thing was quite hard though. When I add enough numbers it could make the pillars taller than the viewheight, making them sticking “off screen”. The fix was zooming out. But the fix on stack overflow needed to let it be a JSX element, which somehow didnt work. Finding the fix was one problem. The other problem is, that after finding the fix, it still didnt work and the camera “fell” down. After a long debugging session with various console.logs, I finally found the problem and it was one of the stupid ones. I used z, where it should have been y, thats dumb, but eyy, here we go. There were also a few other bugs, like having an infinite while loop when only having one pillar and shuffling. This was fixed by making the minimum number 2. The other bug was, weird camera behaviors happen, when reducing the number while its shuffled. Fixing it with an instant sort before reducing the number of pillars was my approach. Ya, that was about it. I am done for today."}, {"post_id": 70112, "ts": "2026-09-18T14:17:37Z", "hours": 1.1447, "text": "Better Shuffling logic!!! Before the refinement of the shuffling logic today I just simply randomized the numbers in the array, so that there are new numbers. That introduced one problem, actually two. Numbers could dupe!! I tried to fix it while using numbers with one decimal. The other problem was I could not add an animation anywhere. This is why I decided to make a brand new shuffling logic today. I first tried to fix the duping problem, by checking if this number already exists. This took a while, because I need to figure out how to only watch an array to a specific point, to ignore the upcoming numbers. This resulted in a growing or shrinking animation, which wasnt what I wanted. Then I thought, maybe I can shuffle in another way. Not by changing the value, rather by swapping numbers randomly. Just like in a deck of cards. So I loop through each digit and randomly choose a number in the whole array and then swapping those. This ensures every place got changed. Now there was another problem. It sometimes changed with it self causing it not to do anything. This was fixed by adding a while loop which generates new positions if the position is the own position. While writing this devlog I also thought of another problem. When the total count of numbers is very low, this shuffling method might not shuffle it enough, so I am looping it 2 times, if there are less then 10 numbers in it. Ya, thats about it. Now lets get to the slider which increases the blocks."}, {"post_id": 67381, "ts": "2026-09-13T14:07:06Z", "hours": 1.6225, "text": "Finally something after a long time. I was on vacation during that time, so I needed to use some time to understand what I have done before that. Then I implemented another sorting algorithm!! Selection Sort!! If you take a look inside my commits, you can see it being committed. After implementing selection sort I took a small break and didnt devlog, cause it didnt even took that long. After the break I decided to add a little highlighting animation, that changes the color of the pillars, that are being swapped. That took waay longer that expected, but was the easiest thing to do. I just had to save the 2 values being swapped and somehow pass it inside and get the colors changed. After the highlighting, I decided its time for another sorting alg. The Insertion Sort. That somehow took longer that selection sort. Due to it being almost the exact opposite of bubble sort, I always fell back to it. While researching for insertion sort, I found this great website and quite liked its finishing animation. I also felt that the selecting animation is kinda off for insertion sort. It shouldnt be 2 pillars that are selected. It should be 3 or 1, since one pillar is inserted between 2 other ones and not 2 pillars being swapped. So I made a highlighting version with only one pillar being highlighted and created an if statement of doom inside the meshStandartMaterial. I thought this version was also better for bubble sort than the selection one and switched it too. Ya, that was all of it, I think, Have a great day though :)"}, {"post_id": 48929, "ts": "2026-08-17T14:21:47Z", "hours": 1.9594, "text": "AHHHHHHHHHHHHHHHHHHHHHH Sorting algorithm was made today. I decided on the most basic bubble sort. It is basically just 2 nested for-loops. This wikipedia article ( https://en.wikipedia.org/wiki/Bubble_sort ) has a great code example for it. It was relative easy. But the hard part was to get the animation going. The second part of the vid shows how it was without the fix for the animation. Finding out what the error was, was the first major problem. Fixing it was also hard, because I needed to save the target position after the box was created. This doesnt work, because you cannot call things after a return. Then after a good half hour of struggling and no progress, I asked my father for help. He is a full time developer aaand I hoped, that we could fix this together. He did gave some good calls, but the coding is still done by myself. After some together struggling, that lasted around 30 to 40 min, he proposed something genius. Save a version of the array of numbers, before every sorting step. That meant we need to compare the 2 arrays to get the difference and how the numbers got moved. I then said we could use some complicated for loops and then comparing stuff. He smiled and let me do. After some programming it was finally done and worked. But it wasnt optimized at all and was a bit laggy. Then he couldnt hold on anymore, laughed and told me that there is a dedicated js function just for that. I almost crashed out . Ya, that was todays session. I only implemented the dedicated js function instead of that. Ahh and before asking my father I also found out that js async is weird and that we need to use useEffect, kinda an event listener to see when the useState value changes. Ya, now that was it. See u later or tmrw."}, {"post_id": 48190, "ts": "2026-08-16T14:16:24Z", "hours": 1.0175, "text": "Shuffle mechanism Today was very successful day. The two major breakthroughs are creating the boxes dynamically and shuffle the height by math.random. I am happy that I remembered, that I could use useState to make an array and use the Array.prototype.map() function to simultaneously create the different boxes. And I can change the order of the boxes with changing the order of the components in the array, sooooo, that should be quite easy to archive. The random shuffle thingi was also quite successful. I just Math.random’ed some value and floor it to 2 decimals. Then I do that for every place of the numbers array and set it as new numbers array. This will update the numbers array, because of useState and let React-Three-Fiber rerender the boxes, resulting in a shuffling. The sorting will need an async function though, or else it will be instant sorting, which isnt the goal of this sorting thing. Enough yap, back to coding, eventually, maybe."}, {"post_id": 47505, "ts": "2026-08-15T13:45:14Z", "hours": 1.2922, "text": "After messing around abit and finding out that it is possible to have multiple meshes, I finally started with the actual project and made a Box func. While making it I decided on doing it with an Interface to be able to learn that (the whole point of this proj was to learn ThreeJS and NextJS). This Box func can be reused and the properties of this box can also be parsed inside. Soo every Box is the same and makes animating easier. I also added a simple moving animation. Then the quest was to level the boxes on the bottom. After a whole 5 min of struggling, I found a random post saying I could do scale / 2, which also worked. The moving the box was the hard part, because NextJS requires me to use useState, or else it wont get updated. This took me very long, very very very long to get right. The moving seems abit laggy in the vid, but in real life its smooth, i dunno why, but ya. The last part, was centering this whole thing, because the camera always points to [0, 0, 0] which is strange, but whatever, so i needed to move the boxes collectively somewhere else. So I tried alot of stuff, but finally found out that groups have props too, so I can group them and move them to the left and down. This was great !! Later I need to find out how to do this automatically, but thats not present-me problem, its a future-me problem."}, {"post_id": 47096, "ts": "2026-08-14T18:50:47Z", "hours": 1.3286, "text": "First devlog My friend @Leon gave me this idea to work with ThreeJS in NextJS, so I can get familiar with both at the same time. And I said, fine whatever. I had the idea to do a sorting algorithm showcaser with pillars of different heights. And code different sorting methods to sort these pillars. Soo I created a Next instance like my personal site aaaand messed up. So I had to delete it and install again, WITHOUT TailwindCSS. Finally having a working NextJS instance I installed ThreeJS, but then I ran into the problem that ThreeJS didnt like pnpm, soo I reinstalled the whole shit with npm, which obviously didnt work. So I debugged the whole shit and every reddit post and stackoverflow post said to reinstall it again, so the installer cleanly installs the JSX module that was missing, which it didnt. So I decided to just paste the whole error message into google and there it was. The holy stackoverflow post that gave me a command to reinstall the dependencies and advised me to reload my vscode window to prevent cache. THIS WORKED!!! My next task was to read and follow the React Three Fiber docs, which is threejs but in better for react, so also for nextjs. I followed it (which was very hard, since its written unclearly, but I think when you know the normal threejs it should be fine, which I obviously am not familiar with) and after some time got an overall idea how this thing works. Then I found a task in this doc and it is to create a spinning cube. I took it seriously and made it todays goal. And here we are. To be fair, it was okay to finish, since there was already a sample code written in vite or whatever it was. I just needed to rewrite that for my nextjs instance. Ya that was todays progress. I think when I got the motivation to continue later, it will be waay easier to do, since I know the basics now. Holy yap, bye, see u later, maybe, well, bye"}]...
|
Title: sorting algs by @Lumethra | Stardance
Devl Title: sorting algs by @Lumethra | Stardance
Devlogs:
First devlog My friend @Leon gave me this idea to work with ThreeJS in NextJS, so I can get familiar with both at the same time. And I said, fine whatever. I had the idea to do a sorting algorithm showcaser with pillars of different heights. And code different sorting methods to sort these pillars. Soo I created a Next instance like my personal site aaaand messed up. So I had to delete it and install again, WITHOUT TailwindCSS. Finally having a working NextJS instance I installed ThreeJS, but then I ran into the problem that ThreeJS didnt like pnpm, soo I reinstalled the whole shit with npm, which obviously didnt work. So I debugged the whole shit and every reddit post and stackoverflow post said to reinstall it again, so the installer cleanly installs the JSX module that was missing, which it didnt. So I decided to just paste the whole error message into google and there it was. The holy stackoverflow post that gave me a command to reinstall the dependencies and advised me to reload my vscode window to prevent cache. THIS WORKED!!! My next task was to read and follow the React Three Fiber docs, which is threejs but in better for react, so also for nextjs. I followed it (which was very hard, since its written unclearly, but I think when you know the normal threejs it should be fine, which I obviously am not familiar with) and after some time got an overall idea how this thing works. Then I found a task in this doc and it is to create a spinning cube. I took it seriously and made it todays goal. And here we are. To be fair, it was okay to finish, since there was already a sample code written in vite or whatever it was. I just needed to rewrite that for my nextjs instance. Ya that was todays progress. I think when I got the motivation to continue later, it will be waay easier to do, since I know the basics now. Holy yap, bye, see u later, maybe, well, bye
After messing around abit and finding out that it is possible to have multiple meshes, I finally started with the actual project and made a Box func. While making it I decided on doing it with an Interface to be able to learn that (the whole point of this proj was to learn ThreeJS and NextJS). This Box func can be reused and the properties of this box can also be parsed inside. Soo every Box is the same and makes animating easier. I also added a simple moving animation. Then the quest was to level the boxes on the bottom. After a whole 5 min of struggling, I found a random post saying I could do scale / 2, which also worked. The moving the box was the hard part, because NextJS requires me to use useState, or else it wont get updated. This took me very long, very very very long to get right. The moving seems abit laggy in the vid, but in real life its smooth, i dunno why, but ya. The last part, was centering this whole thing, because the camera always points to [0, 0, 0] which is strange, but whatever, so i needed to move the boxes collectively somewhere else. So I tried alot of stuff, but finally found out that groups have props too, so I can group them and move them to the left and down. This was great !! Later I need to find out how to do this automatically, but thats not present-me problem, its a future-me problem.
Shuffle mechanism Today was very successful day. The two major breakthroughs are creating the boxes dynamically and shuffle the height by math.random. I am happy that I remembered, that I could use useState to make an array and use the Array.prototype.map() function to simultaneously create the different boxes. And I can change the order of the boxes with changing the order of the components in the array, sooooo, that should be quite easy to archive. The random shuffle thingi was also quite successful. I just Math.random’ed some value and floor it to 2 decimals. Then I do that for every place of the numbers array and set it as new numbers array. This will update the numbers array, because of useState and let React-Three-Fiber rerender the boxes, resulting in a shuffling. The sorting will need an async function though, or else it will be instant sorting, which isnt the goal of this sorting thing. Enough yap, back to coding, eventually, maybe.
AHHHHHHHHHHHHHHHHHHHHHH Sorting algorithm was made today. I decided on the most basic bubble sort. It is basically just 2 nested for-loops. This wikipedia article ( https://en.wikipedia.org/wiki/Bubble_sort ) has a great code example for it. It was relative easy. But the hard part was to get the animation going. The second part of the vid shows how it was without the fix for the animation. Finding out what the error was, was the first major problem. Fixing it was also hard, because I needed to save the target position after the box was created. This doesnt work, because you cannot call things after a return. Then after a good half hour of struggling and no progress, I asked my father for help. He is a full time developer aaand I hoped, that we could fix this together. He did gave some good calls, but the coding is still done by myself. After some together struggling, that lasted around 30 to 40 min, he proposed something genius. Save a version of the array of numbers, before every sorting step. That meant we need to compare the 2 arrays to get the difference and how the numbers got moved. I then said we could use some complicated for loops and then comparing stuff. He smiled and let me do. After some programming it was finally done and worked. But it wasnt optimized at all and was a bit laggy. Then he couldnt hold on anymore, laughed and told me that there is a dedicated js function just for that. I almost crashed out . Ya, that was todays session. I only implemented the dedicated js function instead of that. Ahh and before asking my father I also found out that js async is weird and that we need to use useEffect, kinda an event listener to see when the useState value changes. Ya, now that was it. See u later or tmrw.
Finally something after a long time. I was on vacation during that time, so I needed to use some time to understand what I have done before that. Then I implemented another sorting algorithm!! Selection Sort!! If you take a look inside my commits, you can see it being committed. After implementing selection sort I took a small break and didnt devlog, cause it didnt even took that long. After the break I decided to add a little highlighting animation, that changes the color of the pillars, that are being swapped. That took waay longer that expected, but was the easiest thing to do. I just had to save the 2 values being swapped and somehow pass it inside and get the colors changed. After the highlighting, I decided its time for another sorting alg. The Insertion Sort. That somehow took longer that selection sort. Due to it being almost the exact opposite of bubble sort, I always fell back to it. While researching for insertion sort, I found this great website and quite liked its finishing animation. I also felt that the selecting animation is kinda off for insertion sort. It shouldnt be 2 pillars that are selected. It should be 3 or 1, since one pillar is inserted between 2 other ones and not 2 pillars being swapped. So I made a highlighting version with only one pillar being highlighted and created an if statement of doom inside the meshStandartMaterial. I thought this version was also better for bubble sort than the selection one and switched it too. Ya, that was all of it, I think, Have a great day though :)
Better Shuffling logic!!! Before the refinement of the shuffling logic today I just simply randomized the numbers in the array, so that there are new numbers. That introduced one problem, actually two. Numbers could dupe!! I tried to fix it while using numbers with one decimal. The other problem was I could not add an animation anywhere. This is why I decided to make a brand new shuffling logic today. I first tried to fix the duping problem, by checking if this number already exists. This took a while, because I need to figure out how to only watch an array to a specific point, to ignore the upcoming numbers. This resulted in a growing or shrinking animation, which wasnt what I wanted. Then I thought, maybe I can shuffle in another way. Not by changing the value, rather by swapping numbers randomly. Just like in a deck of cards. So I loop through each digit and randomly choose a number in the whole array and then swapping those. This ensures every place got changed. Now there was another problem. It sometimes changed with it self causing it not to do anything. This was fixed by adding a while loop which generates new positions if the position is the own position. While writing this devlog I also thought of another problem. When the total count of numbers is very low, this shuffling method might not shuffle it enough, so I am looping it 2 times, if there are less then 10 numbers in it. Ya, thats about it. Now lets get to the slider which increases the blocks.
HOLY WAS THIS A STRUGGLE !! In this session I implemented adding and removing numbers for a slider in the future (hopefully tomorrow). THIS WAS A PAIN. Especially the camera handling. The very very basic adding and removing function was quite easy, since its only adding numbers or splicing numbers from the array (stack overflow my goat). The camera thing was quite hard though. When I add enough numbers it could make the pillars taller than the viewheight, making them sticking “off screen”. The fix was zooming out. But the fix on stack overflow needed to let it be a JSX element, which somehow didnt work. Finding the fix was one problem. The other problem is, that after finding the fix, it still didnt work and the camera “fell” down. After a long debugging session with various console.logs, I finally found the problem and it was one of the stupid ones. I used z, where it should have been y, thats dumb, but eyy, here we go. There were also a few other bugs, like having an infinite while loop when only having one pillar and shuffling. This was fixed by making the minimum number 2. The other bug was, weird camera behaviors happen, when reducing the number while its shuffled. Fixing it with an instant sort before reducing the number of pillars was my approach. Ya, that was about it. I am done for today.
Slider!! Today I added a slider that controls the adding and removing of pillars. I had some minor problems. (No, they were huge, but I feel better saying that they were minor ). First of all, I needed to figure out how to set default values. Normally its just value=””, but this doesnt work for a input type range. After some research I found out that its simply defaultValue, I feel dumb. Then I tried to add/remove pillars with useEffect and monitor the changes of the slider. This worked, but also didnt. I needed to manually update the pillars. It didnt do it automatically. Then my brain suggested something genius. Using onChange. But now I need to do an extra function for it. I thought, maybe I use a while loop once. While the number array is smaller run add function and while its bigger, the remove function. This was uhh, not that good, because it somehow resulted into an infinite while loop, because js is asynchronous. I also tried with a for loop. This threw the error, that I set the 2 useState too often. After some experimenting I ended up with my current solution. I also added 2 useState variables for the sorting delay and shuffling delay. I am still searching for a great mathematical, anti-proportional, linear function to adjust it corresponding to the pillars count. Ahh and I also updated the camera adjusting logic a bit.
Thats enough, Ima do CSS tomorrow. Today I added a slider style and 2 other sliders for the shuffling and sorting speed. Then I hid those 2 and the remove and adding pillar buttons. Also added some CSS for flex, justify content, space between, to seperate the drop down, which I added too. I tried to add a scrolling drop down thing, but failed, uhh, I also adjusted the pillar speed and camera angle. Also I found out, that I can call functions from an array, so I can store a function in an array and then call it like that, thats weird, but also huge. Dont wanna write too much today, cause I still have stuff to do. Ah, also added prevention of shuffling while sorting.
FINALLYYYY Today was the final coding session. I finally got the UI right and am okay with it. Its not the best, but its acceptable. I decided to only use icons, to keep it clean, but I ran into the problem, that the icons arent clear enough to showcase the specific sorting algorithm. So I decided on making a tooltip. But the build in HTML tooltip is too ugly and the delay is annoying. I did some research and found a W3Schools tutorial, they are the goat ( here it is ). I didnt expect front end being so time intensive, but I did need to adjust every value so it looks good, which is very hard to do :(. Ah, I also fixed the bug that when there is the minimal amount of pillars, it will be weird while shuffling (that wasnt proper english). Also the icons changes depending if we are shuffling or sorting and the disables and reinables, which is cool. Uhh, I remembered sth, I need to implement canceling while sorting. Also the vid is one fix old, i did fix the typo in the sorting alg.
Implemented pause logic. I implemented pause logic and added an indicator, which shows, which sorting algorithm is currently active. The pause logic was quite painful, cause it just didnt want to stop. Neither with break, nor with return. After a long long long trouble shooting session, I found out, that I forgot .current and it just wont detect correctly, what a stupid bug to troubleshoot 20 min for. Also I fixed an edge case in the demo vid xD
I wrote my readme in this session, so nothing really to say. It was just typing typing typing and finishing this beautiful readme to be able to submit this project.
Ships:
A 3d sorting algorithm visualizer with NextJS and ThreeJS. Also its made with luve and happiness....
|
1793670799.1628003
|
1793757199.1628003
|
|
28570
|
Natural Selection Simulation by @VasilyKrupenin | Natural Selection Simulation by @VasilyKrupenin | Stardance...
|
VasilyKrupenin
|
1
|
20.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-24T19:34:25Z", "hours": 20.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made the basics of a natural selection simulation, but it unfortunately is unfinished, and since Stardance is ending pretty soon, I want to publish this so if anyone wants to use my project for something, they are free to do so, since I will be unable to finish it before it ends.", "repo": "https://github.com/vkrpn/Natural-Selection-Simulation", "demo": "https://drive.google.com/drive/folders/1Ek7X9l--7f_XP9Hxx5AYiUP00q131n4a?usp=drive_link"}]...
|
[{"post_id": 73289, "ts": "202 [{"post_id": 73289, "ts": "2026-09-24T19:27:07Z", "hours": 1.3636, "text": "Stardance is about to end, so I might as well publish this to get my 20+ hours worth of stardust. I may finish this later, but it will probably won’t be finished by the time Stardance ends. Do whatever you want with my project. It needs a screenshot, so here’s a cool picture I took:"}, {"post_id": 43552, "ts": "2026-08-08T21:48:17Z", "hours": 2.4575, "text": "It’s been a while since I last posted a devlog because I was hoping to finish the project, but I am farther away than I thought, and I also could not work on any Stardance projects for 2 weeks, unfortunately. It’s been so long since I’ve worked that I forgot what I’ve made; I think I made size, color, and a few tree variants."}, {"post_id": 27445, "ts": "2026-07-13T00:41:49Z", "hours": 2.8772, "text": "I’ve been a bit lazy, but progress on procedural generation is coming along well. I finished it and tweaked it until I got a result I liked (there was more mathematics that I had to do, like I had to use the pythagorean theorem to figure out the distance away from the center and subtract that to ensure that edges are ocean). The way it works is by first creating ocean, beach, fertile land, and mountains from noise, then I use moisture and temperature to determine the biome. Temperature is calculated by getting the latitude, subtracting the elevation (to make higher areas naturally colder), and then a bit of noise is added on top of all of that. Moisture works similarly, minus the latitude part. I also started working on vegetation; see those savanna trees? But I do have to create plants for each biome (or the creatures will have nothing to eat) which I am too lazy to do (as you can see I just made a savanna tree), I do not know what I’ll do for that. There’s so much art I have to make; I’ll have to make the animals and all of the plants. I’m planning to code a bunch of traits gained from animal appearance as soon as I put in the work to create the animals, which will be really difficult to do. I’m finally moving away from MSFT Paint though!"}, {"post_id": 25459, "ts": "2026-07-09T18:57:48Z", "hours": 2.0503, "text": "I don’t have much to display at the moment, I’ve been optimizing the code (for example, I used for loops to repeat the same process with different variables used for graphing instead of having separate code for each variable to significantly shorten the code) and I’ve started working on biomes. Since it has been a while since I have last posted a devlog, I’ll post one, and since I have to attach a screenshot or video, here’s an demonstration of natural selection in my game. You can clearly see the memory trait rose a lot and certain traits balanced out at a certain level (the images are a bit low quality but the values tracked are speed, sight, metabolism, mutation, memory, and population)."}, {"post_id": 23670, "ts": "2026-07-06T19:40:33Z", "hours": 1.7361, "text": "I did a bit more work on the windows. Now you can select which stats to track (only sight and speed for now, but I’ll fix that) and you can track up to 2 stats (but it doesn’t take long to change how many stats you can track), and you can change the colors. In the video, I am tracking the average speed and sight (note that the graph is measuring not the value, but the change in value; sight is twice as large as speed by default). I also demonstrated some of the features of the windows in the video which I forgot to show in the last one."}, {"post_id": 23131, "ts": "2026-07-05T22:03:50Z", "hours": 2.2103, "text": "I haven’t posted much because there wasn’t a lot to display or show that I’ve gotten something to work. Anyway, I coded a mutation trait which modifies how much a child’s traits can change (I noticed something pretty cool; when setting the mutation value super high like 1, it almost always drops back down to around 0.3). Here’s how mutation works: you get a child’s genes by calculating the average of the 2 parents genes plus that same number multiplied by mutation value. With a mutation of value of 1, the highest amount genes can change is double the original value. And most noticeably, I started working on UI; I started making charts that display certain traits. It’s nowhere near done, but it is coming along quite nicely. In the video attached, a chart is tracking the average speed value of the population. I didn’t show in the video, but you can drag the windows around, but that’s about it; I can only manually set the tracked value in code and drag windows around, they don’t have much features. A lot of the work I can’t really show; I was working on tracking, originally it was mostly for debugging, but now I can actually display those values with the graphs I am coding. Sorry that the video’s a bit long, Haaland scored a goal against Brazil and I forgot I was recording; I had to see the replay. He also scored a second one while I was typing this devlog. Go Norway (I’d root for Russia but they got suspended)!"}, {"post_id": 22335, "ts": "2026-07-04T19:12:32Z", "hours": 0.4192, "text": "I didn’t do much coding, and the game still needs a lot of work, but I have reached a great milestone! The game naturally selects traits! I added some statistics and a new memory trait because the creatures could just set off on a journey and remember the exact position down to the decimal places of the last food and water it saw, so I fixed that and added a timer which wipes the memory of the food/water position once it times out. The default traits are: 75 speed, 150 sight, 1 metabolism, and 7 memory. The average traits after running the simulation for some time: 65 speed, 125 sight, similar metabolism, and 10 memory. This result is pretty consistent with the exact plant and water setup in the image, but if I change it to a sparser environment, I saw speed go up by 10, sight go up by 5, metabolism stay the same, and surprisingly, despite being a trait with no negatives implemented yet, memory go down by 0.25. I guess memory doesn’t matter if you are fast enough and see well."}, {"post_id": 22200, "ts": "2026-07-04T15:37:17Z", "hours": 0.7967, "text": "I’m a bit stuck. I don’t really like the gene system so I decided to code traits as numbers, but that needs a lot of balance and tweaking to properly implement, and all of this work is a bit overwhelming. I might take a break from this project for a few days."}, {"post_id": 21092, "ts": "2026-07-02T21:47:31Z", "hours": 0.7008, "text": "I did a LOT of debugging. Fixed the last bug and numerous more that caused things like food not giving any hunger, genes getting incorrect effects, and more. I also changed how metabolism works and nerfed it. Now, Mm = 0, mm = -1, and MM = 1. These values are “intensified” by the I/i alleles. These work the same way as metabolism worked before, but now the values can be negative leading to efficient but low capacity creatures. I had to nerf it because capacity was becoming negative and creatures were getting infinite food."}, {"post_id": 20930, "ts": "2026-07-02T17:37:15Z", "hours": 1.1336, "text": "I restored my work and added a new trait; metabolism. mm is default metabolism; 10 hunger/thirst capacity and normal depletion. Mm is higher metabolism with 12-15 capacity and increased depletion. MM is highest metabolism with 13-22.5 capacity and even more increased depletion. I also made growth smooth instead of how previously juveniles instantly became adults. There’s also a strange bug which I’m trying to fix. Sometimes, the metabolism genotype becomes part of the other genotype. “Qq” “Vv” “Mm” is default, but after a few generations, you start seeing things like “Qq” “vm” “Mm” and eventually, things like “mm” “MM” “Mm”"}, {"post_id": 20449, "ts": "2026-07-02T01:28:54Z", "hours": 0.2603, "text": "All of my progress since my last devlog is lost :( I’ll have to recode all of it, but it isn’t that much work. Probably happened because I set up Git incorrectly or something."}, {"post_id": 19963, "ts": "2026-07-01T12:53:28Z", "hours": 1.1578, "text": "I coded limited resources and juvenile creatures. When creatures spawn, they have to wait 15 seconds until they can mate (so they don’t start mating right out of the womb like last time), and now when food is eaten, it regrows after 7 seconds. I’ll probably add more genes next time, or maybe even expand the map and add new biomes and plants (which would be really easy because I can just drag the food scene onto any plant and the plant now has fruits that grow and regrow)."}, {"post_id": 19464, "ts": "2026-06-30T19:55:19Z", "hours": 1.9164, "text": "I added genetics and reproduction! You can see in the output that each new organism has 2 genotypes, one for Q/q (short for quickness, didn’t want to use S because it’s a common letter and I might need it later idk I forgot), and one for V/v (short for vision) alleles (probably using all the wrong vocabulary). These genes directly affect speed and vision (with some slight randomness) and speed and vision also affects hunger and thirst depletion, meaning that being fast and seeing well has a tradeoff. I really need to code limited resources and I really need to code juvenile creatures (they’re mating at birth 😭😭😭). Maybe I could even make something like eggs? The output got cut off in the image. Here’s what it’s supposed to say: Genetics: [“Qq”,“vv”] Speed: 92.3979906001719 Sight: 150 Genetics: [“qQ”,vv”] Speed: 83.9082190561058 Sight: 150 Genetics: [“QQ”,“vV”] Speed: 142.633334008872 Sight: 171.81141852858 Genetics: [“QQ”,“vv”] Speed: 110.227173121233 Sight: 150 …"}, {"post_id": 18864, "ts": "2026-06-30T02:01:05Z", "hours": 1.2911, "text": "Finished coding a lil guy with some slight (heavy emphasis on slight) survival instincts. You can watch his hunger and thirst go down in the Godot output and watch him race towards food and water (oh wait forgot to add a hungry state he just runs after water, oh well, I’ll just add that next dev log). I just started working on this, so basically everything’s a prototype. And I also had the bright idea of making prototype assets in MS Paint, that’s why the art looks so beautiful and astounding. I have a lot of ideas for the future; I’ll probably code genes and reproduction next, but I also have a ton of ideas for the future, like Perlin noise generated terrain (like in my last project), adding natural selection for plants, multiple biomes, several species, etc… Who knows how this project will turn out? Anyways, it’s 10 PM and I have spend over an hour coding, so I should definitely go to sleep. Or should I? I reallyyyy want to code genes and reproduction."}]...
|
Title: Natural Selection Simulation by @VasilyKrup Title: Natural Selection Simulation by @VasilyKrupenin | Stardance
Devlogs:
Finished coding a lil guy with some slight (heavy emphasis on slight) survival instincts. You can watch his hunger and thirst go down in the Godot output and watch him race towards food and water (oh wait forgot to add a hungry state he just runs after water, oh well, I’ll just add that next dev log). I just started working on this, so basically everything’s a prototype. And I also had the bright idea of making prototype assets in MS Paint, that’s why the art looks so beautiful and astounding. I have a lot of ideas for the future; I’ll probably code genes and reproduction next, but I also have a ton of ideas for the future, like Perlin noise generated terrain (like in my last project), adding natural selection for plants, multiple biomes, several species, etc… Who knows how this project will turn out? Anyways, it’s 10 PM and I have spend over an hour coding, so I should definitely go to sleep. Or should I? I reallyyyy want to code genes and reproduction.
I added genetics and reproduction! You can see in the output that each new organism has 2 genotypes, one for Q/q (short for quickness, didn’t want to use S because it’s a common letter and I might need it later idk I forgot), and one for V/v (short for vision) alleles (probably using all the wrong vocabulary). These genes directly affect speed and vision (with some slight randomness) and speed and vision also affects hunger and thirst depletion, meaning that being fast and seeing well has a tradeoff. I really need to code limited resources and I really need to code juvenile creatures (they’re mating at birth 😭😭😭). Maybe I could even make something like eggs? The output got cut off in the image. Here’s what it’s supposed to say: Genetics: [“Qq”,“vv”] Speed: 92.3979906001719 Sight: 150 Genetics: [“qQ”,vv”] Speed: 83.9082190561058 Sight: 150 Genetics: [“QQ”,“vV”] Speed: 142.633334008872 Sight: 171.81141852858 Genetics: [“QQ”,“vv”] Speed: 110.227173121233 Sight: 150 …
I coded limited resources and juvenile creatures. When creatures spawn, they have to wait 15 seconds until they can mate (so they don’t start mating right out of the womb like last time), and now when food is eaten, it regrows after 7 seconds. I’ll probably add more genes next time, or maybe even expand the map and add new biomes and plants (which would be really easy because I can just drag the food scene onto any plant and the plant now has fruits that grow and regrow).
All of my progress since my last devlog is lost :( I’ll have to recode all of it, but it isn’t that much work. Probably happened because I set up Git incorrectly or something.
I restored my work and added a new trait; metabolism. mm is default metabolism; 10 hunger/thirst capacity and normal depletion. Mm is higher metabolism with 12-15 capacity and increased depletion. MM is highest metabolism with 13-22.5 capacity and even more increased depletion. I also made growth smooth instead of how previously juveniles instantly became adults. There’s also a strange bug which I’m trying to fix. Sometimes, the metabolism genotype becomes part of the other genotype. “Qq” “Vv” “Mm” is default, but after a few generations, you start seeing things like “Qq” “vm” “Mm” and eventually, things like “mm” “MM” “Mm”
I did a LOT of debugging. Fixed the last bug and numerous more that caused things like food not giving any hunger, genes getting incorrect effects, and more. I also changed how metabolism works and nerfed it. Now, Mm = 0, mm = -1, and MM = 1. These values are “intensified” by the I/i alleles. These work the same way as metabolism worked before, but now the values can be negative leading to efficient but low capacity creatures. I had to nerf it because capacity was becoming negative and creatures were getting infinite food.
I’m a bit stuck. I don’t really like the gene system so I decided to code traits as numbers, but that needs a lot of balance and tweaking to properly implement, and all of this work is a bit overwhelming. I might take a break from this project for a few days.
I didn’t do much coding, and the game still needs a lot of work, but I have reached a great milestone! The game naturally selects traits! I added some statistics and a new memory trait because the creatures could just set off on a journey and remember the exact position down to the decimal places of the last food and water it saw, so I fixed that and added a timer which wipes the memory of the food/water position once it times out. The default traits are: 75 speed, 150 sight, 1 metabolism, and 7 memory. The average traits after running the simulation for some time: 65 speed, 125 sight, similar metabolism, and 10 memory. This result is pretty consistent with the exact plant and water setup in the image, but if I change it to a sparser environment, I saw speed go up by 10, sight go up by 5, metabolism stay the same, and surprisingly, despite being a trait with no negatives implemented yet, memory go down by 0.25. I guess memory doesn’t matter if you are fast enough and see well.
I haven’t posted much because there wasn’t a lot to display or show that I’ve gotten something to work. Anyway, I coded a mutation trait which modifies how much a child’s traits can change (I noticed something pretty cool; when setting the mutation value super high like 1, it almost always drops back down to around 0.3). Here’s how mutation works: you get a child’s genes by calculating the average of the 2 parents genes plus that same number multiplied by mutation value. With a mutation of value of 1, the highest amount genes can change is double the original value. And most noticeably, I started working on UI; I started making charts that display certain traits. It’s nowhere near done, but it is coming along quite nicely. In the video attached, a chart is tracking the average speed value of the population. I didn’t show in the video, but you can drag the windows around, but that’s about it; I can only manually set the tracked value in code and drag windows around, they don’t have much features. A lot of the work I can’t really show; I was working on tracking, originally it was mostly for debugging, but now I can actually display those values with the graphs I am coding. Sorry that the video’s a bit long, Haaland scored a goal against Brazil and I forgot I was recording; I had to see the replay. He also scored a second one while I was typing this devlog. Go Norway (I’d root for Russia but they got suspended)!
I did a bit more work on the windows. Now you can select which stats to track (only sight and speed for now, but I’ll fix that) and you can track up to 2 stats (but it doesn’t take long to change how many stats you can track), and you can change the colors. In the video, I am tracking the average speed and sight (note that the graph is measuring not the value, but the change in value; sight is twice as large as speed by default). I also demonstrated some of the features of the windows in the video which I forgot to show in the last one.
I don’t have much to display at the moment, I’ve been optimizing the code (for example, I used for loops to repeat the same process with different variables used for graphing instead of having separate code for each variable to significantly shorten the code) and I’ve started working on biomes. Since it has been a while since I have last posted a devlog, I’ll post one, and since I have to attach a screenshot or video, here’s an demonstration of natural selection in my game. You can clearly see the memory trait rose a lot and certain traits balanced out at a certain level (the images are a bit low quality but the values tracked are speed, sight, metabolism, mutation, memory, and population).
I’ve been a bit lazy, but progress on procedural generation is coming along well. I finished it and tweaked it until I got a result I liked (there was more mathematics that I had to do, like I had to use the pythagorean theorem to figure out the distance away from the center and subtract that to ensure that edges are ocean). The way it works is by first creating ocean, beach, fertile land, and mountains from noise, then I use moisture and temperature to determine the biome. Temperature is calculated by getting the latitude, subtracting the elevation (to make higher areas naturally colder), and then a bit of noise is added on top of all of that. Moisture works similarly, minus the latitude part. I also started working on vegetation; see those savanna trees? But I do have to create plants for each biome (or the creatures will have nothing to eat) which I am too lazy to do (as you can see I just made a savanna tree), I do not know what I’ll do for that. There’s so much art I have to make; I’ll have to make the animals and all of the plants. I’m planning to code a bunch of traits gained from animal appearance as soon as I put in the work to create the animals, which will be really difficult to do. I’m finally moving away from MSFT Paint though!
It’s been a while since I last posted a devlog because I was hoping to finish the project, but I am farther away than I thought, and I also could not work on any Stardance projects for 2 weeks, unfortunately. It’s been so long since I’ve worked that I forgot what I’ve made; I think I made size, color, and a few tree variants.
Stardance is about to end, so I might as well publish this to get my 20+ hours worth of stardust. I may finish this later, but it will probably won’t be finished by the time Stardance ends. Do whatever you want with my project. It needs a screenshot, so here’s a cool picture I took:
Ships:
I made the basics of a natural selection simulation, but it unfortunately is unfinished, and since Stardance is ending pretty soon, I want to publish this so if anyone wants to use my project for something, they are free to do so, since I will be unable to finish it before it ends....
|
1793670554.0377824
|
1793756954.0377824
|
|
32164
|
Jpad by @The_one_who_knocks | Stardance
|
The_one_who_knocks
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-28T22:37:21Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Finally, after long nights of 3d modelling, coding and routing pcbs, my hackpad is done ! . introducing Jpad!!!!, my cool 9 key macropad with an oled screen and a rotary encoder!!!1!1!, Jpad was made without any experience, in anything, so it was mostly a learning experience for me which honestly made me more focused on functionality that aesthetics which is a big regret of mine, I can’t find someone to 3d print the case just yet so for now i’m gonna use it like this, i had a lot of fun making it and cant wait to work on more projects, anyways, have a look for yourselves !", "repo": "https://github.com/NoIdea90/Jpad", "demo": ""}]...
|
[{"post_id": 73288, "ts": "202 [{"post_id": 73288, "ts": "2026-09-24T19:26:26Z", "hours": 0.5514, "text": "first devlog in like a month, basically i made the edges of the case curved so it doesnt look like some primal box with holes"}, {"post_id": 31986, "ts": "2026-07-20T20:29:10Z", "hours": 1.1503, "text": "i made firmware 👍"}, {"post_id": 28758, "ts": "2026-07-15T07:11:45Z", "hours": 4.8258, "text": "basically, i did the case and then, discovered issues with the pcb 3d model, and then, redid the 3d model, and did it all over again, discovered the rotary encoder in my schematics and pcb has no click, so i went back and replaced that, also the 3d model for the encoder was also wrong, so i went back and downloaded that, also turns out i didnt quite understand how a cherry mx switch works, so i did the top and went back and redid when a friend kindly explained it to me, fusion 360 is an absolute pain tho, oh and my gpu died at the end, so thats fun, over all im pretty happy with it and i hope my dimensions are correct"}, {"post_id": 27448, "ts": "2026-07-13T00:47:10Z", "hours": 0.7419, "text": "i took a break for a bit to learn some fusion, made some prototypes and i think this would maybe be the final product, theres still the top plate and many more things to work on here, i know this isnt really progress and i hope i can finish this case soon so i can get to the firmware and submit this thing"}, {"post_id": 25480, "ts": "2026-07-09T19:38:01Z", "hours": 0.3003, "text": "lookout keeps crashing out on me so i finished the pcb without, looks much cleaner now, and the port is facing the right way now obviously, so far , drc isnt freaking out with 40 warnings this time, just 19 which is still a lot but not 40 a lot, anyways heres a screenie of my awesome pcb"}, {"post_id": 25305, "ts": "2026-07-09T14:56:33Z", "hours": 1.025, "text": "schematics done, made the pcb and did all the traces but the microcontroller orientation was wrong and had 40 errors, but it was a first try so im not that mad abt it"}]...
|
Title: Jpad by @The_one_who_knocks | Stardance
De Title: Jpad by @The_one_who_knocks | Stardance
Devlogs:
schematics done, made the pcb and did all the traces but the microcontroller orientation was wrong and had 40 errors, but it was a first try so im not that mad abt it
lookout keeps crashing out on me so i finished the pcb without, looks much cleaner now, and the port is facing the right way now obviously, so far , drc isnt freaking out with 40 warnings this time, just 19 which is still a lot but not 40 a lot, anyways heres a screenie of my awesome pcb
i took a break for a bit to learn some fusion, made some prototypes and i think this would maybe be the final product, theres still the top plate and many more things to work on here, i know this isnt really progress and i hope i can finish this case soon so i can get to the firmware and submit this thing
basically, i did the case and then, discovered issues with the pcb 3d model, and then, redid the 3d model, and did it all over again, discovered the rotary encoder in my schematics and pcb has no click, so i went back and replaced that, also the 3d model for the encoder was also wrong, so i went back and downloaded that, also turns out i didnt quite understand how a cherry mx switch works, so i did the top and went back and redid when a friend kindly explained it to me, fusion 360 is an absolute pain tho, oh and my gpu died at the end, so thats fun, over all im pretty happy with it and i hope my dimensions are correct
i made firmware 👍
first devlog in like a month, basically i made the edges of the case curved so it doesnt look like some primal box with holes
Ships:
Finally, after long nights of 3d modelling, coding and routing pcbs, my hackpad is done ! . introducing Jpad!!!!, my cool 9 key macropad with an oled screen and a rotary encoder!!!1!1!, Jpad was made without any experience, in anything, so it was mostly a learning experience for me which honestly made me more focused on functionality that aesthetics which is a big regret of mine, I can’t find someone to 3d print the case just yet so for now i’m gonna use it like this, i had a lot of fun making it and cant wait to work on more projects, anyways, have a look for yourselves !...
|
1793692135.421436
|
1793778535.421436
|
|
65102
|
esp32 key chain by @Bhavyadeep | Stardance
|
Bhavyadeep
|
0
|
1.7
|
0
|
[]
|
[{"post_id": 73271, "ts": "202 [{"post_id": 73271, "ts": "2026-09-24T18:27:42Z", "hours": 0.8333, "text": "yaay i have completed the second microcontroller and with this i conclude my fun side quest"}, {"post_id": 72731, "ts": "2026-09-23T16:40:42Z", "hours": 0.8706, "text": "cool esp32 key chain! so this photo was the inspiration and as a cool sidequest i am making this i will be making 2 esp32s 1. esp32 cam 2. esp32 (standard) 3. arduino uno first i desolder all the pins and then just put something to hag it is a very good gift for people who build with u"}]...
|
Title: esp32 key chain by @Bhavyadeep | Stardance
Title: esp32 key chain by @Bhavyadeep | Stardance
Devlogs:
cool esp32 key chain! so this photo was the inspiration and as a cool sidequest i am making this i will be making 2 esp32s 1. esp32 cam 2. esp32 (standard) 3. arduino uno first i desolder all the pins and then just put something to hag it is a very good gift for people who build with u
yaay i have completed the second microcontroller and with this i conclude my fun side quest...
|
1793695976.7351806
|
1794300776.7351806
|
|
40044
|
Aether by @Praknoor | Stardance
|
Praknoor
|
1
|
90.8
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-11T17:37:24Z", "hours": 47.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "yoo gng… so this is v1 of my platform, pls join me in this journey….basicly it’s a platform where the studets can learn anythigh, i am also planning to add other subjects like cad, design but i am still figuring out……….to use the platform u need to first register as betatesters , then i will approve u and then u can use the platform", "repo": "https://github.com/GurnoorLog/AETHER", "demo": "https://aether-sooty-one.vercel.app/"}]...
|
[{"post_id": 73267, "ts": "202 [{"post_id": 73267, "ts": "2026-09-24T18:19:42Z", "hours": 6.8969, "text": "improved the website, the tutors languigeand added the poption to custumize the look"}, {"post_id": 60866, "ts": "2026-09-03T14:33:30Z", "hours": 4.9708, "text": "just improved the app, gave the app the style of the website, also i made some art, but it’s 🤮 rn…but give some tmie and it will be great"}, {"post_id": 58115, "ts": "2026-08-30T13:51:06Z", "hours": 0.5667, "text": "improved also the layout of the dahboard"}, {"post_id": 58071, "ts": "2026-08-30T12:42:03Z", "hours": 4.0575, "text": "reworked on the css"}, {"post_id": 54716, "ts": "2026-08-25T19:50:06Z", "hours": 7.0078, "text": "improved the website, and also made the app more optimized"}, {"post_id": 52583, "ts": "2026-08-22T19:24:01Z", "hours": 1.3981, "text": "yoo gng added more screens… and the ui is now complete….. it’s ready to use gng, i am soon gonna publish it"}, {"post_id": 52181, "ts": "2026-08-22T08:35:54Z", "hours": 4.0375, "text": "created the remaing screens, and improved the ui"}, {"post_id": 51533, "ts": "2026-08-21T09:22:21Z", "hours": 4.6594, "text": "yoo gng i am now focusing on the ui, i chose the koala as my mascot 🐨🐨🐨🐨"}, {"post_id": 47642, "ts": "2026-08-15T17:48:54Z", "hours": 4.6103, "text": "yoo the app is complete, i added all the functionality, optimized , added dark theme and other custumisations…….now the only thigh left is to put it in google playstore"}, {"post_id": 47101, "ts": "2026-08-14T18:57:14Z", "hours": 5.5983, "text": "yoo gng i have now also made it into an app for android …..i changed the ui in the android mode, i am also palnning to mmake a big chnage in the ui of the website..but yeah slow and steady wins the race 😭😭😭😭😭😭😭😭..so tired 😭😭"}, {"post_id": 45275, "ts": "2026-08-11T16:57:27Z", "hours": 12.1869, "text": "yoo gng… just improved the ai"}, {"post_id": 38293, "ts": "2026-07-31T16:40:01Z", "hours": 0.4378, "text": "gng…i have made this demo video, lol i was my first video editing took me like 4hr, oh well i think it’s goo…..here is the link https://youtu.be/Adcq0bVabeU?si=SW5BLNibwAD3Nauz"}, {"post_id": 37840, "ts": "2026-07-30T20:04:03Z", "hours": 1.3114, "text": "it can now generate maps"}, {"post_id": 37589, "ts": "2026-07-30T12:53:01Z", "hours": 2.155, "text": "added the betatesting form, only allowed email will be able to test it……..just send the email and i will allow u all as soon as i can"}, {"post_id": 37015, "ts": "2026-07-29T14:10:48Z", "hours": 2.7511, "text": "improved the ui, a code challanges option….. basically it’s like a google collab ui where u wrtie ure code and the ai checks it"}, {"post_id": 36930, "ts": "2026-07-29T10:22:33Z", "hours": 1.3236, "text": "just optimised the platform for phones also, it still needs refinements 😭😭😭😭, if somone finds any bugs pls dm me on slack @Praknoor"}, {"post_id": 36502, "ts": "2026-07-28T17:33:43Z", "hours": 7.22, "text": "just added the voice tutor option"}, {"post_id": 35696, "ts": "2026-07-27T09:34:27Z", "hours": 1.2364, "text": "guys just made it online, i am now working on the roadmap creation, and adding a voice tutor……..here is the link: https://aether-sooty-one.vercel.app/ ………..it’s not quite ready for testing, it will be soon all the basic functions work, music creation only the musicgen option( since i am broke😭😭😭😭 i am using a downloaded llm on collab linked it there, and as u all know collab after sometime it closes so that might not work, if u want to try pls dm on slack @Praknoor ) …i am also opened to suggetions"}, {"post_id": 35416, "ts": "2026-07-26T20:10:31Z", "hours": 2.0853, "text": "wired up with supabase the dashboard, created the chat….soon i’ll make it online for testing…..but rn i’m so tired so i’m gonna do it tomorrow🤣😭"}, {"post_id": 35083, "ts": "2026-07-26T09:07:47Z", "hours": 16.7844, "text": "i ahve created the ui and wired up the pages…dman it took me so much just to design the landing page and then the dashboard 😭😭"}]...
|
Title: Aether by @Praknoor | Stardance
Devlogs:
i Title: Aether by @Praknoor | Stardance
Devlogs:
i ahve created the ui and wired up the pages…dman it took me so much just to design the landing page and then the dashboard 😭😭
wired up with supabase the dashboard, created the chat….soon i’ll make it online for testing…..but rn i’m so tired so i’m gonna do it tomorrow🤣😭
guys just made it online, i am now working on the roadmap creation, and adding a voice tutor……..here is the link: https://aether-sooty-one.vercel.app/ ………..it’s not quite ready for testing, it will be soon all the basic functions work, music creation only the musicgen option( since i am broke😭😭😭😭 i am using a downloaded llm on collab linked it there, and as u all know collab after sometime it closes so that might not work, if u want to try pls dm on slack @Praknoor ) …i am also opened to suggetions
just added the voice tutor option
just optimised the platform for phones also, it still needs refinements 😭😭😭😭, if somone finds any bugs pls dm me on slack @Praknoor
improved the ui, a code challanges option….. basically it’s like a google collab ui where u wrtie ure code and the ai checks it
added the betatesting form, only allowed email will be able to test it……..just send the email and i will allow u all as soon as i can
it can now generate maps
gng…i have made this demo video, lol i was my first video editing took me like 4hr, oh well i think it’s goo…..here is the link https://youtu.be/Adcq0bVabeU?si=SW5BLNibwAD3Nauz
yoo gng… just improved the ai
yoo gng i have now also made it into an app for android …..i changed the ui in the android mode, i am also palnning to mmake a big chnage in the ui of the website..but yeah slow and steady wins the race 😭😭😭😭😭😭😭😭..so tired 😭😭
yoo the app is complete, i added all the functionality, optimized , added dark theme and other custumisations…….now the only thigh left is to put it in google playstore
yoo gng i am now focusing on the ui, i chose the koala as my mascot 🐨🐨🐨🐨
created the remaing screens, and improved the ui
yoo gng added more screens… and the ui is now complete….. it’s ready to use gng, i am soon gonna publish it
improved the website, and also made the app more optimized
reworked on the css
improved also the layout of the dahboard
just improved the app, gave the app the style of the website, also i made some art, but it’s 🤮 rn…but give some tmie and it will be great
improved the website, the tutors languigeand added the poption to custumize the look
Ships:
yoo gng… so this is v1 of my platform, pls join me in this journey….basicly it’s a platform where the studets can learn anythigh, i am also planning to add other subjects like cad, design but i am still figuring out……….to use the platform u need to first register as betatesters , then i will approve u and then u can use the platform...
|
1793724877.2071629
|
1793811277.2071629
|
|
59063
|
soundpillow by @Dalv | Stardance
|
Dalv
|
0
|
0.38
|
0
|
[]
|
[{"post_id": 73259, "ts": "202 [{"post_id": 73259, "ts": "2026-09-24T18:06:59Z", "hours": 0.3819, "text": "I added GG’s to my PCB because why not"}]...
|
Title: soundpillow by @Dalv | Stardance
Devlogs:
Title: soundpillow by @Dalv | Stardance
Devlogs:
I added GG’s to my PCB because why not...
|
1793530223.6629286
|
1794135023.6629286
|
|
62105
|
space-dashboard by @abdulqadir | Stardance
|
abdulqadir
|
1
|
16.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-24T18:27:33Z", "hours": 16.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a customizable Space Dashboard using HTML, CSS, JavaScript and Vite. It uses NASA’s APOD API to show a new space background and also has a live customizable clock, Google search, quick shortcuts, random quotes, a draggable to-do list, custom space wallpapers and solid backgrounds. One of the most challenging parts was debugging the JavaScript, especially when a missing bracket broke both the clock and hamburger menu, and I also had some problems getting the Day/Night color toggle and wallpapers working correctly. I’m most proud of the custom Space Menu and how users can personalize the dashboard. When testing it, try changing the background, clock font and color, turning Day/Night mode on and off, and using the To-Do list and search.", "repo": "https://github.com/qadir-eng/space-dashboard", "demo": "https://qadir-eng.github.io/space-dashboard/"}]...
|
[{"post_id": 73257, "ts": "202 [{"post_id": 73257, "ts": "2026-09-24T18:04:25Z", "hours": 3.9967, "text": "Since the last devlog, I worked mainly on improving the customization and overall UI of the Space Dashboard. I added a Background section to the side menu. Users can now switch back to the NASA Daily image, choose from five selected space wallpapers, or use solid-color backgrounds. The wallpapers also have small previews so users can see them before selecting one. I also improved the clock customization. Users can now change the clock font using arrow buttons and choose between Digital Ops, Audiowide, Michroma, Bruno Ace, and Oxanium. I added a similar selector for clock colors, with options like White, Cyan, Blue, Purple, Solar, and Black. I added a Day/Night toggle for the clock too. When it is turned on, the clock automatically changes its color depending on the time of day. When it is turned off, the user can select their own clock color. I also improved the side menu so the clock font and color selectors open directly underneath their buttons instead of opening separate panels. This makes the menu simpler and keeps the main dashboard clean. Another addition was the loading screen. When the website starts, it shows “Loading Space…” while the NASA Daily background is being fetched and loaded. Once the image is ready, the loading screen disappears. It also disappears if the NASA request fails so the website doesn’t get stuck. There were several bugs while building these features. The biggest one was a misplaced } in the clock code, which caused the clock to stay at 00 00 and stopped the hamburger menu from working. I also had issues with the Day/Night toggle not visually turning off, wallpaper paths, and manual clock colors being overwritten by the automatic colors. I debugged these issues and got everything working properly. Overall, this update focused on making the Space Dashboard more customizable, cleaner, and easier to use."}, {"post_id": 72588, "ts": "2026-09-23T09:29:52Z", "hours": 3.6825, "text": "From last 2 days I was focusing on making the Space Dashboard more interactive and customizable. Space Menu I created a hamburger menu that opens a glass-style sidebar. This will act as the main control center for the dashboard, with options for the Quote of the Day, To-Do List, backgrounds, clock styles, and clock colors. I connected the Quote of the Day option to the sidebar. Users can now toggle the quote ON or OFF, depending on whether they want a cleaner dashboard or some inspiration on screen. I added a 4-task To-Do panel with a dark matte-glass design, background blur, rounded corners, and subtle transparency. I also made the panel draggable, so users can move it anywhere on their dashboard while still being able to type normally inside the task fields. and with that they can be on and off by clicking on to-do list button on sidebar"}, {"post_id": 71743, "ts": "2026-09-21T13:12:22Z", "hours": 0.7314, "text": "Today I worked on the search section of my Space Dashboard. I added a Google search bar so users can quickly search the web directly from the dashboard. I also added four shortcut buttons for YouTube, Gmail, Stardance, and Hackatime. I gave the search bar and shortcuts a glassmorphism/futuristic space design with transparent backgrounds, blur effects, and hover animations."}, {"post_id": 71683, "ts": "2026-09-21T09:35:02Z", "hours": 1.0897, "text": "add 5 different quotes each time randomly one from them will appear as it is appearing of top right if you think any changes feel free to give your changes"}, {"post_id": 71406, "ts": "2026-09-20T19:22:20Z", "hours": 2.0353, "text": "Set today’s NASA Astronomy Picture of the Day as the full-page background, with a dark overlay to keep everything readable regardless of what image NASA posts. Added a large glowing digital clock overlay showing the live time, styled with a soft black to match the space theme"}, {"post_id": 71105, "ts": "2026-09-20T09:38:25Z", "hours": 1.8103, "text": "🚀 Space Dashboard — Saving Notes with localStorageToday I worked on making the sticky notes in my Space Dashboard persistent.Before this, I could create NASA photo notes and drag them around, but whenever I refreshed the page, all the notes disappeared.💾 What I addedI implemented localStorage so the dashboard can remember the notes even after refreshing the page.For each note, I now save:📸 The NASA photo URL📍 The note’s position📝 The note’s shape/classI created a saveNotes() function that collects the information from every sticky note and stores it in the browser’s localStorage.I also added a restore system that runs when the page loads. It reads the saved notes, recreates them, restores their positions, and makes them draggable again.🖱️ Dragging + SavingI kept the existing drag system and connected it to the save function. Whenever I move a note, its new position is saved.This means I can:Add a NASA photo noteDrag it anywhereRefresh the pageGet the note back in the same position 🎯🧠 What I learnedThis part taught me more about:localStorageJSON.stringify()JSON.parse()datasetSaving JavaScript objectsRestoring DOM elements after a page reloadConnecting multiple features together✅ ResultThe Space Dashboard now remembers my NASA sticky notes instead of losing them every time the page refreshes.This makes the dashboard feel much more like a real usable application rather than just a temporary webpage. lwk this time no ss TT"}, {"post_id": 70069, "ts": "2026-09-18T12:00:27Z", "hours": 0.9089, "text": "Fixed a real-world problem: NASA’s official Mars Rover Photos API was returning 404 errors on every request — confirmed it wasn’t my code by testing the exact documented URL directly, even with their public demo key. Pivoted to reusing the same NASA APOD endpoint I’d already gotten working, but requesting a random historical date instead of today — gives varied real space photos on each sticky note while staying reliable. Learned how to generate a random date between two points using Date.getTime() and Math.random()."}, {"post_id": 69319, "ts": "2026-09-16T19:50:28Z", "hours": 1.2689, "text": "Wrote the core JavaScript for my Space Search project: a live fetch to NASA’s Astronomy Picture of the Day API. Learned how fetch() and .then() chains work — sending a request, converting the raw response with .json(), then using the data to build the page. Handled the case where NASA sometimes posts a video instead of an image (using an if statement and a media variable so I only set innerHTML once, instead of overwriting it multiple times). Added error handling with .catch() so the page shows a clear message instead of going blank if something fails. Toughest part was understanding why setting innerHTML multiple times wipes out previous content — had to actually see it break before it clicked. Screenshot: the page showing today’s NASA title, image, and description. Ik that it isn’t looking cool but trust the process buddies TT"}]...
|
Title: space-dashboard by @abdulqadir | Stardance
Title: space-dashboard by @abdulqadir | Stardance
Devlogs:
Wrote the core JavaScript for my Space Search project: a live fetch to NASA’s Astronomy Picture of the Day API. Learned how fetch() and .then() chains work — sending a request, converting the raw response with .json(), then using the data to build the page. Handled the case where NASA sometimes posts a video instead of an image (using an if statement and a media variable so I only set innerHTML once, instead of overwriting it multiple times). Added error handling with .catch() so the page shows a clear message instead of going blank if something fails. Toughest part was understanding why setting innerHTML multiple times wipes out previous content — had to actually see it break before it clicked. Screenshot: the page showing today’s NASA title, image, and description. Ik that it isn’t looking cool but trust the process buddies TT
Fixed a real-world problem: NASA’s official Mars Rover Photos API was returning 404 errors on every request — confirmed it wasn’t my code by testing the exact documented URL directly, even with their public demo key. Pivoted to reusing the same NASA APOD endpoint I’d already gotten working, but requesting a random historical date instead of today — gives varied real space photos on each sticky note while staying reliable. Learned how to generate a random date between two points using Date.getTime() and Math.random().
🚀 Space Dashboard — Saving Notes with localStorageToday I worked on making the sticky notes in my Space Dashboard persistent.Before this, I could create NASA photo notes and drag them around, but whenever I refreshed the page, all the notes disappeared.💾 What I addedI implemented localStorage so the dashboard can remember the notes even after refreshing the page.For each note, I now save:📸 The NASA photo URL📍 The note’s position📝 The note’s shape/classI created a saveNotes() function that collects the information from every sticky note and stores it in the browser’s localStorage.I also added a restore system that runs when the page loads. It reads the saved notes, recreates them, restores their positions, and makes them draggable again.🖱️ Dragging + SavingI kept the existing drag system and connected it to the save function. Whenever I move a note, its new position is saved.This means I can:Add a NASA photo noteDrag it anywhereRefresh the pageGet the note back in the same position 🎯🧠 What I learnedThis part taught me more about:localStorageJSON.stringify()JSON.parse()datasetSaving JavaScript objectsRestoring DOM elements after a page reloadConnecting multiple features together✅ ResultThe Space Dashboard now remembers my NASA sticky notes instead of losing them every time the page refreshes.This makes the dashboard feel much more like a real usable application rather than just a temporary webpage. lwk this time no ss TT
Set today’s NASA Astronomy Picture of the Day as the full-page background, with a dark overlay to keep everything readable regardless of what image NASA posts. Added a large glowing digital clock overlay showing the live time, styled with a soft black to match the space theme
add 5 different quotes each time randomly one from them will appear as it is appearing of top right if you think any changes feel free to give your changes
Today I worked on the search section of my Space Dashboard. I added a Google search bar so users can quickly search the web directly from the dashboard. I also added four shortcut buttons for YouTube, Gmail, Stardance, and Hackatime. I gave the search bar and shortcuts a glassmorphism/futuristic space design with transparent backgrounds, blur effects, and hover animations.
From last 2 days I was focusing on making the Space Dashboard more interactive and customizable. Space Menu I created a hamburger menu that opens a glass-style sidebar. This will act as the main control center for the dashboard, with options for the Quote of the Day, To-Do List, backgrounds, clock styles, and clock colors. I connected the Quote of the Day option to the sidebar. Users can now toggle the quote ON or OFF, depending on whether they want a cleaner dashboard or some inspiration on screen. I added a 4-task To-Do panel with a dark matte-glass design, background blur, rounded corners, and subtle transparency. I also made the panel draggable, so users can move it anywhere on their dashboard while still being able to type normally inside the task fields. and with that they can be on and off by clicking on to-do list button on sidebar
Since the last devlog, I worked mainly on improving the customization and overall UI of the Space Dashboard. I added a Background section to the side menu. Users can now switch back to the NASA Daily image, choose from five selected space wallpapers, or use solid-color backgrounds. The wallpapers also have small previews so users can see them before selecting one. I also improved the clock customization. Users can now change the clock font using arrow buttons and choose between Digital Ops, Audiowide, Michroma, Bruno Ace, and Oxanium. I added a similar selector for clock colors, with options like White, Cyan, Blue, Purple, Solar, and Black. I added a Day/Night toggle for the clock too. When it is turned on, the clock automatically changes its color depending on the time of day. When it is turned off, the user can select their own clock color. I also improved the side menu so the clock font and color selectors open directly underneath their buttons instead of opening separate panels. This makes the menu simpler and keeps the main dashboard clean. Another addition was the loading screen. When the website starts, it shows “Loading Space…” while the NASA Daily background is being fetched and loaded. Once the image is ready, the loading screen disappears. It also disappears if the NASA request fails so the website doesn’t get stuck. There were several bugs while building these features. The biggest one was a misplaced } in the clock code, which caused the clock to stay at 00 00 and stopped the hamburger menu from working. I also had issues with the Day/Night toggle not visually turning off, wallpaper paths, and manual clock colors being overwritten by the automatic colors. I debugged these issues and got everything working properly. Overall, this update focused on making the Space Dashboard more customizable, cleaner, and easier to use.
Ships:
I made a customizable Space Dashboard using HTML, CSS, JavaScript and Vite. It uses NASA’s APOD API to show a new space background and also has a live customizable clock, Google search, quick shortcuts, random quotes, a draggable to-do list, custom space wallpapers and solid backgrounds. One of the most challenging parts was debugging the JavaScript, especially when a missing bracket broke both the clock and hamburger menu, and I also had some problems getting the Day/Night color toggle and wallpapers working correctly. I’m most proud of the custom Space Menu and how users can personalize the dashboard. When testing it, try changing the background, clock font and color, turning Day/Night mode on and off, and using the To-Do list and search....
|
1793685000.1456418
|
1793771400.1456418
|
|
48199
|
UPS for Raspberry Pi by @Jovi | Stardance
|
Jovi
|
2
|
5.0
|
23
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-24T17:16:12Z", "hours": 1.0, "multiplier": 5.0, "payout": 3, "blessing": "neutral", "text": "I made a simple but working UPS for a raspberry pi(any raspberry pi) that works on a 1200mAh li-po battery, and can last an hour with strong load on the pi! You can also view the voltage of the battery, as shown below, so you would know when to stop before the pi shuts down edit: I edited the video this time, and added some comments", "repo": "https://github.com/TeenEngineer/RasPi_UPS", "demo": ""}, {"ship_num": 2, "ts": "2026-08-17T16:58:25Z", "hours": 4.0, "multiplier": 5.0, "payout": 20, "blessing": "neutral", "text": "I made a simple but working UPS for a raspberry pi(any raspberry pi) that works on a 1200mAh li-po battery, and can last an hour with strong load on the pi! You can also view the voltage of the battery, as shown below, so you would know when to stop before the pi shuts down", "repo": "https://github.com/TeenEngineer/RasPi_UPS", "demo": ""}]...
|
[{"post_id": 73239, "ts": "202 [{"post_id": 73239, "ts": "2026-09-24T17:13:22Z", "hours": 0.5344, "text": "Edited the initial video(i hope i get more payout this time)"}, {"post_id": 48414, "ts": "2026-08-16T19:07:04Z", "hours": 0.4003, "text": "Made the case"}, {"post_id": 47695, "ts": "2026-08-15T19:31:34Z", "hours": 3.5389, "text": "Made the UPS(TOOK TOO LONG, AND ACCIDENTALLY TRIED TO OVER-ENGINEER IT)… The final result is below. You can watch this timelapse to see what i was doing before switching to the current design: https://lapse.hackclub.com/timelapse/Mhi8F60c0BRf"}]...
|
Title: UPS for Raspberry Pi by @Jovi | Stardance
Title: UPS for Raspberry Pi by @Jovi | Stardance
Devlogs:
Made the UPS(TOOK TOO LONG, AND ACCIDENTALLY TRIED TO OVER-ENGINEER IT)… The final result is below. You can watch this timelapse to see what i was doing before switching to the current design: https://lapse.hackclub.com/timelapse/Mhi8F60c0BRf
Made the case
Edited the initial video(i hope i get more payout this time)
Ships:
I made a simple but working UPS for a raspberry pi(any raspberry pi) that works on a 1200mAh li-po battery, and can last an hour with strong load on the pi! You can also view the voltage of the battery, as shown below, so you would know when to stop before the pi shuts down
I made a simple but working UPS for a raspberry pi(any raspberry pi) that works on a 1200mAh li-po battery, and can last an hour with strong load on the pi! You can also view the voltage of the battery, as shown below, so you would know when to stop before the pi shuts down edit: I edited the video this time, and added some comments...
|
1793660069.5896597
|
1793746469.5896597
|
|
64859
|
All-In-One-Calendar-notetaking-and-reminders by @s All-In-One-Calendar-notetaking-and-reminders by @sharavan | Stardance...
|
sharavan
|
0
|
1.61
|
0
|
[]
|
[{"post_id": 73236, "ts": "202 [{"post_id": 73236, "ts": "2026-09-24T17:09:49Z", "hours": 0.3761, "text": "Continuing on from my previous Dev-note, I carried out some research on which areas would be the most logical to place the UI elements like the settings and the top left seemed ideal! Attached below is what the button layout looks like, with some place holders in place (like “R” for reminders and “T” for today) just for testing purposes. The next step for me will be creating algorithms to build the calendar UI, which will be a complex problem to solve."}, {"post_id": 73206, "ts": "2026-09-24T16:28:36Z", "hours": 0.5458, "text": "I have been working on modifying the software to add a more buttons on the left hand side of the screen, which I intend to have the navigation controls! I would love to see the community opinion on the look of the software so far, so if there is any opinions please let me know! For those who are interested, the module i am using is flet in python, which allows me to create a more modern GUI than tkinter!"}, {"post_id": 72382, "ts": "2026-09-22T20:00:24Z", "hours": 0.3722, "text": "DEV NOTE 2: Looking back at my main home screen, my grey “today” button has something wrong… It just says “22” not the “22nd”… to correct this I decided to implement a new method which could deal with adding the appropiate addition to the “dd” section of the date… However, this does currently not work as intended so more debugging is required!"}, {"post_id": 72369, "ts": "2026-09-22T19:29:40Z", "hours": 0.3133, "text": "DEV NOTE 1: This is the first dev-note for this project! So, to start off the project I have created a main home page with the “chronos” name in the top left and the two buttons at the top. The main idea is that the green and red buttons will direct you between the different functions, and the button below the top bar (with 22 in it) will be the “today” button which will show what you have scheduled for today, notes and other reminders, etc…"}]...
|
Title: All-In-One-Calendar-notetaking-and-reminder Title: All-In-One-Calendar-notetaking-and-reminders by @sharavan | Stardance
Devlogs:
DEV NOTE 1: This is the first dev-note for this project! So, to start off the project I have created a main home page with the “chronos” name in the top left and the two buttons at the top. The main idea is that the green and red buttons will direct you between the different functions, and the button below the top bar (with 22 in it) will be the “today” button which will show what you have scheduled for today, notes and other reminders, etc…
DEV NOTE 2: Looking back at my main home screen, my grey “today” button has something wrong… It just says “22” not the “22nd”… to correct this I decided to implement a new method which could deal with adding the appropiate addition to the “dd” section of the date… However, this does currently not work as intended so more debugging is required!
I have been working on modifying the software to add a more buttons on the left hand side of the screen, which I intend to have the navigation controls! I would love to see the community opinion on the look of the software so far, so if there is any opinions please let me know! For those who are interested, the module i am using is flet in python, which allows me to create a more modern GUI than tkinter!
Continuing on from my previous Dev-note, I carried out some research on which areas would be the most logical to place the UI elements like the settings and the top left seemed ideal! Attached below is what the button layout looks like, with some place holders in place (like “R” for reminders and “T” for today) just for testing purposes. The next step for me will be creating algorithms to build the calendar UI, which will be a complex problem to solve....
|
1793681261.8509693
|
1794286061.8509693
|
|
65488
|
TypeArena by @Xgly | Stardance
|
Xgly
|
1
|
5.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-24T17:09:25Z", "hours": 5.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a Typing Speed Testing website, I just bored using a simple speed testing website, so I decided to make my own with some cool features and yeah it’s not the end I will add many more cool features. It has many mode not just one simple typing for ex- it has a hardcore mode in this if u type 1 wrong word it’s over. I faces many problem but not gonna lie I use Ai to fix them…", "repo": "https://github.com/aquamystic7/Typing-Speed-Test", "demo": "https://typearena.xyz/"}]...
|
[{"post_id": 73230, "ts": "202 [{"post_id": 73230, "ts": "2026-09-24T17:04:25Z", "hours": 5.2956, "text": "I’m Just making a cool Typing Speed Testing website with cool features…"}]...
|
Title: TypeArena by @Xgly | Stardance
Devlogs:
I’ Title: TypeArena by @Xgly | Stardance
Devlogs:
I’m Just making a cool Typing Speed Testing website with cool features…
Ships:
I made a Typing Speed Testing website, I just bored using a simple speed testing website, so I decided to make my own with some cool features and yeah it’s not the end I will add many more cool features. It has many mode not just one simple typing for ex- it has a hardcore mode in this if u type 1 wrong word it’s over. I faces many problem but not gonna lie I use Ai to fix them…...
|
1793422415.7282617
|
1794286415.7282617
|
|
28981
|
My very own WebOS by @Nikks | Stardance
|
Nikks
|
2
|
18.0
|
14
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-24T17:07:34Z", "hours": 9.0, "multiplier": 1.52, "payout": 14, "blessing": "neutral", "text": "I made a breaking bad themed OS that’s running in a website. Also the part i was kind of stuck at was the terminal. It was hard trying to make it similar to a traditional on and that’s I’m most proud of too.", "repo": "https://github.com/Nikhil1059/BreakingBadOS", "demo": "https://nikhil1059.github.io/BreakingBadOS/"}, {"ship_num": 2, "ts": "2026-08-17T21:13:35Z", "hours": 9.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I havent completed it but i think this is a good milestone to ship it ad work on it in the future.", "repo": "https://github.com/Nikhil1059/BreakingBadOS", "demo": "https://nikhil1059.github.io/BreakingBadOS/"}]...
|
[{"post_id": 73216, "ts": "202 [{"post_id": 73216, "ts": "2026-09-24T16:48:12Z", "hours": 1.4122, "text": "This time i have added the feature to resize windows. its similar to normal windows resizing windows or linux."}, {"post_id": 65951, "ts": "2026-09-11T13:08:39Z", "hours": 2.1336, "text": "So today i made some good and exciting changes. The changes that were made are: I made a Calendar that pops out when you click the date or time. I redesigned the topbar to kind of look like a taskbar I also made the buttons on the top bar better with animations and shadow. I hope whoever tries this out if any please give me some ideas to further add :)"}, {"post_id": 65322, "ts": "2026-09-10T12:15:23Z", "hours": 1.6089, "text": "So today I made some commands for the terminal. /help gives you all the commands that WORK so feel free to fidget and I’m sure there should be no bugs but please let me know if there are any;)"}, {"post_id": 64171, "ts": "2026-09-08T12:05:35Z", "hours": 1.5844, "text": "I further worked on the terminal. Today i have added two things: The way the input and output is given in the terminal. Its very close to a standard terminal and acts like it. The cursor bar. I have added a distinct function masking the normal cursor bar with a terminal style cursor bar that works so nice. also for now the output of the commands(for now just text) is the input itself but in the next session im going to add official commands and a /help too :)"}, {"post_id": 63473, "ts": "2026-09-07T10:55:18Z", "hours": 1.38, "text": "Today I made the terminal window. As usual it will has all the characteristics of the notes window and also I tried to replicate a terminal design as much as possible. For now the terminal doesn’t work and it just gives the same output as what we type but ill work on that. But I this this was a good front end work."}, {"post_id": 49887, "ts": "2026-08-18T20:56:35Z", "hours": 1.2892, "text": "These are the things i have done in this session: I created a terminal icon and gave it the same charecteristics as the notes icon. I added a reset button which makes the app icons go back to their previous place and this clears the local storage too. I significantly upgraded the dragging system and tbh i spent a really long time for this so please check this out. The icon won’t overlap now and also i gave them real desktop like behaviour. I also added desktop boundaries so that the icons dont go off screen."}, {"post_id": 47641, "ts": "2026-08-15T17:48:50Z", "hours": 1.0669, "text": "I have made the Icon movable like an actual icon on a desktop. Also added a grid so that the icon snapped to a place like again a normal desktop. Also i have added local storage for this icon position so when you change the position of the icon and reload the website the icon will stay at the place you left it. I though it was cool. also for the people who find the boot screen appearing every time you can just change the dev mode true in Script.js and it’ll be bypassed. I planned a solution for this so stay tuned :)"}, {"post_id": 39492, "ts": "2026-08-02T13:58:35Z", "hours": 6.0139, "text": "I have made a lot of changes and forgot to make devlogs. I made a beautiful booting screen and also a beautiful intro screen. I also added a notes app which saves automatically."}, {"post_id": 20284, "ts": "2026-07-01T20:44:38Z", "hours": 1.9125, "text": "I’m working on a os on a web as part of a mission in stardance. I have so far just added some introduction about myself and added a little time and date indicator on the top right. And yeah its Breaking Bad themed so stay tuned i have some good ideas to implement."}]...
|
Title: My very own WebOS by @Nikks | Stardance
De Title: My very own WebOS by @Nikks | Stardance
Devlogs:
I’m working on a os on a web as part of a mission in stardance. I have so far just added some introduction about myself and added a little time and date indicator on the top right. And yeah its Breaking Bad themed so stay tuned i have some good ideas to implement.
I have made a lot of changes and forgot to make devlogs. I made a beautiful booting screen and also a beautiful intro screen. I also added a notes app which saves automatically.
I have made the Icon movable like an actual icon on a desktop. Also added a grid so that the icon snapped to a place like again a normal desktop. Also i have added local storage for this icon position so when you change the position of the icon and reload the website the icon will stay at the place you left it. I though it was cool. also for the people who find the boot screen appearing every time you can just change the dev mode true in Script.js and it’ll be bypassed. I planned a solution for this so stay tuned :)
These are the things i have done in this session: I created a terminal icon and gave it the same charecteristics as the notes icon. I added a reset button which makes the app icons go back to their previous place and this clears the local storage too. I significantly upgraded the dragging system and tbh i spent a really long time for this so please check this out. The icon won’t overlap now and also i gave them real desktop like behaviour. I also added desktop boundaries so that the icons dont go off screen.
Today I made the terminal window. As usual it will has all the characteristics of the notes window and also I tried to replicate a terminal design as much as possible. For now the terminal doesn’t work and it just gives the same output as what we type but ill work on that. But I this this was a good front end work.
I further worked on the terminal. Today i have added two things: The way the input and output is given in the terminal. Its very close to a standard terminal and acts like it. The cursor bar. I have added a distinct function masking the normal cursor bar with a terminal style cursor bar that works so nice. also for now the output of the commands(for now just text) is the input itself but in the next session im going to add official commands and a /help too :)
So today I made some commands for the terminal. /help gives you all the commands that WORK so feel free to fidget and I’m sure there should be no bugs but please let me know if there are any;)
So today i made some good and exciting changes. The changes that were made are: I made a Calendar that pops out when you click the date or time. I redesigned the topbar to kind of look like a taskbar I also made the buttons on the top bar better with animations and shadow. I hope whoever tries this out if any please give me some ideas to further add :)
This time i have added the feature to resize windows. its similar to normal windows resizing windows or linux.
Ships:
I havent completed it but i think this is a good milestone to ship it ad work on it in the future.
I made a breaking bad themed OS that’s running in a website. Also the part i was kind of stuck at was the terminal. It was hard trying to make it similar to a traditional on and that’s I’m most proud of too....
|
1793728598.632351
|
1793814998.632351
|
|
56516
|
Hotwheel Alarm Clock! by @akhilatyam | Stardance
|
akhilatyam
|
0
|
5.16
|
0
|
[]
|
[{"post_id": 73211, "ts": "202 [{"post_id": 73211, "ts": "2026-09-24T16:40:58Z", "hours": 0.9906, "text": "Devlog 3: THE CODE Hello guys, welcome to hopefully, the final devlog!!! In this devlog, I finished writing the code for this project. Code was inspired by other projects in terms of wifi, and I would like to thank the creator of the BEE alarm clock. Features The alarm clock has 3 modes, stopwatch, alarm, time. It can cycle between the 3, and add upto 10 alarms stored in a list. There really isn’t much to say, i am not super good at code devlogs forgive me."}, {"post_id": 71469, "ts": "2026-09-20T21:48:43Z", "hours": 2.7828, "text": "Devlog #2: The CAD Slightly long devlog, lets go over it! For my base, I just used the normal tutorial for the project, since my CAD knowledge extended only to assembling an FTC bot. After that, I was thinking of a theme. It took me a while to figure things out, and I slept on it. I had a carton of some of the new F1 hotwheels on my table, and I decided to make my alarm clock hotwheel themed! I got a DXF file of the hotwheel logo, imported and extruded it, then used the boolean tool to etch the logo into the case so it can actually print that way. What was the hardest part of this part? The Boolean tool and managing DXF files. Once I had loaded in the DXF files, it took FOREVER for me to be able to adjust and crop it. There were a lot of stray dots that took a while to get rid of. Luckily, they did not affect final cad. I also added a phone stand because why not. It prints without supports according to my slicer."}, {"post_id": 70335, "ts": "2026-09-18T23:50:17Z", "hours": 1.3836, "text": "Devlog #1 : The PCB Hello guys! So I have officially made the PCB!!! This took a bit off time, i did Kicad before but this was some good practice for me. I did a basic design with 4 switches for now, might expand later. Thats all!"}]...
|
Title: Hotwheel Alarm Clock! by @akhilatyam | Star Title: Hotwheel Alarm Clock! by @akhilatyam | Stardance
Devlogs:
Devlog #1 : The PCB Hello guys! So I have officially made the PCB!!! This took a bit off time, i did Kicad before but this was some good practice for me. I did a basic design with 4 switches for now, might expand later. Thats all!
Devlog #2: The CAD Slightly long devlog, lets go over it! For my base, I just used the normal tutorial for the project, since my CAD knowledge extended only to assembling an FTC bot. After that, I was thinking of a theme. It took me a while to figure things out, and I slept on it. I had a carton of some of the new F1 hotwheels on my table, and I decided to make my alarm clock hotwheel themed! I got a DXF file of the hotwheel logo, imported and extruded it, then used the boolean tool to etch the logo into the case so it can actually print that way. What was the hardest part of this part? The Boolean tool and managing DXF files. Once I had loaded in the DXF files, it took FOREVER for me to be able to adjust and crop it. There were a lot of stray dots that took a while to get rid of. Luckily, they did not affect final cad. I also added a phone stand because why not. It prints without supports according to my slicer.
Devlog 3: THE CODE Hello guys, welcome to hopefully, the final devlog!!! In this devlog, I finished writing the code for this project. Code was inspired by other projects in terms of wifi, and I would like to thank the creator of the BEE alarm clock. Features The alarm clock has 3 modes, stopwatch, alarm, time. It can cycle between the 3, and add upto 10 alarms stored in a list. There really isn’t much to say, i am not super good at code devlogs forgive me....
|
1793386484.0896008
|
1793991284.0896008
|
|
42278
|
Monado Phone Driver by @ttomf | Stardance
|
ttomf
|
3
|
76.94
|
1364
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-16T16:44:11Z", "hours": 22.0, "multiplier": 19.73, "payout": 430, "blessing": "neutral", "text": "I made Monado Phone Driver - a bridge between VR app and phone in cardboard headset. This allows you to play VR games just with Linux PC and Android phone, without buying expensive VR headset. There are alternatives, like ALVR and WiVRn , but my driver has 6DOF tracking (you can move and rotate in space) and hand tracking (it takes hand landmarks from PC or phone camera). Since last ship, I improved stability, added Android app settings, created auto installer, and mainly tracking from PC camera, because phone has small FOV and limited performance.", "repo": "https://github.com/ttomf/monado-phone", "demo": "https://github.com/ttomf/monado-phone/releases/"}, {"ship_num": 2, "ts": "2026-09-04T08:04:23Z", "hours": 32.0, "multiplier": 19.12, "payout": 609, "blessing": "neutral", "text": "Hi! This is my second ship of this project, Monado Phone Driver. It’s bridge between your VR app and your phone in headset ( Google Cardboard ). I wanted to make it better than ALVR , because it has only 3DOF tracking, so I created 6DOF tracking and hand tracking, like professional headsets. The most challenging part of this was debugging all of these. From Vulkan swapchain management and GStreamer pipeline to hand and 6DOF tracking. I am proud of it, because this will help people without VR headsets to enjoy VR games. NOTE: Hand tracking is done the best possible way, but I think it still doesn’t compete with real VR headsets. Next ship should add better tracking with PC camera.", "repo": "https://github.com/ttomf/monado-phone", "demo": "https://github.com/ttomf/monado-phone/releases/"}, {"ship_num": 3, "ts": "2026-08-05T13:16:21Z", "hours": 19.0, "multiplier": 17.05, "payout": 325, "blessing": "neutral", "text": "Hi! I ship my Monado Phone Driver ! I worked on it for last week and it was really challenging. My vision was to build something with what you can play VR games on phone (with Google Cardboard), like iVRy, but open-source and simple. I worked on streaming pipeline, UDP discovery, pose tracking and gluing it all together with Monado. I hope this will help people that wanted to play VR games without expensive headset.", "repo": "https://github.com/ttomf/monado-phone", "demo": "https://github.com/ttomf/monado-phone/releases/"}]...
|
[{"post_id": 73208, "ts": "202 [{"post_id": 73208, "ts": "2026-09-24T16:33:26Z", "hours": 3.9361, "text": "Hi! So I’m here again after many exams (I didn’t have time and strength to iteratively test this ) and I’m gonna make this better using better Hand Landmarkers and (hopefully) run on Window$."}, {"post_id": 69212, "ts": "2026-09-16T16:31:16Z", "hours": 1.6044, "text": "I think it’s time to new release! I merged upstream, created tag, built app and driver and published on GitHub."}, {"post_id": 68141, "ts": "2026-09-14T16:07:57Z", "hours": 3.4667, "text": "I am working on implementing hand controller using same data as hand tracking does. It also includes the “aim pose” - where does controller point. On video, it’s shown as red line, I take it from the index finger. I hope I will be able to play some better VR games!"}, {"post_id": 66631, "ts": "2026-09-12T14:11:34Z", "hours": 5.8714, "text": "I’ve fixed some bugs and leaks, added more configuration to Android app and created hand tracking vizualization for the PC script. Also, I am working on integrating hands as controllers (because controllers have better support across games)."}, {"post_id": 63611, "ts": "2026-09-07T15:18:52Z", "hours": 3.8808, "text": "YEAH! I have finally done the PC camera hand tracking! It has much better FOV than phone camera and more computing power. It’s just Python script with MediaPipe, sending the data to 127.0.0.1 to hand port, and it has same format, so the driver doesn’t even know the data is sending someone other than phone. You will ofc need to disable phone hand tracking, otherwise they will collide. As you see in the video, I can move the hands far and they still get tracked. (End of the video is when I took off the headset - it was also tracked :D)"}, {"post_id": 62773, "ts": "2026-09-06T09:09:55Z", "hours": 1.3114, "text": "Now I am making just minor changes to the driver as the base is nearly done. I added screen size synchronization with phone, so the driver now can send right stream. Also I am making small bugfixes and improvements."}, {"post_id": 62286, "ts": "2026-09-05T16:11:29Z", "hours": 1.7353, "text": "I added settings on phone, so now you can really configure the ports on both sides! Also there’s option to disable hand tracking or 6DOF (then it will send only rotation of headset)"}, {"post_id": 62060, "ts": "2026-09-05T09:18:28Z", "hours": 3.9211, "text": "I created simple terminal installer in python that downloads and setups Monado Phone Driver. Thanks also for the positive reviews and the 19.12x stardust multiplier — when I started this project, I didn’t think I’d ever finish it :D"}, {"post_id": 61371, "ts": "2026-09-04T07:52:18Z", "hours": 0.4617, "text": "Last devlog before ship! I just merged upstream monado, built release binaries and created GitHub release."}, {"post_id": 61334, "ts": "2026-09-04T06:19:09Z", "hours": 2.1025, "text": "So I finished the hand tracking! I tried to make it as good as possible on a phone, and it looks like it might actually work! Even though I’m limited by the hardware, you can see in the video that it tracks pretty well. (video from openxr-simple-playground )"}, {"post_id": 60746, "ts": "2026-09-03T09:54:46Z", "hours": 5.6369, "text": "I am enhancing hand tracking now, and it’s starting to look good! Here is how: I use MediaPipe by Google to analyze image from front camera. MediaPipe Hand Landmarker returns hand landmarks in camera-relative format in two dimensions, so I need to make depth (z-coordinate). I measure distance between wrist and fingers, in 2D space this means distance from camera (the farther away they are, the smaller they get). Now, they are 3D, but still relative to camera. Then I simply send both hands as UDP packet for the driver. The driver (PC side) computes real-world coordinates of the hands using saved earlier sent from ARCore and pushes them into Monado."}, {"post_id": 59610, "ts": "2026-09-01T15:01:51Z", "hours": 6.9739, "text": "I worked hard on both the Android app and the Monado driver and finally: I have working hand tracking! It is very laggy, needs many optimizations, and isn’t even in alpha state yet, but I can see that it is possible to do it. This was my dream when I began this project, and finally, it has come true. I hope it will help many people who cannot afford a professional headset :D"}, {"post_id": 58719, "ts": "2026-08-31T08:20:00Z", "hours": 2.2467, "text": "So today I finished image settings (you can configure them in the config file). They control how the image is rendered, because every headset has different lenses, distance between lenses, distance from screen to lenses etc. To find your headset’s properties, go to https://wwgc.firebaseapp.com/ ."}, {"post_id": 58171, "ts": "2026-08-30T15:09:22Z", "hours": 3.5397, "text": "I created new TCP socket logic for configuration sharing and added logic for loading configuration file. Now I am trying to change the x265enc software encoding to something faster on GPU. Unfortunately, nvenc (nvidia encoding) is really hard to configure properly, as you can see for yourselves."}, {"post_id": 57515, "ts": "2026-08-29T17:59:31Z", "hours": 9.2639, "text": "Phew, I almost went over the time limit (10 hours) :D I tried to get it running on Windows, and I partially succeeded, but it’s still not stable. Aside from that, I mostly cleaned up the code, improved usability, and removed unnecessary modules from CMake. Now I’m working on an improved distortion using Monado’s u_distortion_cardboard_calculate (cardboard stands for Google Cardboard btw) And one more thing: thanks to everyone for the positive feedback on the project — I really didn’t expect that!"}, {"post_id": 46899, "ts": "2026-08-14T13:22:12Z", "hours": 1.6314, "text": "Since nobody reviewed my submission, I don’t want to add more features, so I only updated the README and made small changes to the app. If anyone wants to play VR games on their phone, they can just download the files from Releases and run them without hard compiling!"}, {"post_id": 41279, "ts": "2026-08-05T12:09:23Z", "hours": 6.8658, "text": "Devlog 4 : I replaced boilerplate LLM code with my own. I also wrote README with instructions, so you can now try it!"}, {"post_id": 40628, "ts": "2026-08-04T09:25:23Z", "hours": 0.6022, "text": "I am making minor adjustments to run with SteamVR. I use opencomposite as layer between OpenXR and OpenVR/SteamVR. Video is phone screencap from free Steam game “Aircar”."}, {"post_id": 39990, "ts": "2026-08-03T10:37:11Z", "hours": 3.0761, "text": "Devlog 3 : I made 6DOF (6 degrees of freedom = position+rotation in space) tracking with ARCore. It’s a bit laggy, but it works. This is just test, I plan to optimize it later. Video is from xrgears with looking around."}, {"post_id": 39422, "ts": "2026-08-02T11:32:08Z", "hours": 1.5058, "text": "Devlog 2 : Finally I made working streaming pipeline! My driver takes image from Monado, gstreamer encodes it and sends via UDP. On phone, there is AMediaCodec that takes the packets, joins them and renders. Used codec is HEVC (H265). Video is from xrgears demo."}, {"post_id": 38950, "ts": "2026-08-01T15:47:39Z", "hours": 4.6072, "text": "So now I’m basically stuck. Three hours of debugging the streaming pipeline, refractoring with Opencode and trying to make it work. As you see, even Deepseek is struggling with it… Wish me luck 🤞"}, {"post_id": 38092, "ts": "2026-07-31T09:43:03Z", "hours": 2.3839, "text": "Hi! So I have started this project because I want to play VR games, but I don’t have any headset, only Google Cardboard. I know there is ALVR and iVRy, but: ALVR doesn’t have support for hand tracking and 6DOF iVRy is closed-source and wants to pay Sorry, but I don’t plan to add Windows support soon. Devlog 1 : I forked Monado and made some bureaucracy (like adding my driver to CMakeLists.txt etc.) I made simple Android app that pairs over UDP multicast with my driver. The image is from editor, because I don’t have anything interesting to post (except maybe positive logs 😁)"}]...
|
Title: Monado Phone Driver by @ttomf | Stardance
Title: Monado Phone Driver by @ttomf | Stardance
Devlogs:
Hi! So I have started this project because I want to play VR games, but I don’t have any headset, only Google Cardboard. I know there is ALVR and iVRy, but: ALVR doesn’t have support for hand tracking and 6DOF iVRy is closed-source and wants to pay Sorry, but I don’t plan to add Windows support soon. Devlog 1 : I forked Monado and made some bureaucracy (like adding my driver to CMakeLists.txt etc.) I made simple Android app that pairs over UDP multicast with my driver. The image is from editor, because I don’t have anything interesting to post (except maybe positive logs 😁)
So now I’m basically stuck. Three hours of debugging the streaming pipeline, refractoring with Opencode and trying to make it work. As you see, even Deepseek is struggling with it… Wish me luck 🤞
Devlog 2 : Finally I made working streaming pipeline! My driver takes image from Monado, gstreamer encodes it and sends via UDP. On phone, there is AMediaCodec that takes the packets, joins them and renders. Used codec is HEVC (H265). Video is from xrgears demo.
Devlog 3 : I made 6DOF (6 degrees of freedom = position+rotation in space) tracking with ARCore. It’s a bit laggy, but it works. This is just test, I plan to optimize it later. Video is from xrgears with looking around.
I am making minor adjustments to run with SteamVR. I use opencomposite as layer between OpenXR and OpenVR/SteamVR. Video is phone screencap from free Steam game “Aircar”.
Devlog 4 : I replaced boilerplate LLM code with my own. I also wrote README with instructions, so you can now try it!
Since nobody reviewed my submission, I don’t want to add more features, so I only updated the README and made small changes to the app. If anyone wants to play VR games on their phone, they can just download the files from Releases and run them without hard compiling!
Phew, I almost went over the time limit (10 hours) :D I tried to get it running on Windows, and I partially succeeded, but it’s still not stable. Aside from that, I mostly cleaned up the code, improved usability, and removed unnecessary modules from CMake. Now I’m working on an improved distortion using Monado’s u_distortion_cardboard_calculate (cardboard stands for Google Cardboard btw) And one more thing: thanks to everyone for the positive feedback on the project — I really didn’t expect that!
I created new TCP socket logic for configuration sharing and added logic for loading configuration file. Now I am trying to change the x265enc software encoding to something faster on GPU. Unfortunately, nvenc (nvidia encoding) is really hard to configure properly, as you can see for yourselves.
So today I finished image settings (you can configure them in the config file). They control how the image is rendered, because every headset has different lenses, distance between lenses, distance from screen to lenses etc. To find your headset’s properties, go to https://wwgc.firebaseapp.com/ .
I worked hard on both the Android app and the Monado driver and finally: I have working hand tracking! It is very laggy, needs many optimizations, and isn’t even in alpha state yet, but I can see that it is possible to do it. This was my dream when I began this project, and finally, it has come true. I hope it will help many people who cannot afford a professional headset :D
I am enhancing hand tracking now, and it’s starting to look good! Here is how: I use MediaPipe by Google to analyze image from front camera. MediaPipe Hand Landmarker returns hand landmarks in camera-relative format in two dimensions, so I need to make depth (z-coordinate). I measure distance between wrist and fingers, in 2D space this means distance from camera (the farther away they are, the smaller they get). Now, they are 3D, but still relative to camera. Then I simply send both hands as UDP packet for the driver. The driver (PC side) computes real-world coordinates of the hands using saved earlier sent from ARCore and pushes them into Monado.
So I finished the hand tracking! I tried to make it as good as possible on a phone, and it looks like it might actually work! Even though I’m limited by the hardware, you can see in the video that it tracks pretty well. (video from openxr-simple-playground )
Last devlog before ship! I just merged upstream monado, built release binaries and created GitHub release.
I created simple terminal installer in python that downloads and setups Monado Phone Driver. Thanks also for the positive reviews and the 19.12x stardust multiplier — when I started this project, I didn’t think I’d ever finish it :D
I added settings on phone, so now you can really configure the ports on both sides! Also there’s option to disable hand tracking or 6DOF (then it will send only rotation of headset)
Now I am making just minor changes to the driver as the base is nearly done. I added screen size synchronization with phone, so the driver now can send right stream. Also I am making small bugfixes and improvements.
YEAH! I have finally done the PC camera hand tracking! It has much better FOV than phone camera and more computing power. It’s just Python script with MediaPipe, sending the data to 127.0.0.1 to hand port, and it has same format, so the driver doesn’t even know the data is sending someone other than phone. You will ofc need to disable phone hand tracking, otherwise they will collide. As you see in the video, I can move the hands far and they still get tracked. (End of the video is when I took off the headset - it was also tracked :D)
I’ve fixed some bugs and leaks, added more configuration to Android app and created hand tracking vizualization for the PC script. Also, I am working on integrating hands as controllers (because controllers have better support across games).
I am working on implementing hand controller using same data as hand tracking does. It also includes the “aim pose” - where does controller point. On video, it’s shown as red line, I take it from the index finger. I hope I will be able to play some better VR games!
I think it’s time to new release! I merged upstream, created tag, built app and driver and published on GitHub.
Hi! So I’m here again after many exams (I didn’t have time and strength to iteratively test this ) and I’m gonna make this better using better Hand Landmarkers and (hopefully) run on Window$.
Ships:
Hi! I ship my Monado Phone Driver ! I worked on it for last week and it was really challenging. My vision was to build something with what you can play VR games on phone (with Google Cardboard), like iVRy, but open-source and simple. I worked on streaming pipeline, UDP discovery, pose tracking and gluing it all together with Monado. I hope this will help people that wanted to play VR games without expensive headset.
Hi! This is my second ship of this project, Monado Phone Driver. It’s bridge between your VR app and your phone in headset ( Google Cardboard ). I wanted to make it better than ALVR , because it has only 3DOF tracking, so I created 6DOF tracking and hand tracking, like professional headsets. The most challenging part of this was debugging all of these. From Vulkan swapchain management and GStreamer pipeline to hand and 6DOF tracking. I am proud of it, because this will help people without VR headsets to enjoy VR games. NOTE: Hand tracking is done the best possible way, but I think it still doesn’t compete with real VR headsets. Next ship should add better tracking with PC camera.
I made Monado Phone Driver - a bridge between VR app and phone in cardboard headset. This allows you to play VR games just with Linux PC and Android phone, without buying expensive VR headset. There are alternatives, like ALVR and WiVRn , but my driver has 6DOF tracking (you can move and rotate in space) and hand tracking (it takes hand landmarks from PC or phone camera). Since last ship, I improved stability, added Android app settings, created auto installer, and mainly tracking from PC camera, because phone has small FOV and limited performance....
|
1793720883.1566741
|
1793807283.1566741
|
|
65475
|
it's a bloody hackpad by @lahcen | Stardance
|
lahcen
|
0
|
0.86
|
0
|
[]
|
[{"post_id": 73205, "ts": "202 [{"post_id": 73205, "ts": "2026-09-24T16:28:04Z", "hours": 0.8567, "text": "i finished the pcb + the bottom case!"}]...
|
Title: it's a bloody hackpad by @lahcen | Star Title: it's a bloody hackpad by @lahcen | Stardance
Devlogs:
i finished the pcb + the bottom case!...
|
1793699847.5976765
|
1794304647.5976765
|
|
33788
|
SOS Button by @SohamKaran | Stardance
|
SohamKaran
|
1
|
5.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-24T16:27:43Z", "hours": 5.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "i made a sos button which can send your live location or call on the saved number it can be helpful for kids and any other person who is in danger", "repo": "https://github.com/sohamboyythrdh6/SOS-button", "demo": ""}]...
|
[{"post_id": 73201, "ts": "202 [{"post_id": 73201, "ts": "2026-09-24T16:24:51Z", "hours": 4.6919, "text": "after getting all the parts i started prototyping it on a bread board and after that i orderd the pcb and soldering everything after that i uploaded the code and it is working great"}, {"post_id": 31293, "ts": "2026-07-19T16:13:41Z", "hours": 6.0347, "text": "i found that some children or anyone not safe to went out so i decided to make a project which felt them safer so i made this at first i watch some YouTube tutorials then i go with some my opinion parts and i started drawing the sch after that i design the pcb and after working on the hardware I started writing code for this project . later i write the github repo i started with the bom and then i write the readme and at last upload all other requard file in it now i am finished and rady to ship it."}]...
|
Title: SOS Button by @SohamKaran | Stardance
Devl Title: SOS Button by @SohamKaran | Stardance
Devlogs:
i found that some children or anyone not safe to went out so i decided to make a project which felt them safer so i made this at first i watch some YouTube tutorials then i go with some my opinion parts and i started drawing the sch after that i design the pcb and after working on the hardware I started writing code for this project . later i write the github repo i started with the bom and then i write the readme and at last upload all other requard file in it now i am finished and rady to ship it.
after getting all the parts i started prototyping it on a bread board and after that i orderd the pcb and soldering everything after that i uploaded the code and it is working great
Ships:
i made a sos button which can send your live location or call on the saved number it can be helpful for kids and any other person who is in danger...
|
1793670914.2521496
|
1793757314.2521496
|
|
65167
|
Smart Converter by @SohamKaran | Stardance
|
SohamKaran
|
0
|
0.37
|
0
|
[]
|
[{"post_id": 73197, "ts": "202 [{"post_id": 73197, "ts": "2026-09-24T16:11:31Z", "hours": 0.3733, "text": "TODAY I realize that my family members are always forgot to turn off the lights so i decided to make this automatic by using a HC-SR501 sensor module , transistor and relay and some other components so at first i started to drawing the sch today later when i done the sch work i started making the pcb today I didn’t connect the wires.after done the sch draw I select all the footprint and then desgning the pcb for the requarment size for all components and then i make some holes for mounting the pcb and connect all the components. today i realize that in my project some major defect are present like the live wire are extremely thin and also i put the live wire under the relay also i doesn’t give any space be twin tne relay and power supply so i completely redesign the pcb also i create a repo on github.in today my pcb was looking quite simple so i add some graphics on it and later export the Gerber files after finishing the pcb i started making a zine poster for my project today i finally complete upload some necessary files on repo later i also upload the Gerber file on jlc pcb"}]...
|
Title: Smart Converter by @SohamKaran | Stardance
Title: Smart Converter by @SohamKaran | Stardance
Devlogs:
TODAY I realize that my family members are always forgot to turn off the lights so i decided to make this automatic by using a HC-SR501 sensor module , transistor and relay and some other components so at first i started to drawing the sch today later when i done the sch work i started making the pcb today I didn’t connect the wires.after done the sch draw I select all the footprint and then desgning the pcb for the requarment size for all components and then i make some holes for mounting the pcb and connect all the components. today i realize that in my project some major defect are present like the live wire are extremely thin and also i put the live wire under the relay also i doesn’t give any space be twin tne relay and power supply so i completely redesign the pcb also i create a repo on github.in today my pcb was looking quite simple so i add some graphics on it and later export the Gerber files after finishing the pcb i started making a zine poster for my project today i finally complete upload some necessary files on repo later i also upload the Gerber file on jlc pcb...
|
1793696134.8164601
|
1794300934.8164601
|
|
64853
|
Smart Temp Fan by @MaxAA | Stardance
|
MaxAA
|
1
|
0.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-24T23:36:28Z", "hours": 0.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "A fan that turns on once it reaches a certain temperature, the code was a bit challenging but it was really fun to do! It took a lot of patient to do but i am really proud of the final product!", "repo": "https://github.com/aalaqqad0808-star/Smart-Temp-Fan/blob/main/Smart%20Fan", "demo": ""}]...
|
[{"post_id": 73195, "ts": "202 [{"post_id": 73195, "ts": "2026-09-24T15:58:37Z", "hours": 0.4075, "text": "Built and Tested a fan that turns on automatically once it reaches the desired temperature"}]...
|
Title: Smart Temp Fan by @MaxAA | Stardance
Devlo Title: Smart Temp Fan by @MaxAA | Stardance
Devlogs:
Built and Tested a fan that turns on automatically once it reaches the desired temperature
Ships:
A fan that turns on once it reaches a certain temperature, the code was a bit challenging but it was really fun to do! It took a lot of patient to do but i am really proud of the final product!...
|
1793685296.2944107
|
1793771696.2944107
|
|
51038
|
dagit by @Lxsh-S | Stardance
|
Lxsh-S
|
2
|
14.0
|
135
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-24T15:40:40Z", "hours": 1.0, "multiplier": 8.6, "payout": 5, "blessing": "neutral", "text": "The ony changes we have made is fix some issues with the way we fetch data from github. I wouldn’t have shipped this but I currently have 34 stardust and urgently need 1 to buy some electronics for my other project :). Please be kind", "repo": "https://github.com/lxsh-S/dagit", "demo": "https://github.com/lxsh-S/dagit/releases"}, {"ship_num": 2, "ts": "2026-08-26T15:21:21Z", "hours": 13.0, "multiplier": 10.32, "payout": 130, "blessing": "neutral", "text": "DAGIT SHIP1 I have built a terminal TUI git visualizer that beautifully displays your git repository on the terminal. Challenging part Dagit has four small sections [left panel/visualizer/status panel/logs] . I first thought there would be no resizing issues because I’m using bubble-tea and built all there sections’ skeletons, as bubble-tea doesn’t automatically handle the resize event(got to know later). I manually tried to fix it in my own broken ways and found somewhat of a solution that feels and looks good A Breakdown of the project dagit refuses to launch if we don’t open it inside a git repo. We fetch all the data by running git commands. Currently in the left panel we have the following information: * Repo name * The repo's owner name * Current branch * The url of the remote In the vizualizer: * hash of the commit * Reference * the committer name * The time of the commit * We also beautify the graph and show it in this section Log section: * Hash of commit * Commit message * Committer name Status panel: * Modified, staged files are shown here The user can toggle between the visualizer and the status panel using v The user can also choose between my predefined tick rates [500ms/1s/3s/5s/10s] . By default the tick rate is set to 1sec Proud Of how quickly I have understood the git docs and used it to build this project that makes git look so much better for the newbies. Also that I have finally made a project that is not very complicated for the user to use like gos was. lmao Also handling resize events was a bit of headache and it feels so much better now. I feel proud because of that too :shy Do we need to set something before? No, but if you wanna install it using go , you need to have go installed :) Note: The releases page only has a darwin(macos) and linux version. So I recommend using wsl on windows to enjoy the beauty of dagit Installation the simplest way to install dagit is using the AUR: yay -S dagit-bin Using go : go install github.com/lxsh-S/dagit@latest You can also install it from the github releases page (Make sure you get the latest version)", "repo": "https://github.com/lxsh-S/dagit", "demo": "https://github.com/lxsh-S/dagit/releases"}]...
|
[{"post_id": 73190, "ts": "202 [{"post_id": 73190, "ts": "2026-09-24T15:39:08Z", "hours": 0.5869, "text": "Update #1 There isnt much we have fixed some issues that were being cause because of the way we fetch data from git"}, {"post_id": 55058, "ts": "2026-08-26T14:18:54Z", "hours": 2.4206, "text": "DAGIT DEVLOG 5 yoo once again! I’ve worked on the features I’ve been delaying and let’s see the progress Progress Overview I first worked on the idea i got yesterday A status panel to see staged/modified files Then I tried to work on scrollbars in the git log and the visualizer but I failed to do so I just scrapped it completely and reset the repo to the after status panel state After scrapping that, I worked on the tick rate selection Intervals of time at which we update the data displayed in the TUI DETAIL The status panel idea had come when I was surfing git hub and was just looking at lazygit (A far better project than dagit btw). I saw the same panel there and thought of adding it here because it would make more sense, although dagit is different from lazygit (dagit is only trying to visualze git not become a workflow) The scrollbars were out of my league I already knew that but still gave a try. I dont think I would be giving up on the idea. I’ll just watch some tutorials on bubbletea and scrollbars specifically before working on it again At first, I thought I would make the tick rate selector a separate panel where we would just scroll through different intervals of time, but as I consider myself lazy I just thought of adding it in such a way that instead of scrolling we change the tick rate with the press of buttons. Although the max tickrate is already small(10sec) I recommend using 1sec on small projects"}, {"post_id": 53053, "ts": "2026-08-23T13:28:02Z", "hours": 2.8308, "text": "DAGIT DEVLOG 4 Yoo! I’ve made soo many updates and the resizing /clipping issues are still eating my brain like bugs Progress overview Decreased the sizes of reference being displayed also truncated lines in the gitlog so that the vertical clipping stops I completely styled the UI using lipgloss and it looks soo much better now Added highlighting to the head of the repo that pops a little more Refactored the old way of refreshing the data Refactored the code to increase readability Explain The git logs were looking odd because when the commit messages were long , the log that should only take the space of one line was now also taking space in the second line. So we fixed it using truncateMessages() function As we are pushig to multiple tags . The reference also gets long and causes a clipping issue again. So we again simply dosent let the refs be that long[But the current implementation can cause the line to break suddenly that may not look good all the time]- // Stop 'refs' being too long if lipgloss.Width(refs) > 30 { refs = refs[:27] + \"...\" } And as dagit is a live visualizer, I removed the old way of refreshing the data[clicking [r] to refresh]. Now what we do is use tea.Tick and the time library to refresh the data every 1 second. Issues that can be caused We are currently refreshing data every second that can put a lot more load on the system when used inside a big repository, So in infuture I’m gonna work to give the user a way to choose the tick Rate What im gonna work on now Scrollbar for gitlog and also visualizer A tick rate selector File status panel that can be toggled with the visualizer A way to search for different repo’s in the user’s computer and jumping between them(something like the nvim feature of finding files) –im not really sure of this"}, {"post_id": 52869, "ts": "2026-08-23T07:39:28Z", "hours": 0.7267, "text": "DAGIT DEVLOG 3 Yay! we have got the release workflow up and running What we are doing what we do is make new binaries name dagit-linux-amd64.tar.gz and dagit-darwin-arm64.tar.gz and push them to our releases page with the tag given while pushing to the repo We also push to the AUR!! . So all the I use arch btw people can download it easily Installation AUR yay -S dagit-bin Run in a github repo ,ie paste-> dagit Github releases go to the releases page and download the binaries zip, extract it and run in a github repo"}, {"post_id": 52542, "ts": "2026-08-22T18:20:33Z", "hours": 3.5672, "text": "DAGIT DEVLOG 2 We’ve improved the TUI soo much!! What I’ve done Got gitlog working with hash, commit message and the contibuter Made a somewhat good looking git visualizer and fixed the horizontal and vertical border issue caused by big lines (reference mainly) Styled the git visualizer with charm’s lipgloss Fixed border issues in the footer and git log too Also made dagit resize when the user makes the terminal window larger but idk why it doesnt work when the terminal window is shortened I also added a resize keybind r to reload the data in the TUI so that the user does not need to stop it and run again for it to update to latest info Issues faced I haven’t faced any big issue in particular but figuring out resizing is the only thing that eats my brain Where I spent the most time I have spent the most time making the visualizer , lemme explain a little of it’s woking !! First we fetch the git log graph from git and then we spread the graph by using SpreadGraph function in graph.go to make it look a little better Then we get 15 of the graph lines into out TUI and then render it using lipgloss [Man charm’s tool are soo cool and make CLI/TUI look soo good]. Although we don’t see all the 15 lines as we dont have a scroll feature for now What we are going to do Style it Fetch number of commits done to the repo and display it Add scrollbar to git visualizer _ Also add scrollbar to git log -Not sure What I currently feel When I was planning to make dagit, I felt it’ll be different and will attract people towards it but it’s not upto my expectation. I thinking to adding some feature that will make more people use it"}, {"post_id": 51644, "ts": "2026-08-21T12:59:40Z", "hours": 3.0086, "text": "DAGIT DEVLOG 1 (BTW WHOEVER ADDED EMOJIS OPTION SHOULD BE PROMOTED ) Hii, I’m making a TUI application that beautifully visualizes your GitHub repo inside your terminal!! Note -> This devlog is a compilation of 2 days of work that I’ll explain What I have done DAY 1: I started working on dagit with first: Checking if the current directory is a git repo or not If yes, we first fetch the repo name along with owner of the repo the remote url of current repo current branch Lmao, this was all I did on day 1 DAY 2 Today the fun began I started working on the TUI section I started with a simple bubble tea list TUI to remember the simple things that I had forgot in these many days Then I used bubbletea to render the left panel containing the the data we fetched from day one but I realised that this is messed up cuz I wont be able to make different sections for the visualizer and the git log history When I searched for a fix I saw lipgloss and then integrated it with our current setup I used lip gloss to make diffferent sections for our TUI. The sections that I currently want in the TUI left panel/middle(visualizer)/ bottom(git log) along with the footer like nvim But I forgot about the resizing problem and idk anything about how I’m going to fix it like other TUI’s do so I’m donna leave it like tat for now What I’m gonna do Make it look prettier Get the git log because it’s gonna be easier than the visualizer Make my shit code look a little better"}]...
|
Title: dagit by @Lxsh-S | Stardance
Devlogs:
DAGI Title: dagit by @Lxsh-S | Stardance
Devlogs:
DAGIT DEVLOG 1 (BTW WHOEVER ADDED EMOJIS OPTION SHOULD BE PROMOTED ) Hii, I’m making a TUI application that beautifully visualizes your GitHub repo inside your terminal!! Note -> This devlog is a compilation of 2 days of work that I’ll explain What I have done DAY 1: I started working on dagit with first: Checking if the current directory is a git repo or not If yes, we first fetch the repo name along with owner of the repo the remote url of current repo current branch Lmao, this was all I did on day 1 DAY 2 Today the fun began I started working on the TUI section I started with a simple bubble tea list TUI to remember the simple things that I had forgot in these many days Then I used bubbletea to render the left panel containing the the data we fetched from day one but I realised that this is messed up cuz I wont be able to make different sections for the visualizer and the git log history When I searched for a fix I saw lipgloss and then integrated it with our current setup I used lip gloss to make diffferent sections for our TUI. The sections that I currently want in the TUI left panel/middle(visualizer)/ bottom(git log) along with the footer like nvim But I forgot about the resizing problem and idk anything about how I’m going to fix it like other TUI’s do so I’m donna leave it like tat for now What I’m gonna do Make it look prettier Get the git log because it’s gonna be easier than the visualizer Make my shit code look a little better
DAGIT DEVLOG 2 We’ve improved the TUI soo much!! What I’ve done Got gitlog working with hash, commit message and the contibuter Made a somewhat good looking git visualizer and fixed the horizontal and vertical border issue caused by big lines (reference mainly) Styled the git visualizer with charm’s lipgloss Fixed border issues in the footer and git log too Also made dagit resize when the user makes the terminal window larger but idk why it doesnt work when the terminal window is shortened I also added a resize keybind r to reload the data in the TUI so that the user does not need to stop it and run again for it to update to latest info Issues faced I haven’t faced any big issue in particular but figuring out resizing is the only thing that eats my brain Where I spent the most time I have spent the most time making the visualizer , lemme explain a little of it’s woking !! First we fetch the git log graph from git and then we spread the graph by using SpreadGraph function in graph.go to make it look a little better Then we get 15 of the graph lines into out TUI and then render it using lipgloss [Man charm’s tool are soo cool and make CLI/TUI look soo good]. Although we don’t see all the 15 lines as we dont have a scroll feature for now What we are going to do Style it Fetch number of commits done to the repo and display it Add scrollbar to git visualizer _ Also add scrollbar to git log -Not sure What I currently feel When I was planning to make dagit, I felt it’ll be different and will attract people towards it but it’s not upto my expectation. I thinking to adding some feature that will make more people use it
DAGIT DEVLOG 3 Yay! we have got the release workflow up and running What we are doing what we do is make new binaries name dagit-linux-amd64.tar.gz and dagit-darwin-arm64.tar.gz and push them to our releases page with the tag given while pushing to the repo We also push to the AUR!! . So all the I use arch btw people can download it easily Installation AUR yay -S dagit-bin Run in a github repo ,ie paste-> dagit Github releases go to the releases page and download the binaries zip, extract it and run in a github repo
DAGIT DEVLOG 4 Yoo! I’ve made soo many updates and the resizing /clipping issues are still eating my brain like bugs Progress overview Decreased the sizes of reference being displayed also truncated lines in the gitlog so that the vertical clipping stops I completely styled the UI using lipgloss and it looks soo much better now Added highlighting to the head of the repo that pops a little more Refactored the old way of refreshing the data Refactored the code to increase readability Explain The git logs were looking odd because when the commit messages were long , the log that should only take the space of one line was now also taking space in the second line. So we fixed it using truncateMessages() function As we are pushig to multiple tags . The reference also gets long and causes a clipping issue again. So we again simply dosent let the refs be that long[But the current implementation can cause the line to break suddenly that may not look good all the time]- // Stop 'refs' being too long if lipgloss.Width(refs) > 30 { refs = refs[:27] + "..." } And as dagit is a live visualizer, I removed the old way of refreshing the data[clicking [r] to refresh]. Now what we do is use tea.Tick and the time library to refresh the data every 1 second. Issues that can be caused We are currently refreshing data every second that can put a lot more load on the system when used inside a big repository, So in infuture I’m gonna work to give the user a way to choose the tick Rate What im gonna work on now Scrollbar for gitlog and also visualizer A tick rate selector File status panel that can be toggled with the visualizer A way to search for different repo’s in the user’s computer and jumping between them(something like the nvim feature of finding files) –im not really sure of this
DAGIT DEVLOG 5 yoo once again! I’ve worked on the features I’ve been delaying and let’s see the progress Progress Overview I first worked on the idea i got yesterday A status panel to see staged/modified files Then I tried to work on scrollbars in the git log and the visualizer but I failed to do so I just scrapped it completely and reset the repo to the after status panel state After scrapping that, I worked on the tick rate selection Intervals of time at which we update the data displayed in the TUI DETAIL The status panel idea had come when I was surfing git hub and was just looking at lazygit (A far better project than dagit btw). I saw the same panel there and thought of adding it here because it would make more sense, although dagit is different from lazygit (dagit is only trying to visualze git not become a workflow) The scrollbars were out of my league I already knew that but still gave a try. I dont think I would be giving up on the idea. I’ll just watch some tutorials on bubbletea and scrollbars specifically before working on it again At first, I thought I would make the tick rate selector a separate panel where we would just scroll through different intervals of time, but as I consider myself lazy I just thought of adding it in such a way that instead of scrolling we change the tick rate with the press of buttons. Although the max tickrate is already small(10sec) I recommend using 1sec on small projects
Update #1 There isnt much we have fixed some issues that were being cause because of the way we fetch data from git
Ships:
DAGIT SHIP1 I have built a terminal TUI git visualizer that beautifully displays your git repository on the terminal. Challenging part Dagit has four small sections [left panel/visualizer/status panel/logs] . I first thought there would be no resizing issues because I’m using bubble-tea and built all there sections’ skeletons, as bubble-tea doesn’t automatically handle the resize event(got to know later). I manually tried to fix it in my own broken ways and found somewhat of a solution that feels and looks good A Breakdown of the project dagit refuses to launch if we don’t open it inside a git repo. We fetch all the data by running git commands. Currently in the left panel we have the following information: * Repo name * The repo's owner name * Current branch * The url of the remote In the vizualizer: * hash of the commit * Reference * the committer name * The time of the commit * We also beautify the graph and show it in this section Log section: * Hash of commit * Commit message * Committer name Status panel: * Modified, staged files are shown here The user can toggle between the visualizer and the status panel using v The user can also choose between my predefined tick rates [500ms/1s/3s/5s/10s] . By default the tick rate is set to 1sec Proud Of how quickly I have understood the git docs and used it to build this project that makes git look so much better for the newbies. Also that I have finally made a project that is not very complicated for the user to use like gos was. lmao Also handling resize events was a bit of headache and it feels so much better now. I feel proud because of that too :shy Do we need to set something before? No, but if you wanna install it using go , you need to have go installed :) Note: The releases page only has a darwin(macos) and linux version. So I recommend using wsl on windows to enjoy the beauty of dagit Installation the simplest way to install dagit is using the AUR: yay -S dagit-bin Using go : go install github.com/lxsh-S/dagit@latest You can also install it from the github releases page (Make sure you get the latest version)
The ony changes we have made is fix some issues with the way we fetch data from github. I wouldn’t have shipped this but I currently have 34 stardust and urgently need 1 to buy some electronics for my other project :). Please be kind...
|
1793699330.303933
|
1793785730.303933
|
|
6076
|
Nasa Dashboard by @krxn | Stardance
|
krxn
|
1
|
18.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-13T14:23:51Z", "hours": 18.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "NASA Asteroid Dashboard - Project Description Overview I built a professional, real-time NASA Asteroid Monitoring Dashboard—a fully functional web application that tracks near-Earth asteroids using NASA’s official APIs. This project demonstrates complete data science capabilities, from API integration through cloud deployment. The dashboard is live and accessible to anyone at https://nasa-dashboard-0xkrxn.streamlit.app , showcasing real asteroid data with interactive visualizations and comprehensive analysis tools. What Makes This Special The dashboard fetches live data directly from NASA’s Near-Earth Object API, processes it through a sophisticated Pandas pipeline, and displays it through a professional Streamlit interface. Users can explore real asteroids approaching Earth, view hazard classifications, and interact with beautiful Plotly visualizations. The application handles over 1000+ lines of production-quality Python code organized across multiple specialized modules for data fetching, processing, and visualization. Technical Architecture The backend uses Python with the requests library to fetch real NASA data. Raw JSON responses are processed through comprehensive Pandas DataFrames that extract, clean, and transform asteroid information. Custom hazard classification algorithms categorize asteroids as HAZARDOUS (less than 50,000 km), MONITOR (50,000-100,000 km), or SAFE (greater than 100,000 km). The frontend is built with Streamlit, featuring a responsive dashboard with interactive Plotly charts, filterable data tables, and real-time metric displays. Key Features The dashboard displays real-time key metrics including total asteroid count, hazard classification breakdown, closest approach distance, and maximum relative velocity. An intelligent hazard alert system detects potentially dangerous asteroids and presents detailed information in an accessible table format. Four interactive visualizations show size distribution histograms, hazard level pie charts, distance versus speed scatter plots with bubble sizing, and daily approach timelines. Users can filter data by hazard level and sort by distance, speed, or diameter, making data exploration intuitive and comprehensive. Development Challenges Creating this project involved solving complex problems. API key security required implementing .gitignore for local development and Streamlit Secrets for cloud deployment. Real NASA data processing required building robust error handling for nested JSON structures and missing values. Cloud deployment revealed differences between local and cloud environments, necessitating configuration updates. Data visualization required choosing appropriate tools—Matplotlib for static charts and Plotly for interactive exploration. Throughout development, I learned professional security practices, proper error handling, and modern deployment strategies. Learning Outcomes This project taught me full-stack data science skills including API integration, JSON parsing, data cleaning and transformation, statistical analysis, multiple visualization frameworks, web development with Streamlit, Git version control, GitHub collaboration, cloud deployment, and security best practices. Each component reinforced important software engineering principles about modularity, documentation, and professional code organization. Deployment and Impact The application is deployed on Streamlit Cloud, running 24/7 with live data updates. GitHub hosts the complete source code with professional documentation, comprehensive README file, and proper security configuration through .gitignore. The project successfully demonstrates production-ready code that people can use immediately without installation, making space data accessible and engaging.", "repo": "https://github.com/0xkrxn/nasa-dashboard", "demo": "https://nasa-dashboard-0xkrxn.streamlit.app/"}]...
|
[{"post_id": 7319, "ts": "2026 [{"post_id": 7319, "ts": "2026-06-12T06:12:05Z", "hours": 18.3236, "text": "I built a real-time NASA asteroid dashboard using Python. I integrated NASA’s free APIs to fetch live asteroid data, processed it with Pandas, created interactive visualizations with Plotly, and deployed a Streamlit dashboard on the cloud. The app fetches data in real-time, classifies hazard levels, and displays beautiful interactive charts. It’s fully version-controlled on GitHub and deployed on Streamlit Cloud."}]...
|
Title: Nasa Dashboard by @krxn | Stardance
Devlog Title: Nasa Dashboard by @krxn | Stardance
Devlogs:
I built a real-time NASA asteroid dashboard using Python. I integrated NASA’s free APIs to fetch live asteroid data, processed it with Pandas, created interactive visualizations with Plotly, and deployed a Streamlit dashboard on the cloud. The app fetches data in real-time, classifies hazard levels, and displays beautiful interactive charts. It’s fully version-controlled on GitHub and deployed on Streamlit Cloud.
Ships:
NASA Asteroid Dashboard - Project Description Overview I built a professional, real-time NASA Asteroid Monitoring Dashboard—a fully functional web application that tracks near-Earth asteroids using NASA’s official APIs. This project demonstrates complete data science capabilities, from API integration through cloud deployment. The dashboard is live and accessible to anyone at https://nasa-dashboard-0xkrxn.streamlit.app , showcasing real asteroid data with interactive visualizations and comprehensive analysis tools. What Makes This Special The dashboard fetches live data directly from NASA’s Near-Earth Object API, processes it through a sophisticated Pandas pipeline, and displays it through a professional Streamlit interface. Users can explore real asteroids approaching Earth, view hazard classifications, and interact with beautiful Plotly visualizations. The application handles over 1000+ lines of production-quality Python code organized across multiple specialized modules for data fetching, processing, and visualization. Technical Architecture The backend uses Python with the requests library to fetch real NASA data. Raw JSON responses are processed through comprehensive Pandas DataFrames that extract, clean, and transform asteroid information. Custom hazard classification algorithms categorize asteroids as HAZARDOUS (less than 50,000 km), MONITOR (50,000-100,000 km), or SAFE (greater than 100,000 km). The frontend is built with Streamlit, featuring a responsive dashboard with interactive Plotly charts, filterable data tables, and real-time metric displays. Key Features The dashboard displays real-time key metrics including total asteroid count, hazard classification breakdown, closest approach distance, and maximum relative velocity. An intelligent hazard alert system detects potentially dangerous asteroids and presents detailed information in an accessible table format. Four interactive visualizations show size distribution histograms, hazard level pie charts, distance versus speed scatter plots with bubble sizing, and daily approach timelines. Users can filter data by hazard level and sort by distance, speed, or diameter, making data exploration intuitive and comprehensive. Development Challenges Creating this project involved solving complex problems. API key security required implementing .gitignore for local development and Streamlit Secrets for cloud deployment. Real NASA data processing required building robust error handling for nested JSON structures and missing values. Cloud deployment revealed differences between local and cloud environments, necessitating configuration updates. Data visualization required choosing appropriate tools—Matplotlib for static charts and Plotly for interactive exploration. Throughout development, I learned professional security practices, proper error handling, and modern deployment strategies. Learning Outcomes This project taught me full-stack data science skills including API integration, JSON parsing, data cleaning and transformation, statistical analysis, multiple visualization frameworks, web development with Streamlit, Git version control, GitHub collaboration, cloud deployment, and security best practices. Each component reinforced important software engineering principles about modularity, documentation, and professional code organization. Deployment and Impact The application is deployed on Streamlit Cloud, running 24/7 with live data updates. GitHub hosts the complete source code with professional documentation, comprehensive README file, and proper security configuration through .gitignore. The project successfully demonstrates production-ready code that people can use immediately without installation, making space data accessible and engaging....
|
1793688738.3026416
|
1793775138.3026416
|
|
25375
|
My awesome macropad! by @ejo | Stardance
|
ejo
|
0
|
21.91
|
0
|
[]
|
[{"post_id": 73188, "ts": "202 [{"post_id": 73188, "ts": "2026-09-24T15:35:40Z", "hours": 3.5967, "text": "cad is done"}, {"post_id": 72341, "ts": "2026-09-22T18:18:50Z", "hours": 18.3119, "text": "man i didnt knww, i need to post devlog each 10h , i lost 8 hrsss"}]...
|
Title: My awesome macropad! by @ejo | Stardance
D Title: My awesome macropad! by @ejo | Stardance
Devlogs:
man i didnt knww, i need to post devlog each 10h , i lost 8 hrsss
cad is done...
|
1793620501.6717052
|
1794484501.6717052
|
|
14763
|
Motion-Controlled-Hand by @Snoopsawg | Stardance
|
Snoopsawg
|
0
|
1.88
|
0
|
[]
|
[{"post_id": 7318, "ts": "2026 [{"post_id": 7318, "ts": "2026-06-12T06:10:49Z", "hours": 0.7847, "text": "TROUBLESHOOTING! #Devlog for 12/06/26 for Project Handy #11:04, I've been trying to troubleshoot this thing for the last 45 minutes now; nothing new is happening. #11:09, I reconnected the servo directly to the Pi and it works fine, the pinout it servo orange to pin 16, servo red to pin 2, and servo brown to pin 6, so the problem is definitely with the breadboard wiring #NOTE: still need to fix some micromovements, but the servo is moving back and forth which is good, so I just need to fix the micromovements and then connect the other servos.... if that even works out #11:34: I think I'm gonna wait for the power module to arrive before I try to connect the other servos, I don't want to deal with the messy wiring anymore, hopefully the power module will make things easier and less prone to errors"}, {"post_id": 6739, "ts": "2026-06-11T08:52:27Z", "hours": 0.7131, "text": "#This is a Devlog for 12/06/26 for Project Handy #Okay so right now I have one servo motor attached to the Raspberry Pi: #Brown –> Pin 6 (Ground) #Red –> Pin 2 (5V) #Orange –> Pin 12 (GPIO 18) #Uhhhh, okay the Raspi is now saying that the connection is being refused??? #12:27: trying to figure out the problem with the sshing thingy but I’m not sure, this doesn’t usually happen #12:31: Okay I fixed the problem I think we are good hpprayayayay #12:37 I ran yesterday’s code and it worked, the servo motor is moving back and forth, but the micromovements still aren’t there #12:40 I think I know what the problem is, the servo motor is moving back and forth but it’s not doing the micromovements because the code is only telling it to move to 0 degrees and then to 180 degrees, so I need to change the code to make it move to different angles in between #I think I’m gonna try and troubleshoot my code and see what’s up #12:47 Okay I figured out that maybe the code was erasing micromovements because it was rounding the angle to WHOLE degrees, so I changed the code to round to 2 decimal places instead of whole numbers, hopefully that will fix the problem #12:52 I ran the code and it seems to be working better, the servo motor is moving to different angles instead of just 0 and 180, but I still need to test it more to see if the micromovements are there and connect the other servos #I think I’m gonna try and connect the other servos now and see if they are working properly, hopefully they will be #So I don’t have a USB board so I’m gonna have to cut up a USB-A cable #1:00 I cut up the USB-B cable and I have the wires ready, now I just need to connect them to the breadboard and then to the Raspberry Pi #I have red, blue, green, white cables; usually there’s black instead of blue for the ground GND but I’m gonna assume blue is just ground GND (which is what Google says too) #1:15 I connected the red wire to 5V, the blue wire to GND, and the green and white wires to (GPIO 23 and GPIO 24) nothing yet respectively, now I just need to test if they are working properly #1:22 Okay I connected everything and there aren’t any errors in the code, but the servo motors aren’t moving, I’m not sure what’s wrong, maybe I need to change the GPIO pins in the code to match the ones I connected to, or the power bank is bad #1:24 Well looks like the power bank is bad, I’m gonna try to find another #2:17 I troubleshooted a lot and I think the problem is that the breadboard wiring is really bad. I ordered a usb power module so I can connect it directly to the breadboard and then connect the servos to that, hopefully that will fix the problem and I won’t have to deal with the messy wiring anymore"}, {"post_id": 6082, "ts": "2026-06-10T07:05:17Z", "hours": 0.3847, "text": "Devlog 10/06/26: Finished the basic code for the hand tracker and connected the first servo! The basic code was fairly simple and just tracks the motion of my index finger for now, but I’m having trouble capturing the micromovements fairly smoothly. I also need to find an external power source to connect all 5+ servos; right now, the one is just running connected directly to the Pi. I also need to start planning the 3D frame for printing soon and figure out the mechanics. Snoopsawg"}]...
|
Title: Motion-Controlled-Hand by @Snoopsawg | Star Title: Motion-Controlled-Hand by @Snoopsawg | Stardance
Devlogs:
Devlog 10/06/26: Finished the basic code for the hand tracker and connected the first servo! The basic code was fairly simple and just tracks the motion of my index finger for now, but I’m having trouble capturing the micromovements fairly smoothly. I also need to find an external power source to connect all 5+ servos; right now, the one is just running connected directly to the Pi. I also need to start planning the 3D frame for printing soon and figure out the mechanics. Snoopsawg
#This is a Devlog for 12/06/26 for Project Handy #Okay so right now I have one servo motor attached to the Raspberry Pi: #Brown –> Pin 6 (Ground) #Red –> Pin 2 (5V) #Orange –> Pin 12 (GPIO 18) #Uhhhh, okay the Raspi is now saying that the connection is being refused??? #12:27: trying to figure out the problem with the sshing thingy but I’m not sure, this doesn’t usually happen #12:31: Okay I fixed the problem I think we are good hpprayayayay #12:37 I ran yesterday’s code and it worked, the servo motor is moving back and forth, but the micromovements still aren’t there #12:40 I think I know what the problem is, the servo motor is moving back and forth but it’s not doing the micromovements because the code is only telling it to move to 0 degrees and then to 180 degrees, so I need to change the code to make it move to different angles in between #I think I’m gonna try and troubleshoot my code and see what’s up #12:47 Okay I figured out that maybe the code was erasing micromovements because it was rounding the angle to WHOLE degrees, so I changed the code to round to 2 decimal places instead of whole numbers, hopefully that will fix the problem #12:52 I ran the code and it seems to be working better, the servo motor is moving to different angles instead of just 0 and 180, but I still need to test it more to see if the micromovements are there and connect the other servos #I think I’m gonna try and connect the other servos now and see if they are working properly, hopefully they will be #So I don’t have a USB board so I’m gonna have to cut up a USB-A cable #1:00 I cut up the USB-B cable and I have the wires ready, now I just need to connect them to the breadboard and then to the Raspberry Pi #I have red, blue, green, white cables; usually there’s black instead of blue for the ground GND but I’m gonna assume blue is just ground GND (which is what Google says too) #1:15 I connected the red wire to 5V, the blue wire to GND, and the green and white wires to (GPIO 23 and GPIO 24) nothing yet respectively, now I just need to test if they are working properly #1:22 Okay I connected everything and there aren’t any errors in the code, but the servo motors aren’t moving, I’m not sure what’s wrong, maybe I need to change the GPIO pins in the code to match the ones I connected to, or the power bank is bad #1:24 Well looks like the power bank is bad, I’m gonna try to find another #2:17 I troubleshooted a lot and I think the problem is that the breadboard wiring is really bad. I ordered a usb power module so I can connect it directly to the breadboard and then connect the servos to that, hopefully that will fix the problem and I won’t have to deal with the messy wiring anymore
TROUBLESHOOTING! #Devlog for 12/06/26 for Project Handy #11:04, I've been trying to troubleshoot this thing for the last 45 minutes now; nothing new is happening. #11:09, I reconnected the servo directly to the Pi and it works fine, the pinout it servo orange to pin 16, servo red to pin 2, and servo brown to pin 6, so the problem is definitely with the breadboard wiring #NOTE: still need to fix some micromovements, but the servo is moving back and forth which is good, so I just need to fix the micromovements and then connect the other servos.... if that even works out #11:34: I think I'm gonna wait for the power module to arrive before I try to connect the other servos, I don't want to deal with the messy wiring anymore, hopefully the power module will make things easier and less prone to errors...
|
1793198872.9915056
|
1793803672.9915056
|
|
61742
|
prism.exe by @Srikar1705 | Stardance
|
Srikar1705
|
1
|
15.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-27T05:05:01Z", "hours": 15.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "prism.exe A Custom New Tab website with a 2000s Desktop theme. Designed as minimal and modern version of the Internet Explorer with no eye-catching or distracting elements. Its packed with features such as a Notepad for quick notes, Bookmarks Manager for bookmarking your most-visited websites and also an option to change the background theme of the website. Additionally, it has an InfoBox which gives random information about a tech device from the Y2K era using my API from my last project. It also has minimize and close animations for windows. Features: Advanced Searchbar : The searchbar in the website is capable of differentiating between a query or an URL entered by the user just like the omnibox on Google. Notepad Window : It’s a window which looks just like the Notepad application on WinXP. It can save the user’s note and also shows the character count of the text! Bookmarks : The website has a bookmarks bar under the searchbar which helps the user navigate easily to his most visited wbesites. Also displays the icons of the websites! Bookmarks Manager : This feature allows the user to add or remove upto 6 website bookmarks of his choice Background Themes : This allows the user to switch between 6 preset background themes Info Box : A small box which gives info about a cool tech device from the Y2K using my API, inspired by dialog box from WinXP. Date-Time Window : A simple and silent date-time window at the bottom-right of the website, replicating the icon Windows XP System Tray. My Journey This is my second project shipped for the Stardance Challenge and I really enjoyed developing prism.exe . Though I had multiple exams in the last two weeks, I managed to balance my studies and my project. This website started with a basic searchbar on Devlog 1 and my aim was to add features which are useful to the website, keeping it very minimal and also that it should not have any attention-grabbing or loud colors/elements. I’m very happy that I could achieve this by Devlog 6, making prism.exe very efficient for the users. Do checkout prism.exe here! Don’t forget to minimize a window to view the icons of other features… Thanks, Srikar.", "repo": "https://github.com/SRIKAR-B-S-S/prism.exe", "demo": "https://srikar-b-s-s.github.io/prism.exe/"}]...
|
[{"post_id": 73175, "ts": "202 [{"post_id": 73175, "ts": "2026-09-24T15:10:23Z", "hours": 1.9172, "text": "Devlog 6 - Preparing for Ship #1 I’ve added all the main features for my website in my previous devlog and now I have to fill the bottom right space! Looking at Windows XP, I wanted to replicate its system tray as a date-time window in project… After some experimenting with CSS, I added the date-time window with a transparent background, placed it on the bottom right of the website with thin black text! I liked its minimal look as I wanted to design it in a way that it doesn’t grab our attention much. I was switching themes to check if it looks good on all of them… And due to the black text, it was not properly visible on themes having a darker background. So, I added a line of code which makes the colour of the date-time window white when the user selected a dark colored background. And the cool part of this devlog is the “Info Box”, inspired from the dialog box of WinXP, this displays a info about a random tech device from the 2000s era. This uses the API which I made for my previous project, which has a lot of data about tech devices from the Y2K. Additionally, I’ve also added the feature of character counting for the Notepad Window Now that everything’s done, I think this project is ready to be shipped! I hope you guys like the website!"}, {"post_id": 72286, "ts": "2026-09-22T16:18:22Z", "hours": 3.0942, "text": "Devlog 5 - The Background Themes I was casually browsing through the projects made by others for this mission with a thought in mind to add something which others missed. That’s when I got the idea of adding the feature of Background Themes. And of course people do have different interests and likings and I think they’d love the idea of different themes. I started preparing an idea of how it should look and where people can change the settings. I added an icon named “Settings” and by clicking on it, the user could select a theme out of the available ones. I’ve also integrated localStorage which will save the theme selected by the user and loads it the next time he returns to the website. Initially, I’ve planned to add the colours from Frutiger Aero design aesthetic but upon adding them, the website looks too odd and bright, my idea was to select colors which looked minimal and were also seen during the Y2K era. Themes only not change the background color of the website but also the color of the logo text at the top-left, its just small detailing but it gives the website a cleaner look. A quick tip for developers who love designing good UI and pick perfect colors for their projects - Just search “color picker” on Google and a you can find a color picker displayed on your screen! (except that it doesn’t have an option to set transparency) Additionally, I’ve also fixed two bugs from the recent bookmarks feature. Do check how the Mint and DarkUI themes look!"}, {"post_id": 71053, "ts": "2026-09-20T07:48:45Z", "hours": 5.3733, "text": "Devlog 4 - The Bookmarks Manager Heyy, it’s been 5 days since my last devlog and I had an important exam yesterday for which I was studying the whole week.. It took me a lot of time to plan and implement this bookmarks feature which is why, this is my longest time logged for a devlog! After my last devlog, the next feature I wanted to add to my project was a bookmarks section under the searchbar. I started experimenting with some design ideas in mind but later fixed on the desktop-icon styled bookmark icons. I spent a lot of time on adding and modifying designs in CSS but thanks to VS Code’s suggestions for CSS properties it made my work easy! While implementing the bookmarks feature, I first developed a static bookmarks section which had 5 bookmarks pre-coded (I included websites such as Hackclub, Gmail, Github, Hackatime, Youtube), where users cannot add website bookmarks of their choice. Later, I planned for a custom bookmarks section where people can add/remove bookmarks of their choice. I also planned for an application-like interface where people can add or remove websites bookmarks and all of this should be done in a Windows XP theme. There was another challenge which was to display the icon whichever website the user added as a bookmark. After some research, I found this answer on StackOverflow . Attaching the logo to that API grabs the icon of the website, so that we can directly use it as a source for an image tag. I added the icon of WinXP’s Control Panel as the icon for Bookmarks Manager. And I’ve also added a limit where the user can only add upto 6 bookmarks, as a maximum of 6 bookmark cards look perfect under the searchbar. I don’t wish to make this devlog any longer. Thanks for your time! If you ever try out my website, don’t forget to minimize the notepad to view the icon of Bookmarks Manager. Do check the bookmarks section below…"}, {"post_id": 68487, "ts": "2026-09-15T06:40:34Z", "hours": 1.7808, "text": "Devlog 3 - The Optimization I was bored yesterday and I was scrolling through the projects which are completed for the ‘Give Your Website a Pulse’ mission and they are very creative! But there was one problem in almost all of their projects. The problem was that the content which people enter in the searchbar is of two types: Keyword or a query just like how we search on Google. URL or a website link. And the website has only one searchbar which is either redirecting to “google.com/search?q=[content-in-searchbar]” or “https://[content-in-searchbar]” according to what the developer has written in the code. What if the user searched for a query and it redirects him to https://keyword (or) if the user searched for a URL and it redirects him to google.com/search?q=userurl.com . It’s really annoying! To prevent this, the code should be structured to check if the entered content is a URL, if yes - redirect him to that website; if no - redirect him to a google search. After doing some research on how to validate a URL, I got to know about URL Object Validation in Javascript. Thanks to this guide , it helped me implement the URL validation in my website. I’ve also added two lines of code just to ensure that the https:// gets added to the URL, incase the user doesn’t enter it. I’ve added the feature of localStorage which automatically saves the text typed by the user in the notepad window and loads it the next time he returns to the website. There’s no worry of losing the data now! Along with that I’ve added a feature of minimizing or closing the notepad window and you can see a notepad icon at the bottom left of your screen after minimizing it! Checkout the minimize feature ⬇"}, {"post_id": 68026, "ts": "2026-09-14T12:20:02Z", "hours": 1.25, "text": "Devlog 2 - The Notepad Window In my previous devlog, I’ve noticed that a lot of space on my website looks very empty. I couldn’t figure out what to fill that space with, until I thought to add small space in the screen where people could fill it with their to-do lists or ideas! And as my project being ‘2000s Desktop’ themed, I thought that adding a Windows XP-styled Notepad Window would be the best! Though this may look like a small feature to be added, it took me a lot of time to design the Notepad window! Thanks to this website , which replicated exactly how a WinXP OS would be running like. It helped me to exactly replicate that user interface. Wait until my next devlog to see what I’d fill the other half of the screen with! The Notepad Window 👇🏻"}, {"post_id": 67954, "ts": "2026-09-14T08:46:49Z", "hours": 1.5708, "text": "Devlog 1 - The Idea This is my 2nd project on Stardance and I’ve started it yesterday. Just like my previous project, I wanted to design this website in the same 2000s Desktop aesthetic. I’ve started with finding a catchy name, which I thought to go with ‘prism.exe’. The .exe in the naming refers to the Windows Executable File which points out the desktop aesthetic of my website. I’ve also designed a logo for my website on Canva. I’ve started developing the website with an off-white background which was intended to look like the background of File Explorer on Windows XP or the color used in some parts of the Windows 98. I’m still experimenting with various CSS properties but right now I’ve added a basic centered searchbar with a Windows XP styled Search button which shows orange shade when hovered. That’s everything I’ve done yesterday! It was too late in the night, so I couldn’t post a devlog yesterday… This is how the website looks right now ⬇"}]...
|
Title: prism.exe by @Srikar1705 | Stardance
Devlo Title: prism.exe by @Srikar1705 | Stardance
Devlogs:
Devlog 1 - The Idea This is my 2nd project on Stardance and I’ve started it yesterday. Just like my previous project, I wanted to design this website in the same 2000s Desktop aesthetic. I’ve started with finding a catchy name, which I thought to go with ‘prism.exe’. The .exe in the naming refers to the Windows Executable File which points out the desktop aesthetic of my website. I’ve also designed a logo for my website on Canva. I’ve started developing the website with an off-white background which was intended to look like the background of File Explorer on Windows XP or the color used in some parts of the Windows 98. I’m still experimenting with various CSS properties but right now I’ve added a basic centered searchbar with a Windows XP styled Search button which shows orange shade when hovered. That’s everything I’ve done yesterday! It was too late in the night, so I couldn’t post a devlog yesterday… This is how the website looks right now ⬇
Devlog 2 - The Notepad Window In my previous devlog, I’ve noticed that a lot of space on my website looks very empty. I couldn’t figure out what to fill that space with, until I thought to add small space in the screen where people could fill it with their to-do lists or ideas! And as my project being ‘2000s Desktop’ themed, I thought that adding a Windows XP-styled Notepad Window would be the best! Though this may look like a small feature to be added, it took me a lot of time to design the Notepad window! Thanks to this website , which replicated exactly how a WinXP OS would be running like. It helped me to exactly replicate that user interface. Wait until my next devlog to see what I’d fill the other half of the screen with! The Notepad Window 👇🏻
Devlog 3 - The Optimization I was bored yesterday and I was scrolling through the projects which are completed for the ‘Give Your Website a Pulse’ mission and they are very creative! But there was one problem in almost all of their projects. The problem was that the content which people enter in the searchbar is of two types: Keyword or a query just like how we search on Google. URL or a website link. And the website has only one searchbar which is either redirecting to “google.com/search?q=[content-in-searchbar]” or “https://[content-in-searchbar]” according to what the developer has written in the code. What if the user searched for a query and it redirects him to https://keyword (or) if the user searched for a URL and it redirects him to google.com/search?q=userurl.com . It’s really annoying! To prevent this, the code should be structured to check if the entered content is a URL, if yes - redirect him to that website; if no - redirect him to a google search. After doing some research on how to validate a URL, I got to know about URL Object Validation in Javascript. Thanks to this guide , it helped me implement the URL validation in my website. I’ve also added two lines of code just to ensure that the https:// gets added to the URL, incase the user doesn’t enter it. I’ve added the feature of localStorage which automatically saves the text typed by the user in the notepad window and loads it the next time he returns to the website. There’s no worry of losing the data now! Along with that I’ve added a feature of minimizing or closing the notepad window and you can see a notepad icon at the bottom left of your screen after minimizing it! Checkout the minimize feature ⬇
Devlog 4 - The Bookmarks Manager Heyy, it’s been 5 days since my last devlog and I had an important exam yesterday for which I was studying the whole week.. It took me a lot of time to plan and implement this bookmarks feature which is why, this is my longest time logged for a devlog! After my last devlog, the next feature I wanted to add to my project was a bookmarks section under the searchbar. I started experimenting with some design ideas in mind but later fixed on the desktop-icon styled bookmark icons. I spent a lot of time on adding and modifying designs in CSS but thanks to VS Code’s suggestions for CSS properties it made my work easy! While implementing the bookmarks feature, I first developed a static bookmarks section which had 5 bookmarks pre-coded (I included websites such as Hackclub, Gmail, Github, Hackatime, Youtube), where users cannot add website bookmarks of their choice. Later, I planned for a custom bookmarks section where people can add/remove bookmarks of their choice. I also planned for an application-like interface where people can add or remove websites bookmarks and all of this should be done in a Windows XP theme. There was another challenge which was to display the icon whichever website the user added as a bookmark. After some research, I found this answer on StackOverflow . Attaching the logo to that API grabs the icon of the website, so that we can directly use it as a source for an image tag. I added the icon of WinXP’s Control Panel as the icon for Bookmarks Manager. And I’ve also added a limit where the user can only add upto 6 bookmarks, as a maximum of 6 bookmark cards look perfect under the searchbar. I don’t wish to make this devlog any longer. Thanks for your time! If you ever try out my website, don’t forget to minimize the notepad to view the icon of Bookmarks Manager. Do check the bookmarks section below…
Devlog 5 - The Background Themes I was casually browsing through the projects made by others for this mission with a thought in mind to add something which others missed. That’s when I got the idea of adding the feature of Background Themes. And of course people do have different interests and likings and I think they’d love the idea of different themes. I started preparing an idea of how it should look and where people can change the settings. I added an icon named “Settings” and by clicking on it, the user could select a theme out of the available ones. I’ve also integrated localStorage which will save the theme selected by the user and loads it the next time he returns to the website. Initially, I’ve planned to add the colours from Frutiger Aero design aesthetic but upon adding them, the website looks too odd and bright, my idea was to select colors which looked minimal and were also seen during the Y2K era. Themes only not change the background color of the website but also the color of the logo text at the top-left, its just small detailing but it gives the website a cleaner look. A quick tip for developers who love designing good UI and pick perfect colors for their projects - Just search “color picker” on Google and a you can find a color picker displayed on your screen! (except that it doesn’t have an option to set transparency) Additionally, I’ve also fixed two bugs from the recent bookmarks feature. Do check how the Mint and DarkUI themes look!
Devlog 6 - Preparing for Ship #1 I’ve added all the main features for my website in my previous devlog and now I have to fill the bottom right space! Looking at Windows XP, I wanted to replicate its system tray as a date-time window in project… After some experimenting with CSS, I added the date-time window with a transparent background, placed it on the bottom right of the website with thin black text! I liked its minimal look as I wanted to design it in a way that it doesn’t grab our attention much. I was switching themes to check if it looks good on all of them… And due to the black text, it was not properly visible on themes having a darker background. So, I added a line of code which makes the colour of the date-time window white when the user selected a dark colored background. And the cool part of this devlog is the “Info Box”, inspired from the dialog box of WinXP, this displays a info about a random tech device from the 2000s era. This uses the API which I made for my previous project, which has a lot of data about tech devices from the Y2K. Additionally, I’ve also added the feature of character counting for the Notepad Window Now that everything’s done, I think this project is ready to be shipped! I hope you guys like the website!
Ships:
prism.exe A Custom New Tab website with a 2000s Desktop theme. Designed as minimal and modern version of the Internet Explorer with no eye-catching or distracting elements. Its packed with features such as a Notepad for quick notes, Bookmarks Manager for bookmarking your most-visited websites and also an option to change the background theme of the website. Additionally, it has an InfoBox which gives random information about a tech device from the Y2K era using my API from my last project. It also has minimize and close animations for windows. Features: Advanced Searchbar : The searchbar in the website is capable of differentiating between a query or an URL entered by the user just like the omnibox on Google. Notepad Window : It’s a window which looks just like the Notepad application on WinXP. It can save the user’s note and also shows the character count of the text! Bookmarks : The website has a bookmarks bar under the searchbar which helps the user navigate easily to his most visited wbesites. Also displays the icons of the websites! Bookmarks Manager : This feature allows the user to add or remove upto 6 website bookmarks of his choice Background Themes : This allows the user to switch between 6 preset background themes Info Box : A small box which gives info about a cool tech device from the Y2K using my API, inspired by dialog box from WinXP. Date-Time Window : A simple and silent date-time window at the bottom-right of the website, replicating the icon Windows XP System Tray. My Journey This is my second project shipped for the Stardance Challenge and I really enjoyed developing prism.exe . Though I had multiple exams in the last two weeks, I managed to balance my studies and my project. This website started with a basic searchbar on Devlog 1 and my aim was to add features which are useful to the website, keeping it very minimal and also that it should not have any attention-grabbing or loud colors/elements. I’m very happy that I could achieve this by Devlog 6, making prism.exe very efficient for the users. Do checkout prism.exe here! Don’t forget to minimize a window to view the icons of other features… Thanks, Srikar....
|
1793684945.4407554
|
1793771345.4407554
|
|
40974
|
Clueless by @Natt | Stardance
|
Natt
|
0
|
14.77
|
0
|
[]
|
[{"post_id": 73174, "ts": "202 [{"post_id": 73174, "ts": "2026-09-24T15:10:01Z", "hours": 4.7022, "text": "Lads, sorry I have been gone for a while, mostly just school-related stuff like exams and classes and all that. My new school is really tough, ngl, but here I am, lmao, so what i basically did was, first, I figured out how to make the overlay see-through. Now, I can’t really say I figured it out, and I wish I could go into more technical details, but I really can’t since I just mess around in the codebase, tweaking this and that, and I’m not sure what did the job; only God knows now, lol. The second thing was coding more essential stuff to make the app or overlay more polished, just like “Cluely,” a shitty version of it, at least (that’s what I’m aiming for). Okay, let’s get back to the point. So for the UI, I added a prompt/input bar, a live button (for the interview, you know), and a send button, but it isn’t finished. The live listening or the interview function isn’t working properly, actually, it isn’t finished at all, but the app is starting to look like a product now. I’ll have to keep at it; it’s still far from finished, but yeah."}, {"post_id": 39524, "ts": "2026-08-02T15:14:26Z", "hours": 6.5942, "text": "Okay… this might be disappointing, but despite the hours that will be logged in this devlog, the majority of it was trying to make the Clueless invisible/semi transparent or translucent, like what Cluely or an overlay in general should be, which, despite the painful amount of hours spent on just THIS… ladies and gentlemen…. it won’t even work… so I lowk gave up… I went on to make the UI look a bit better and polish it, which was pretty simple compared to the pain I’ve been so wrongly focused on. I’ll come back to this later tho. I figured that I should focus on the features, the overall app, and end-to-end prototype first; I feel like that is more important. Currently, the project is using gemma3:4b as an LLM. I’m not sure if I’ve mentioned it, but I’m pretty sure I was using llava before and then switched to gemma3:4b due to it being superior in general, maybe almost every way. However, I planned to include an option for changing/using you prefered LLM, but not right now; that’s for the future Here’s how it looks now"}, {"post_id": 36524, "ts": "2026-07-28T18:08:11Z", "hours": 3.4717, "text": "This is a quick rough sketch of the core idea and implementation. So I did some research on how Cluely actually operates and also found out there are quite a few already existing projects and repos, so I studied them and every resource I could find. As you can probably guess by the picture attached, the thing is working probably because I cannot screenshot my screen and have to go out of my way to get my phone and take a picture, which is great because, after all, that means the main selling point of Cluely, which is the undetectability, has been implemented and is working properly. To be more technical about the current version, Clueless connects directly to Ollama, running the LLava model. In TypeScript (main.ts), I coded a stream buffer to handle split TCP chunks, stitching partial JSON responses back together on the fly so tokens render line-by-line. To make the overlay invisible to screen shares (Zoom, Discord, Teams, OBS), I hooked into the Windows Win32 API in Rust and told the Windows Desktop Manager to render the window locally on my monitor, but return a pitch-black box to any capture software trying to record the screen. You might be wondering why I use Rust… because I’m a nerd…, just kidding…, but to be fair, I’m not even sure…. Tauri + Rust MIGHT be a good combo since it’s fast, lightweight, and modern. If I were to be more technical, I’d say it: 1. has minimal system footprint, using native OS WebViews (WebView2) instead of bundling Chromium like Electron, keeping memory usage under ~30MB RAM (vs 300MB+) so your PC doesn’t lag while doing other stuff 2. Low-Level Native OS Control: Allows direct calls to native Win32 C++ APIs (SetWindowDisplayAffinity) in Rust to hide the app overlay from screen-recording tools like Zoom, Teams, Discord, and OBS. 3. High-Speed RAM Processing: Captures, color-converts (RGBA to RGB8), downscales, and Base64-encodes high-res screenshots entirely in memory with zero disk I/O bottlenecks. That’s the technical aspect/architecture of the current iteration right now; all it does is capture the screen and output what it sees. This is the placeholder/prototype to test the core concept/selling point for now."}]...
|
Title: Clueless by @Natt | Stardance
Devlogs:
Thi Title: Clueless by @Natt | Stardance
Devlogs:
This is a quick rough sketch of the core idea and implementation. So I did some research on how Cluely actually operates and also found out there are quite a few already existing projects and repos, so I studied them and every resource I could find. As you can probably guess by the picture attached, the thing is working probably because I cannot screenshot my screen and have to go out of my way to get my phone and take a picture, which is great because, after all, that means the main selling point of Cluely, which is the undetectability, has been implemented and is working properly. To be more technical about the current version, Clueless connects directly to Ollama, running the LLava model. In TypeScript (main.ts), I coded a stream buffer to handle split TCP chunks, stitching partial JSON responses back together on the fly so tokens render line-by-line. To make the overlay invisible to screen shares (Zoom, Discord, Teams, OBS), I hooked into the Windows Win32 API in Rust and told the Windows Desktop Manager to render the window locally on my monitor, but return a pitch-black box to any capture software trying to record the screen. You might be wondering why I use Rust… because I’m a nerd…, just kidding…, but to be fair, I’m not even sure…. Tauri + Rust MIGHT be a good combo since it’s fast, lightweight, and modern. If I were to be more technical, I’d say it: 1. has minimal system footprint, using native OS WebViews (WebView2) instead of bundling Chromium like Electron, keeping memory usage under ~30MB RAM (vs 300MB+) so your PC doesn’t lag while doing other stuff 2. Low-Level Native OS Control: Allows direct calls to native Win32 C++ APIs (SetWindowDisplayAffinity) in Rust to hide the app overlay from screen-recording tools like Zoom, Teams, Discord, and OBS. 3. High-Speed RAM Processing: Captures, color-converts (RGBA to RGB8), downscales, and Base64-encodes high-res screenshots entirely in memory with zero disk I/O bottlenecks. That’s the technical aspect/architecture of the current iteration right now; all it does is capture the screen and output what it sees. This is the placeholder/prototype to test the core concept/selling point for now.
Okay… this might be disappointing, but despite the hours that will be logged in this devlog, the majority of it was trying to make the Clueless invisible/semi transparent or translucent, like what Cluely or an overlay in general should be, which, despite the painful amount of hours spent on just THIS… ladies and gentlemen…. it won’t even work… so I lowk gave up… I went on to make the UI look a bit better and polish it, which was pretty simple compared to the pain I’ve been so wrongly focused on. I’ll come back to this later tho. I figured that I should focus on the features, the overall app, and end-to-end prototype first; I feel like that is more important. Currently, the project is using gemma3:4b as an LLM. I’m not sure if I’ve mentioned it, but I’m pretty sure I was using llava before and then switched to gemma3:4b due to it being superior in general, maybe almost every way. However, I planned to include an option for changing/using you prefered LLM, but not right now; that’s for the future Here’s how it looks now
Lads, sorry I have been gone for a while, mostly just school-related stuff like exams and classes and all that. My new school is really tough, ngl, but here I am, lmao, so what i basically did was, first, I figured out how to make the overlay see-through. Now, I can’t really say I figured it out, and I wish I could go into more technical details, but I really can’t since I just mess around in the codebase, tweaking this and that, and I’m not sure what did the job; only God knows now, lol. The second thing was coding more essential stuff to make the app or overlay more polished, just like “Cluely,” a shitty version of it, at least (that’s what I’m aiming for). Okay, let’s get back to the point. So for the UI, I added a prompt/input bar, a live button (for the interview, you know), and a send button, but it isn’t finished. The live listening or the interview function isn’t working properly, actually, it isn’t finished at all, but the app is starting to look like a product now. I’ll have to keep at it; it’s still far from finished, but yeah....
|
1793533971.2549725
|
1794138771.2549725
|
|
65251
|
Arzox OS by @NIKE15 | Stardance
|
NIKE15
|
0
|
0.84
|
0
|
[]
|
[{"post_id": 73172, "ts": "202 [{"post_id": 73172, "ts": "2026-09-24T15:08:35Z", "hours": 0.2689, "text": "finished with the very very long css and javascript it took me a hell lot of brain to get this run smooth"}, {"post_id": 73158, "ts": "2026-09-24T14:37:47Z", "hours": 0.5686, "text": "I mad this website tried using youtube and reddit for refrnces. done with the html part"}]...
|
Title: Arzox OS by @NIKE15 | Stardance
Devlogs:
I Title: Arzox OS by @NIKE15 | Stardance
Devlogs:
I mad this website tried using youtube and reddit for refrnces. done with the html part
finished with the very very long css and javascript it took me a hell lot of brain to get this run smooth...
|
1793699299.4422545
|
1794304099.4422545
|
|
65435
|
We miss stardance by @MAyaanBaig2013 | Stardance
|
MAyaanBaig2013
|
1
|
2.0
|
3
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-24T15:13:52Z", "hours": 2.0, "multiplier": 1.52, "payout": 3, "blessing": "neutral", "text": "I made an memoriable website for starda since stardane will be closing in 5 days!", "repo": "https://github.com/DevAyaan123/we-miss-stardance", "demo": "https://devayaan123.github.io/we-miss-stardance/"}]...
|
[{"post_id": 73171, "ts": "202 [{"post_id": 73171, "ts": "2026-09-24T15:08:34Z", "hours": 1.95, "text": "So guys, since stardance will be closing in 5 days we all will leave a memorial website for it !"}]...
|
Title: We miss stardance by @MAyaanBaig2013 | Star Title: We miss stardance by @MAyaanBaig2013 | Stardance
Devlogs:
So guys, since stardance will be closing in 5 days we all will leave a memorial website for it !
Ships:
I made an memoriable website for starda since stardane will be closing in 5 days!...
|
1793685351.4816012
|
1793771751.4816012
|
|
46712
|
robotic arm by @thomas_thomas | Stardance
|
thomas_thomas
|
1
|
27.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-24T16:39:00Z", "hours": 27.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "It’s a completely costum 3 degrees of freedom robotic arm. It is based on an Arduino and can be controlled from your PC. I designed every single part of it myself, even designing the cycloidal drives myself. Especially the electronics were hard and often made me lose motivation (and money). But the cycloidal drive design wasnt easy as well at first. I learned many crucial skills (with this being my first electronics project): -Soldering -Proper 3d Printing and assembly oriented CAD design -How Stepper motors, Electrical circuits and many tools actually work -Documenting your work -Intuition as to what might work and what wont So may more things! This was my entry project into the world of engineering and I have so many more prejcts in mind that I would like to build someday.", "repo": "https://github.com/pommjes/robotic-arm", "demo": ""}]...
|
[{"post_id": 73168, "ts": "202 [{"post_id": 73168, "ts": "2026-09-24T15:01:07Z", "hours": 0.6667, "text": "Working on the finishing touches rn. Just made this baseplate, which I dont have myself since I made mine out of a piece of wood. Its much easier that way but in case anyone doesnt have any wood or no tools for drilling etc I made this baseplate for them."}, {"post_id": 70714, "ts": "2026-09-19T17:15:57Z", "hours": 2.9667, "text": "This is getting pretty hard now… After basically finishing the rough hardware I started finishing the software. Added a zero function which I have to use for now since the homing isnt accurate at all yet and you basically always have to home it manually (using a level lol). But the main issue is the target point function since the arm seems to make up some random data and drifts like 20(!!) cm from the target point while being spot on on the other axis. But I’ll get there in the next few days… And guess what youre getting another screenshot bcs the real arm still looks like shit:"}, {"post_id": 69718, "ts": "2026-09-17T17:17:54Z", "hours": 1.5664, "text": "Finally installed a Nema 17 as the base motor for the arm. The old Nema 14 often struggled to move the correct number of steps due to too much load. The old one had 12Ncm while the new one has 45Ncm :D. I obviously dont have anymore problems with the base motor missing steps… Also the new base with the integrated magnet holder and bearing ring is way more practical than the old design. You wont notice a difference visually and its ugly af with all the cables so yall are getting another rendering:"}, {"post_id": 66780, "ts": "2026-09-12T17:45:13Z", "hours": 1.0597, "text": "Put all the mounts for the magnets and hall effect sensors on the main parts so less printing and no glueing is needed. Posting devlogs more frequently now"}, {"post_id": 66514, "ts": "2026-09-12T11:04:53Z", "hours": 2.0667, "text": "Im going to upgrade the stepper of joint 1 from a nema14 to a nema17. The nema14 just didnt have enough torque to spin the arm without shaking a lot and skipping like half of the steps… This is the new motor case for mounting it. It will now have the lower bearing cap attached to it for easyer printing and assembly. Also finished installing and connecting all the hall effect sensors to the arm and every joint is homeable now! Next will be installing the new motor and then calibrating the software and if everything goes according to plan (it wont) i’ll be done!!"}, {"post_id": 66030, "ts": "2026-09-11T15:56:14Z", "hours": 0.7333, "text": "Did a cfd analysis of the housing for my arduino and the cnc shield. It was pretty hard to figure out but also very fun and most of all a valuable skill to learn. This might be a bit overkill but it actually helped me improve the case for better airflow over the heatsinks of the motor drivers to ensure keeping them cool for when the arm will be working for longer periods of time and under higher loads. For anyone interested I did this in Simscale its very easy to use and you get 10 free simulations!"}, {"post_id": 65026, "ts": "2026-09-09T20:36:09Z", "hours": 10.3181, "text": "Worked a lot on the homing of my arm. Did a lot of software first off. Adding the homing buttons to the GUI, adding the commands which will be send to the arduino and adding the homing feature on the arduino itself were a lot of work but we got there in the end! Also added a section for error messages and stuff at the bottom. For the hardware side I glued all the hall effect sensor in place along with the magnets needed for the sensors. I glued them on but i plan on putting designated spots on the arm for the magnets and sensors so you wont have to glue them on if you decide to build the arm yourself. I then had to build a small board to allow all the sensors to recieve power from the cnc shield. I now also started connecting all the sensors to the arduino which takes a lot longer than expected actually. But ive been successful so far and both of the connected joints work as intended right now. Next up i have to finish connecting everything and then finish so software side so the arms get to the correct position once they’re homed. This is a lot for one devlog but its hard to define clear borders in this project since everything is connected with everything else so you are never “done” with one subproject because its only a small part and wont work without me working on the next thing. Also didnt add any pics of the arm with the sensors since you cant really notice a difference compared to the older photo on here except a few more wires…"}, {"post_id": 53970, "ts": "2026-08-24T17:58:02Z", "hours": 1.8, "text": "I cant belive I’m typing this, but it works. After intensively working on the software side the last few days while waiting for the last hardware pieces needed I assembled everything today. I put on the jumper caps to enable microstepping and installed the new cables for joint 3. When everything was done i just had to do a tiny bit of troubleshooting but after that it just worked! I can control all the joints and the software also doesnt really have any issues. The only thing that doesn’t fully work yet is the target point feature, since i cant home the arm yet. Some magnets will arrive in a few days and i’ll use them with hall effect sensors to home the arm. Then it’ll hopfuly work just as it should and i can get to documenting this whole thing for you guys!"}, {"post_id": 52250, "ts": "2026-08-22T10:52:49Z", "hours": 6.0089, "text": "Advanced the software side quite a bit. Waiting for some new parts rn so I used the time to finish the gui for now and calculate everything i need to to send to the arduino! You can now input the three values making up the target point and hit calculate. Then the angles of the three joints relative to their home position as well as the delta of the angles, which is the value which the joints need to move in order to reach the target position, are displayed below. These are the values which are going to be send to the arduino. I also added the function to ignore physically impossible positions of the arm and only show the possible ones. In theory I only have to add some kind of interface to send data to the arduino and the software would be done!"}, {"post_id": 45313, "ts": "2026-08-11T17:59:37Z", "hours": 1.41, "text": "Wrote the code to controll all 3 joints.did this to prepare and pass time while i wait for my cnc shield. once it arrives ill hopefully be able to fully control my arm for the first time ever! No new features (apart from the 3rd joint) where added, but i cleaned up the code from the last version a bit and removed some unused sections. I also added lots of comments to make editing and extending the code easier in the future."}, {"post_id": 45139, "ts": "2026-08-11T13:14:44Z", "hours": 0.3, "text": "New Joint 1 -> Base interface without wobbling like the one before."}]...
|
Title: robotic arm by @thomas_thomas | Stardance
Title: robotic arm by @thomas_thomas | Stardance
Devlogs:
New Joint 1 -> Base interface without wobbling like the one before.
Wrote the code to controll all 3 joints.did this to prepare and pass time while i wait for my cnc shield. once it arrives ill hopefully be able to fully control my arm for the first time ever! No new features (apart from the 3rd joint) where added, but i cleaned up the code from the last version a bit and removed some unused sections. I also added lots of comments to make editing and extending the code easier in the future.
Advanced the software side quite a bit. Waiting for some new parts rn so I used the time to finish the gui for now and calculate everything i need to to send to the arduino! You can now input the three values making up the target point and hit calculate. Then the angles of the three joints relative to their home position as well as the delta of the angles, which is the value which the joints need to move in order to reach the target position, are displayed below. These are the values which are going to be send to the arduino. I also added the function to ignore physically impossible positions of the arm and only show the possible ones. In theory I only have to add some kind of interface to send data to the arduino and the software would be done!
I cant belive I’m typing this, but it works. After intensively working on the software side the last few days while waiting for the last hardware pieces needed I assembled everything today. I put on the jumper caps to enable microstepping and installed the new cables for joint 3. When everything was done i just had to do a tiny bit of troubleshooting but after that it just worked! I can control all the joints and the software also doesnt really have any issues. The only thing that doesn’t fully work yet is the target point feature, since i cant home the arm yet. Some magnets will arrive in a few days and i’ll use them with hall effect sensors to home the arm. Then it’ll hopfuly work just as it should and i can get to documenting this whole thing for you guys!
Worked a lot on the homing of my arm. Did a lot of software first off. Adding the homing buttons to the GUI, adding the commands which will be send to the arduino and adding the homing feature on the arduino itself were a lot of work but we got there in the end! Also added a section for error messages and stuff at the bottom. For the hardware side I glued all the hall effect sensor in place along with the magnets needed for the sensors. I glued them on but i plan on putting designated spots on the arm for the magnets and sensors so you wont have to glue them on if you decide to build the arm yourself. I then had to build a small board to allow all the sensors to recieve power from the cnc shield. I now also started connecting all the sensors to the arduino which takes a lot longer than expected actually. But ive been successful so far and both of the connected joints work as intended right now. Next up i have to finish connecting everything and then finish so software side so the arms get to the correct position once they’re homed. This is a lot for one devlog but its hard to define clear borders in this project since everything is connected with everything else so you are never “done” with one subproject because its only a small part and wont work without me working on the next thing. Also didnt add any pics of the arm with the sensors since you cant really notice a difference compared to the older photo on here except a few more wires…
Did a cfd analysis of the housing for my arduino and the cnc shield. It was pretty hard to figure out but also very fun and most of all a valuable skill to learn. This might be a bit overkill but it actually helped me improve the case for better airflow over the heatsinks of the motor drivers to ensure keeping them cool for when the arm will be working for longer periods of time and under higher loads. For anyone interested I did this in Simscale its very easy to use and you get 10 free simulations!
Im going to upgrade the stepper of joint 1 from a nema14 to a nema17. The nema14 just didnt have enough torque to spin the arm without shaking a lot and skipping like half of the steps… This is the new motor case for mounting it. It will now have the lower bearing cap attached to it for easyer printing and assembly. Also finished installing and connecting all the hall effect sensors to the arm and every joint is homeable now! Next will be installing the new motor and then calibrating the software and if everything goes according to plan (it wont) i’ll be done!!
Put all the mounts for the magnets and hall effect sensors on the main parts so less printing and no glueing is needed. Posting devlogs more frequently now
Finally installed a Nema 17 as the base motor for the arm. The old Nema 14 often struggled to move the correct number of steps due to too much load. The old one had 12Ncm while the new one has 45Ncm :D. I obviously dont have anymore problems with the base motor missing steps… Also the new base with the integrated magnet holder and bearing ring is way more practical than the old design. You wont notice a difference visually and its ugly af with all the cables so yall are getting another rendering:
This is getting pretty hard now… After basically finishing the rough hardware I started finishing the software. Added a zero function which I have to use for now since the homing isnt accurate at all yet and you basically always have to home it manually (using a level lol). But the main issue is the target point function since the arm seems to make up some random data and drifts like 20(!!) cm from the target point while being spot on on the other axis. But I’ll get there in the next few days… And guess what youre getting another screenshot bcs the real arm still looks like shit:
Working on the finishing touches rn. Just made this baseplate, which I dont have myself since I made mine out of a piece of wood. Its much easier that way but in case anyone doesnt have any wood or no tools for drilling etc I made this baseplate for them.
Ships:
It’s a completely costum 3 degrees of freedom robotic arm. It is based on an Arduino and can be controlled from your PC. I designed every single part of it myself, even designing the cycloidal drives myself. Especially the electronics were hard and often made me lose motivation (and money). But the cycloidal drive design wasnt easy as well at first. I learned many crucial skills (with this being my first electronics project): -Soldering -Proper 3d Printing and assembly oriented CAD design -How Stepper motors, Electrical circuits and many tools actually work -Documenting your work -Intuition as to what might work and what wont So may more things! This was my entry project into the world of engineering and I have so many more prejcts in mind that I would like to build someday....
|
1793670541.1783721
|
1793756941.1783721
|
|
63084
|
My own site! by @Nivedh_Govil | Stardance
|
Nivedh_Govil
|
1
|
5.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-24T16:46:02Z", "hours": 5.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I have made my own personal website, and I’m really happy that I made one because I have been wanting this for a really long time. Now that I have learned the basics of web development, I got to see my dream come true. Something challenging was the CSS and the JavaScript so I used a bit of AI for help on that.", "repo": "https://github.com/NivedhGovil/nivedh-website", "demo": "https://nivedhgovil.github.io/nivedh-website/"}]...
|
[{"post_id": 73160, "ts": "202 [{"post_id": 73160, "ts": "2026-09-24T14:49:02Z", "hours": 2.5636, "text": "Completed my personal website! After several hours of coding in VSCode, I am joyful to say that it’s ready. The only thing that’s left is for you to see it! Features: Home: About the website and the main nav bar. Engineering: My circuits, hardware projects, PCBs, CAD drawings. Art: Some of my drawings. Literary: My essays, stories, articles and write-ups published About: About me"}, {"post_id": 72261, "ts": "2026-09-22T15:26:22Z", "hours": 0.6508, "text": "Making one of the final changes to my website! Most of the work is done, yet some key points are left. Today I worked on linking the tabs better, improving the individual webpages, and fixing the navigation bar. Learnt about the meta property tag! :D"}, {"post_id": 71778, "ts": "2026-09-21T15:07:48Z", "hours": 0.6833, "text": "Right now I’m making my page about a current project I’m working on. It’s about making a robot. I’m planning to make two robots: one is the leader and the other is the follower. Whatever movement the leader does, the follower will also do. I’m still currently making the robot so as I make it I will also update the page about the robot on my website. I’m thinking about including a description of the robot, a few photos, a video of it in action, some code snippets, and a link to its GitHub repository. Learning how to make buttons in HTML for this webpage. If I can, I’ll also add a photo of my entire team who is building the robots."}, {"post_id": 71307, "ts": "2026-09-20T16:35:50Z", "hours": 0.8908, "text": "Making the About Me section. Will have my skills, achievements, personality, and a brief introduction to my website. I experimented with various HTML and CSS tags, like & and . Trying to make a menu/ mind map of my personality and skills. I think we use frames for that… Once it’s done, I will move on to making my individual skill pages. Stay tuned for more devlogs! :D"}, {"post_id": 70059, "ts": "2026-09-18T11:24:18Z", "hours": 0.4542, "text": "A website showing my hobbies, personality, skills and more fun things. :D"}]...
|
Title: My own site! by @Nivedh_Govil | Stardance
Title: My own site! by @Nivedh_Govil | Stardance
Devlogs:
A website showing my hobbies, personality, skills and more fun things. :D
Making the About Me section. Will have my skills, achievements, personality, and a brief introduction to my website. I experimented with various HTML and CSS tags, like & and . Trying to make a menu/ mind map of my personality and skills. I think we use frames for that… Once it’s done, I will move on to making my individual skill pages. Stay tuned for more devlogs! :D
Right now I’m making my page about a current project I’m working on. It’s about making a robot. I’m planning to make two robots: one is the leader and the other is the follower. Whatever movement the leader does, the follower will also do. I’m still currently making the robot so as I make it I will also update the page about the robot on my website. I’m thinking about including a description of the robot, a few photos, a video of it in action, some code snippets, and a link to its GitHub repository. Learning how to make buttons in HTML for this webpage. If I can, I’ll also add a photo of my entire team who is building the robots.
Making one of the final changes to my website! Most of the work is done, yet some key points are left. Today I worked on linking the tabs better, improving the individual webpages, and fixing the navigation bar. Learnt about the meta property tag! :D
Completed my personal website! After several hours of coding in VSCode, I am joyful to say that it’s ready. The only thing that’s left is for you to see it! Features: Home: About the website and the main nav bar. Engineering: My circuits, hardware projects, PCBs, CAD drawings. Art: Some of my drawings. Literary: My essays, stories, articles and write-ups published About: About me
Ships:
I have made my own personal website, and I’m really happy that I made one because I have been wanting this for a really long time. Now that I have learned the basics of web development, I got to see my dream come true. Something challenging was the CSS and the JavaScript so I used a bit of AI for help on that....
|
1793685110.3025682
|
1793771510.3025682
|
|
62253
|
GingGong OS by @Tanojimo | Stardance
|
Tanojimo
|
1
|
5.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-24T14:52:55Z", "hours": 5.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "GingGong OS, A really weird name I must admit. This is a WebOS that I build to learn about HTML, CSS and JS. It has been great building this thing. I got to learn All the basics. I had fun seeing my idea coming to life after around a 5 hour grind. I think I’ll continue to work on this project and make it even more polished.", "repo": "https://github.com/boomertanjim/GingGongOS", "demo": "https://boomertanjim.github.io/GingGongOS/"}]...
|
[{"post_id": 73159, "ts": "202 [{"post_id": 73159, "ts": "2026-09-24T14:44:30Z", "hours": 0.2908, "text": "Did some final tweaks here: Added a hover effect in the taskbar apps Added the feature to resize Windows Added Storage, so your todo’s don’t get lost when you reload the page"}, {"post_id": 73121, "ts": "2026-09-24T13:09:42Z", "hours": 4.0661, "text": "Kind of did almost everything in this build: Added movable Windows Added Three new apps, To-do App, Notepad app and Image Viewer App Added a cool looking clock in the middle"}, {"post_id": 68228, "ts": "2026-09-14T18:56:06Z", "hours": 0.5389, "text": "Devlog #1 Today I worked out the basics. Setting up the project actually took a while as I am new to this. Then I placed a Background, Added a taskbar with placeholder logo (Yes, I love godot) for the windows button. Future plans: adding movable windows"}]...
|
Title: GingGong OS by @Tanojimo | Stardance
Devlo Title: GingGong OS by @Tanojimo | Stardance
Devlogs:
Devlog #1 Today I worked out the basics. Setting up the project actually took a while as I am new to this. Then I placed a Background, Added a taskbar with placeholder logo (Yes, I love godot) for the windows button. Future plans: adding movable windows
Kind of did almost everything in this build: Added movable Windows Added Three new apps, To-do App, Notepad app and Image Viewer App Added a cool looking clock in the middle
Did some final tweaks here: Added a hover effect in the taskbar apps Added the feature to resize Windows Added Storage, so your todo’s don’t get lost when you reload the page
Ships:
GingGong OS, A really weird name I must admit. This is a WebOS that I build to learn about HTML, CSS and JS. It has been great building this thing. I got to learn All the basics. I had fun seeing my idea coming to life after around a 5 hour grind. I think I’ll continue to work on this project and make it even more polished....
|
1793685015.6256902
|
1793771415.6256902
|
|
63865
|
Discord Bot by @inatlusnamor | Stardance
|
inatlusnamor
|
1
|
6.0
|
74
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-24T15:41:55Z", "hours": 6.0, "multiplier": 10.91, "payout": 74, "blessing": "neutral", "text": "I made a discord bot that is integrated into my website. The discord bot starts up with a slash command such as /add-gallery then it takes the parameters then it takes the current cards and appends it onto the end of it and adds the json to the github repo. After that the website adds the card without me or my members having to touch the website. What challenged me was making the pipeline from discord to github seamless and without errors but I did it. I am proud of making something that I have never seen online or anywhere. You can see the results of it in the website! I don’t really have the picture here But you can see it in the devlogs because I’m at school lol!", "repo": "https://github.com/Romanhery/hackclub-discord-bot", "demo": "https://discord.gg/8ZpQntd3Y"}]...
|
[{"post_id": 73146, "ts": "202 [{"post_id": 73146, "ts": "2026-09-24T14:13:54Z", "hours": 0.67, "text": "Devlog #4 *So previously I was struggling to get my embeds and my guides command to work but now I have officially made these work and they work! Updated List of Features /add-gallery to add a project to the gallery page /add-guide to add a new guide card After the slash commands an embed is sent and it looks very good!"}, {"post_id": 72866, "ts": "2026-09-23T21:53:10Z", "hours": 0.2892, "text": "I made IT WORK now I officially made the embed work for the addition to the gallery Im in school so I dont have access to discord to show it but once i go home Im gonna add a screenshot! But here is the code for it"}, {"post_id": 72531, "ts": "2026-09-23T04:44:25Z", "hours": 0.6836, "text": "I am still working on getting the embed to show up after the command has happened still working to fix it ! I tried some things that I think will work wish me luck! (PS) Still testing these are new pictures"}, {"post_id": 72521, "ts": "2026-09-23T03:55:40Z", "hours": 0.5669, "text": "So Right now I am stuck trying to make it so that after I uplaod my project to the discord bot then it sends to my websites gallery AND and it sends an embed so that it looks cool and it is a gallery inside of the discord server. (PS) These pictures are just me testing embed none of them have worked lol! Still tryna figure it out maybe it might because it takes too much time and its disconnecting?"}, {"post_id": 72450, "ts": "2026-09-23T00:25:25Z", "hours": 3.4286, "text": "Adding new feature on my discord bot! This is just a post to log the past hours I forgot to log but I am ready to add a new feature to my discord bot!"}]...
|
Title: Discord Bot by @inatlusnamor | Stardance
D Title: Discord Bot by @inatlusnamor | Stardance
Devlogs:
Adding new feature on my discord bot! This is just a post to log the past hours I forgot to log but I am ready to add a new feature to my discord bot!
So Right now I am stuck trying to make it so that after I uplaod my project to the discord bot then it sends to my websites gallery AND and it sends an embed so that it looks cool and it is a gallery inside of the discord server. (PS) These pictures are just me testing embed none of them have worked lol! Still tryna figure it out maybe it might because it takes too much time and its disconnecting?
I am still working on getting the embed to show up after the command has happened still working to fix it ! I tried some things that I think will work wish me luck! (PS) Still testing these are new pictures
I made IT WORK now I officially made the embed work for the addition to the gallery Im in school so I dont have access to discord to show it but once i go home Im gonna add a screenshot! But here is the code for it
Devlog #4 *So previously I was struggling to get my embeds and my guides command to work but now I have officially made these work and they work! Updated List of Features /add-gallery to add a project to the gallery page /add-guide to add a new guide card After the slash commands an embed is sent and it looks very good!
Ships:
I made a discord bot that is integrated into my website. The discord bot starts up with a slash command such as /add-gallery then it takes the parameters then it takes the current cards and appends it onto the end of it and adds the json to the github repo. After that the website adds the card without me or my members having to touch the website. What challenged me was making the pipeline from discord to github seamless and without errors but I did it. I am proud of making something that I have never seen online or anywhere. You can see the results of it in the website! I don’t really have the picture here But you can see it in the devlogs because I’m at school lol!...
|
1793685185.4955604
|
1793771585.4955604
|