|
55067
|
Word Chains by @Chicken502 | Stardance
|
Chicken502
|
3
|
49.0
|
945
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-24T20:47:52Z", "hours": 19.0, "multiplier": 19.82, "payout": 444, "blessing": "neutral", "text": "WordChains V0.5b is here! I’ve added a lot of new features since the last ship! Its been a fun couple of months since I started this project, and I’ve learned a lot. New Features : Timed mode, 200 more puzzles, Dictionary look up feature, level reset, and lots of bug fixes. One feature that was highly requested from the last ship was the level reset feature, so players didn’t have to spam the undo button, which is what I figured they would do, so I didn’t bother adding it. But so many people mentioned it would be nice, I went ahead and added it. How to play Word Chains is very simple: drag a letter onto the current word to change it into a new word. Your trying to get to the target word. (if this sounds a bit complicated don’t worry there is a tutorial) Lastly… Thanks for play, and I hope you have fun! If you want to follow the project after stardance ends, go follow on itch.io !", "repo": "https://github.com/Chiken502/WordChains", "demo": "https://chicken502.itch.io/word-chains"}, {"ship_num": 2, "ts": "2026-09-24T21:13:23Z", "hours": 22.0, "multiplier": 18.45, "payout": 403, "blessing": "neutral", "text": "Word Chains V0.4b is out! Since the last ship I’ve been working very hard to add a whole slew of features. There is now 200 new levels, daily puzzles and a tutorial (very requested last ship!). I had a lot of fun making this, and I hope you have a lot of fun playing it! The main part of this ship was rewriting the level loading code, and generating files for levels. I didn’t want to write 200 puzzles by hand. I found did some research and wrote a small script to generate the puzzles for me. I do eventually want to add more to Word Chains after this ship but it probably won’t be for a little while as I have other projects I want to work on. But the end goal is to get Word Chains onto a app store. Last Note: When reviewing please do not feel like you need to complete all the levels, and have fun!", "repo": "https://github.com/Chiken502/WordChains", "demo": "https://chicken502.itch.io/word-chains"}, {"ship_num": 3, "ts": "2026-09-06T14:26:12Z", "hours": 8.0, "multiplier": 12.68, "payout": 98, "blessing": "neutral", "text": "I just finished making a small word puzzle game called Word Chains. To play, you drag letters to change your current word one letter at a time! There are 15 different levels with a wide range of difficulty. This game was originally intended to be played on a phone, but getting it on to the app stores is a little out of my league right now, although you can still play the itch version on your phone, but maybe next year Ill get it onto a app store! I had a lot of fun making this project and I might add some more things later like daily puzzles or more color options. I started this project before I found hack club so sadly not all my hours are accounted for. This was really fun to work on this project and show it of to my friends. I learned more about marketing my games with devlogs, and learned that after 5 years of making games with Godot, I’ve been exporting them to the web wrong this whole time! Thanks so much for taking the time to check this project out! Can’t wait to see what everyone thinks!", "repo": "https://github.com/Chiken502/WordChains", "demo": "https://chicken502.itch.io/word-chains"}]...
|
[{"post_id": 82339, "ts": "202 [{"post_id": 82339, "ts": "2026-10-24T16:29:37Z", "hours": 0.6861, "text": "Readme Updates and another +200 Puzzles This is the final devlog for WordChains v0.5b! Only a couple things were changed, one of which being adding another 200 Puzzles! This brings us up to 400 Puzzles in total (not including daily puzzles). Other than that I just made some small README updates and officially changed the version number to v0.5b! Thanks to everyone following the project so far! If you want to continue to follow this project after stardance ends, you can go follow it on itch.io ! Thanks for everyone’s feedback and support! WordChains will be shipped latter today!"}, {"post_id": 81908, "ts": "2026-10-22T23:04:41Z", "hours": 1.9497, "text": "New Hint Mechanic and BUGS! As I’m nearing the end of this project (or at least this version) I’ve been doing a lot of bug fixing . This time around I squashed a major bug that has been annoying me for some time now. For some reason, Godot doesn’t have native keyboard support for IOS devices, unless you go into the advanced export settings and turn them on. And since there are text boxes for writing your nickname, this is kinda needed. Hint rewarding changed This is a feature that I’ve been intending to add for a couple weeks now. In the past every time you complete a level, you gain an new hint. Now you get hints after completing a set number of puzzles. Each difficulty has a different value for this as well. So it takes less completed puzzles on difficult puzzles than on easy puzzles to earn hints. With this I also added a small animation to show that you got a new hint! Secret Solutions This was not an intended feature that I meant to add. But its hear to stay! Recently I changed how puzzles are generated , by using a cleaned up dictionary, that only has more frequently used words. But I still let the user make connections with less frequent words, so sometimes its possible to find shorter solutions then intended . This used to leave the leftover letters behind to use on the next puzzle which messed everything up. I have now fixed this issue , and added a little message telling you that you have “Found a Secret Solution!” What’s next? Things are wrapping up , both with Stardance and WordChains. I only have two items left on my todo list , the first being to add more puzzles, which will only take a couple of minutes, and the second is a bug which I’m not sure I can even start to debug since I think it only happens on my phone, where I can’t see the console. Once I add these things, WordChains is ready to ship! I’m expecting to ship on Tuesday or Wednesday, but It might even happen over the weekend. Once Stardance is over, WordChains will still continue development. If you want to follow the devlopment, go follow it over on itch.io"}, {"post_id": 80845, "ts": "2026-10-19T00:18:28Z", "hours": 3.6275, "text": "Stats and game reset. Finally got around to making the stats page. You can now see stats like how many puzzles you have completed, how many hints you’ve used and even how many times you have dragged a letter. This wasn’t to hard to add although it did take a little while. Reset game Now you can wipe your save file to replay levels. The also wasn’t anything to difficult to do but it ended up take about an hour to figure out how to style the confirmation pop up. This did show me a couple things that needed fixing regarding the tutorial, and even some stat tracking that I coded in wrong. What’s next! We have some small bug fixes that need to be made, and some other small features like adding more settings, compressing the puzzle files so they don’t get to big later on, and some small sound design changes. From there all that needs to be done is some formatting and spelling checks (cause I am terrible at spelling) and updating the README, then we are ready to SHIP!!!"}, {"post_id": 80156, "ts": "2026-10-16T13:17:16Z", "hours": 1.2933, "text": "Puzzle Generation Overhaul Not a lot to say about this other than there are 200 new puzzles (just changed them out though)! I created a new python script that uses python libraries wordfreq and better_profanity , to clean up the generation dictionary. What this does is takes out words that are to infrequently used or are marked as profanity. One thing to note is that this is not the dictionary in game that this cleans. It just cleans the dictionary that I use to generate puzzles . So in game it is still possible to spell obscure words, which opens the opportunity to find alternant solutions. Another thing that I added to my puzzle selector script was the ability to append new puzzles to a file allowing me to later add more puzzles very easily. What’s next? I plan on doing some more puzzle generation tweaks , as well as adding in a stats page! That’s most of what’s on the timeline, so were getting near the end!"}, {"post_id": 78868, "ts": "2026-10-11T20:18:16Z", "hours": 3.7161, "text": "New UI! The main menu has been changed, and some new features are coming soon! Dictionary Polishing I added in some much needed polishing to the dictionary panel that added in yesterday. I added a loading panel as it used to just show the previous term you looked up, then jumped to the new one when it loaded. Currently its just a progress bar with a small animation to it, but it works for now. I’m also thinking about reusing it in other areas too. New Credit Screen! I’ve been wanting to change the credits screen for a while now, as its just been a static wall of text. For right now it mostly still is a static wall of text. But with more stuff! I have some tweens when you hover over the text which was missing in the old version. I’m not entirely happy with this one, but its still much better. New Main Menu Buttons! What are those about? Added two new buttons. One for level select, and one for a stats page (not added yet! but soon). Now when you press the big play button you go to the last level you were playing, instead of level select. What’s next for Word Chains I have some plans for what’s next for Word Chains, like a stats page! I’m also planning some new puzzles."}, {"post_id": 78421, "ts": "2026-10-10T19:19:56Z", "hours": 4.1831, "text": "#New Dictionary Feature & Bug Fixes! We are back! School finally caught up to me so things slowed down over the last week, but I think I’m back! So lets get started! New Dictionary Feature One thing I’ve wanted to add for a while was a way to look up the definition for the current word . So now using a this free API I added this feature. It still has some small polishing things that need to be done but overall it pretty much done. Bug Fixes I also took some time todo some bug fixing. Most of them originated from added the Timed Mode like leaderboards displaying scores incorrectly and medium difficulty level progress being saved in timed mode. Another bug that I fixed was UI scaling . When you play WordChains on a phone, the buttons and everything can be really small. It only took some changes to the project settings but it was very needed as the end goal is for WordChains to be on the app store! ##Puzzle Generation One small thing that I also worked on was making levels more normal. The way levels are generated is by picking random words from the dictionary that I’m using, and seeing if they connect. This gets us to have some really weird words. I wrote a little program in python to clean up the words but checking if the word use frequency was above a certain level. This hasn’t been implemented yet but it hopefully will be in the coming week. Thanks for reading! I’ve been trying to put more effort into these devlogs , plus I haven’t posted in over a week so wanted to let everyone know what’s going on with WordChains! If you want to play it you can do so here although this version doesn’t have all the new features yet . You can follow the project to be notifed when it does though!"}, {"post_id": 75232, "ts": "2026-09-29T15:20:11Z", "hours": 1.5033, "text": "Timed Mode What’s new Added new timed mode , where you have 90 seconds to complete as many medium difficulty levels as you can. Then your score gets submitted to a leaderboard . This was not very difficult to add but I didn’t have a lot of time, so it’s very unpolished right now. I need some balancing and some tweens to add to it. There is also a lot of bugs that I think I introduce that I get to go hunt for later today. YIPPEE! Whats coming up soon Puzzle generation rehaul. The way I created all 200 levels for WordChains is through a algorithm that hunts through every possible puzzle combination that could be made from the dictionary that I’m using. This worked for the last shift but It wont work in the long run as some puzzles just have completely random words that don’t seem like they are really words. In other words I think I need to update the dictionary that the algorithm takes from."}, {"post_id": 74604, "ts": "2026-09-27T19:09:55Z", "hours": 1.6953, "text": "Level Reset Button Just shipped! I just got the reviews in for the last ship, and things were very positive! There were a couple little bugs that people found as well as a lot of people wanting one feature: a level reset button! So I added one! What’s coming up in the future Based on recent feedback, I want to continue working on this game with the end goal of publishing WordChains into the Apple App Store . So here are some of the features that are coming soonish: Timed Mode : See how many levels you can complete in a set amount of time. Daily Streak and Personal Records : Keep track of everything. EVEN MORE PUZZLES : But also working on condensing the puzzle files, and imporving the quality of the puzzles, as currently some of the words are really random, which make the puzzle a bit tricky Better Credits Screen(?) : I want to improve the current credits screen, to add more personality so its not just a wall of text. This isn’t a necessary feature but something that I would like to add."}, {"post_id": 72901, "ts": "2026-09-24T00:02:32Z", "hours": 1.2467, "text": "Last touches! Planning on shipping tomorrow, so finished up some small things. I added a label to the top of the game screen to tell you what level you are currently on. The other big thing I did was update the README with all the updates in the new version. All I have to do tomorrow is hit ship!"}, {"post_id": 72457, "ts": "2026-09-23T00:46:57Z", "hours": 2.2489, "text": "Documentation Took some time to update/add documentation to most of the scripts. I haven’t done this for a very long time, and since the project will likely be shipped very soon, they should be intelligible. Also took some time to update some images in the README to reflect recent updates."}, {"post_id": 71531, "ts": "2026-09-21T00:48:06Z", "hours": 6.2325, "text": "200 NEW LEVELS! Yes you are reading that right folks! 200 new levels (and the ability to easily add tons more) have been added to Word Chains! A while ago for the daily puzzle creation I created some algorithms to create a list of puzzles from all the words in the dictionary that I’m using, and then randomly select some. I ended up generating 4,125,015 puzzles with word lengths of 4-8 letters . I then generated difficulties and selected 50 per each difficulty. I then created this new UI for the level select screen . I then wasted an hour trying to find a very small bug that was caused by my over complicated code! Where in the home stretch now and word chains is almost ready to be shipped!"}, {"post_id": 69418, "ts": "2026-09-17T00:42:52Z", "hours": 1.68, "text": "New Settings and Color! Added Teal as a color! I want to add more colors, but I’ve used most of the rainbow now so don’t know how many more will be coming. I also added the ability to change your leaderboard display name , and the ability to replay the tutorial . These can both be found in the settings page. Getting the leaderboard display name to change was actually more challenging than I thought it would be due to a bug in the Godot CheddaBoard SDK that I was using, but the updated Github had a version that worked! One thing to note about changing the display name: The change will not appear on the leaderboard until the next time you submit a score, or in other words till the next day."}, {"post_id": 68375, "ts": "2026-09-15T00:59:59Z", "hours": 2.6225, "text": "Leaderboard and Daily Puzzles Complete! Got the leaderboard to work and finished up some polishing touches to this leaderboard screen. The big challenge today was getting the chosen nickname to save and be used , then not prompt for it again (although I’m planning on being able to change it in settings later). I also changed my API that I was using to get the time, so I could get the correct daily puzzle, to UTC to align with CheddaBoards daily reset for my leaderboard. Another big thing was you can now only play the daily puzzle once ! This took a bit longer than I would have liked, but oh well!"}, {"post_id": 67742, "ts": "2026-09-13T23:45:07Z", "hours": 5.4233, "text": "Daily Puzzle and Leaderboard(kinda) Today was all about the daily puzzles. I generated a list of about 360 puzzles, then used an API to fetch the day of the year, and got the puzzle at that index. All in all that part was super easy! But the leaderboards, not so much. They are still being worked on in fact! I’m trying to use a service called CheddaBoards but I keep running into random issues that shouldn’t be issues. I think I’m just going to switch my leaderboard service, and rewrite all the code. But I need a break today, as 5 hours is a lot of coding for me."}, {"post_id": 66015, "ts": "2026-09-11T15:31:23Z", "hours": 1.6583, "text": "Tutorial and New Color One piece of feedback that I got from playtesting was to add a tutorial . So I made it so when you first play the game, the tutorial mode is activated. This shows a hand that will show you how to drag the letters. If you need the animation to replay you can use the hint button at no cost. Another quick thing I added was a new color, Green ! It might be tweeked in the future but for now I’m happy with it."}, {"post_id": 65611, "ts": "2026-09-10T21:06:12Z", "hours": 0.7383, "text": "Updated Repo Organization and README Last week I shipped Word Chains, and the reviews are back! People seem to like it and even 4 minuets before logged on to post this devlog, Word Chains was given a Super Star! Wow! Thanks everyone! Feedback from the ship was amazing, although there were some comments about a couple things, like the repo being messy. This is what I worked on today was cleaning up the repo and adding some more stuff to the README like update notes, and the project’s file structure. In the near future I plan on adding a couple things like… daily puzzles with leaderboards, a actual tutorial, new colors and more!"}, {"post_id": 62935, "ts": "2026-09-06T14:09:04Z", "hours": 0.5508, "text": "v0.3b Finished! I just uploaded the v0.3b builds to by itch page so you can play with all the new updates here ! This update added the new level select screen and the 5 new levels. I added a couple little tweeks this morning before finally uploading everything to itch.io. And for the first time I created a Windows and Linux builds, which went much smoother than I thought."}, {"post_id": 62534, "ts": "2026-09-05T23:22:18Z", "hours": 3.0839, "text": "Level Select Screen Finally took the time to create a working level select screen! This was one of the last big features that I have to add to this game before I ship it. In order to make this, I had to redo the way I saved the game, and needed to change some stuff on my color changing code. If you haven’t noticed from my devlogs, One of the options in the settings, is to change the games color. That was made before I came across HackClub so sadly I don’t get credit for the multiple hours that it took to make that feature."}, {"post_id": 58165, "ts": "2026-08-30T15:01:32Z", "hours": 1.7544, "text": "Bug fixes and new levels! Added 5 new levels into the game, but a little concerned with the difficulty scaling so far. I’ve also added some squash and stretch to the letters when you drag them, which was a bit tricky to figure out how to do with my code base so far. If you want to check it you you can do so here ."}, {"post_id": 57616, "ts": "2026-08-29T20:31:48Z", "hours": 1.6956, "text": "Bug Fixing plus new splash screen audio! One big issue I had was that the icons in the web build weren’t rendering correctly. If you look in the screenshot, the icons I’m talking about are the check box, the slider grabbers, etc.. The big problem I had was I was trying to read a file that was not able to be read at runtime on the web build due to them being compressed into a .pck file by Godot. The way I got around this is by adding .txt to the end of the file. I also found some sound effects for the splash screen that I’m using, so I added that today as well. If you want to play this game the beta version is on itch.io at https://chicken502.itch.io/word-chains"}, {"post_id": 56293, "ts": "2026-08-28T00:35:53Z", "hours": 0.7311, "text": "First update to my game! I just found out about HackClub, and ive been working on this project for a couple of weeks. This is my first update here! I just added fullscreen support for my game WordChains! I made everything auto scale to the window size, and when the window is resized, letters that are now off the screen get respawned instead of just snaping to the edge."}]...
|
Title: Word Chains by @Chicken502 | Stardance
Dev Title: Word Chains by @Chicken502 | Stardance
Devlogs:
First update to my game! I just found out about HackClub, and ive been working on this project for a couple of weeks. This is my first update here! I just added fullscreen support for my game WordChains! I made everything auto scale to the window size, and when the window is resized, letters that are now off the screen get respawned instead of just snaping to the edge.
Bug Fixing plus new splash screen audio! One big issue I had was that the icons in the web build weren’t rendering correctly. If you look in the screenshot, the icons I’m talking about are the check box, the slider grabbers, etc.. The big problem I had was I was trying to read a file that was not able to be read at runtime on the web build due to them being compressed into a .pck file by Godot. The way I got around this is by adding .txt to the end of the file. I also found some sound effects for the splash screen that I’m using, so I added that today as well. If you want to play this game the beta version is on itch.io at https://chicken502.itch.io/word-chains
Bug fixes and new levels! Added 5 new levels into the game, but a little concerned with the difficulty scaling so far. I’ve also added some squash and stretch to the letters when you drag them, which was a bit tricky to figure out how to do with my code base so far. If you want to check it you you can do so here .
Level Select Screen Finally took the time to create a working level select screen! This was one of the last big features that I have to add to this game before I ship it. In order to make this, I had to redo the way I saved the game, and needed to change some stuff on my color changing code. If you haven’t noticed from my devlogs, One of the options in the settings, is to change the games color. That was made before I came across HackClub so sadly I don’t get credit for the multiple hours that it took to make that feature.
v0.3b Finished! I just uploaded the v0.3b builds to by itch page so you can play with all the new updates here ! This update added the new level select screen and the 5 new levels. I added a couple little tweeks this morning before finally uploading everything to itch.io. And for the first time I created a Windows and Linux builds, which went much smoother than I thought.
Updated Repo Organization and README Last week I shipped Word Chains, and the reviews are back! People seem to like it and even 4 minuets before logged on to post this devlog, Word Chains was given a Super Star! Wow! Thanks everyone! Feedback from the ship was amazing, although there were some comments about a couple things, like the repo being messy. This is what I worked on today was cleaning up the repo and adding some more stuff to the README like update notes, and the project’s file structure. In the near future I plan on adding a couple things like… daily puzzles with leaderboards, a actual tutorial, new colors and more!
Tutorial and New Color One piece of feedback that I got from playtesting was to add a tutorial . So I made it so when you first play the game, the tutorial mode is activated. This shows a hand that will show you how to drag the letters. If you need the animation to replay you can use the hint button at no cost. Another quick thing I added was a new color, Green ! It might be tweeked in the future but for now I’m happy with it.
Daily Puzzle and Leaderboard(kinda) Today was all about the daily puzzles. I generated a list of about 360 puzzles, then used an API to fetch the day of the year, and got the puzzle at that index. All in all that part was super easy! But the leaderboards, not so much. They are still being worked on in fact! I’m trying to use a service called CheddaBoards but I keep running into random issues that shouldn’t be issues. I think I’m just going to switch my leaderboard service, and rewrite all the code. But I need a break today, as 5 hours is a lot of coding for me.
Leaderboard and Daily Puzzles Complete! Got the leaderboard to work and finished up some polishing touches to this leaderboard screen. The big challenge today was getting the chosen nickname to save and be used , then not prompt for it again (although I’m planning on being able to change it in settings later). I also changed my API that I was using to get the time, so I could get the correct daily puzzle, to UTC to align with CheddaBoards daily reset for my leaderboard. Another big thing was you can now only play the daily puzzle once ! This took a bit longer than I would have liked, but oh well!
New Settings and Color! Added Teal as a color! I want to add more colors, but I’ve used most of the rainbow now so don’t know how many more will be coming. I also added the ability to change your leaderboard display name , and the ability to replay the tutorial . These can both be found in the settings page. Getting the leaderboard display name to change was actually more challenging than I thought it would be due to a bug in the Godot CheddaBoard SDK that I was using, but the updated Github had a version that worked! One thing to note about changing the display name: The change will not appear on the leaderboard until the next time you submit a score, or in other words till the next day.
200 NEW LEVELS! Yes you are reading that right folks! 200 new levels (and the ability to easily add tons more) have been added to Word Chains! A while ago for the daily puzzle creation I created some algorithms to create a list of puzzles from all the words in the dictionary that I’m using, and then randomly select some. I ended up generating 4,125,015 puzzles with word lengths of 4-8 letters . I then generated difficulties and selected 50 per each difficulty. I then created this new UI for the level select screen . I then wasted an hour trying to find a very small bug that was caused by my over complicated code! Where in the home stretch now and word chains is almost ready to be shipped!
Documentation Took some time to update/add documentation to most of the scripts. I haven’t done this for a very long time, and since the project will likely be shipped very soon, they should be intelligible. Also took some time to update some images in the README to reflect recent updates.
Last touches! Planning on shipping tomorrow, so finished up some small things. I added a label to the top of the game screen to tell you what level you are currently on. The other big thing I did was update the README with all the updates in the new version. All I have to do tomorrow is hit ship!
Level Reset Button Just shipped! I just got the reviews in for the last ship, and things were very positive! There were a couple little bugs that people found as well as a lot of people wanting one feature: a level reset button! So I added one! What’s coming up in the future Based on recent feedback, I want to continue working on this game with the end goal of publishing WordChains into the Apple App Store . So here are some of the features that are coming soonish: Timed Mode : See how many levels you can complete in a set amount of time. Daily Streak and Personal Records : Keep track of everything. EVEN MORE PUZZLES : But also working on condensing the puzzle files, and imporving the quality of the puzzles, as currently some of the words are really random, which make the puzzle a bit tricky Better Credits Screen(?) : I want to improve the current credits screen, to add more personality so its not just a wall of text. This isn’t a necessary feature but something that I would like to add.
Timed Mode What’s new Added new timed mode , where you have 90 seconds to complete as many medium difficulty levels as you can. Then your score gets submitted to a leaderboard . This was not very difficult to add but I didn’t have a lot of time, so it’s very unpolished right now. I need some balancing and some tweens to add to it. There is also a lot of bugs that I think I introduce that I get to go hunt for later today. YIPPEE! Whats coming up soon Puzzle generation rehaul. The way I created all 200 levels for WordChains is through a algorithm that hunts through every possible puzzle combination that could be made from the dictionary that I’m using. This worked for the last shift but It wont work in the long run as some puzzles just have completely random words that don’t seem like they are really words. In other words I think I need to update the dictionary that the algorithm takes from.
#New Dictionary Feature & Bug Fixes! We are back! School finally caught up to me so things slowed down over the last week, but I think I’m back! So lets get started! New Dictionary Feature One thing I’ve wanted to add for a while was a way to look up the definition for the current word . So now using a this free API I added this feature. It still has some small polishing things that need to be done but overall it pretty much done. Bug Fixes I also took some time todo some bug fixing. Most of them originated from added the Timed Mode like leaderboards displaying scores incorrectly and medium difficulty level progress being saved in timed mode. Another bug that I fixed was UI scaling . When you play WordChains on a phone, the buttons and everything can be really small. It only took some changes to the project settings but it was very needed as the end goal is for WordChains to be on the app store! ##Puzzle Generation One small thing that I also worked on was making levels more normal. The way levels are generated is by picking random words from the dictionary that I’m using, and seeing if they connect. This gets us to have some really weird words. I wrote a little program in python to clean up the words but checking if the word use frequency was above a certain level. This hasn’t been implemented yet but it hopefully will be in the coming week. Thanks for reading! I’ve been trying to put more effort into these devlogs , plus I haven’t posted in over a week so wanted to let everyone know what’s going on with WordChains! If you want to play it you can do so here although this version doesn’t have all the new features yet . You can follow the project to be notifed when it does though!
New UI! The main menu has been changed, and some new features are coming soon! Dictionary Polishing I added in some much needed polishing to the dictionary panel that added in yesterday. I added a loading panel as it used to just show the previous term you looked up, then jumped to the new one when it loaded. Currently its just a progress bar with a small animation to it, but it works for now. I’m also thinking about reusing it in other areas too. New Credit Screen! I’ve been wanting to change the credits screen for a while now, as its just been a static wall of text. For right now it mostly still is a static wall of text. But with more stuff! I have some tweens when you hover over the text which was missing in the old version. I’m not entirely happy with this one, but its still much better. New Main Menu Buttons! What are those about? Added two new buttons. One for level select, and one for a stats page (not added yet! but soon). Now when you press the big play button you go to the last level you were playing, instead of level select. What’s next for Word Chains I have some plans for what’s next for Word Chains, like a stats page! I’m also planning some new puzzles.
Puzzle Generation Overhaul Not a lot to say about this other than there are 200 new puzzles (just changed them out though)! I created a new python script that uses python libraries wordfreq and better_profanity , to clean up the generation dictionary. What this does is takes out words that are to infrequently used or are marked as profanity. One thing to note is that this is not the dictionary in game that this cleans. It just cleans the dictionary that I use to generate puzzles . So in game it is still possible to spell obscure words, which opens the opportunity to find alternant solutions. Another thing that I added to my puzzle selector script was the ability to append new puzzles to a file allowing me to later add more puzzles very easily. What’s next? I plan on doing some more puzzle generation tweaks , as well as adding in a stats page! That’s most of what’s on the timeline, so were getting near the end!
Stats and game reset. Finally got around to making the stats page. You can now see stats like how many puzzles you have completed, how many hints you’ve used and even how many times you have dragged a letter. This wasn’t to hard to add although it did take a little while. Reset game Now you can wipe your save file to replay levels. The also wasn’t anything to difficult to do but it ended up take about an hour to figure out how to style the confirmation pop up. This did show me a couple things that needed fixing regarding the tutorial, and even some stat tracking that I coded in wrong. What’s next! We have some small bug fixes that need to be made, and some other small features like adding more settings, compressing the puzzle files so they don’t get to big later on, and some small sound design changes. From there all that needs to be done is some formatting and spelling checks (cause I am terrible at spelling) and updating the README, then we are ready to SHIP!!!
New Hint Mechanic and BUGS! As I’m nearing the end of this project (or at least this version) I’ve been doing a lot of bug fixing . This time around I squashed a major bug that has been annoying me for some time now. For some reason, Godot doesn’t have native keyboard support for IOS devices, unless you go into the advanced export settings and turn them on. And since there are text boxes for writing your nickname, this is kinda needed. Hint rewarding changed This is a feature that I’ve been intending to add for a couple weeks now. In the past every time you complete a level, you gain an new hint. Now you get hints after completing a set number of puzzles. Each difficulty has a different value for this as well. So it takes less completed puzzles on difficult puzzles than on easy puzzles to earn hints. With this I also added a small animation to show that you got a new hint! Secret Solutions This was not an intended feature that I meant to add. But its hear to stay! Recently I changed how puzzles are generated , by using a cleaned up dictionary, that only has more frequently used words. But I still let the user make connections with less frequent words, so sometimes its possible to find shorter solutions then intended . This used to leave the leftover letters behind to use on the next puzzle which messed everything up. I have now fixed this issue , and added a little message telling you that you have “Found a Secret Solution!” What’s next? Things are wrapping up , both with Stardance and WordChains. I only have two items left on my todo list , the first being to add more puzzles, which will only take a couple of minutes, and the second is a bug which I’m not sure I can even start to debug since I think it only happens on my phone, where I can’t see the console. Once I add these things, WordChains is ready to ship! I’m expecting to ship on Tuesday or Wednesday, but It might even happen over the weekend. Once Stardance is over, WordChains will still continue development. If you want to follow the devlopment, go follow it over on itch.io
Readme Updates and another +200 Puzzles This is the final devlog for WordChains v0.5b! Only a couple things were changed, one of which being adding another 200 Puzzles! This brings us up to 400 Puzzles in total (not including daily puzzles). Other than that I just made some small README updates and officially changed the version number to v0.5b! Thanks to everyone following the project so far! If you want to continue to follow this project after stardance ends, you can go follow it on itch.io ! Thanks for everyone’s feedback and support! WordChains will be shipped latter today!
Ships:
I just finished making a small word puzzle game called Word Chains. To play, you drag letters to change your current word one letter at a time! There are 15 different levels with a wide range of difficulty. This game was originally intended to be played on a phone, but getting it on to the app stores is a little out of my league right now, although you can still play the itch version on your phone, but maybe next year Ill get it onto a app store! I had a lot of fun making this project and I might add some more things later like daily puzzles or more color options. I started this project before I found hack club so sadly not all my hours are accounted for. This was really fun to work on this project and show it of to my friends. I learned more about marketing my games with devlogs, and learned that after 5 years of making games with Godot, I’ve been exporting them to the web wrong this whole time! Thanks so much for taking the time to check this project out! Can’t wait to see what everyone thinks!
Word Chains V0.4b is out! Since the last ship I’ve been working very hard to add a whole slew of features. There is now 200 new levels, daily puzzles and a tutorial (very requested last ship!). I had a lot of fun making this, and I hope you have a lot of fun playing it! The main part of this ship was rewriting the level loading code, and generating files for levels. I didn’t want to write 200 puzzles by hand. I found did some research and wrote a small script to generate the puzzles for me. I do eventually want to add more to Word Chains after this ship but it probably won’t be for a little while as I have other projects I want to work on. But the end goal is to get Word Chains onto a app store. Last Note: When reviewing please do not feel like you need to complete all the levels, and have fun!
WordChains V0.5b is here! I’ve added a lot of new features since the last ship! Its been a fun couple of months since I started this project, and I’ve learned a lot. New Features : Timed mode, 200 more puzzles, Dictionary look up feature, level reset, and lots of bug fixes. One feature that was highly requested from the last ship was the level reset feature, so players didn’t have to spam the undo button, which is what I figured they would do, so I didn’t bother adding it. But so many people mentioned it would be nice, I went ahead and added it. How to play Word Chains is very simple: drag a letter onto the current word to change it into a new word. Your trying to get to the target word. (if this sounds a bit complicated don’t worry there is a tutorial) Lastly… Thanks for play, and I hope you have fun! If you want to follow the project after stardance ends, go follow on itch.io !...
|
1793144916.7425523
|
1793231316.7425523
|
|
8856
|
The Ares Horizon by @alomnsh | Stardance
|
alomnsh
|
2
|
48.73
|
322
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-20T03:08:53Z", "hours": 19.0, "multiplier": 11.4, "payout": 217, "blessing": "neutral", "text": "What did you make? I made The Ares Horizon, a Python space adventure game where you play as a NASA Flight Director. Since my last ship, I over-hauled the game by adding a brand-new landing minigame with 3 difficulties, branch-linked storylines, and dynamic custom themes. What was challenging? Ditching Tkinter for Pygame was tough because I had to learn the library from scratch to eliminate bugs. I also lost 5 hours failing to host it on the web via noVNC/Docker, forcing me to stick to an .exe. Fixing cross-platform crashes and making it run smoothly on Python 3.14 was a huge headache. What are you proud of? I’m proud of building a robust Pygame + Tkinter interface with zero prior experience. The settings menu features a slick volume slider that changes color dynamically, a factory reset, and a text-speed slider. I also successfully added a seamless “Try Again” tracker without long loading screens. What should people know so they can test your project? Windows: Go to the Releases page and download the The.Ares.Horizon.exe file to play instantly. Mac/Linux: Follow the new README steps to install system dependencies (sdl2) and run inside a Python virtual environment. Python 3.14: Run pip install pygame --ce to avoid compilation errors. Warning: Turn down the audio in the custom Settings menu if the default launch mix is too loud.", "repo": "https://github.com/alomnsh/The-Ares-Horizon", "demo": "https://github.com/alomnsh/The-Ares-Horizon/releases/tag/v2.0.0"}, {"ship_num": 2, "ts": "2026-06-20T17:02:20Z", "hours": 12.0, "multiplier": 9.08, "payout": 105, "blessing": "neutral", "text": "I made my own choice python adventure game where the player takes a high-stake role of a Flight Director at NASA and there objective is to successfully launch, navigate and land a spacecraft on the surface of Mars. To play the game follow the steps in the README. (The game uses Desktop-Based GUI, so it cannot be hosted on clouds and has to run on your local computer). I am proud of how I made it look cinematic and similar to a NASA mission control terminal.", "repo": "https://github.com/alomnsh/The-Ares-Horizon", "demo": "https://github.com/alomnsh/The-Ares-Horizon/releases/tag/v2.0.0"}]...
|
[{"post_id": 68726, "ts": "202 [{"post_id": 68726, "ts": "2026-09-15T17:01:15Z", "hours": 2.5175, "text": "Devlog #16, posting this while at school 🏫 What I did: Fixed bugs in my minigame, there are still some left to resolve Fixed a bug where when you press try again, it put the user directly in the story mode even if they wished to play the mingame Fixed of bug of the emergency glow, it kept glowing after u pressed try again Rewrote parts of code I used AI in Removed and added new comments to make it more clear and not so chaotic Fixed the pygbag sizing issue Last thing, I previously had my setting.json file in the .gitignore for testing purposes and I forgot about it so my settings are what were seen by others instead of the factory settings they should have seen Notes: Fix minigame Optimize for low end devices Possibly add mobile or tablet support?? Make new v3.0.0 releases?? Releases for many OS??"}, {"post_id": 53416, "ts": "2026-08-23T23:10:43Z", "hours": 8.8311, "text": "Devlog #15, this is a big one What i did: So graphics are finally in I would say New hover effects like button glowing CRT lines, I first added them, didn’t go as planned removed em it the felt dead for some reason so added that back again Light mode The major one, improved the mini-game, a lot, it take up the whole screen now instead of just a section like it was earlier, it has added particle effects, and actual landing zone, star backgroud, fuel and velocity control The mini game looks real good but there are some bugs, many I would say I am currently working on fixing sizing issues with GitHub pages, I think pygbag is causing it via my deploy.yml Notes: When the bugs are removed and the sizing issue is fixed I think I will be ready to ship once more"}, {"post_id": 40503, "ts": "2026-08-04T02:29:20Z", "hours": 6.3825, "text": "Devlog #14 What I did: So after I 2nd ship, I went to AirVenture so no code there, It ruined my streak So I have finally, finally pushed the code on the web by making it entirely pygame then I ran pygbag so it is now finally live on GitHub Pages Proud of myself, there is still some work to do like fixing bugs Notes: My ship rating reasons suggested to add graphics so currently working on that I also have to improve the loading screen, looks like shit The biggest bug was getting the character and line spacing right, funny ik"}, {"post_id": 31582, "ts": "2026-07-20T02:55:39Z", "hours": 2.7858, "text": "Devlog 13 !! What’s New: I added Reset All Settings to default button, to reset every thing to the “Factory Setting” New setting, users can adjust how fast the typewriter writes on the screen If the user passes the mini game and lands successfully, they would unlock the option to just play the minigame instead of have to go through the the whole story again Notes: I promised that I will release web, I tried, failed miserably, so I am just releasing a new .exe I tried everything to pygame , didn’t work out, then tried to host it on noVNC, it acted up to, I finally gave up after 5 hrs of trying, didn’t count that because that was trial and error and not actual coding (although I did had to make and modify my Dockerfile like a 100 times)"}, {"post_id": 29177, "ts": "2026-07-15T22:03:47Z", "hours": 2.2292, "text": "Devlog #12 !! What I did: So as u guys know I added audio controls in the previous devlog, I made it even better now The settings menu is now in pygame instead of tkinter The slider changes color as the volume is changed (It looks so cool!!!!! ) There is a new “Mute All Sounds” check box Notes: tkinter sucks, I loved it at first it was easy but as my code becomes more complex it just causes unnecessary bugs, so I plan to switch entirely to pygame After I make the switch I can finally publish it to the web so you guys don’t have to download the source code or an .exe file (I was planning to do this, I got many reviews saying that a website would be better, so I am doing that)"}, {"post_id": 26902, "ts": "2026-07-11T23:05:32Z", "hours": 1.5653, "text": "Devlog #11 !!! What I did: So I switched from ctypes to the pygame audio engine this is so when my game is played on MacOS or Linux it doesn’t throw errors because ctypes is a Windows thing Added a settings menu to control the volume of the background music and the emergency sounds. The user preferences are saved using a .json file Updated my README.md so the instructions to how to play my game on another operating system aren’t broken Thanks to my ship suggestion, I am trying my best to implement those suggestions into my game and have already done so with a few of them!! What might be coming next: I hope that I can add to the settings menu so the user can control how they want the colors to look in the game, so basically full customization."}, {"post_id": 26133, "ts": "2026-07-10T19:03:00Z", "hours": 2.0886, "text": "My first ship is finally here, after 3 changes requested, I added a try again screen so the user doesn’t have to through the loading when they try again now it just shows there tries. Thanks for the idea from my first ship."}, {"post_id": 20472, "ts": "2026-07-02T02:15:56Z", "hours": 0.4544, "text": "Fixed the bug made the buttons disappear if your screen was too small or you weren’t fullscreened"}, {"post_id": 20339, "ts": "2026-07-01T22:18:29Z", "hours": 6.5228, "text": "v2.0.0 I think?? What’s New: New Landing minigame!! 3 difficulties The minigame features SPIKES!! Improved GUI Changes: I orginally started building my game on tkinter thinking it would be easy because my rest of the code was build on it, but I was wrong, it was so annoying to work with and caused so many bugs that I decided to switch to pygame I have never worked with pygame before so I ha to learn and then figure out a way to combine tkinter and pygame . Also, pygame is not supported in Python 3.14 so I had to do pip install pygame --ce the community edition I got it to work and I am so proud The video is a bit speed up"}, {"post_id": 16038, "ts": "2026-06-26T01:44:55Z", "hours": 1.09, "text": "I cleaned up the UI and linked the Solar Sails choice in branch 2 to the ending choice of branch 1. I know I promised that the update after the SFX one would be customization but I want to focus more on the game itself so I would just be adding a Dark and Light mode. And doing more customization options later."}, {"post_id": 14716, "ts": "2026-06-23T22:26:53Z", "hours": 2.4447, "text": "v 1.0.1 is incoming!! What’s New: Switched from the package of playsound to ctypes New SFXs, listen to them in the attachment (After this update rolls out, I will be working on given the user the freedom to customize how they want the game to look) Turn up your sound to listen to the sounds I cut out the parts where I selected options so that I don’t reveal the answers, if you want to try it out your self head over The Ares Horizon Repo"}, {"post_id": 12589, "ts": "2026-06-20T15:41:49Z", "hours": 1.0719, "text": "Finished my README and fixed crash bug with typewriter when the window is closed while it is typing"}, {"post_id": 11662, "ts": "2026-06-19T00:21:39Z", "hours": 1.5231, "text": "Currently working on my README for this project and before this I just fix a few things in my code. Added a background music loop that loops the audio forever and then fixed a crash bug"}, {"post_id": 10267, "ts": "2026-06-16T22:16:48Z", "hours": 4.3747, "text": "Added GUI to my games, fixed countless errors and bugs, added a loaded screen, Made it so that the buttons are interactive and only popup when the typing is finished. Added more colors to my text. Progress bar for the points."}, {"post_id": 8857, "ts": "2026-06-14T18:59:46Z", "hours": 3.4211, "text": "Finished all the choice, added typewriter function and color function. Changed how I want the text to be displayed when the code is running. Added background music. Made the background audio in Canva"}, {"post_id": 7134, "ts": "2026-06-11T22:21:25Z", "hours": 1.2161, "text": "Added 1st Choice Branch, worked on storyline, started to work on 2nd choice branch"}]...
|
Title: The Ares Horizon by @alomnsh | Stardance
D Title: The Ares Horizon by @alomnsh | Stardance
Devlogs:
Added 1st Choice Branch, worked on storyline, started to work on 2nd choice branch
Finished all the choice, added typewriter function and color function. Changed how I want the text to be displayed when the code is running. Added background music. Made the background audio in Canva
Added GUI to my games, fixed countless errors and bugs, added a loaded screen, Made it so that the buttons are interactive and only popup when the typing is finished. Added more colors to my text. Progress bar for the points.
Currently working on my README for this project and before this I just fix a few things in my code. Added a background music loop that loops the audio forever and then fixed a crash bug
Finished my README and fixed crash bug with typewriter when the window is closed while it is typing
v 1.0.1 is incoming!! What’s New: Switched from the package of playsound to ctypes New SFXs, listen to them in the attachment (After this update rolls out, I will be working on given the user the freedom to customize how they want the game to look) Turn up your sound to listen to the sounds I cut out the parts where I selected options so that I don’t reveal the answers, if you want to try it out your self head over The Ares Horizon Repo
I cleaned up the UI and linked the Solar Sails choice in branch 2 to the ending choice of branch 1. I know I promised that the update after the SFX one would be customization but I want to focus more on the game itself so I would just be adding a Dark and Light mode. And doing more customization options later.
v2.0.0 I think?? What’s New: New Landing minigame!! 3 difficulties The minigame features SPIKES!! Improved GUI Changes: I orginally started building my game on tkinter thinking it would be easy because my rest of the code was build on it, but I was wrong, it was so annoying to work with and caused so many bugs that I decided to switch to pygame I have never worked with pygame before so I ha to learn and then figure out a way to combine tkinter and pygame . Also, pygame is not supported in Python 3.14 so I had to do pip install pygame --ce the community edition I got it to work and I am so proud The video is a bit speed up
Fixed the bug made the buttons disappear if your screen was too small or you weren’t fullscreened
My first ship is finally here, after 3 changes requested, I added a try again screen so the user doesn’t have to through the loading when they try again now it just shows there tries. Thanks for the idea from my first ship.
Devlog #11 !!! What I did: So I switched from ctypes to the pygame audio engine this is so when my game is played on MacOS or Linux it doesn’t throw errors because ctypes is a Windows thing Added a settings menu to control the volume of the background music and the emergency sounds. The user preferences are saved using a .json file Updated my README.md so the instructions to how to play my game on another operating system aren’t broken Thanks to my ship suggestion, I am trying my best to implement those suggestions into my game and have already done so with a few of them!! What might be coming next: I hope that I can add to the settings menu so the user can control how they want the colors to look in the game, so basically full customization.
Devlog #12 !! What I did: So as u guys know I added audio controls in the previous devlog, I made it even better now The settings menu is now in pygame instead of tkinter The slider changes color as the volume is changed (It looks so cool!!!!! ) There is a new “Mute All Sounds” check box Notes: tkinter sucks, I loved it at first it was easy but as my code becomes more complex it just causes unnecessary bugs, so I plan to switch entirely to pygame After I make the switch I can finally publish it to the web so you guys don’t have to download the source code or an .exe file (I was planning to do this, I got many reviews saying that a website would be better, so I am doing that)
Devlog 13 !! What’s New: I added Reset All Settings to default button, to reset every thing to the “Factory Setting” New setting, users can adjust how fast the typewriter writes on the screen If the user passes the mini game and lands successfully, they would unlock the option to just play the minigame instead of have to go through the the whole story again Notes: I promised that I will release web, I tried, failed miserably, so I am just releasing a new .exe I tried everything to pygame , didn’t work out, then tried to host it on noVNC, it acted up to, I finally gave up after 5 hrs of trying, didn’t count that because that was trial and error and not actual coding (although I did had to make and modify my Dockerfile like a 100 times)
Devlog #14 What I did: So after I 2nd ship, I went to AirVenture so no code there, It ruined my streak So I have finally, finally pushed the code on the web by making it entirely pygame then I ran pygbag so it is now finally live on GitHub Pages Proud of myself, there is still some work to do like fixing bugs Notes: My ship rating reasons suggested to add graphics so currently working on that I also have to improve the loading screen, looks like shit The biggest bug was getting the character and line spacing right, funny ik
Devlog #15, this is a big one What i did: So graphics are finally in I would say New hover effects like button glowing CRT lines, I first added them, didn’t go as planned removed em it the felt dead for some reason so added that back again Light mode The major one, improved the mini-game, a lot, it take up the whole screen now instead of just a section like it was earlier, it has added particle effects, and actual landing zone, star backgroud, fuel and velocity control The mini game looks real good but there are some bugs, many I would say I am currently working on fixing sizing issues with GitHub pages, I think pygbag is causing it via my deploy.yml Notes: When the bugs are removed and the sizing issue is fixed I think I will be ready to ship once more
Devlog #16, posting this while at school 🏫 What I did: Fixed bugs in my minigame, there are still some left to resolve Fixed a bug where when you press try again, it put the user directly in the story mode even if they wished to play the mingame Fixed of bug of the emergency glow, it kept glowing after u pressed try again Rewrote parts of code I used AI in Removed and added new comments to make it more clear and not so chaotic Fixed the pygbag sizing issue Last thing, I previously had my setting.json file in the .gitignore for testing purposes and I forgot about it so my settings are what were seen by others instead of the factory settings they should have seen Notes: Fix minigame Optimize for low end devices Possibly add mobile or tablet support?? Make new v3.0.0 releases?? Releases for many OS??
Ships:
I made my own choice python adventure game where the player takes a high-stake role of a Flight Director at NASA and there objective is to successfully launch, navigate and land a spacecraft on the surface of Mars. To play the game follow the steps in the README. (The game uses Desktop-Based GUI, so it cannot be hosted on clouds and has to run on your local computer). I am proud of how I made it look cinematic and similar to a NASA mission control terminal.
What did you make? I made The Ares Horizon, a Python space adventure game where you play as a NASA Flight Director. Since my last ship, I over-hauled the game by adding a brand-new landing minigame with 3 difficulties, branch-linked storylines, and dynamic custom themes. What was challenging? Ditching Tkinter for Pygame was tough because I had to learn the library from scratch to eliminate bugs. I also lost 5 hours failing to host it on the web via noVNC/Docker, forcing me to stick to an .exe. Fixing cross-platform crashes and making it run smoothly on Python 3.14 was a huge headache. What are you proud of? I’m proud of building a robust Pygame + Tkinter interface with zero prior experience. The settings menu features a slick volume slider that changes color dynamically, a factory reset, and a text-speed slider. I also successfully added a seamless “Try Again” tracker without long loading screens. What should people know so they can test your project? Windows: Go to the Releases page and download the The.Ares.Horizon.exe file to play instantly. Mac/Linux: Follow the new README steps to install system dependencies (sdl2) and run inside a Python virtual environment. Python 3.14: Run pip install pygame --ce to avoid compilation errors. Warning: Turn down the audio in the custom Settings menu if the default launch mix is too loud....
|
1793141430.2155318
|
1793227830.2155318
|
|
31355
|
Adobe AE on a shoestring budget (updated) by @Adam Adobe AE on a shoestring budget (updated) by @Adam_Lotfalla | Stardance...
|
Adam_Lotfalla
|
0
|
48.73
|
0
|
[]
|
[{"post_id": 79648, "ts": "202 [{"post_id": 79648, "ts": "2026-10-14T21:16:53Z", "hours": 0.8606, "text": "You could try Before Effects now! This will be the Last devlog before first ship (might be as well the last ship :P ) I edited the readme and made executables for windows and linux (waiting for my friend to build it on his mac so I could have that as well). Once I have the mac build as well I will be shipping. Until then, you could try it here I commented out the test paths so users will start with an empty canvas"}, {"post_id": 73299, "ts": "2026-09-24T19:58:02Z", "hours": 4.0678, "text": "Worked on two new features. Seemed simple at the beginning, but I couldn’t help but cleaning up the code, so I introduced more problems and had to fix them :P 1. Random test paths Drawing new paths (squares with distinct colors and names) so I could test layer reordering was taking too much time. I should’ve started this so much earlier (for example before I finish working on path reordering) but it could help in the future. I will probably remove those before release, but the function is still there and I could call it anytime. 2. Path reordering from viewport using page_up , page_down , home , and end page_up : move up one layer page_down : move down one layer home : move to top end : move to bottom I plan to add buttons for those at the tool bar for the next devlog. Rabbit whole I wanted to move reorderLayer() method from the layerReordered() function (creative naming ) so I could also call it from viewport. I then had to unify the indexing logic between layerReordered() and viewport which meant more STL headaches and more sementation faults"}, {"post_id": 72584, "ts": "2026-09-23T08:56:58Z", "hours": 5.0853, "text": "Back again! This time I only worked on fixing two stubborn bugs (There might be some bug with the devlog time being too much. I will check and ask support if any). Bug #1: Layer reordering does not account for expanded layers Previously, my logic was initial_layer_index = floor(mouse_pos / layer_height target_layer_index = round(mouse_pos / layer_height since layer_height is the height of an unexpanded layer, the program thinks I’m moving the wrong layer to the wrong place. Bug #2: layer reordering does not reflect correctly in the layers_ vector. I keep forgetting that the last layer added to a vector is appended to the end, but is drawn on top of other layers. The problem was in the logic of std::rotate (had to brush up on STL for that). It caused a lot of inconsistency and crashs when reordering layers, especially when I fixed bug 1."}, {"post_id": 63647, "ts": "2026-09-07T15:52:56Z", "hours": 7.1136, "text": "Has been a long time and I wanted to break the silence. I’m honestly getting burned out and I’m not sure if I’m ready to start working on the graph editor (not even sure if the time is enough). For now, I’ve been working on layer reordering and adding some controls to the layers. New features Layer reordering from the layer hierarchy panel that reflects on the viewport Basic ability to rename a path from its corresponding layer. just click on the name Added shortcuts and tool tips for the three tools I have: B for bezier pen, N for node tool, S for select tool Planned features I want to add a tagging / color coding system where you assign a color to a layer and can filter them based on that. I want it just because it looks cool Layer groups. These should work just as normal layers but they do not correspond to a path. The idea is simple but my current spaghetti setup is not helping so I need to clean my code up I want to add a simple reordering control using the page up , page down , home , and end keys to reorder from the viewport itself Want to add a shortcut for timeline playback Space for improvement Clean up some spaghetti code. Maybe go back to drawing board (I didn’t even use one, I just went straight to coding :P ) Layer reordering does not count for if a layer was expanded shortcuts are not global, only if the viewport is active, the shortcut will work"}, {"post_id": 33548, "ts": "2026-07-23T16:13:30Z", "hours": 5.0533, "text": "Keyframe repositionaing is finally here! (the second time I attach the wrong video to the devlog) Timeline is about to be finished. Now you can select keyframes and reposition them. Press shift to add to the selection. Use the selection box to select many keyframes at once. And you can also select keyframes from multiple layers at once. some Quality of life changes Keyframe selection works by searching for the nearest keyframe inside a search radius on the same layer. At first I made it select the keyframe at the exact frame the mouse is currently at, but that became very annoying when zooming out as the frame width gets smaller. Viewport does not update in real time on every mouse move while dragging layers or keyframes, but instead uses some tricks to delay heavy operations until the the mouse button is released. One trick is to when I drag a layer, I only shift the layer drawing, but I do not commit the changes to keyframes yet. To appear as if it was live updating, I send a signal to the viewport to show the viewport a few frames later or prior than the actual current frame is. For keyframe dragging, I actually don’t have a work around. Cavalry uses some visuals like arrows to indicate how that change in keyframes corresponds to changes in viewport but I’m not sure if I’m going to implement it this way (open for suggestions) Additions Added a whilte outline to selected keyframes Click on a keyframe to select it; Click and drag to reposition it Drag over keyframes to select many keyframes using the selection box (called a rubber band) Use shift in combination of the previous two moves to add to the existing selection Time cursor now allows mouse events through instead of blocking it Made pixel level adjustments to layer resizing handles Next, I want to add layer reordering and multi-layer/multi-path selection, then I could consider the timeline milestone finished (maybe I add color coding and tags). I want to move on to the graph editor because I think I spent too much time on polishing the timeline and the event is ending soon (I don’t think 9 weeks are enough :|)"}, {"post_id": 30721, "ts": "2026-07-18T15:15:36Z", "hours": 4.3658, "text": "More layer manipulation! This was, I think, the most enjoyable coding session in stardance because coding went smoothly with almost no headaches figuring out why things do not work. It also brought many new features after many devlogs of mostly debugging. features visibility button to show/hide paths Dragging and resizing layers so the path only renderes at the given boundaries Dragging layers outside of the visible scroller area expands the scroller size (no current way of retracting it. Open for suggestions :D) Different mouse cursors for different layer manipulations I’m thinking now of two missing features of the timeline: dragging keyframes, and reordering layers, then I might consider the timeline milestone finished (maybe will need some cleaning up) and I could start on the next milestone: graph editors"}, {"post_id": 29349, "ts": "2026-07-16T07:21:06Z", "hours": 4.7458, "text": "Help needed! I just noticed that my previous devlog videos are choppy/laggy. That was because of my screen recording software (I used the Win 11 snipping tool because it was convinient). Can someone suggest a fix or something? I don’t want to install a new software if not necessary, but if you know a good one please tell me. (I used windows gamebar to record this one but I don’t like it. The color selector window is not displayed in the recording) A lot of bug fixes 🫠 I didn’t add a lot of features in this devlog, but the fixed bugs made a huge difference. I really hate debugging. You fix something that goes unnoticed if fixed but it takes the life out of you. These are some of the fixed bugs: Color keyframes were not displayed Color interpolation did not work for strokes Color selector did not update the color spinboxes Keyframes were not updating in the attribute panel or the timeline Clicking on a layer inside the scroller did not select it nor did it select the path Bound handles did not visually change the timeline Features Timeline shows color keyframes in 4 RGBA channels for both fill and stroke Bound handles make the timeline darker and give the layers a dark tint (I’m not sure about the choice of 3 colors. The margins for the scroller are the darkes; the area not covered by the bounds are lighter; and the working area is the lightest. I’m thinking of making them only 2 colors. What is your opinion?)"}, {"post_id": 27392, "ts": "2026-07-12T22:31:23Z", "hours": 2.2728, "text": "Updates to viewport I’m currently too tired of working on the timeline again, so I moved to some simple tasks (two of them were not that simple). changes Added cap styles to paths When drawing a path and pressing Enter / Return , the path is completed, and you end up with a curved line :D Choosing the bezier draw tool now deselects any paths (that was annoying, to me at least) You could now select and deselect shapes using node tool without switching to the selection tool (only difference is that you cannot rotate or scale, but you can edit individual nodes and handles)"}, {"post_id": 27156, "ts": "2026-07-12T13:39:51Z", "hours": 4.6306, "text": "Huge update to Layers! I’m proud that the program is getting more usable with updates, and more visually appealing too! The thing I’m most proud of in this update is the huge speed upgrade to the layer algorithm. First major fix is using insertWidget() instead of addWidget() . The former gets and index of the widget position in the layout instead of previously deleting the whole layout and redrawing it. Second major fix is to use a hash map to link the path to its corresponding layer. Previously, when the path asked for a layer update, it emitted a signal that iterated through all layers and updated them, now the hash table stored within the Timeline can search for that layer in O(1) instead of O(n) . the difference is more noticable when many layers are added. features Selected layer is now highlighted Expantion arrow is only displayed when there are keyframes to expand Keyframes are shown as dots on the layer itself, and as green diamonds 🔹when expanded. The dots get darker the more there are keyframes on that specific frame (Totally intended behaviour :D) Huge speed upgrade from O(n) to O(1)"}, {"post_id": 25536, "ts": "2026-07-09T21:05:30Z", "hours": 7.0417, "text": "It doesn’t look like I’ve done much, but the whole layering architecture was changed Now the layers support vertical scrolling The new architecture I place the playback controls at the top, then I split the remaining part horizontally. A vertical scroller contains the hierarchy of the layers in the left part. The right part contains a horizontal scroller that contains the tick bar The horizontal scroller contains another vertical scroller linked to the one on the left The aims were to allow vertical and horizontal scrolling on the right, but keeping the left panel and the tick bar visible. Now I have the layers_ vector, the tick bar, and the time cursor all inside the Timeline class, instead of the odd spaghetti way I did it before."}, {"post_id": 24028, "ts": "2026-07-07T09:43:53Z", "hours": 3.4944, "text": "Added a layer keyframe dropdown menu This is the first updated feature of my motion graphics software “Before Effects”. I was really annoyed by the old layer system where you know where the keyframes are, but not what attributes are keyed. This is now fixed! Features Added a default path on start so I could debug easily Added a clickable dropdown arrow. When clicked, it shows a bunch of sub-layers named by their corresponding attributes Renamed a lot of variables and functions as a result of my spaghetti-coding habits I still need to draw the keyframe diamonds on their correct sub-layers."}]...
|
Title: Adobe AE on a shoestring budget (updated) b Title: Adobe AE on a shoestring budget (updated) by @Adam_Lotfalla | Stardance
Devlogs:
Added a layer keyframe dropdown menu This is the first updated feature of my motion graphics software “Before Effects”. I was really annoyed by the old layer system where you know where the keyframes are, but not what attributes are keyed. This is now fixed! Features Added a default path on start so I could debug easily Added a clickable dropdown arrow. When clicked, it shows a bunch of sub-layers named by their corresponding attributes Renamed a lot of variables and functions as a result of my spaghetti-coding habits I still need to draw the keyframe diamonds on their correct sub-layers.
It doesn’t look like I’ve done much, but the whole layering architecture was changed Now the layers support vertical scrolling The new architecture I place the playback controls at the top, then I split the remaining part horizontally. A vertical scroller contains the hierarchy of the layers in the left part. The right part contains a horizontal scroller that contains the tick bar The horizontal scroller contains another vertical scroller linked to the one on the left The aims were to allow vertical and horizontal scrolling on the right, but keeping the left panel and the tick bar visible. Now I have the layers_ vector, the tick bar, and the time cursor all inside the Timeline class, instead of the odd spaghetti way I did it before.
Huge update to Layers! I’m proud that the program is getting more usable with updates, and more visually appealing too! The thing I’m most proud of in this update is the huge speed upgrade to the layer algorithm. First major fix is using insertWidget() instead of addWidget() . The former gets and index of the widget position in the layout instead of previously deleting the whole layout and redrawing it. Second major fix is to use a hash map to link the path to its corresponding layer. Previously, when the path asked for a layer update, it emitted a signal that iterated through all layers and updated them, now the hash table stored within the Timeline can search for that layer in O(1) instead of O(n) . the difference is more noticable when many layers are added. features Selected layer is now highlighted Expantion arrow is only displayed when there are keyframes to expand Keyframes are shown as dots on the layer itself, and as green diamonds 🔹when expanded. The dots get darker the more there are keyframes on that specific frame (Totally intended behaviour :D) Huge speed upgrade from O(n) to O(1)
Updates to viewport I’m currently too tired of working on the timeline again, so I moved to some simple tasks (two of them were not that simple). changes Added cap styles to paths When drawing a path and pressing Enter / Return , the path is completed, and you end up with a curved line :D Choosing the bezier draw tool now deselects any paths (that was annoying, to me at least) You could now select and deselect shapes using node tool without switching to the selection tool (only difference is that you cannot rotate or scale, but you can edit individual nodes and handles)
Help needed! I just noticed that my previous devlog videos are choppy/laggy. That was because of my screen recording software (I used the Win 11 snipping tool because it was convinient). Can someone suggest a fix or something? I don’t want to install a new software if not necessary, but if you know a good one please tell me. (I used windows gamebar to record this one but I don’t like it. The color selector window is not displayed in the recording) A lot of bug fixes 🫠 I didn’t add a lot of features in this devlog, but the fixed bugs made a huge difference. I really hate debugging. You fix something that goes unnoticed if fixed but it takes the life out of you. These are some of the fixed bugs: Color keyframes were not displayed Color interpolation did not work for strokes Color selector did not update the color spinboxes Keyframes were not updating in the attribute panel or the timeline Clicking on a layer inside the scroller did not select it nor did it select the path Bound handles did not visually change the timeline Features Timeline shows color keyframes in 4 RGBA channels for both fill and stroke Bound handles make the timeline darker and give the layers a dark tint (I’m not sure about the choice of 3 colors. The margins for the scroller are the darkes; the area not covered by the bounds are lighter; and the working area is the lightest. I’m thinking of making them only 2 colors. What is your opinion?)
More layer manipulation! This was, I think, the most enjoyable coding session in stardance because coding went smoothly with almost no headaches figuring out why things do not work. It also brought many new features after many devlogs of mostly debugging. features visibility button to show/hide paths Dragging and resizing layers so the path only renderes at the given boundaries Dragging layers outside of the visible scroller area expands the scroller size (no current way of retracting it. Open for suggestions :D) Different mouse cursors for different layer manipulations I’m thinking now of two missing features of the timeline: dragging keyframes, and reordering layers, then I might consider the timeline milestone finished (maybe will need some cleaning up) and I could start on the next milestone: graph editors
Keyframe repositionaing is finally here! (the second time I attach the wrong video to the devlog) Timeline is about to be finished. Now you can select keyframes and reposition them. Press shift to add to the selection. Use the selection box to select many keyframes at once. And you can also select keyframes from multiple layers at once. some Quality of life changes Keyframe selection works by searching for the nearest keyframe inside a search radius on the same layer. At first I made it select the keyframe at the exact frame the mouse is currently at, but that became very annoying when zooming out as the frame width gets smaller. Viewport does not update in real time on every mouse move while dragging layers or keyframes, but instead uses some tricks to delay heavy operations until the the mouse button is released. One trick is to when I drag a layer, I only shift the layer drawing, but I do not commit the changes to keyframes yet. To appear as if it was live updating, I send a signal to the viewport to show the viewport a few frames later or prior than the actual current frame is. For keyframe dragging, I actually don’t have a work around. Cavalry uses some visuals like arrows to indicate how that change in keyframes corresponds to changes in viewport but I’m not sure if I’m going to implement it this way (open for suggestions) Additions Added a whilte outline to selected keyframes Click on a keyframe to select it; Click and drag to reposition it Drag over keyframes to select many keyframes using the selection box (called a rubber band) Use shift in combination of the previous two moves to add to the existing selection Time cursor now allows mouse events through instead of blocking it Made pixel level adjustments to layer resizing handles Next, I want to add layer reordering and multi-layer/multi-path selection, then I could consider the timeline milestone finished (maybe I add color coding and tags). I want to move on to the graph editor because I think I spent too much time on polishing the timeline and the event is ending soon (I don’t think 9 weeks are enough :|)
Has been a long time and I wanted to break the silence. I’m honestly getting burned out and I’m not sure if I’m ready to start working on the graph editor (not even sure if the time is enough). For now, I’ve been working on layer reordering and adding some controls to the layers. New features Layer reordering from the layer hierarchy panel that reflects on the viewport Basic ability to rename a path from its corresponding layer. just click on the name Added shortcuts and tool tips for the three tools I have: B for bezier pen, N for node tool, S for select tool Planned features I want to add a tagging / color coding system where you assign a color to a layer and can filter them based on that. I want it just because it looks cool Layer groups. These should work just as normal layers but they do not correspond to a path. The idea is simple but my current spaghetti setup is not helping so I need to clean my code up I want to add a simple reordering control using the page up , page down , home , and end keys to reorder from the viewport itself Want to add a shortcut for timeline playback Space for improvement Clean up some spaghetti code. Maybe go back to drawing board (I didn’t even use one, I just went straight to coding :P ) Layer reordering does not count for if a layer was expanded shortcuts are not global, only if the viewport is active, the shortcut will work
Back again! This time I only worked on fixing two stubborn bugs (There might be some bug with the devlog time being too much. I will check and ask support if any). Bug #1: Layer reordering does not account for expanded layers Previously, my logic was initial_layer_index = floor(mouse_pos / layer_height target_layer_index = round(mouse_pos / layer_height since layer_height is the height of an unexpanded layer, the program thinks I’m moving the wrong layer to the wrong place. Bug #2: layer reordering does not reflect correctly in the layers_ vector. I keep forgetting that the last layer added to a vector is appended to the end, but is drawn on top of other layers. The problem was in the logic of std::rotate (had to brush up on STL for that). It caused a lot of inconsistency and crashs when reordering layers, especially when I fixed bug 1.
Worked on two new features. Seemed simple at the beginning, but I couldn’t help but cleaning up the code, so I introduced more problems and had to fix them :P 1. Random test paths Drawing new paths (squares with distinct colors and names) so I could test layer reordering was taking too much time. I should’ve started this so much earlier (for example before I finish working on path reordering) but it could help in the future. I will probably remove those before release, but the function is still there and I could call it anytime. 2. Path reordering from viewport using page_up , page_down , home , and end page_up : move up one layer page_down : move down one layer home : move to top end : move to bottom I plan to add buttons for those at the tool bar for the next devlog. Rabbit whole I wanted to move reorderLayer() method from the layerReordered() function (creative naming ) so I could also call it from viewport. I then had to unify the indexing logic between layerReordered() and viewport which meant more STL headaches and more sementation faults
You could try Before Effects now! This will be the Last devlog before first ship (might be as well the last ship :P ) I edited the readme and made executables for windows and linux (waiting for my friend to build it on his mac so I could have that as well). Once I have the mac build as well I will be shipping. Until then, you could try it here I commented out the test paths so users will start with an empty canvas...
|
1792587008.8346868
|
1793191808.8346868
|
|
26103
|
Tractor (Card Game) AI by @GoldenElf | Stardance
|
GoldenElf
|
1
|
48.4
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-18T07:13:14Z", "hours": 38.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Tractor (Card Game) I created this desktop game because I wanted to have a simple game I could train an AI on and learn about machine learning techniques. I’ve finally finished the full game implementation that you can download and play right now. Now I can begin training a machine learning model you’ll eventually be able to play against. About Tractor Tractor (AKA Upgrade/Shengji/升级) is a popular Chinese trick-taking card game where players score by capturing specific cards rather than winning tricks. Certain plays can also consist of multiple cards, making strategy more complex. About This Project This project is a playable desktop implementation of Tractor supporting Windows, macOS, and Linux. The long-term goal is to train a machine learning model to play Tractor. The initial plan was just to make a minimal working implementation of Tractor that an AI could interact with, but it evolved to become a fully playable desktop game with an interactive GUI. One thing that was surprisingly difficult to implement was handling Tractors and consecutive pairs. I had to redesign ho plays were represented to support plays with more card amount possibilities. I also had to implement helper functions for filtering and sorting cards based on specific criteria, making it much easier to handle the many edge cases involving consecutive pairs. Future Plans Now that the core game is complete and playable, my next goal will be to create a machine learning model that learns to play Tractor through self-play. It’ll also be an opportunity to explore reinforcement learning using frameworks like PyTorch on a much more complex problem than the small introductory projects I’ve done before.", "repo": "https://github.com/GoldenElf58/tractor-ai", "demo": "https://github.com/GoldenElf58/tractor-ai/releases/latest"}]...
|
[{"post_id": 41687, "ts": "202 [{"post_id": 41687, "ts": "2026-08-06T01:59:05Z", "hours": 10.3986, "text": "Devlog #05 - Beginning on the AI With the desktop game now complete, I started working on the machine learning side of the project. This update lays the groundwork for eventually training an AI to play Tractor. The latest version is available on the GitHub Releases page . AI Framework I set up the initial machine learning framework that future models will use for training and gameplay. While the AI isn’t making intelligent decisions yet, the project now has the base structure needed to begin testing different approaches. Bot Support The game now supports AI-controlled players. For now, they simply make random legal moves and are not in the main release, but this provides a baseline that can later be replaced with a trained model. Other Changes Added the initial training infrastructure. Refactored parts of the codebase to better support AI integration. Continued organizing the project for future machine learning development. Future Plans Create a basic hand-written bot for the AI to mimic. Train the first ML models to mimic the hand-made bot. Replace the random bot with the learned model. Explore self-play to improve the AI beyond imitation."}, {"post_id": 28141, "ts": "2026-07-14T07:43:48Z", "hours": 9.7647, "text": "Devlog #04 - GUI Improvements This update focuses on making Tractor fully playable, adding needed game screens and polishing the overall experience. Highlights include: Main menu Between-round summary Game over screen Improved pass-and-play support with hand hiding between turns Player name customization Resizable window Faster startup time Several bug fixes The latest version is now available on the GitHub Releases page . Better Pass-and-Play There is now a start turn button while playing that keeps the current player’s hand hidden until they are ready to begin. This makes local pass-and-play much more practical by preventing players from accidentally seeing each other’s cards. Game Flow At the end of each round, a round summary screen is now shown that includes the winner, team scores, level changes, trump information, and other round details. The game over screen is also shown at the end of the game to show the winner and the final levels of each team. Bug Fixes Fixed issues that prevented GUI builds from launching correctly on some platforms Fixed bug with the determination of pair trick winners Fixed round transition issues Future Plans The long-term goal is still to train a machine learning model to play Tractor. Continue to improve the interface and gameplay experience."}, {"post_id": 26394, "ts": "2026-07-11T04:57:34Z", "hours": 7.1117, "text": "Devlog #03 - Implemented Tractors and Consecutive Pairs This update adds support for Tractors and Consecutive Pairs, labels players’ plays and bids with their names, and includes several bug fixes. Also, the project hasn’t shipped yet, but you can still download and try the latest version on the GitHub Releases page . Gameplay Improvements Players can now play Consecutive Pairs, including Tractors, which are pairs of cards in the same suit that are consecutive in power. This makes the game essentially* feature complete in terms of gameplay functionality. *Some rule sets also include throws. They are not currently panned because they significantly increase implementation complexity. GUI Improvements The players’ locations (relative to the active player) are labeled with their names (currently “Player 1”, “Player 2”, etc.). Plays containing more than two cards can now be shown (previously unneeded, but now necessary with the addition of Tractors and Consecutive Pairs). Offense and defense points are now displayed throughout the game. Bug Fixes Fixed the round leader not updating correctly. Fixed the trick leader not updating correctly. Fixed an issue where players were incorrectly forced to play a pair if they were out of the led suit when a pair was available and a pair was led. Fixed a miscalculation of the offense and defense points obtained in a round (also causing incorrect round transitions). Future Plans Add main menu. Show more information about the game. Ship the game once the above are done. Long term: Create an AI (using machine learning) to play against."}, {"post_id": 24682, "ts": "2026-07-08T13:04:31Z", "hours": 5.5608, "text": "Devlog #02 - Expanded Gameplay GUI This update makes the game now fully playable through the GUI and includes various bug fixes. The attached video shows the new GUI in action during a trick and a half of gameplay. Also, the project hasn’t shipped yet, but you can still download and try the latest version on the GitHub Releases page . GUI Improvements I expanded the GUI to work in all phases of the game, so you now no longer need the terminal to play. It also now displays information such as the: current bid trump suit and dominant rank cards played in the current trick other turn information Gameplay Improvements Added an Auto button during the drawing round that automatically passes a player’s turn if passing is their only legal move (similar to a previous terminal feature). Bug Fixes Fixed card corner transparency so the cards’ rounded corners render correctly. Fixed several move generation bugs. Future Plans Add main menu. Show more information about the game. Decide on game variant and implement tractors and complicated throws. Ship the game once it’s feature-complete. Long term: Create an AI (using machine learning) to play against."}, {"post_id": 23557, "ts": "2026-07-06T16:18:27Z", "hours": 6.7608, "text": "I implemented a card selection UI for players’ turns. I spent a lot of time polishing the hover and selection/deselection animations. The attached video shows game play of two tricks: the first with a pair lead and the second with a single-card lead. Next steps are to provide more information than just the players’ hands and to extend this functionality to the drawing/bidding and burying phases."}, {"post_id": 22374, "ts": "2026-07-04T20:18:14Z", "hours": 8.4214, "text": "Implemented the core Tractor game logic and a playable terminal UI. The game is functional, though not all edge cases have been tested yet and invalid input may still cause crashes. Wrote a README with installation and usage instructions. Set up a GitHub Actions workflow to automatically build and publish the Windows, macOS, and Linux executables."}]...
|
Title: Tractor (Card Game) AI by @GoldenElf | Star Title: Tractor (Card Game) AI by @GoldenElf | Stardance
Devlogs:
Implemented the core Tractor game logic and a playable terminal UI. The game is functional, though not all edge cases have been tested yet and invalid input may still cause crashes. Wrote a README with installation and usage instructions. Set up a GitHub Actions workflow to automatically build and publish the Windows, macOS, and Linux executables.
I implemented a card selection UI for players’ turns. I spent a lot of time polishing the hover and selection/deselection animations. The attached video shows game play of two tricks: the first with a pair lead and the second with a single-card lead. Next steps are to provide more information than just the players’ hands and to extend this functionality to the drawing/bidding and burying phases.
Devlog #02 - Expanded Gameplay GUI This update makes the game now fully playable through the GUI and includes various bug fixes. The attached video shows the new GUI in action during a trick and a half of gameplay. Also, the project hasn’t shipped yet, but you can still download and try the latest version on the GitHub Releases page . GUI Improvements I expanded the GUI to work in all phases of the game, so you now no longer need the terminal to play. It also now displays information such as the: current bid trump suit and dominant rank cards played in the current trick other turn information Gameplay Improvements Added an Auto button during the drawing round that automatically passes a player’s turn if passing is their only legal move (similar to a previous terminal feature). Bug Fixes Fixed card corner transparency so the cards’ rounded corners render correctly. Fixed several move generation bugs. Future Plans Add main menu. Show more information about the game. Decide on game variant and implement tractors and complicated throws. Ship the game once it’s feature-complete. Long term: Create an AI (using machine learning) to play against.
Devlog #03 - Implemented Tractors and Consecutive Pairs This update adds support for Tractors and Consecutive Pairs, labels players’ plays and bids with their names, and includes several bug fixes. Also, the project hasn’t shipped yet, but you can still download and try the latest version on the GitHub Releases page . Gameplay Improvements Players can now play Consecutive Pairs, including Tractors, which are pairs of cards in the same suit that are consecutive in power. This makes the game essentially* feature complete in terms of gameplay functionality. *Some rule sets also include throws. They are not currently panned because they significantly increase implementation complexity. GUI Improvements The players’ locations (relative to the active player) are labeled with their names (currently “Player 1”, “Player 2”, etc.). Plays containing more than two cards can now be shown (previously unneeded, but now necessary with the addition of Tractors and Consecutive Pairs). Offense and defense points are now displayed throughout the game. Bug Fixes Fixed the round leader not updating correctly. Fixed the trick leader not updating correctly. Fixed an issue where players were incorrectly forced to play a pair if they were out of the led suit when a pair was available and a pair was led. Fixed a miscalculation of the offense and defense points obtained in a round (also causing incorrect round transitions). Future Plans Add main menu. Show more information about the game. Ship the game once the above are done. Long term: Create an AI (using machine learning) to play against.
Devlog #04 - GUI Improvements This update focuses on making Tractor fully playable, adding needed game screens and polishing the overall experience. Highlights include: Main menu Between-round summary Game over screen Improved pass-and-play support with hand hiding between turns Player name customization Resizable window Faster startup time Several bug fixes The latest version is now available on the GitHub Releases page . Better Pass-and-Play There is now a start turn button while playing that keeps the current player’s hand hidden until they are ready to begin. This makes local pass-and-play much more practical by preventing players from accidentally seeing each other’s cards. Game Flow At the end of each round, a round summary screen is now shown that includes the winner, team scores, level changes, trump information, and other round details. The game over screen is also shown at the end of the game to show the winner and the final levels of each team. Bug Fixes Fixed issues that prevented GUI builds from launching correctly on some platforms Fixed bug with the determination of pair trick winners Fixed round transition issues Future Plans The long-term goal is still to train a machine learning model to play Tractor. Continue to improve the interface and gameplay experience.
Devlog #05 - Beginning on the AI With the desktop game now complete, I started working on the machine learning side of the project. This update lays the groundwork for eventually training an AI to play Tractor. The latest version is available on the GitHub Releases page . AI Framework I set up the initial machine learning framework that future models will use for training and gameplay. While the AI isn’t making intelligent decisions yet, the project now has the base structure needed to begin testing different approaches. Bot Support The game now supports AI-controlled players. For now, they simply make random legal moves and are not in the main release, but this provides a baseline that can later be replaced with a trained model. Other Changes Added the initial training infrastructure. Refactored parts of the codebase to better support AI integration. Continued organizing the project for future machine learning development. Future Plans Create a basic hand-written bot for the AI to mimic. Train the first ML models to mimic the hand-made bot. Replace the random bot with the learned model. Explore self-play to improve the AI beyond imitation.
Ships:
Tractor (Card Game) I created this desktop game because I wanted to have a simple game I could train an AI on and learn about machine learning techniques. I’ve finally finished the full game implementation that you can download and play right now. Now I can begin training a machine learning model you’ll eventually be able to play against. About Tractor Tractor (AKA Upgrade/Shengji/升级) is a popular Chinese trick-taking card game where players score by capturing specific cards rather than winning tricks. Certain plays can also consist of multiple cards, making strategy more complex. About This Project This project is a playable desktop implementation of Tractor supporting Windows, macOS, and Linux. The long-term goal is to train a machine learning model to play Tractor. The initial plan was just to make a minimal working implementation of Tractor that an AI could interact with, but it evolved to become a fully playable desktop game with an interactive GUI. One thing that was surprisingly difficult to implement was handling Tractors and consecutive pairs. I had to redesign ho plays were represented to support plays with more card amount possibilities. I also had to implement helper functions for filtering and sorting cards based on specific criteria, making it much easier to handle the many edge cases involving consecutive pairs. Future Plans Now that the core game is complete and playable, my next goal will be to create a machine learning model that learns to play Tractor through self-play. It’ll also be an opportunity to explore reinforcement learning using frameworks like PyTorch on a much more complex problem than the small introductory projects I’ve done before....
|
1793127220.6567597
|
1793213620.6567597
|
|
59501
|
Minimalistic MediaPlayer by @Tensor | Stardance
|
Tensor
|
0
|
48.39
|
0
|
[]
|
[{"post_id": 81568, "ts": "202 [{"post_id": 81568, "ts": "2026-10-21T18:22:13Z", "hours": 9.9503, "text": "Devlog 12: -Finished the schematic (for the most part) -Did more research and changed some more parts Extra: I’m finally done with the schematic (almost) . I still need to wire the switches after I have decided on what I need. There isn’t much time left to make this so I need to hurry up and finish this so that I can request funding before Stardance ends. Wish me luck"}, {"post_id": 78415, "ts": "2026-10-10T18:39:56Z", "hours": 9.3289, "text": "Devlog 11: -Changed even more components since some were out of stock. -Added the buttons, switches, etc to the schematic. -Started over with the Labels on the schematic. -Did a bunch of research on components and some other things. Extra: I have said it once, and I will say it twice. I HATE MAKING THE SCHEMATIC!!! So much so that my head hurts. … Well. I had to change a lot of the components since they were either out of stock (only Pre-order), or not compatible with the other components. I already did this mistake before. And now I did it again. Kinda dumb of me but that’s just how it is. I also added new components for the controls and some other things . Like buttons, magnetic encoders, and a sliding switch. Here is the battery charger. I think it should work (hopefully) . If you see any issues, pls tell me."}, {"post_id": 75317, "ts": "2026-09-29T18:55:02Z", "hours": 2.7011, "text": "Devlog 10: -Did most of the schematic wiring. -Did a bit more research on the motor and the “motor driver”. Extra: First of all. Making the schematic isn’t fun AT ALL. When I was making my Hackpad I enjoyed it a little bit. But THIS. … It’s just painful. And the other thing is that I did some more research on the motor and it’s driver (not as in a chauffeur, but kinda like that) . Since I don’t want it to disturb the other components with it’s electric fields. Anyway. There isn’t much else to report on, so I guess we are done for today. And I’m tired. Gn"}, {"post_id": 74555, "ts": "2026-09-27T16:52:10Z", "hours": 1.05, "text": "Devlog 9: -Added all of the symbols to the schematic. That’s basically it for today"}, {"post_id": 73992, "ts": "2026-09-26T14:14:06Z", "hours": 4.0489, "text": "Devlog 8: -Did a bunch of research on different components, PCB design/production, and more. -Switched to only SMD components (excluding the Pico2) Extra: I’m back after, like, 5 days, I think… I’m not sure. There are a few reasons to why I haven’t worked these past days, and one of them were that Stardance was nearing it’s end. Buuuuuuut. It got extended by 1 month! 🎉 Anyway I decided on dropping the modules and going for only SMD components instead. I think that the reason I didn’t go for SMD components to begin with is because I was scared of messing everything up since I have never used them before. The footprints and symbols I spent some time on are now useless which is a bit depressing. But it’s still better that way so no problem really. (The Image below is just a placeholder. I’ll switch it too something else soon)"}, {"post_id": 71252, "ts": "2026-09-20T15:05:56Z", "hours": 7.3836, "text": "Devlog 7: -Decided on some changes to the design because I can’t source my own components. -Researched “metal laser cutting” for accent pieces on the finished design. Checked component compatibility with different types of audio devices (headphones, IEMs & speakers). -Learnt (kinda) how to convert and how to make my own symbols and footprints in KiCAD. (Hated it. Never want to do it again ) Extra: It’s been a while since my last devlog. I’m still a bit sick since the last devlog so I’ll keep it a bit shorter than usual. The “rocker thingy” on the side of the TP-7 requires a bit of work and testing for it to work properly, so I will skip it for now. And if I don’t have time or decide to skip it, I’ll just make a version of it that’s integrated into the side of the case. Kinda like the volume button on most phones and tablets. I don’t want the device to just look like a 3d-printed slab. I want it to look like a well polished device that could be mistaken for a real product. So I will do some more research on “cheap” materials that I can use for the overall case. And to make it look even better, I think I’ll add metal accent pieces for the buttons and symbols. I don’t mind using my own money for this since I’m not sure if the fund will cover that. Just let me say that making the symbols and footprints has been the worst and most boring thing about any project that I’ve made. 1st image: Here is a quick sketch I made during class. The 2 black rectangles on the front face are screens. 2nd image: I found a powerbank with (almost) the perfect dimensions. The pink post-it notes have the real dimensions."}, {"post_id": 69255, "ts": "2026-09-16T17:59:13Z", "hours": 4.0922, "text": "Devlog 6: -Researched case materials and production methods -Checked component compatibility -Switched to a Li-Ion battery and some other components too -Checked JLCPCB’s parts library to see if they could mount some components on the PCB for me -Started on a GitHub repo for this project Extra: Haven’t made a devlog in a few days and I’m super tired so I’ll just leave it like this (this time)."}, {"post_id": 67510, "ts": "2026-09-13T17:06:47Z", "hours": 2.5333, "text": "Devlog 5: -Found a better screen for the device -Decided on various types of switches for the device -Checked possible layouts for the electronics -Found another battery with better overall dimensions -Checked some printing materials & options on JLC3DP -Found a few other components for QoL features Extra: I have done quite a lot of research on everything today. The switches: The final layout for the device is not completely decided yet. But I think I’ll keep 2 of the front-facing buttons for “pause/play” and “skip-/previous track”. I’ll also add one “3-position sliding switch” (for motor on/auto/off options) and one “2-position sliding switch” (for device on/off) on the side of the case. The Quality of Life features: Too be able to get that seamless screen look on the TP-7, I can use a processed Acrylic piece. It makes it so that the pixels seem to be floating inside the acrylic window, which looks awesome. I will maybe add a light sensor so it know when it is in a pocket. The sensor will be active/used when the “motor on/auto/off switch” is set to “auto”. The texture & material: I’m not completely sure what material to use yet, but I want the same texture/feel that’s on the LAMY Safari pens (matte Umbra version). There is 1 material on JLC3DP that looks promising. If you are interested and want to see how it turns out. Press follow."}, {"post_id": 66616, "ts": "2026-09-12T13:50:06Z", "hours": 1.45, "text": "Devlog 4: -Think I have figured out what to do with the motor -Searched for a new low-power BLDC motor driver board (what gives power and controls the motor, “kinda” ). Extra: I think I know how to prevent the electric field caused by the motor and the inconsistent power-draw from interfering with the audio components. -Since the motor uses very low power, the fields shouldn’t be as strong as normal. And because of that, some copper-tape wrapped around the motor (with some space between) and then connected to ground should be enough to absorb the electric fields (maybe not the right term but who cares). And to neutralize the inconsistent power-draw, I can just use some resistors (hopefully) between the motor and power-module, and then between the motor and ground. I’ll do a bit more research to be sure. The old motor driver I found apparently needed 8-30V. Which is quite a lot for what I’m making. So after roughly 30 min of searching I finally found the “SparkFun Brushless Motor Driver - 3-Phase (TMC6300)” on their own website. It’s ~18$ + shipping (not that bad), but I really can’t find another one that would work for this specific use case. Searched though AliExpress but just found ones that requiered 5-30V and something else that’s slightly inappropriate (and completely unrelated) instead Here is the module I found:"}, {"post_id": 66068, "ts": "2026-09-11T17:14:56Z", "hours": 1.3978, "text": "Devlog 3: -Finally found good screens -Making sure that the motor won’t theoretically interfere with the other components Extra: I have both good and bad news. The good news is that I finally decided on which screens to use (I’ll probably use 2). And the bad news are that when I did some research yesterday before going to bed. I found out that almost no one else has made their own version of the TP-7 by Teenage Engineering. And that’s because of 2 reasons. First, the complexity. Teenage Engineering made all of the components in-house so that everything would fit together. Which is why their device is so compact. While us on the other hand can only (for the most part) get off-the-shelf components. The second reason is that the motor has a magnetic and an electric field (the magnetic field isn’t as bad as the electric one). Which can interfere with the other electronics, which is very bad for sound focused devices. Guess that’s another problem to solve then. I will not give up until the very end (i think)"}, {"post_id": 65514, "ts": "2026-09-10T18:25:05Z", "hours": 1.5667, "text": "Devlog 2.1: -Still looking for a compatible screen Extra: I’m not sure if I should get a display module or just a display and a connector for it. If I choose the connector option, then I would have to solder like 20-30 pins + add resistors or something like that. If I choose the display module it will take a lot of unnecessary space between it and the nearest edge. If I go for the bare display, then I will probably choose this one:"}, {"post_id": 64978, "ts": "2026-09-09T18:56:52Z", "hours": 1.6786, "text": "Devlog 2: -Made a quick model and drawing of the layout i want. -Searched for components (only the screen…) Extra: Ok guys. Does, ANYONE, know. Where I can get an OLED bar display, that is a single color and not the 0.91 inch model. I have literally been searching for over an hour after a screen that would fit. The whole module needs to be smaller than 60x20mm. Please let me know if you have any recommendations."}, {"post_id": 64375, "ts": "2026-09-08T18:09:48Z", "hours": 1.2069, "text": "Devlog 1: -Researching parts/components. Extra: This is the first devlog of my “Teenage Engineering TP-7” inspired mediaplayer. Ever since I first saw the TP-7 for the first time, I thought it was the coolest “MP3” player ever (kinda correct), and have wanted one myself for a long time. The problem with it is that it is 1500$. … You read that right. 1500$!!! Which is why I want to make my own “TP-7” inspired high-res mediaplayer. It won’t be a straight copy-paste tho. I will add my own gimmicks and features too. I got ~20 days to finish this. And I probably won’t be able to ship this before then (if not for a miracle). I will try my best to make this project a reality. Oh btw, it’s my birthday today. If anyone at HackClub sees this, pls bless me with a 150$ grant"}]...
|
Title: Minimalistic MediaPlayer by @Tensor | Stard Title: Minimalistic MediaPlayer by @Tensor | Stardance
Devlogs:
Devlog 1: -Researching parts/components. Extra: This is the first devlog of my “Teenage Engineering TP-7” inspired mediaplayer. Ever since I first saw the TP-7 for the first time, I thought it was the coolest “MP3” player ever (kinda correct), and have wanted one myself for a long time. The problem with it is that it is 1500$. … You read that right. 1500$!!! Which is why I want to make my own “TP-7” inspired high-res mediaplayer. It won’t be a straight copy-paste tho. I will add my own gimmicks and features too. I got ~20 days to finish this. And I probably won’t be able to ship this before then (if not for a miracle). I will try my best to make this project a reality. Oh btw, it’s my birthday today. If anyone at HackClub sees this, pls bless me with a 150$ grant
Devlog 2: -Made a quick model and drawing of the layout i want. -Searched for components (only the screen…) Extra: Ok guys. Does, ANYONE, know. Where I can get an OLED bar display, that is a single color and not the 0.91 inch model. I have literally been searching for over an hour after a screen that would fit. The whole module needs to be smaller than 60x20mm. Please let me know if you have any recommendations.
Devlog 2.1: -Still looking for a compatible screen Extra: I’m not sure if I should get a display module or just a display and a connector for it. If I choose the connector option, then I would have to solder like 20-30 pins + add resistors or something like that. If I choose the display module it will take a lot of unnecessary space between it and the nearest edge. If I go for the bare display, then I will probably choose this one:
Devlog 3: -Finally found good screens -Making sure that the motor won’t theoretically interfere with the other components Extra: I have both good and bad news. The good news is that I finally decided on which screens to use (I’ll probably use 2). And the bad news are that when I did some research yesterday before going to bed. I found out that almost no one else has made their own version of the TP-7 by Teenage Engineering. And that’s because of 2 reasons. First, the complexity. Teenage Engineering made all of the components in-house so that everything would fit together. Which is why their device is so compact. While us on the other hand can only (for the most part) get off-the-shelf components. The second reason is that the motor has a magnetic and an electric field (the magnetic field isn’t as bad as the electric one). Which can interfere with the other electronics, which is very bad for sound focused devices. Guess that’s another problem to solve then. I will not give up until the very end (i think)
Devlog 4: -Think I have figured out what to do with the motor -Searched for a new low-power BLDC motor driver board (what gives power and controls the motor, “kinda” ). Extra: I think I know how to prevent the electric field caused by the motor and the inconsistent power-draw from interfering with the audio components. -Since the motor uses very low power, the fields shouldn’t be as strong as normal. And because of that, some copper-tape wrapped around the motor (with some space between) and then connected to ground should be enough to absorb the electric fields (maybe not the right term but who cares). And to neutralize the inconsistent power-draw, I can just use some resistors (hopefully) between the motor and power-module, and then between the motor and ground. I’ll do a bit more research to be sure. The old motor driver I found apparently needed 8-30V. Which is quite a lot for what I’m making. So after roughly 30 min of searching I finally found the “SparkFun Brushless Motor Driver - 3-Phase (TMC6300)” on their own website. It’s ~18$ + shipping (not that bad), but I really can’t find another one that would work for this specific use case. Searched though AliExpress but just found ones that requiered 5-30V and something else that’s slightly inappropriate (and completely unrelated) instead Here is the module I found:
Devlog 5: -Found a better screen for the device -Decided on various types of switches for the device -Checked possible layouts for the electronics -Found another battery with better overall dimensions -Checked some printing materials & options on JLC3DP -Found a few other components for QoL features Extra: I have done quite a lot of research on everything today. The switches: The final layout for the device is not completely decided yet. But I think I’ll keep 2 of the front-facing buttons for “pause/play” and “skip-/previous track”. I’ll also add one “3-position sliding switch” (for motor on/auto/off options) and one “2-position sliding switch” (for device on/off) on the side of the case. The Quality of Life features: Too be able to get that seamless screen look on the TP-7, I can use a processed Acrylic piece. It makes it so that the pixels seem to be floating inside the acrylic window, which looks awesome. I will maybe add a light sensor so it know when it is in a pocket. The sensor will be active/used when the “motor on/auto/off switch” is set to “auto”. The texture & material: I’m not completely sure what material to use yet, but I want the same texture/feel that’s on the LAMY Safari pens (matte Umbra version). There is 1 material on JLC3DP that looks promising. If you are interested and want to see how it turns out. Press follow.
Devlog 6: -Researched case materials and production methods -Checked component compatibility -Switched to a Li-Ion battery and some other components too -Checked JLCPCB’s parts library to see if they could mount some components on the PCB for me -Started on a GitHub repo for this project Extra: Haven’t made a devlog in a few days and I’m super tired so I’ll just leave it like this (this time).
Devlog 7: -Decided on some changes to the design because I can’t source my own components. -Researched “metal laser cutting” for accent pieces on the finished design. Checked component compatibility with different types of audio devices (headphones, IEMs & speakers). -Learnt (kinda) how to convert and how to make my own symbols and footprints in KiCAD. (Hated it. Never want to do it again ) Extra: It’s been a while since my last devlog. I’m still a bit sick since the last devlog so I’ll keep it a bit shorter than usual. The “rocker thingy” on the side of the TP-7 requires a bit of work and testing for it to work properly, so I will skip it for now. And if I don’t have time or decide to skip it, I’ll just make a version of it that’s integrated into the side of the case. Kinda like the volume button on most phones and tablets. I don’t want the device to just look like a 3d-printed slab. I want it to look like a well polished device that could be mistaken for a real product. So I will do some more research on “cheap” materials that I can use for the overall case. And to make it look even better, I think I’ll add metal accent pieces for the buttons and symbols. I don’t mind using my own money for this since I’m not sure if the fund will cover that. Just let me say that making the symbols and footprints has been the worst and most boring thing about any project that I’ve made. 1st image: Here is a quick sketch I made during class. The 2 black rectangles on the front face are screens. 2nd image: I found a powerbank with (almost) the perfect dimensions. The pink post-it notes have the real dimensions.
Devlog 8: -Did a bunch of research on different components, PCB design/production, and more. -Switched to only SMD components (excluding the Pico2) Extra: I’m back after, like, 5 days, I think… I’m not sure. There are a few reasons to why I haven’t worked these past days, and one of them were that Stardance was nearing it’s end. Buuuuuuut. It got extended by 1 month! 🎉 Anyway I decided on dropping the modules and going for only SMD components instead. I think that the reason I didn’t go for SMD components to begin with is because I was scared of messing everything up since I have never used them before. The footprints and symbols I spent some time on are now useless which is a bit depressing. But it’s still better that way so no problem really. (The Image below is just a placeholder. I’ll switch it too something else soon)
Devlog 9: -Added all of the symbols to the schematic. That’s basically it for today
Devlog 10: -Did most of the schematic wiring. -Did a bit more research on the motor and the “motor driver”. Extra: First of all. Making the schematic isn’t fun AT ALL. When I was making my Hackpad I enjoyed it a little bit. But THIS. … It’s just painful. And the other thing is that I did some more research on the motor and it’s driver (not as in a chauffeur, but kinda like that) . Since I don’t want it to disturb the other components with it’s electric fields. Anyway. There isn’t much else to report on, so I guess we are done for today. And I’m tired. Gn
Devlog 11: -Changed even more components since some were out of stock. -Added the buttons, switches, etc to the schematic. -Started over with the Labels on the schematic. -Did a bunch of research on components and some other things. Extra: I have said it once, and I will say it twice. I HATE MAKING THE SCHEMATIC!!! So much so that my head hurts. … Well. I had to change a lot of the components since they were either out of stock (only Pre-order), or not compatible with the other components. I already did this mistake before. And now I did it again. Kinda dumb of me but that’s just how it is. I also added new components for the controls and some other things . Like buttons, magnetic encoders, and a sliding switch. Here is the battery charger. I think it should work (hopefully) . If you see any issues, pls tell me.
Devlog 12: -Finished the schematic (for the most part) -Did more research and changed some more parts Extra: I’m finally done with the schematic (almost) . I still need to wire the switches after I have decided on what I need. There isn’t much time left to make this so I need to hurry up and finish this so that I can request funding before Stardance ends. Wish me luck...
|
1792803076.1355245
|
1793407876.1355245
|
|
60720
|
atom ctrl by @adityaaaa | Stardance
|
adityaaaa
|
0
|
48.36
|
0
|
[]
|
[{"post_id": 72312, "ts": "202 [{"post_id": 72312, "ts": "2026-09-22T17:14:51Z", "hours": 48.3586, "text": "hey guys, i’ve been working on my startup’s site. It’s completely open source and i did a design in the past 2 weeks or so. i would love to hear your thoughts on this. thanks.."}]...
|
Title: atom ctrl by @adityaaaa | Stardance
Devlog Title: atom ctrl by @adityaaaa | Stardance
Devlogs:
hey guys, i’ve been working on my startup’s site. It’s completely open source and i did a design in the past 2 weeks or so. i would love to hear your thoughts on this. thanks.....
|
1793036976.6365466
|
1793641776.6365466
|
|
54348
|
App made with flutter with python backend by @agam App made with flutter with python backend by @agamjot_sarao9797 | Stardance...
|
agamjot_sarao9797
|
1
|
48.32
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-13T03:48:16Z", "hours": 48.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made an app with flutter and python API, This app gets a URL from the user and then scrapes the info from the website then the user gets the id to the block of info from a tab called Data Hub and then the user would enter the ID in the tabs where the app makes the excel sheet or presentation on that info. The mos challenging part of this project was the part where the app made a presentation because i did not know how to make a presentation with python or Python-pptx. The part I did use AI on as the .bat launcher because i do not know how to code bash", "repo": "https://github.com/CODER-MAN12/AI-webscraper-app", "demo": "https://github.com/CODER-MAN12/AI-webscraper-app/releases/tag/App"}]...
|
[{"post_id": 72940, "ts": "202 [{"post_id": 72940, "ts": "2026-09-24T02:34:16Z", "hours": 0.3172, "text": "Devlog#15: I have decided that I will keep working on the project to make it look better since I might keep working on it so i can put it on google play or PC app store because of this i have also started a 3 hour graphic design tutorial since my app looks hideous."}, {"post_id": 67052, "ts": "2026-09-13T03:01:00Z", "hours": 0.9414, "text": "I am done just about the ship my project"}, {"post_id": 65681, "ts": "2026-09-11T00:07:31Z", "hours": 1.7689, "text": "Devlog#13: I HAVE COMPLETED THE APP THE EXCEL SHEET MAKER ITS FUNCTIONAL SO IS THE PRESENTATION MAKER I JUST NEED TO MAKE A LAUNCHER !!!!"}, {"post_id": 65095, "ts": "2026-09-10T00:03:20Z", "hours": 8.2875, "text": "Devlog#12: I have been working on the last two files that make a excel file and a power point and I am done 70 percent on it but it is challenging"}, {"post_id": 62445, "ts": "2026-09-05T19:56:11Z", "hours": 5.8167, "text": "Devlog#11: I have finished the history feature for the app where it can access the previous scraped info by id and then it will enter the id in the power-point or spreadsheet maker so the AI knows what info to make it for."}, {"post_id": 60701, "ts": "2026-09-03T07:53:03Z", "hours": 2.6294, "text": "Devlog#10: The menu is fully functional and it can scrape info and save it in a python API server which then stores it into a JSON file"}, {"post_id": 60542, "ts": "2026-09-02T23:01:07Z", "hours": 6.6461, "text": "Devlog#9: I have made the python back-end scraper function which is ready to give info to the flutter UI but i have started to learn how to use HTTP in flutter"}, {"post_id": 59270, "ts": "2026-08-31T23:35:55Z", "hours": 2.0578, "text": "Devlog#8: I have learned how to web scrape with python and have started to work on the web scraping function"}, {"post_id": 58664, "ts": "2026-08-31T05:03:07Z", "hours": 2.2214, "text": "Devlog#7: I have added more error handling which checks if it can reach the HTTP link and i have added more pages to the app. The output terminal is also functioning but only outputs the HTTP body"}, {"post_id": 57946, "ts": "2026-08-30T08:58:29Z", "hours": 5.8464, "text": "Devlog#6: I have added a HTTP checker to the menu and have worked on the rest of the pages a bit. I have also switched from a android emulator to my phone since windows uses so much ram."}, {"post_id": 56939, "ts": "2026-08-28T23:27:18Z", "hours": 1.0114, "text": "Devlog#5: I have finished the UI of the menu and I have started the other pages for my app"}, {"post_id": 56482, "ts": "2026-08-28T08:12:24Z", "hours": 3.4047, "text": "Devlog#4: I have to add more to the menu"}, {"post_id": 56253, "ts": "2026-08-27T22:43:13Z", "hours": 3.0972, "text": "Devlog#3: I am finished learning the basics of Flutter and now i have started to work on a menu"}, {"post_id": 55271, "ts": "2026-08-26T23:32:31Z", "hours": 4.0222, "text": "Devlog#2: For my app i have started to learn Flutter"}, {"post_id": 54774, "ts": "2026-08-25T21:37:39Z", "hours": 0.3936, "text": "I am working on a Desktop app which where you can give the app a URL and it will scrape the website for info you specified and can make it into a PowerPoint, JSON, or a excel file. This is the first part of the back end python coding which uses FastApi and Pydantic to get requests from user"}]...
|
Title: App made with flutter with python backend b Title: App made with flutter with python backend by @agamjot_sarao9797 | Stardance
Devlogs:
I am working on a Desktop app which where you can give the app a URL and it will scrape the website for info you specified and can make it into a PowerPoint, JSON, or a excel file. This is the first part of the back end python coding which uses FastApi and Pydantic to get requests from user
Devlog#2: For my app i have started to learn Flutter
Devlog#3: I am finished learning the basics of Flutter and now i have started to work on a menu
Devlog#4: I have to add more to the menu
Devlog#5: I have finished the UI of the menu and I have started the other pages for my app
Devlog#6: I have added a HTTP checker to the menu and have worked on the rest of the pages a bit. I have also switched from a android emulator to my phone since windows uses so much ram.
Devlog#7: I have added more error handling which checks if it can reach the HTTP link and i have added more pages to the app. The output terminal is also functioning but only outputs the HTTP body
Devlog#8: I have learned how to web scrape with python and have started to work on the web scraping function
Devlog#9: I have made the python back-end scraper function which is ready to give info to the flutter UI but i have started to learn how to use HTTP in flutter
Devlog#10: The menu is fully functional and it can scrape info and save it in a python API server which then stores it into a JSON file
Devlog#11: I have finished the history feature for the app where it can access the previous scraped info by id and then it will enter the id in the power-point or spreadsheet maker so the AI knows what info to make it for.
Devlog#12: I have been working on the last two files that make a excel file and a power point and I am done 70 percent on it but it is challenging
Devlog#13: I HAVE COMPLETED THE APP THE EXCEL SHEET MAKER ITS FUNCTIONAL SO IS THE PRESENTATION MAKER I JUST NEED TO MAKE A LAUNCHER !!!!
I am done just about the ship my project
Devlog#15: I have decided that I will keep working on the project to make it look better since I might keep working on it so i can put it on google play or PC app store because of this i have also started a 3 hour graphic design tutorial since my app looks hideous.
Ships:
I made an app with flutter and python API, This app gets a URL from the user and then scrapes the info from the website then the user gets the id to the block of info from a tab called Data Hub and then the user would enter the ID in the tabs where the app makes the excel sheet or presentation on that info. The mos challenging part of this project was the part where the app made a presentation because i did not know how to make a presentation with python or Python-pptx. The part I did use AI on as the .bat launcher because i do not know how to code bash...
|
1793152605.559583
|
1793239005.559583
|
|
51705
|
Notification Hub by @Steve | Stardance
|
Steve
|
0
|
48.29
|
0
|
[]
|
[{"post_id": 79156, "ts": "202 [{"post_id": 79156, "ts": "2026-10-12T20:41:11Z", "hours": 7.6194, "text": "I’ve been struggling with the plugin setting pages. The main point of hardship is the object-list setting, which is a list of entries, each containing several different instances of the pluginSetting class. I’ve rewritten it way too many times. Fortunately I’m making progress, unfortunately very slowly."}, {"post_id": 69755, "ts": "2026-09-17T18:46:09Z", "hours": 6.9061, "text": "I’ve been again, working on learning oop better. This time I’ve been having trouble with dependencies. I decided to have a global context that gets passed into each page, problem is it get circular. I also heavily refactored/abstracted filtering and sorting a page, now it’s much better. All of the changes I’ve made since the last devlog have been mainly architectural, not much of the ui changed."}, {"post_id": 65710, "ts": "2026-09-11T01:23:07Z", "hours": 7.585, "text": "I’m continuing to learn OOP principles and design patterns, this is super fun. I’ve been struggling with dependency injection, but I think I’ve got it set up well for the most part The problem is that each page has different actions that the sidebar needs to call, but I want to abstract it with page manager so that the sidebar doesn’t know too much about each individual page, and instead communicates through the page manager. This is annoying to set up in the page manager unfortunately. I also added the plugins page and I’m working on the individual plugins page which will be it’s own headache. With that you’ll be able to control each plugin with the plugin’s defined settings."}, {"post_id": 60794, "ts": "2026-09-03T11:59:15Z", "hours": 5.5931, "text": "Conventional commits are sooo nice. I’ve started using them after just dumping everything I was working on into one big commit and it’s so worth it. I’ve also been working on shoring up my current structure, dependencies, and all that good stuff to make it more maintainable. That’s what this project is supposed to teach me after all and I think I’m getting the hang of it. Also tidied up the ui a bit and am working on making the plugins page with settings. That will be interesting compnent-wise because each setting for a plugin has several different types and has to update based on that. We’ll see how that goes."}, {"post_id": 57393, "ts": "2026-08-29T15:09:24Z", "hours": 8.3222, "text": "I’ve been working on the ui, made with typescript and scss. This is what I have so far. I’m making it super nice and maintainable with typescript features. I also made a whole component system that automatically handles get/set functionality for the properties. I used that for each sidebar item and each notification. I also made a sorting system that has yet to be functional at all."}, {"post_id": 55324, "ts": "2026-08-27T02:11:57Z", "hours": 10.9486, "text": "I’ve been having a lot of fun with abstraction/object oriented stuff. With it I set up a whole system that loads plugins and gives them methods to call like a logger, setNotification() , etc. Also the system calls it’s getNotifications() function every 5 minutes (will be configurable). I’ve also moved the implementations of my school’s grade/homework system and email imap to the new schema, along with implementing slack. The big thing right now is to design/create the web ui. It will be able to handle everything eventually."}, {"post_id": 51090, "ts": "2026-08-20T16:15:18Z", "hours": 1.3194, "text": "I designed the UI for the app, and am currently working on setting up the main structure for the backend. I’m setting up the plugin system and in the process learning object oriented concepts in ts. Instead of having all the db calls inline where I serve the routes like I did before now I have an interface for my database! It’s a lot of fun"}]...
|
Title: Notification Hub by @Steve | Stardance
Dev Title: Notification Hub by @Steve | Stardance
Devlogs:
I designed the UI for the app, and am currently working on setting up the main structure for the backend. I’m setting up the plugin system and in the process learning object oriented concepts in ts. Instead of having all the db calls inline where I serve the routes like I did before now I have an interface for my database! It’s a lot of fun
I’ve been having a lot of fun with abstraction/object oriented stuff. With it I set up a whole system that loads plugins and gives them methods to call like a logger, setNotification() , etc. Also the system calls it’s getNotifications() function every 5 minutes (will be configurable). I’ve also moved the implementations of my school’s grade/homework system and email imap to the new schema, along with implementing slack. The big thing right now is to design/create the web ui. It will be able to handle everything eventually.
I’ve been working on the ui, made with typescript and scss. This is what I have so far. I’m making it super nice and maintainable with typescript features. I also made a whole component system that automatically handles get/set functionality for the properties. I used that for each sidebar item and each notification. I also made a sorting system that has yet to be functional at all.
Conventional commits are sooo nice. I’ve started using them after just dumping everything I was working on into one big commit and it’s so worth it. I’ve also been working on shoring up my current structure, dependencies, and all that good stuff to make it more maintainable. That’s what this project is supposed to teach me after all and I think I’m getting the hang of it. Also tidied up the ui a bit and am working on making the plugins page with settings. That will be interesting compnent-wise because each setting for a plugin has several different types and has to update based on that. We’ll see how that goes.
I’m continuing to learn OOP principles and design patterns, this is super fun. I’ve been struggling with dependency injection, but I think I’ve got it set up well for the most part The problem is that each page has different actions that the sidebar needs to call, but I want to abstract it with page manager so that the sidebar doesn’t know too much about each individual page, and instead communicates through the page manager. This is annoying to set up in the page manager unfortunately. I also added the plugins page and I’m working on the individual plugins page which will be it’s own headache. With that you’ll be able to control each plugin with the plugin’s defined settings.
I’ve been again, working on learning oop better. This time I’ve been having trouble with dependencies. I decided to have a global context that gets passed into each page, problem is it get circular. I also heavily refactored/abstracted filtering and sorting a page, now it’s much better. All of the changes I’ve made since the last devlog have been mainly architectural, not much of the ui changed.
I’ve been struggling with the plugin setting pages. The main point of hardship is the object-list setting, which is a list of entries, each containing several different instances of the pluginSetting class. I’ve rewritten it way too many times. Fortunately I’m making progress, unfortunately very slowly....
|
1792680864.9053369
|
1793285664.9053369
|
|
34114
|
Star Watcher by @Daan | Stardance
|
Daan
|
0
|
48.19
|
0
|
[]
|
[{"post_id": 77909, "ts": "202 [{"post_id": 77909, "ts": "2026-10-08T18:51:56Z", "hours": 8.3908, "text": "Devlog 4: today I added a way to see easely see wich planet is selected on the compass. I also added some nice animations. The hardest part was learning how animations in CSS work but thankfully it is pretty straightforward."}, {"post_id": 75343, "ts": "2026-09-29T19:52:26Z", "hours": 9.9389, "text": "Devlog 4: I added some small quality of life changes e.g. being able to highlight bodies on the compass, small fixes and UI tweaks. The project is almost done. I hope to ship before the end of next week. The hardest part now was adding the checkboxes to show constellation on the compass, worst part is that I will probably remove them again."}, {"post_id": 70276, "ts": "2026-09-18T21:02:59Z", "hours": 13.3997, "text": "DEVLOG 3: I added the ability to know what planets and constellations you can see and you can get some info about them. There is also a compass now that shows you where the planets and some constellations are. This all went pretty smoothly and I didn’t have much issues at all :-)"}, {"post_id": 44289, "ts": "2026-08-09T22:57:17Z", "hours": 8.4989, "text": "Devlog 2 I added a lot since my last devlog. I added a star background to let the site look a bit nicer. I also added a graph which displays what the future score will be at your location. Lastly you’ll notice a new score at the bottom. It is based on the time and brightness of the sun. The hardest part was the styling of the HTML. I couldn’t get it all in a nice layout."}, {"post_id": 27358, "ts": "2026-07-12T21:03:46Z", "hours": 7.9569, "text": "My first devlog I added a working score calculator based on the current cloudiness and the moon brightness. The time is also mentioned but has no effect on the score yet. I had never done something with Javascript, HTML or CSS so the hardest part was figuring out how everything worked(e.g. API’s, libraries, etc.) My biggest challange yet was letting the location API work. It constantly gave errors and I spent 2 hours trying to make it work."}]...
|
Title: Star Watcher by @Daan | Stardance
Devlogs: Title: Star Watcher by @Daan | Stardance
Devlogs:
My first devlog I added a working score calculator based on the current cloudiness and the moon brightness. The time is also mentioned but has no effect on the score yet. I had never done something with Javascript, HTML or CSS so the hardest part was figuring out how everything worked(e.g. API’s, libraries, etc.) My biggest challange yet was letting the location API work. It constantly gave errors and I spent 2 hours trying to make it work.
Devlog 2 I added a lot since my last devlog. I added a star background to let the site look a bit nicer. I also added a graph which displays what the future score will be at your location. Lastly you’ll notice a new score at the bottom. It is based on the time and brightness of the sun. The hardest part was the styling of the HTML. I couldn’t get it all in a nice layout.
DEVLOG 3: I added the ability to know what planets and constellations you can see and you can get some info about them. There is also a compass now that shows you where the planets and some constellations are. This all went pretty smoothly and I didn’t have much issues at all :-)
Devlog 4: I added some small quality of life changes e.g. being able to highlight bodies on the compass, small fixes and UI tweaks. The project is almost done. I hope to ship before the end of next week. The hardest part now was adding the checkboxes to show constellation on the compass, worst part is that I will probably remove them again.
Devlog 4: today I added a way to see easely see wich planet is selected on the compass. I also added some nice animations. The hardest part was learning how animations in CSS work but thankfully it is pretty straightforward....
|
1792680813.40429
|
1793285613.40429
|
|
17887
|
ARESOS by @Ankit | Stardance
|
Ankit
|
1
|
48.13
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-16T15:42:03Z", "hours": 13.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I built ARESOS, a browser-based WebOS made with React Next.js. ARESOS includes a desktop environment, terminal, virtual filesystem, window management, themes, and ZIP archive support that all run entirely in the browser. The most challenging part was building the terminal and filesystem. Implementing command parsing, pipes, redirection, variables, aliases, archive handling, and making everything work together required a lot of testing and iteration. I’m happy with how the terminal and virtual filesystem turned out. The project evolved from a simple desktop UI into a more complete environment with file management, command execution, and archive tools. To test the project: Default Login Username: guest Password: 1462007 After logging in, open Terminal and try: help Create a file: touch notes.txt write notes.txt “Hello ARESOS” cat notes.txt Test variables: export USER=test echo $USER Test ZIP restore: touch restore.txt write restore.txt hello zip backup.zip restore.txt rm restore.txt unzip backup.zip cat restore.txt", "repo": "https://github.com/RoboticsAITechLab/ARESOS", "demo": "https://aresos-red.vercel.app/"}]...
|
[{"post_id": 26534, "ts": "202 [{"post_id": 26534, "ts": "2026-07-11T12:22:55Z", "hours": 4.2619, "text": "i rewrite some code and remove features like crt visuals and more"}, {"post_id": 23388, "ts": "2026-07-06T09:53:21Z", "hours": 8.3694, "text": "Devlog Why ARESOS Started ARESOS started as a small experiment. At first, I only wanted to understand how operating systems work and how much of that experience could be recreated inside a browser. What started as a simple idea slowly grew into a desktop environment with applications, a virtual file system, games, utilities, and a custom terminal. I was curious about how complex software systems are built and how different parts of a system work together. Building The First Version The first goal was simple: Create a desktop Open applications Switch between windows Once that worked, I started adding more features and the project became much larger than originally planned. Virtual File System One of the biggest challenges was creating the Virtual File System. I wanted users to be able to create files and folders that would remain available after refreshing the browser. Building the filesystem taught me a lot about application state, data structures, and browser storage. Games I also wanted ARESOS to include things that were fun to use. Instead of only building utilities, I created games like: Equation Racers Neon Duel Creating games without relying heavily on external assets pushed me to learn more about rendering, game loops, and browser graphics. Working With AI AI was a useful tool during development, but it was not a magic solution. Sometimes AI generated useful code. Sometimes it generated bugs. Sometimes it broke working features completely. One of the biggest lessons I learned was when to trust AI suggestions and when to stop, debug the problem myself, and understand what was actually happening. What I Learned Through ARESOS I learned about: State management Browser storage Window systems Application architecture Game development Debugging large projects Working with AI tools More importantly, I learned that building real projects teaches more than following tutorials. Current Status ARESOS is still under active development. Some parts are complete, some are experimental, and many ideas are still waiting to be built. Future My long-term goal is to push ARESOS beyond a browser experiment. Future plans include: Cloud-based services AI integration More applications Better terminal capabilities Cross-device support Expanding the ARESOS ecosystem This project started as an experiment, but it has become one of the biggest projects I have built so far."}, {"post_id": 21605, "ts": "2026-07-03T17:23:46Z", "hours": 3.5672, "text": "Devlog #10 — ARES Math Notes Evolution Today was focused on transforming ARES Math Notes from a basic drawing canvas into an AI-assisted handwritten mathematics workspace. What was completed Notebook-Style Canvas Replaced the plain dark graph-board experience with a realistic ruled notebook interface. Added horizontal writing guides and notebook margin styling. Improved visual readability for handwritten equations and diagrams. Handwriting Capture Pipeline Tested freehand input using the pen system. Verified recognition workflow using handwritten equations such as: 2 + 2 = Established the end-to-end flow: Draw → Capture → Process → Generate solution. AI Solution Breakdown Interface Added structured step-by-step solution rendering. Solutions now display: Identified equation Intermediate calculation steps Final answer output Example validation: 2 + 2 = 4 Scientific Mathematics Support Tested trigonometric expression solving. Verified AI explanation generation for: cos(60) + tan(45) System successfully produced: Known values Substitution steps Final result Drawing Tool Improvements Multiple pen colors supported. Eraser workflow tested. Stroke rendering validated on notebook canvas. Diagram Interpretation Testing Conducted experiments using simple sketches and distance-based drawings. Used hand-drawn objects and directional annotations to evaluate future visual reasoning capabilities. AI Processing State Management Implemented visible AI processing feedback. Added retry/wait state handling when AI requests are temporarily unavailable. Users now receive clear status information instead of silent failures. UI Iteration Refined toolbar layout. Improved solve-action accessibility. Continued alignment with the ARES desktop operating environment. Challenges Found Notebook line rendering requires additional theme optimization for dark mode. Handwritten recognition accuracy still depends heavily on stroke quality. Complex diagram understanding is not yet production-ready. AI rate-limit handling needs further refinement. Current Status ARES Math Notes is now functioning as an AI-assisted handwritten mathematics workspace capable of: Freehand equation input Step-by-step AI explanations Scientific expression solving Notebook-style note-taking Interactive drawing workflows"}, {"post_id": 19406, "ts": "2026-06-30T18:35:19Z", "hours": 1.0319, "text": "ARESOS WebOS Devlog - Retro Synth Upgrades & Feature ReleaseHere is the complete devlog detailing the new features, architecture, and implementations created for ARESOS WebOS.🚀 OverviewWe have transformed ARESOS into a retro-futuristic, high-fidelity experience by integrating custom system-wide visual aesthetics, building standalone retro productivity and entertainment apps, and integrating full economy-driven skins/cosmetic customizers into the core arcade games.📺 1. Retro Screen Aesthetics (CRT & Scanline Filter)A system-wide display modifier mimicking old-school cathode-ray tube (CRT) arcade monitors.Tech Stack: CSS Keyframes + Absolute Viewport Layering + Context Settings Synchronization.Features:Horizontal scanline grids, vignette corner shadowing, and contrast-boosting curves.Subtle monitor flicker animation to enhance realism.Seamless Control: Accessible via the System Settings -> Theme panel, dynamically toggling a layout-wide wrapper in the main WebOS viewport.🎵 2. Cyberpunk Synth Player (Audio Terminal App)A reactive cyberpunk media player integrated with YouTube’s iframe API and a custom local storage library.Features:Dynamic Playlist Manager: Tracks are loaded, updated, and deleted locally via localStorage. Preloaded with high-fidelity streams by Lofi Girl and HOME.Sound-Reactive Greek Math Lyrics visualizer:Translates regular alphabetical letters of active song lines to Greek mathematical symbols (e.g. a -> α, b -> β, e -> ε).Stacks symbols in vertical neon columns reacting directly to simulated frequency bands.Double text overlay displaying translated symbols alongside original English lines.Autoplay Video Monitor: Includes a corner video preview frame which bypasses browser sandbox autoplay blocks.Dual Download Pipeline: A cyberpunk holographic terminal simulating decryption and bitstream packaging, accompanied by a direct external MP3 extraction link.🎨 3. Neon Paint (Pixel Paint App)A classic 8-bit retro pixel editor with full grid operations and paint tools.Features:Adjustable Resolutions: Quick toggle between 16x16, 32x32, and 64x64 grids.Sci-Fi Colors: Neon swatches + native color picker.Toolbox: Pencil (freehand draw), Eraser, and Flood Fill bucket (using a BFS queue traversal algorithm).Export System: Transforms local matrix cells into canvas pixels and exports high-definition .png files.🛸 4. Neon Duel: Ship Cosmetics CustomizerAdding progression mechanics to the 2-player local spaceship battle game.Features:Credits Economy: Players accumulate Cyber-Credits (CR) by participating (+20 CR) or winning (+50 CR) matches.Ship Cosmetics Shop: Modal menu inside the main screen allowing users to buy and equip unique skins: Vaporwave, Matrix, Solar, and Plasma.Dynamic Engine Rendering: Equipped skins feed directly into the game engine initialization, dynamically overriding default spaceship vectors and laser beams.🏎️ 5. Equation Racers: Vehicle Garage ShopAn upgrade to the educational racing game adding vehicle personalization.Features:Coins Wallet Sync: Integrates with SaveManager and the gameplay run analytics.Livery Shop: Buy and equip retro car paint jobs: Cyber Orange, Nebula Purple, Formula Red, and Retro Green.Double-Engine Compatibility: Integrated with both the lightweight 2D Canvas renderer and the high-performance WebGL2 sprite atlas pipeline."}, {"post_id": 17623, "ts": "2026-06-28T14:32:36Z", "hours": 12.4958, "text": "Equation Racers – Major Development ProgressEquation Racers has gone through multiple redesigns and gameplay iterations during development. The project started as a simple racing concept, but after extensive testing I repeatedly adjusted the gameplay, vehicle handling, road systems, and overall game direction to create a more enjoyable experience.More than 12 hours have been invested into development so far. During that time, many files were edited repeatedly, several systems were rewritten, numerous bugs were fixed, and performance was optimized through multiple testing cycles. I also changed the game concept and gameplay mechanics several times before arriving at the current direction.Key ProgressVehicle driving systemLane-based movement mechanicsHighway rendering systemEnvironment and atmosphere improvementsGameplay balancing and testingPerformance optimizationMultiple gameplay and concept redesignsThis project represents many hours of experimentation, iteration, debugging, and refinement. The current version is significantly more advanced than the original prototype and now provides a stable, playable racing experience while establishing a foundation for future features."}, {"post_id": 11861, "ts": "2026-06-19T09:42:35Z", "hours": 3.4522, "text": "🚀 Devlog #7: Pausing Equation Realms and Starting Equation Racers“Sometimes the best decision is knowing when to pause.”Over the past few weeks, development focused on Equation Realms, a large RPG project planned as one of the flagship experiences inside ARESOS.The goal was ambitious: build a procedural RPG world powered by mathematics, equations, and exploration.A lot of progress was made.Completed work included:Procedural world generationChunk loading systemsCombat foundationsEnemy spawningLoot systemsInventory architectureEquipment systemsLandmark generationSettlement planningAsset integrationFrom a technical perspective, the project was moving forward successfully.However, after several rounds of testing and design reviews, an important issue became clear.The game had systems.The game had technology.But the core mathematical gameplay was still not fully defined.Many questions remained unanswered:How should equations affect combat?How should equations affect progression?How should equations affect enemies?How should equations affect exploration?Without clear answers, continuing development risked building large amounts of content around mechanics that might later need to be redesigned.Another challenge was resources.Several planned features still required additional assets, effects, enemy concepts, and visual content before they could be implemented properly.Instead of forcing development forward, I decided to pause Equation Realms temporarily and focus on validating the core mathematical gameplay first.That decision led to a new project:Equation RacersEquation Racers is a smaller and more focused game built around a single idea:Mathematical equations directly change how your vehicle behaves during an endless race.Unlike Equation Realms, the core mechanic can be experienced immediately.This allows faster testing, faster iteration, and much quicker development.The first version will focus on:Endless procedural tracksEquation-based driving stylesFunction fragments and upgradesObstacles and collectiblesRisk-versus-reward gameplayArcade-style progressionMost importantly, Equation Racers will help test mathematical gameplay concepts that may later return to Equation Realms. Another important realization during this process was that there is no requirement to preserve every prototype, system, or experiment already built.If necessary, Equation Realms can be restarted from the ground up.The purpose of the current prototype was to explore ideas, test systems, identify weaknesses, and better understand what the game should become.That objective has already been achieved.If future development reveals a better direction, a cleaner architecture, or a stronger gameplay foundation, rebuilding parts of the project — or even restarting entirely — remains a valid option.The goal is not to protect old code.The goal is to build the best possible version of Equation Realms.For now, the existing prototype serves as valuable research and a learning platform while development focus shifts toward Equation Racers. Equation Realms is not cancelled.It’s simply waiting until the right systems, resources, and gameplay ideas are ready.For now, development shifts toward building something smaller, faster, and more focused.Next stop:🏎️ Equation Racers."}, {"post_id": 10526, "ts": "2026-06-17T08:52:35Z", "hours": 1.9486, "text": "🚀 Devlog #6: Reworking the First Impression “The first thing users see is the boot screen and login screen.” After testing ARESOS and reviewing feedback, I spent time improving the startup experience of the operating system. One major issue was that some parts of the interface felt too similar to common AI-generated dashboard designs. The goal was to move toward a cleaner and more believable operating system experience. Changes made: Redesigned the ARESOS boot screen Created a custom animated ARES logo Improved boot sequence and startup flow Simplified boot messages and visual hierarchy Redesigned the login screen layout Improved typography, spacing, and consistency Removed unnecessary futuristic UI elements Strengthened the overall ARESOS visual identity One challenge was getting the logo animation right. Early versions looked incomplete during startup and made the logo difficult to recognize. Several iterations were needed before the animation felt natural and readable. The login screen also went through multiple revisions to balance branding and usability. The final design keeps the logo as the primary focus while making authentication simple and distraction-free. This update doesn’t add new functionality, but it significantly improves the first impression and overall experience of using ARESOS."}, {"post_id": 10014, "ts": "2026-06-16T15:37:45Z", "hours": 5.2469, "text": "🚀 Devlog #5: Terminal, Archives, and the v2.0 Release As development continued, I spent most of my time improving the terminal experience. ARESOS now supports command chaining, pipes, redirection, aliases, environment variables, command history expansion, and a growing collection of filesystem utilities. I also added ZIP archive support. Files can be archived, extracted, and restored directly from the virtual filesystem through terminal commands. One of the goals for this release was making the terminal feel more useful rather than simply displaying simulated output. A lot of time went into testing command interactions, filesystem behavior, and archive handling. With the shell, filesystem, desktop environment, and documentation now in place, ARESOS v2.0 is ready for its first public release."}, {"post_id": 9145, "ts": "2026-06-15T09:53:22Z", "hours": 0.2964, "text": "🚀 Devlog #4: Building the Mission Control Workspace “An operating system becomes useful when everything works together.” After building the core desktop environment, I focused on creating a workspace designed specifically for productivity and organization. ARESOS now includes a collection of integrated tools including Calendar, Todo Manager, Settings, Notification Center, Focus Session controls, and system management panels. Instead of forcing users to switch between multiple websites and browser tabs, the goal was to create a centralized mission-control experience where scheduling, task tracking, configuration, and daily planning happen inside a single environment. This was the point where ARESOS stopped feeling like a collection of windows and started feeling like a complete productivity operating system."}, {"post_id": 9137, "ts": "2026-06-15T09:21:48Z", "hours": 0.63, "text": "“A web operating system needs files.” Content ARESOS includes a custom Virtual File System inspired by Unix-like directory structures. The filesystem is stored entirely inside the browser using localStorage and supports: Directories Files Creation Deletion Navigation Persistent storage The most interesting part is that Terminal and File Explorer both interact with the same underlying filesystem state. Creating a folder through Terminal instantly appears inside File Explorer without refreshing the page."}, {"post_id": 9128, "ts": "2026-06-15T08:37:42Z", "hours": 0.6236, "text": "“Window drag and resize in React is easy. Making it feel like a real OS is not.” Content One of the biggest challenges was creating a desktop environment that behaves like a real operating system. ARESOS supports: Draggable windows Resizable windows Minimize animations Maximize mode Focus management Dynamic z-index stacking Initially, dragging felt sluggish because CSS transitions were conflicting with real-time position updates. The solution was temporarily disabling transitions during drag operations and restoring them afterward. This dramatically improved responsiveness and made window movement feel much smoother."}, {"post_id": 9106, "ts": "2026-06-15T07:11:12Z", "hours": 6.4483, "text": "“An operating system isn’t a collection of apps. It’s the layer that controls them.” Created OSContext.tsx as the central operating system kernel. Every window, process, notification, and desktop state flows through a single source of truth. Implemented process spawning, window registration, focus management, and desktop state persistence. Separated OS logic from application logic to keep the architecture modular. This became the foundation that every other subsystem relies on."}]...
|
Title: ARESOS by @Ankit | Stardance
Devlogs:
“An Title: ARESOS by @Ankit | Stardance
Devlogs:
“An operating system isn’t a collection of apps. It’s the layer that controls them.” Created OSContext.tsx as the central operating system kernel. Every window, process, notification, and desktop state flows through a single source of truth. Implemented process spawning, window registration, focus management, and desktop state persistence. Separated OS logic from application logic to keep the architecture modular. This became the foundation that every other subsystem relies on.
“Window drag and resize in React is easy. Making it feel like a real OS is not.” Content One of the biggest challenges was creating a desktop environment that behaves like a real operating system. ARESOS supports: Draggable windows Resizable windows Minimize animations Maximize mode Focus management Dynamic z-index stacking Initially, dragging felt sluggish because CSS transitions were conflicting with real-time position updates. The solution was temporarily disabling transitions during drag operations and restoring them afterward. This dramatically improved responsiveness and made window movement feel much smoother.
“A web operating system needs files.” Content ARESOS includes a custom Virtual File System inspired by Unix-like directory structures. The filesystem is stored entirely inside the browser using localStorage and supports: Directories Files Creation Deletion Navigation Persistent storage The most interesting part is that Terminal and File Explorer both interact with the same underlying filesystem state. Creating a folder through Terminal instantly appears inside File Explorer without refreshing the page.
🚀 Devlog #4: Building the Mission Control Workspace “An operating system becomes useful when everything works together.” After building the core desktop environment, I focused on creating a workspace designed specifically for productivity and organization. ARESOS now includes a collection of integrated tools including Calendar, Todo Manager, Settings, Notification Center, Focus Session controls, and system management panels. Instead of forcing users to switch between multiple websites and browser tabs, the goal was to create a centralized mission-control experience where scheduling, task tracking, configuration, and daily planning happen inside a single environment. This was the point where ARESOS stopped feeling like a collection of windows and started feeling like a complete productivity operating system.
🚀 Devlog #5: Terminal, Archives, and the v2.0 Release As development continued, I spent most of my time improving the terminal experience. ARESOS now supports command chaining, pipes, redirection, aliases, environment variables, command history expansion, and a growing collection of filesystem utilities. I also added ZIP archive support. Files can be archived, extracted, and restored directly from the virtual filesystem through terminal commands. One of the goals for this release was making the terminal feel more useful rather than simply displaying simulated output. A lot of time went into testing command interactions, filesystem behavior, and archive handling. With the shell, filesystem, desktop environment, and documentation now in place, ARESOS v2.0 is ready for its first public release.
🚀 Devlog #6: Reworking the First Impression “The first thing users see is the boot screen and login screen.” After testing ARESOS and reviewing feedback, I spent time improving the startup experience of the operating system. One major issue was that some parts of the interface felt too similar to common AI-generated dashboard designs. The goal was to move toward a cleaner and more believable operating system experience. Changes made: Redesigned the ARESOS boot screen Created a custom animated ARES logo Improved boot sequence and startup flow Simplified boot messages and visual hierarchy Redesigned the login screen layout Improved typography, spacing, and consistency Removed unnecessary futuristic UI elements Strengthened the overall ARESOS visual identity One challenge was getting the logo animation right. Early versions looked incomplete during startup and made the logo difficult to recognize. Several iterations were needed before the animation felt natural and readable. The login screen also went through multiple revisions to balance branding and usability. The final design keeps the logo as the primary focus while making authentication simple and distraction-free. This update doesn’t add new functionality, but it significantly improves the first impression and overall experience of using ARESOS.
🚀 Devlog #7: Pausing Equation Realms and Starting Equation Racers“Sometimes the best decision is knowing when to pause.”Over the past few weeks, development focused on Equation Realms, a large RPG project planned as one of the flagship experiences inside ARESOS.The goal was ambitious: build a procedural RPG world powered by mathematics, equations, and exploration.A lot of progress was made.Completed work included:Procedural world generationChunk loading systemsCombat foundationsEnemy spawningLoot systemsInventory architectureEquipment systemsLandmark generationSettlement planningAsset integrationFrom a technical perspective, the project was moving forward successfully.However, after several rounds of testing and design reviews, an important issue became clear.The game had systems.The game had technology.But the core mathematical gameplay was still not fully defined.Many questions remained unanswered:How should equations affect combat?How should equations affect progression?How should equations affect enemies?How should equations affect exploration?Without clear answers, continuing development risked building large amounts of content around mechanics that might later need to be redesigned.Another challenge was resources.Several planned features still required additional assets, effects, enemy concepts, and visual content before they could be implemented properly.Instead of forcing development forward, I decided to pause Equation Realms temporarily and focus on validating the core mathematical gameplay first.That decision led to a new project:Equation RacersEquation Racers is a smaller and more focused game built around a single idea:Mathematical equations directly change how your vehicle behaves during an endless race.Unlike Equation Realms, the core mechanic can be experienced immediately.This allows faster testing, faster iteration, and much quicker development.The first version will focus on:Endless procedural tracksEquation-based driving stylesFunction fragments and upgradesObstacles and collectiblesRisk-versus-reward gameplayArcade-style progressionMost importantly, Equation Racers will help test mathematical gameplay concepts that may later return to Equation Realms. Another important realization during this process was that there is no requirement to preserve every prototype, system, or experiment already built.If necessary, Equation Realms can be restarted from the ground up.The purpose of the current prototype was to explore ideas, test systems, identify weaknesses, and better understand what the game should become.That objective has already been achieved.If future development reveals a better direction, a cleaner architecture, or a stronger gameplay foundation, rebuilding parts of the project — or even restarting entirely — remains a valid option.The goal is not to protect old code.The goal is to build the best possible version of Equation Realms.For now, the existing prototype serves as valuable research and a learning platform while development focus shifts toward Equation Racers. Equation Realms is not cancelled.It’s simply waiting until the right systems, resources, and gameplay ideas are ready.For now, development shifts toward building something smaller, faster, and more focused.Next stop:🏎️ Equation Racers.
Equation Racers – Major Development ProgressEquation Racers has gone through multiple redesigns and gameplay iterations during development. The project started as a simple racing concept, but after extensive testing I repeatedly adjusted the gameplay, vehicle handling, road systems, and overall game direction to create a more enjoyable experience.More than 12 hours have been invested into development so far. During that time, many files were edited repeatedly, several systems were rewritten, numerous bugs were fixed, and performance was optimized through multiple testing cycles. I also changed the game concept and gameplay mechanics several times before arriving at the current direction.Key ProgressVehicle driving systemLane-based movement mechanicsHighway rendering systemEnvironment and atmosphere improvementsGameplay balancing and testingPerformance optimizationMultiple gameplay and concept redesignsThis project represents many hours of experimentation, iteration, debugging, and refinement. The current version is significantly more advanced than the original prototype and now provides a stable, playable racing experience while establishing a foundation for future features.
ARESOS WebOS Devlog - Retro Synth Upgrades & Feature ReleaseHere is the complete devlog detailing the new features, architecture, and implementations created for ARESOS WebOS.🚀 OverviewWe have transformed ARESOS into a retro-futuristic, high-fidelity experience by integrating custom system-wide visual aesthetics, building standalone retro productivity and entertainment apps, and integrating full economy-driven skins/cosmetic customizers into the core arcade games.📺 1. Retro Screen Aesthetics (CRT & Scanline Filter)A system-wide display modifier mimicking old-school cathode-ray tube (CRT) arcade monitors.Tech Stack: CSS Keyframes + Absolute Viewport Layering + Context Settings Synchronization.Features:Horizontal scanline grids, vignette corner shadowing, and contrast-boosting curves.Subtle monitor flicker animation to enhance realism.Seamless Control: Accessible via the System Settings -> Theme panel, dynamically toggling a layout-wide wrapper in the main WebOS viewport.🎵 2. Cyberpunk Synth Player (Audio Terminal App)A reactive cyberpunk media player integrated with YouTube’s iframe API and a custom local storage library.Features:Dynamic Playlist Manager: Tracks are loaded, updated, and deleted locally via localStorage. Preloaded with high-fidelity streams by Lofi Girl and HOME.Sound-Reactive Greek Math Lyrics visualizer:Translates regular alphabetical letters of active song lines to Greek mathematical symbols (e.g. a -> α, b -> β, e -> ε).Stacks symbols in vertical neon columns reacting directly to simulated frequency bands.Double text overlay displaying translated symbols alongside original English lines.Autoplay Video Monitor: Includes a corner video preview frame which bypasses browser sandbox autoplay blocks.Dual Download Pipeline: A cyberpunk holographic terminal simulating decryption and bitstream packaging, accompanied by a direct external MP3 extraction link.🎨 3. Neon Paint (Pixel Paint App)A classic 8-bit retro pixel editor with full grid operations and paint tools.Features:Adjustable Resolutions: Quick toggle between 16x16, 32x32, and 64x64 grids.Sci-Fi Colors: Neon swatches + native color picker.Toolbox: Pencil (freehand draw), Eraser, and Flood Fill bucket (using a BFS queue traversal algorithm).Export System: Transforms local matrix cells into canvas pixels and exports high-definition .png files.🛸 4. Neon Duel: Ship Cosmetics CustomizerAdding progression mechanics to the 2-player local spaceship battle game.Features:Credits Economy: Players accumulate Cyber-Credits (CR) by participating (+20 CR) or winning (+50 CR) matches.Ship Cosmetics Shop: Modal menu inside the main screen allowing users to buy and equip unique skins: Vaporwave, Matrix, Solar, and Plasma.Dynamic Engine Rendering: Equipped skins feed directly into the game engine initialization, dynamically overriding default spaceship vectors and laser beams.🏎️ 5. Equation Racers: Vehicle Garage ShopAn upgrade to the educational racing game adding vehicle personalization.Features:Coins Wallet Sync: Integrates with SaveManager and the gameplay run analytics.Livery Shop: Buy and equip retro car paint jobs: Cyber Orange, Nebula Purple, Formula Red, and Retro Green.Double-Engine Compatibility: Integrated with both the lightweight 2D Canvas renderer and the high-performance WebGL2 sprite atlas pipeline.
Devlog #10 — ARES Math Notes Evolution Today was focused on transforming ARES Math Notes from a basic drawing canvas into an AI-assisted handwritten mathematics workspace. What was completed Notebook-Style Canvas Replaced the plain dark graph-board experience with a realistic ruled notebook interface. Added horizontal writing guides and notebook margin styling. Improved visual readability for handwritten equations and diagrams. Handwriting Capture Pipeline Tested freehand input using the pen system. Verified recognition workflow using handwritten equations such as: 2 + 2 = Established the end-to-end flow: Draw → Capture → Process → Generate solution. AI Solution Breakdown Interface Added structured step-by-step solution rendering. Solutions now display: Identified equation Intermediate calculation steps Final answer output Example validation: 2 + 2 = 4 Scientific Mathematics Support Tested trigonometric expression solving. Verified AI explanation generation for: cos(60) + tan(45) System successfully produced: Known values Substitution steps Final result Drawing Tool Improvements Multiple pen colors supported. Eraser workflow tested. Stroke rendering validated on notebook canvas. Diagram Interpretation Testing Conducted experiments using simple sketches and distance-based drawings. Used hand-drawn objects and directional annotations to evaluate future visual reasoning capabilities. AI Processing State Management Implemented visible AI processing feedback. Added retry/wait state handling when AI requests are temporarily unavailable. Users now receive clear status information instead of silent failures. UI Iteration Refined toolbar layout. Improved solve-action accessibility. Continued alignment with the ARES desktop operating environment. Challenges Found Notebook line rendering requires additional theme optimization for dark mode. Handwritten recognition accuracy still depends heavily on stroke quality. Complex diagram understanding is not yet production-ready. AI rate-limit handling needs further refinement. Current Status ARES Math Notes is now functioning as an AI-assisted handwritten mathematics workspace capable of: Freehand equation input Step-by-step AI explanations Scientific expression solving Notebook-style note-taking Interactive drawing workflows
Devlog Why ARESOS Started ARESOS started as a small experiment. At first, I only wanted to understand how operating systems work and how much of that experience could be recreated inside a browser. What started as a simple idea slowly grew into a desktop environment with applications, a virtual file system, games, utilities, and a custom terminal. I was curious about how complex software systems are built and how different parts of a system work together. Building The First Version The first goal was simple: Create a desktop Open applications Switch between windows Once that worked, I started adding more features and the project became much larger than originally planned. Virtual File System One of the biggest challenges was creating the Virtual File System. I wanted users to be able to create files and folders that would remain available after refreshing the browser. Building the filesystem taught me a lot about application state, data structures, and browser storage. Games I also wanted ARESOS to include things that were fun to use. Instead of only building utilities, I created games like: Equation Racers Neon Duel Creating games without relying heavily on external assets pushed me to learn more about rendering, game loops, and browser graphics. Working With AI AI was a useful tool during development, but it was not a magic solution. Sometimes AI generated useful code. Sometimes it generated bugs. Sometimes it broke working features completely. One of the biggest lessons I learned was when to trust AI suggestions and when to stop, debug the problem myself, and understand what was actually happening. What I Learned Through ARESOS I learned about: State management Browser storage Window systems Application architecture Game development Debugging large projects Working with AI tools More importantly, I learned that building real projects teaches more than following tutorials. Current Status ARESOS is still under active development. Some parts are complete, some are experimental, and many ideas are still waiting to be built. Future My long-term goal is to push ARESOS beyond a browser experiment. Future plans include: Cloud-based services AI integration More applications Better terminal capabilities Cross-device support Expanding the ARESOS ecosystem This project started as an experiment, but it has become one of the biggest projects I have built so far.
i rewrite some code and remove features like crt visuals and more
Ships:
I built ARESOS, a browser-based WebOS made with React Next.js. ARESOS includes a desktop environment, terminal, virtual filesystem, window management, themes, and ZIP archive support that all run entirely in the browser. The most challenging part was building the terminal and filesystem. Implementing command parsing, pipes, redirection, variables, aliases, archive handling, and making everything work together required a lot of testing and iteration. I’m happy with how the terminal and virtual filesystem turned out. The project evolved from a simple desktop UI into a more complete environment with file management, command execution, and archive tools. To test the project: Default Login Username: guest Password: 1462007 After logging in, open Terminal and try: help Create a file: touch notes.txt write notes.txt “Hello ARESOS” cat notes.txt Test variables: export USER=test echo $USER Test ZIP restore: touch restore.txt write restore.txt hello zip backup.zip restore.txt rm restore.txt unzip backup.zip cat restore.txt...
|
1793084230.8923373
|
1793170630.8923373
|
|
2351
|
Kernel Panic Tower Defence by @teamlewiscrafty | S Kernel Panic Tower Defence by @teamlewiscrafty | Stardance...
|
teamlewiscrafty
|
1
|
48.0
|
745
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-15T20:46:27Z", "hours": 48.0, "multiplier": 15.59, "payout": 745, "blessing": "neutral", "text": "Kernel Panic Hold off malware to give your firewall time to be repaired in this tower defence game prototype built using the Godot engine ! It is inspired by 1990s Unix systems and sci-fi classics like ‘The Matrix’. Play the demo at https://gianthotdog.itch.io/Kernel-Panic The game demo includes: Multiple levels including a tutorial GRUB-style menu A settings menu (Audio settings, Credits, VSync settings) A config file system so settings persist across play sessions An upgrade tree that contains global upgrades to towers and XP gains An XP and skill point system for purchasing those upgrades 4 distinct types of towers with adjustable targeting priorities Several enemy types Custom resources to handle: Single tower upgrades Enemy counts in waves Global upgrades Controls: Enter to skip startup sequence Click to select / interact / modify values AI: AI was used to write about 50 lines of code for the two shaders, and very occasionally for solving persistent bugs. It was only used for bug fixes after I tried repeatedly and failed to find a solution myself. It was also used for some feedback on aesthetic choices. All assets were designed by hand. All AI code was reviewed before implementation. Credits: Initial prototyping asset pack by Kenney Music by iamoneabe: https://opengameart.org/content/trunkful-of-junk", "repo": "https://github.com/GiantHotdog/tower-defence-game", "demo": "https://gianthotdog.itch.io/kernel-panic"}]...
|
[{"post_id": 68782, "ts": "202 [{"post_id": 68782, "ts": "2026-09-15T18:58:47Z", "hours": 5.0969, "text": "Improving the global upgrade system Additions : Support for panning around the upgrade tree More upgrades ! Added icons to upgrades Added file saving for XP earned Allow accessing the skill tree from the menu Changes: Level completion is now tracked across multiple play sessions Refined “Currently: …” messages in the upgrade tree The features from the last devlog are now also public ! 🎉 I added some more upgrades to the upgrade tree, and I also gave all of them icons. The icons are… passable. I’m not a graphical artist, and it kind of shows. The “Currently…” messages at the bottom of the side panel got an overhaul, including the addition of units, specific to the type of value being upgraded The game now saves both xp earned and levels completed to files, so they persist between play sessions. This means you don’t have to replay the whole game every time you close it - this is no longer an 80s game ! The skill tree can also be accessed from the menu, so I’m no longer just booting it straight from the Godot editor. This makes it slightly more user friendly. This is probably where I will leave this project for now. I may come back to it now and then, but I’m happy with where this game demo has ended up. I’ll ship it soon, so watch out for that ! If you want to play the game, it is live here . If you are interested in the code, it is available here . To Do list : Add a “reset all to default” option in settings Quote of the update: “Next time I do this, remind me to actually build a proper tree structure” Any suggestions, please let me know in the comments below. Thanks for reading !"}, {"post_id": 42676, "ts": "2026-08-07T15:04:25Z", "hours": 10.5378, "text": "Adding a global upgrade system Additions : Added ‘Zero day’ enemy Added a second level with 6 waves Added a xp system, with skill points and a skill tree Changes: Expanded wave variety in other levels I added a ‘Zero day’ enemy to my game. This enemy is invulnerable for the first 5 seconds after it first spawns in. This makes it highly annoying as it has a tendency to draw and absorb all attacks from high damage towers, and pass through a large portion of your damaging towers unscathed. I also added more waves and a second level, and I’ll slowly expand the playtime of the game as I also add more features The big change here is the xp system. Currently, finishing a level rewards you with some xp, which counts towards your level. Each level up rewards you with a skill point that can be spent in the skill tree. The xp required to level up increases exponentially as the current level gets higher and higher. Unlocks in the tree save to a file and read back on load, so progress is maintained. I was reminded here of my vehement dislike of handling files. For the second time during this project, I forgot where userspace files were stored in Godot. Check this devlog for a bit more detail. Now unfortunately, the demo currently online doesn’t include these new features because I need to write a devlog every 10 hours, but the features aren’t finished. I’ll push them as soon as they are ready™ To Do list : Add file saving for XP earned Allow actually accessing the skill tree from the menu Add a “reset all to default” option in settings Quote of the update: “I. Really. Hate. Files” Any suggestions, please let me know in the comments below."}, {"post_id": 22190, "ts": "2026-07-04T15:02:38Z", "hours": 10.0806, "text": "Added a compendium Alright, this is a big one Additions : Added an indicator that shows the progress through the level Added a “Zip bomb” enemy Added cloaked enemies Added a pause menu Added a compendium Changes: Rebuilt the tutorial I added an indicator to show the player’s progress through the level. It also adds a tiny bit of story - you have to hold off malware until a firewall is constructed, and that bar shows you the progress. And I didn’t even build it from scratch - I’m just using the health bar from the enemies ! 🤫 Next - a zip bomb enemy that, as the name suggests, spawns a burst of child enemies when killed. It moves very slowly, but has high health - this makes it a great target for the SIGTERM sniper tower, which was previously useless not always the best choice. Cloaking was my way of trying to spice up the types of enemies the player would have to deal with. Some enemies in a level will now be cloaked, which means they cannot be attacked until they have their cloaking removed by the new ‘defragmenter’ tower. I wanted a way for players to easily compare the stats of the various towers and enemies, and I also needed something else to add to my pause menu. I decided to kill two pieces of malware with one antivirus quarantine, by adding a compendium. This currently has two tabs, for towers and enemies, each showing you the stats of a tower / enemy when it’s selected. Please don’t ask me how long this took. I don’t want to talk about it. I also rebuilt the tutorial because it looked bad was a pain to build and test would break if i breathed too close to it So I completely scrapped the old system and built a new one Quote of the update: “Hidden malware is a pain - in this game, and in real life” Any suggestions, please let me know in the comments below."}, {"post_id": 10191, "ts": "2026-06-16T20:02:36Z", "hours": 4.1847, "text": "Added a terminal window that logs game events and a tower blocker for level design Changes : Reorganised the UI to provide more space for the level and generally give everything a more unified aesthetic Additions : Added a terminal window at the bottom of the screen that logs game events Added a ‘towerblocker’ tool that the level designer can use to restrict tower placement opportunities Plus (as always) quite a few bug fixes So what is the key feature for any 90s UNIX Linux system? A terminal, of course ! And what is a UNIX-themed game without a terminal? So I added a system where game events, such as waves starting, or enemies being killed, are logged to a terminal window at the bottom of the screen. This window can be opened and closed, and has a little coloured pulse around it whenever a new log is entered. The coloured pulse is synced to the type of event (red for ‘errors’, yellow for ‘warnings’ white for everything else) as well. Each message contains some details about the event and a timestamp on the left. This feature was my first time using the richTextLabel, which allowed me to colour the text. The towerblocker is simple - it’s an invisible tile that can only be placed when the levels are being designed in order to add difficulty or avoid placing of towers offscreen I also reorganised the UI to provide more space for the level - it was all feeling a bit cramped. That reorg also helped to give everything a more unified aesthetic because I took the opportunity to apply some styles to everything, making it feel just a little more together. Quote of the update: “An empty terminal log is always nice. Unfortunately, I don’t think things will be that peaceful…” Any suggestions, please let me know in the comments."}, {"post_id": 8701, "ts": "2026-06-14T13:37:38Z", "hours": 6.4575, "text": "Overhauled the game over screen’s aesthetic and added mouse support to the menu Changes : Changed the game over screen to better fit with the game’s aesthetic Changed the font to a monospaced one Additions : Added mouse support to the menu Added a spray of particles to enemies when they die Added a chromatic aberration effect to enemies when they are hit Plus quite a few bug fixes The first change in this devlog is the game over screen, which used to look like a boring window with a restart button, but now looks like a crash screen [ Image below ] that uses the actual system data to display its message, via a template string and an 8 line formatting statement. I am quite proud of this one Adding mouse support to the menu was, in a word, painful. Because I’d built my own menu system using labels instead of buttons, I had to almost completely rewrite the code to allow for conversion of a Label reference (from one of Godot’s built-in functions) to a child id (which my functions were expecting). And then I had to add some overrides to that so some labels that were not part of the menu system wouldn’t break everything. The spray of particles from enemies when they die is one of my personal favourite effects in this game, mostly because of what I’ve learnt from it. I made the particles be text based by using a subviewport, which basically is a viewport that doesn’t display anything and can then be attached to a texture to show its contents, in this case, on the particles as they are emitted. I also made the text randomise to a 2 digit hexadecimal value - that felt suitably ‘techy’ One of the smaller features in this devlog is the font change. Instead of using Godot’s default font, I found the font used in the actual GRUB and used that instead. Where did I find this font, you ask? It came directly from my PC - I copied the file straight out of /usr/share/fonts . And now we come to chromatic aberration which, as it turns out, is easy to implement for the whole screen, but slightly harder to make work for only a single sprite without discolouring the background. After messing around with shaders for a bit, I gave up and just made 2 versions of my enemy sprite (in red and blue) and just physically offset them in code. And it works. And, if I dare to blow my own trumpet for just a second, it looks great ! Quote of the update: “Please never make me look at my menu code again.”"}, {"post_id": 5836, "ts": "2026-06-09T19:35:21Z", "hours": 4.2917, "text": "Overhauled the menu aesthetic and added a settings menu So, I realised that I’d called this game ‘Kernel Panic’, a very techy name, and yet done little to lean into the aesthetic that evoked. I decided to fix that. Changes: Rebuilt the main menu to use a similar aesthetic to the Linux GRUB Added a settings menu: Support for 2 Vsync modes A slider to control audio A credits page This was my first time using config files, so I also got to learn something; Godot’s user:// directory is not the same as res://. A file created in the user:// directory cannot be seen in the res:// directory. From my uneducated perspective, it seemed as if this file (which I couldn’t find in the editor, since that only shows res:// ) was persisting across runtimes - something non-existent files famously don’t do. I saw someone else do a ‘quote of the update’, but I was unable to find their username to credit them, so please tell me if you know who they are: Quote of the update: “I really don’t like config files” Next plan is to overhaul the game over screen so it better fits with the aesthetic"}, {"post_id": 3590, "ts": "2026-06-06T16:17:25Z", "hours": 0.2508, "text": "Made a dictionary of wave information resources in the level . I exported a dictionary of custom WaveInfo resources in my level scene, and went to add a new resource to the dictionary. I typed in the key, added a new WaveInfo, and clicked Ctrl+s. My new key-value pair promptly vanished without a trace And so began the hour of removing variables, re-adding variables, trawling through the Godot forums and generally wanting to set fire to my computer to try to find the problem. The urge that was not improved by the discovery that I’d forgotten to press the button to actually add the key-value pair, and the error firmly existed between chair and keyboard."}, {"post_id": 3545, "ts": "2026-06-06T15:10:06Z", "hours": 0.4167, "text": "Added a resource to allow upgrades to towers. For those who haven’t used Godot, a resource is a fancy name for a data container that counts the number of other objects referencing it and automatically frees itself when it is no longer needed. According to a quick glance at the Godot docs, creating a custom Resource is as simple as creating a new script that extends Resource and adding a couple of @export variables. I failed at step one, used the default ‘ extend Node ’ instead of ‘ extend Resource ’, and then spent over half an hour trying to work out why it didn’t show up in the inspector. Lesson learned then? Not really, because I did the exact same thing again the next day."}, {"post_id": 3523, "ts": "2026-06-06T14:35:36Z", "hours": 7.0975, "text": "First devlog for Kernel Panic , a tower defence game built in Godot. Here is my progress so far: A menu which allows the user to select levels Multiple custom resources to allow for: Flexible enemy counts and spawn rates during waves Changing of range, damage, or attack speed of a tower Creation of ‘upgrade paths’, which store several upgrades, as well as progress along the path Inspection window that allows: Customisable targeting priority Upgrades to be applied from multiple upgrade paths Multiple towers with several unique upgrade paths each Next step - building a tutorial level that explains the key mechanics of the game."}]...
|
Title: Kernel Panic Tower Defence by @teamlewiscra Title: Kernel Panic Tower Defence by @teamlewiscrafty | Stardance
Devlogs:
First devlog for Kernel Panic , a tower defence game built in Godot. Here is my progress so far: A menu which allows the user to select levels Multiple custom resources to allow for: Flexible enemy counts and spawn rates during waves Changing of range, damage, or attack speed of a tower Creation of ‘upgrade paths’, which store several upgrades, as well as progress along the path Inspection window that allows: Customisable targeting priority Upgrades to be applied from multiple upgrade paths Multiple towers with several unique upgrade paths each Next step - building a tutorial level that explains the key mechanics of the game.
Added a resource to allow upgrades to towers. For those who haven’t used Godot, a resource is a fancy name for a data container that counts the number of other objects referencing it and automatically frees itself when it is no longer needed. According to a quick glance at the Godot docs, creating a custom Resource is as simple as creating a new script that extends Resource and adding a couple of @export variables. I failed at step one, used the default ‘ extend Node ’ instead of ‘ extend Resource ’, and then spent over half an hour trying to work out why it didn’t show up in the inspector. Lesson learned then? Not really, because I did the exact same thing again the next day.
Made a dictionary of wave information resources in the level . I exported a dictionary of custom WaveInfo resources in my level scene, and went to add a new resource to the dictionary. I typed in the key, added a new WaveInfo, and clicked Ctrl+s. My new key-value pair promptly vanished without a trace And so began the hour of removing variables, re-adding variables, trawling through the Godot forums and generally wanting to set fire to my computer to try to find the problem. The urge that was not improved by the discovery that I’d forgotten to press the button to actually add the key-value pair, and the error firmly existed between chair and keyboard.
Overhauled the menu aesthetic and added a settings menu So, I realised that I’d called this game ‘Kernel Panic’, a very techy name, and yet done little to lean into the aesthetic that evoked. I decided to fix that. Changes: Rebuilt the main menu to use a similar aesthetic to the Linux GRUB Added a settings menu: Support for 2 Vsync modes A slider to control audio A credits page This was my first time using config files, so I also got to learn something; Godot’s user:// directory is not the same as res://. A file created in the user:// directory cannot be seen in the res:// directory. From my uneducated perspective, it seemed as if this file (which I couldn’t find in the editor, since that only shows res:// ) was persisting across runtimes - something non-existent files famously don’t do. I saw someone else do a ‘quote of the update’, but I was unable to find their username to credit them, so please tell me if you know who they are: Quote of the update: “I really don’t like config files” Next plan is to overhaul the game over screen so it better fits with the aesthetic
Overhauled the game over screen’s aesthetic and added mouse support to the menu Changes : Changed the game over screen to better fit with the game’s aesthetic Changed the font to a monospaced one Additions : Added mouse support to the menu Added a spray of particles to enemies when they die Added a chromatic aberration effect to enemies when they are hit Plus quite a few bug fixes The first change in this devlog is the game over screen, which used to look like a boring window with a restart button, but now looks like a crash screen [ Image below ] that uses the actual system data to display its message, via a template string and an 8 line formatting statement. I am quite proud of this one Adding mouse support to the menu was, in a word, painful. Because I’d built my own menu system using labels instead of buttons, I had to almost completely rewrite the code to allow for conversion of a Label reference (from one of Godot’s built-in functions) to a child id (which my functions were expecting). And then I had to add some overrides to that so some labels that were not part of the menu system wouldn’t break everything. The spray of particles from enemies when they die is one of my personal favourite effects in this game, mostly because of what I’ve learnt from it. I made the particles be text based by using a subviewport, which basically is a viewport that doesn’t display anything and can then be attached to a texture to show its contents, in this case, on the particles as they are emitted. I also made the text randomise to a 2 digit hexadecimal value - that felt suitably ‘techy’ One of the smaller features in this devlog is the font change. Instead of using Godot’s default font, I found the font used in the actual GRUB and used that instead. Where did I find this font, you ask? It came directly from my PC - I copied the file straight out of /usr/share/fonts . And now we come to chromatic aberration which, as it turns out, is easy to implement for the whole screen, but slightly harder to make work for only a single sprite without discolouring the background. After messing around with shaders for a bit, I gave up and just made 2 versions of my enemy sprite (in red and blue) and just physically offset them in code. And it works. And, if I dare to blow my own trumpet for just a second, it looks great ! Quote of the update: “Please never make me look at my menu code again.”
Added a terminal window that logs game events and a tower blocker for level design Changes : Reorganised the UI to provide more space for the level and generally give everything a more unified aesthetic Additions : Added a terminal window at the bottom of the screen that logs game events Added a ‘towerblocker’ tool that the level designer can use to restrict tower placement opportunities Plus (as always) quite a few bug fixes So what is the key feature for any 90s UNIX Linux system? A terminal, of course ! And what is a UNIX-themed game without a terminal? So I added a system where game events, such as waves starting, or enemies being killed, are logged to a terminal window at the bottom of the screen. This window can be opened and closed, and has a little coloured pulse around it whenever a new log is entered. The coloured pulse is synced to the type of event (red for ‘errors’, yellow for ‘warnings’ white for everything else) as well. Each message contains some details about the event and a timestamp on the left. This feature was my first time using the richTextLabel, which allowed me to colour the text. The towerblocker is simple - it’s an invisible tile that can only be placed when the levels are being designed in order to add difficulty or avoid placing of towers offscreen I also reorganised the UI to provide more space for the level - it was all feeling a bit cramped. That reorg also helped to give everything a more unified aesthetic because I took the opportunity to apply some styles to everything, making it feel just a little more together. Quote of the update: “An empty terminal log is always nice. Unfortunately, I don’t think things will be that peaceful…” Any suggestions, please let me know in the comments.
Added a compendium Alright, this is a big one Additions : Added an indicator that shows the progress through the level Added a “Zip bomb” enemy Added cloaked enemies Added a pause menu Added a compendium Changes: Rebuilt the tutorial I added an indicator to show the player’s progress through the level. It also adds a tiny bit of story - you have to hold off malware until a firewall is constructed, and that bar shows you the progress. And I didn’t even build it from scratch - I’m just using the health bar from the enemies ! 🤫 Next - a zip bomb enemy that, as the name suggests, spawns a burst of child enemies when killed. It moves very slowly, but has high health - this makes it a great target for the SIGTERM sniper tower, which was previously useless not always the best choice. Cloaking was my way of trying to spice up the types of enemies the player would have to deal with. Some enemies in a level will now be cloaked, which means they cannot be attacked until they have their cloaking removed by the new ‘defragmenter’ tower. I wanted a way for players to easily compare the stats of the various towers and enemies, and I also needed something else to add to my pause menu. I decided to kill two pieces of malware with one antivirus quarantine, by adding a compendium. This currently has two tabs, for towers and enemies, each showing you the stats of a tower / enemy when it’s selected. Please don’t ask me how long this took. I don’t want to talk about it. I also rebuilt the tutorial because it looked bad was a pain to build and test would break if i breathed too close to it So I completely scrapped the old system and built a new one Quote of the update: “Hidden malware is a pain - in this game, and in real life” Any suggestions, please let me know in the comments below.
Adding a global upgrade system Additions : Added ‘Zero day’ enemy Added a second level with 6 waves Added a xp system, with skill points and a skill tree Changes: Expanded wave variety in other levels I added a ‘Zero day’ enemy to my game. This enemy is invulnerable for the first 5 seconds after it first spawns in. This makes it highly annoying as it has a tendency to draw and absorb all attacks from high damage towers, and pass through a large portion of your damaging towers unscathed. I also added more waves and a second level, and I’ll slowly expand the playtime of the game as I also add more features The big change here is the xp system. Currently, finishing a level rewards you with some xp, which counts towards your level. Each level up rewards you with a skill point that can be spent in the skill tree. The xp required to level up increases exponentially as the current level gets higher and higher. Unlocks in the tree save to a file and read back on load, so progress is maintained. I was reminded here of my vehement dislike of handling files. For the second time during this project, I forgot where userspace files were stored in Godot. Check this devlog for a bit more detail. Now unfortunately, the demo currently online doesn’t include these new features because I need to write a devlog every 10 hours, but the features aren’t finished. I’ll push them as soon as they are ready™ To Do list : Add file saving for XP earned Allow actually accessing the skill tree from the menu Add a “reset all to default” option in settings Quote of the update: “I. Really. Hate. Files” Any suggestions, please let me know in the comments below.
Improving the global upgrade system Additions : Support for panning around the upgrade tree More upgrades ! Added icons to upgrades Added file saving for XP earned Allow accessing the skill tree from the menu Changes: Level completion is now tracked across multiple play sessions Refined “Currently: …” messages in the upgrade tree The features from the last devlog are now also public ! 🎉 I added some more upgrades to the upgrade tree, and I also gave all of them icons. The icons are… passable. I’m not a graphical artist, and it kind of shows. The “Currently…” messages at the bottom of the side panel got an overhaul, including the addition of units, specific to the type of value being upgraded The game now saves both xp earned and levels completed to files, so they persist between play sessions. This means you don’t have to replay the whole game every time you close it - this is no longer an 80s game ! The skill tree can also be accessed from the menu, so I’m no longer just booting it straight from the Godot editor. This makes it slightly more user friendly. This is probably where I will leave this project for now. I may come back to it now and then, but I’m happy with where this game demo has ended up. I’ll ship it soon, so watch out for that ! If you want to play the game, it is live here . If you are interested in the code, it is available here . To Do list : Add a “reset all to default” option in settings Quote of the update: “Next time I do this, remind me to actually build a proper tree structure” Any suggestions, please let me know in the comments below. Thanks for reading !
Ships:
Kernel Panic Hold off malware to give your firewall time to be repaired in this tower defence game prototype built using the Godot engine ! It is inspired by 1990s Unix systems and sci-fi classics like ‘The Matrix’. Play the demo at https://gianthotdog.itch.io/Kernel-Panic The game demo includes: Multiple levels including a tutorial GRUB-style menu A settings menu (Audio settings, Credits, VSync settings) A config file system so settings persist across play sessions An upgrade tree that contains global upgrades to towers and XP gains An XP and skill point system for purchasing those upgrades 4 distinct types of towers with adjustable targeting priorities Several enemy types Custom resources to handle: Single tower upgrades Enemy counts in waves Global upgrades Controls: Enter to skip startup sequence Click to select / interact / modify values AI: AI was used to write about 50 lines of code for the two shaders, and very occasionally for solving persistent bugs. It was only used for bug fixes after I tried repeatedly and failed to find a solution myself. It was also used for some feedback on aesthetic choices. All assets were designed by hand. All AI code was reviewed before implementation. Credits: Initial prototyping asset pack by Kenney Music by iamoneabe: https://opengameart.org/content/trunkful-of-junk...
|
1793148971.528718
|
1793235371.528718
|
|
17344
|
Privournal by @Manonit | Stardance
|
Manonit
|
2
|
48.0
|
664
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-07T18:09:56Z", "hours": 14.0, "multiplier": 13.4, "payout": 184, "blessing": "neutral", "text": "I made Privournal, a retro CLI application for private journaling and custom text encryption featuring basic ciphers, advanced encryption (Swiption, Randomised, Manual Modes Hehe), and new features like Show Keys and View Account. Pheww you’re gonna love this if you’ve people trying to read your journals 😭 The hardest part was restructuring the whole flow so as to make it less repetitive and cleaner , fixing CLI table alignment glitches, and honestly, if you saw my last ship you’d know that the Swiption feature I made gave me a pretty tough time, Lol. Though I’m really proud of creating a seamless terminal workflow and getting it published live on PyPI as well as GitHub, this is one of the few things I’ve worked on and completed in my life. To test it out, run pip install –upgrade privournal, and type privournal in your terminal, and try encrypting and immediately decrypting a short sentence with or without an account!", "repo": "https://github.com/sermanoire/Privournal", "demo": "https://pypi.org/project/privournal/"}, {"ship_num": 2, "ts": "2026-06-19T01:48:24Z", "hours": 34.0, "multiplier": 17.48, "payout": 480, "blessing": "neutral", "text": "I built Privournal, a command-line journal encryptor that allows users to encrypt and decrypt journal entries locally on their own device. Because for me, someone reading my journal is a legit nightmare, and Privournal is something I can use to keep my digital journals secure. For me that’s a clear quality-of-life improvement : ) Write your journal anywhere (Notes, Notion, etc), paste it into Privournal, get back unreadable text, paste that back into your app. No journal content is ever stored - only the encryption key, and that too locally, if you make an account. To read it yourself you can again head to Privournal and decrypt it! It supports multiple encryption modes, including Basic Encryption, Advanced Encryption, Randomized Encryption, and Swiption - a dynamic encryption system that changes a letter’s cover after a particular number of occurrences, making it impossible to crack. The biggest challenge was implementing Swiption and its decryption logic. Managing occurrence tracking, rotating covers, JSON storage, database integration, and reliable decryption took multiple iterations and a lot of debugging. I also migrated the project from a MySQL-based architecture to SQLite after realizing a shared database conflicted with the goal of being fully offline and private. I’m most proud of turning an idea into a complete, usable package that can be installed through PyPI. I’ve never worked on something so religiously on something of this complexity. The project ended up being over 1400 lines of code and taught me a huge amount about python, databases, GitHub and packaging, debugging, and obviously logical thinking. I’ve never worked on something so religiously on something of this complexity. 3 Major Quality-of-Life Improvements : Zero-setup local encryption - Works completely offline with automatic SQLite database. No server or complicated config needed. Powerful & flexible encryption - Multiple modes + Swiption (dynamic rotating covers) makes it much stronger than simple substitution ciphers. Seamless workflow - Write anywhere -> encrypt -> paste back -> decrypt easily with account or manual key. Perfect for daily journaling : ) Try creating an account (or continue without an account), encrypting a journal entry, saving it, and then decrypting it again. Swiption and Randomised Modes are the most interesting and secure features to experiment with. To test it, run these on terminal : pip install privournal python import MainCode MainCode.start() Thank you so much for reading! : )", "repo": "https://github.com/sermanoire/Privournal", "demo": "https://pypi.org/project/privournal/"}]...
|
[{"post_id": 77627, "ts": "202 [{"post_id": 77627, "ts": "2026-10-07T17:55:59Z", "hours": 2.0183, "text": "Devlog 16! — Okay, NOW It’s Done. 😭 Phew. I thought Privournal was finally finished, but while making the final ASCII recording, I found a bunch of small errors (Some was huge), inconsistencies and table issues that I had to fix. What I worked on: Added two new functions: Show Keys and View Account . Show Keys lets users view all their saved encryption keys. View Account displays their account details neatly in a table. Fixed several encryption and decryption bugs , including issues with journal selection, menu choices and input validation. Fixed problems with database values and journal data being handled incorrectly. Improved table formatting, spacing and alignment throughout the program. Cleaned up various small inconsistencies and errors that appeared during full end-to-end testing. Made the new ASCII recording . There was some old test data already stored, which was causing confusing duplicate entries and messing up the tables. After clearing that out, everything worked properly. And finally… The entire thing worked perfectly. 🎉 Most of this Devlog was about fixing the small things rather than adding huge new features, but it made Privournal more consistent and reliable."}, {"post_id": 77302, "ts": "2026-10-06T14:14:50Z", "hours": 6.5342, "text": "Devlog 15! It’s done. Phew. Finally, Privournal is DONE. Complete, everything’s perfect. In this final version I’ve made so many improvements! Instead of using time.sleep() to give pauses/time to copy the details, now the users can copy and paste encrypted text and its key without a time limit, and then they can simply press Enter to move ahead. I also made HUGE changes to the code. Earlier, the code used to run and at multiple steps ask for login/signup, which was fine but it was confusing. Now the first page is for login/signup, then the rest of the code flows smoothly accordingly. This restructuring required writing many parts of the code again and breaking a lot of functions into 2 parts. I also renamed some variables. I also worked on spacing and formatting. Now the user details are printed cleanly in a table. Overall, the code outputs are much more uniform. I made a new ASCII recording. It is yet to be updated on my GitHub, though. I’ve also published this new version on PyPI. If you had already installed Privournal, you can just update it. Now the main thing. I’m going to make a Website for Privournal where users wouldn’t need to install anything and can just go straight to encrypting or decrypting their journals. This version will still exist, though. It’ll be a rather Retro CLI version for people who like it this way. Phew. I’ll work on that now."}, {"post_id": 15049, "ts": "2026-06-24T13:23:31Z", "hours": 5.1881, "text": "##Devlog #14 - The Reviewer Arc 🥲 . Well… . The reviewer found some issues 😭 . So I went back and tested basically the ENTIRE project again. . While testing, I found and fixed a bunch of errors, especially in Advanced Encryption. I also added a lot of fallback checks throughout the code so Privournal doesn’t randomly decide to crash anymore 😭 . I also improved the decryption flow. . Earlier users had to select journals using IDs, now they can simply choose them by name, which feels way cleaner. . Another addition was a user guide in menu. I was short on time and it was a no brainer, so I used Claude to help generate the guide content and then integrated it into Privournal. The goal was simply to make the different encryption modes easier to understand :) . Apart from code changes, I also polished the project page, uploaded a sample flowchart, improved formatting and timing, and recorded a completely new asciinema demo PLUS I updated the README too. . Then came final testing, packaging, uploading the latest release, and requesting review again 🤞🏻 . Hopefully Privournal passes thru this time 😭 . Thank you : )"}, {"post_id": 11681, "ts": "2026-06-19T01:11:08Z", "hours": 16.0992, "text": "Devlog #13 - IT’S DONE DONE! The Final Chapter. FINALLY. After two intense days and 16+ hours of grinding, Privournal is officially complete and ready for Stardance! 😭🎉 OH AND Yeah, it’s been two days - Long time no see 😭 . Sorry for disappearing without posting Devlog #13 🥲 . These last 16+ hours were so packed with debugging, packaging, testing, and polishing that I kept postponing the devlog. So this one covers the entire final stretch. . Btw hey I’ll upload the clean Flowchart on Git repo, and yk I was gonna write a LOT here with complete details, but damn there’s a limit. Well it’s oki i’ll add a list of all my devlogs to the repo too :) What Happened? I thought Devlog #12 was the “everything works” moment, but the final stretch turned out to be the work. Audited every function in the codebase Fixed dozens of lingering bugs Cleaned up the entire code Updated the README 10+ times Set up PyPI packaging and releases Recorded asciinema demos (Took enormous time 😭) Added prettier output/interface functions Tested every scenario I could think of Major Change: MySQL → SQLite One of the biggest changes was moving away from MySQL. . Originally, Privournal used MySQL with accounts and a shared database. Later I realized that requires a server, hosting, maintenance, and introduces privacy concerns. . So I redesigned everything around SQLite. . Benefits: Fully offline More private Easier installation Simpler deployment Probably the biggest architectural change in the entire project. Biggest Bugs Fixed Login/signup flow issues Missing database commits Foreign key linking problems JSON serialization/loading bugs The infamous “extra spaces everywhere” decryption bug Variable scope and traversal issues Randomised Mode integration By the end of Day 1, the core encryption/decryption system was finally reliable. The Swiption Demon 😭 Swiption and SwipDe took forever. . The idea sounds simple: letters rotate through multiple covers after a certain number of occurrences. . Actually implementing occurrence tracking, rotation logic, life values, multiple dictionaries, JSON storage, and decryption logic nearly broke my brain 😭 . The funniest part? . After hours of struggling I realized I had overcomplicated everything. Since every cover uniquely maps to a letter, I could simply search through the dictionaries instead of tracking a ton of extra information. LIKE DAMN. Swiption is now fully functional and ended up becoming my coolest feature in the project. Packaging & Shipping Cleaned up the repository Improved README and documentation Fixed PyPI packaging issues Tested in fresh virtual environments Published releases Recorded final demos ✨ Project Complete Privournal is now a real, usable command-line journal encryptor. Thanks to: My brother for catching early logic flaws GPT for quick syntax rescues Everyone who followed the devlogs And myself for not giving up 😭 **Privournal is shipped and ready for Stardance! ** I’d love your feedback once you try it. . This project taught me something exams never did : . Working religiously on something with all your heart to make it real. . Thank you for reading all 13 devlogs ❤️ . ✨ See you in the next project ✨ | Project Complete | Ready to Submit | 🎉"}, {"post_id": 10031, "ts": "2026-06-16T16:23:14Z", "hours": 1.6072, "text": "Devlog #12 - IT WORKS! FINALLY! After an hour of debugging, EVERYTHING WORKS! -Encryption -Decryption -Uploading to & Fetching from the Database -Sign Up -Login . The only things that aren’t fully working yet are Swiption and Random Mode, and honestly that’s on me 😭. I got way too focused on making everything else work first AND GOD I had to improvise whole sections of the decryption logic, you won’t believe it. . If you compare the code I committed before this and the code I committed today, I had to improvise so much! . I removed and added so much. My old decryption was code wrong, I mean the logic was on point but the syntax and a few other things were off that’s why it wasn’t working. . Some of the errors were genuinely silly, again 😅 . All my elifs somehow had the same condition, and people this is why you don’t copy paste conditions to save time (I still don’t know how I missed that) 🥲 . My traversal i was a string, and I kept accidentally treating it like an int iterator, I mean ugh. . A lot of bugs were literally sitting right in front of my eyes. . Some bugs were much bigger tho. One of the weirdest happened after I finally got decryption working - The decrypted text had way too many spaces between words. . After staring at it for a while, I noticed that the number of spaces was exactly the same as the number of unique letters in the text. That’s when it hit me - the loop was continuing to run even after finding a match. Few “breaks” later hehe, everything worked 😭 . After Swiption and Random Mode, those 2 really aren’t done right now, I’m sorry I type so slow 😭 . Yeah so after that I’ll focus on making the code look real pretty, like -Fixing my silly variable names -Comment notes ig? -Better spacing and formatting -Cleaning up extra files -Writing a proper README and project description . And yes… On the 13th Devlog, the project will be done done 🤞🏻 . Note : I improvised all my previous devlogs, with proper format so that it’s easier to read, you can tell me if it’s better 🙃 . See you in the next one!"}, {"post_id": 9530, "ts": "2026-06-15T22:02:49Z", "hours": 3.1286, "text": "Devlog #11 - First Successful Test! Let’s go!!! . First successful test done 😇 . The database fetching works, the encryption flow works - it wasn’t working earlier tho (And I spent an hour finding errors, like i’d run it again n again and also ended up rewriting portions, like my Advanced Encyption code was all messed up 😭) . But yes, now it’s working, i’m sure there are a couple more errors but i’m on my way to fix em! . And yk some of the errors were so silly - I had written input(“Enter cover for”,x), and damn i failed to realise what the issue was. . Then after a lot of trying I asked GPT and it said it’s cuz input() can only have one argument in the braces 😅 . A lot of other errors too were like me getting all confused btw variable names, function not being global and so on. . But yeah, one at a time i fixed em, fixed the code and now only the refining of the code and some other bugs remain. . And um I had said i’d do it in 10 devlogs, but ah now it looks like 12th would be the last one. . But hey, the more the better, ig? 😭 . See ya in the next devlog!"}, {"post_id": 9123, "ts": "2026-06-15T08:21:26Z", "hours": 4.0792, "text": "Devlog #10 - A Slight Setback This is going to be the biggest devlog. And this one’s gonna be a disappointing one 🥲 . First of all, I was talking to my brother and he asked such a good question - It pointed to a flaw which I didn’t notice at all. . Let’s say there’s a word “am” in the journal, a’s cover is 1 and m’s cover is 27 (so am = 127). Now cuz there’s not spacing the decryption code will actually traverse thru each of number at a time in the encrypted text (127), so it’ll literally convert 1 and then 2 and then 7 separately. This was such a major flaw in my logic and I’m still agonizing internally over the fact that my eyes missed it. . But ah it’s ok, I’m fixing that by simply making adding a trailing space after the cover to separate each letter’s cover. . There was so much running and errors and staring at screen and all that. . Another thing I noticed is that in Advanced Encryption when the user will choose covers for 52 letters, he might accidentally repeat a cover - which obvi will make it impossible to distinguish btw 2 letters. So I gotta add each cover to a list and then every time the user adds a cover i’ll see if it’s already there in the list or not. . Now these flaws I got to know when I was talking to my brother, and it was past midnight. So almost immediately after waking up I was onto fixing these flaws, and it’s in progress :) . Apart from that, I’ve been refining the code (Found some silly errors in functions) and fixing more logic issues. . Earlier the Encryption Key that I was using to decrypt, it was a dictionary - with the keys as letters and values as the cover. So before uploading them to the db table, I converted them into text. But then while fixing decryption code, I did tried dict(the string key) and later found out that it all doesn’t work like that, the syntax. . I checked online, asked GPT, he suggested that I use the json module, and so I did. Json made it pretty easy, now the conversion was smooth and 2 liner. . Also I fixed all the login/signup system, it works as smooth as butter now Hehe . I’d say the main issue wasn’t the code it was following where am I. . Like cuz there are so many functions and steps and paths that I was getting overwhelmed (plus the code is like 600 lines), so I basically carefully went thru each line of code and arranged each function in an order and side by side made the final flowchart (It made following the code super easy and looks cool tbh) - But yes that’s hectic work right there. . Now after all that… Does the code run? HELL NO IT DOESNT! . It’s still showing 21 errors 😭 Plus, Swiption’s still left. . So right now, I’m trying to fix the flaws and errors and get this code up and running without Swiption, once it is smooth then at the end I can code Swiption into it. . See ya in the next devlog!"}, {"post_id": 8726, "ts": "2026-06-14T14:26:44Z", "hours": 1.1836, "text": "Devlog #9 - This was unexpected… Turns out there were some issues in the decryption function. It completely ignored spaces while decrypting, which definitely wasn’t ideal 😭 . I’ve fixed that tho. . Also I remade the tables in database with much more info such as date of encryption and email (for forgot password purposes) . And this code was getting too long, like more than 400 lines long. . So, I’ve started splitting things into different files to keep everything organized. Db code has its own file, big functions like AdvEn() have their own file, and the same goes for Swiption and Random Encryption logic. . Target’s to finish the code tonight. . Thanks for reading!"}, {"post_id": 8602, "ts": "2026-06-14T09:32:39Z", "hours": 1.1364, "text": "Devlog #8 - The Eights. . So this would be Privournal’s 8th devlog, and this one feels kinda special :) . My birthday falls on an 8th too, and I just love the number 8. . Anyways, I was actually supposed to be done with the Swiption feature by now, but I just couldn’t help myself and started working on the Random Encryption feature. . Reason’s that it just came to me - . Why not make Random Encryption available for both Advanced Encryption AND Swiption too?? . This would make the whole Encryption process super fast if some user doesn’t want to manually encrypt each letter. So I’m onto that, then I’ll immediately look into Swiption. . Then finally I’ll refine the whole code and just go through all the variables, functions and rename them if needed (I’m one of those people who name the variable something silly and forget what it was for 😭) . I’ve also started mapping out the overall visual flow of Privournal cuz it was getting a bit confusing. . I’m thinking abt wrapping this project up in about 12 devlogs, and then launching it. . You can also check out the GitHub - I’ve been committing code changes on it regularly :) . Thanks for reading!"}, {"post_id": 8359, "ts": "2026-06-13T21:56:30Z", "hours": 1.7153, "text": "Devlog #7 - Almost There! Only the Swiption feature remains! . I’ve also been thinking about adding another cool feature where the covers are randomly chosen using Python’s random module. The idea is that it’ll be added in Custom Encryption. . Also, my bad 😭 . I sometimes refered to the Custom Encryption as Advanced Encrytion, that might confuse you - but i’ll be consistent with names now. It’s just that it’s the start and so many features and ideas just mush into my head 🙃 . Once Swiption is done, the Python version should basically be mostly complete, and then it’ll be time for da next step . Getting all this on a website, tho that is gonna be really difficult for me, I really don’t know how to make websites 🥲. . Not gonna lie, that part scares me a a lot cuz I don’t wanna use AI for the website 😭 . I really don’t know much about web development, but I guess that’s part of building a project. You learn whatever you need as you go. . Thank you so much for reading these devlogs tho :) . Hopefully tmrw the code will be done and I’ll be one step closer to completing Privournal!"}, {"post_id": 8152, "ts": "2026-06-13T16:24:59Z", "hours": 1.0783, "text": "Devlog #6 - Advanced Encryption! Pheww, this part took some effort! . Today I worked on the main encryption logic for Advanced Encryption, and after a lot of thinking, coding, testing, and rethinking, I finally got the foundation for it down :) . This is one of the core features of Privournal, so it feels really good seeing it slowly come together. . That said, this is only a small win . The real challenge is gonna be the “Swiption” feature. Bet Swiption is gonna take half my brain cells 😭"}, {"post_id": 8096, "ts": "2026-06-13T14:51:13Z", "hours": 0.4681, "text": "Devlog #5 - Database Established! . Now the basic outline has to be perfected, with each and every thing being functional. . After spending some time figuring out SQL, databases, connections, and all that stuff, I finally managed to get Python talking to the database successfully :) . Seeing actual records being fetched felt pretty satisfying not gonna lie. For now, the goal’s Add features and make everything functional Connect everything together Improve the overall structure On the way to do that!"}, {"post_id": 8033, "ts": "2026-06-13T12:07:47Z", "hours": 0.9758, "text": "Devlog #4 - Still on the Db thing . Hehe, my highschool Python-SQL interface notes are coming in handy! . When I was studying this stuff, I honestly didn’t think I’d ever end up using most of it cuz it seemed too basic Turns out I was wrong :) . Since Privournal is gonna need a database for account credentials and all that, I’ve started revising my old notes and figuring out how everything fits together. . Let’s see how this goes!"}, {"post_id": 7690, "ts": "2026-06-12T21:00:25Z", "hours": 0.6611, "text": "Devlog #3 - The Plan’s Shape Guys! . Errors fixed and a basic outline has been made (This time on a paper Hehe) . AND i’ve thought about how i’m gonna go about it! . I’ve also spent some time thinking about how I’m actually gonna build this thing. . I’ll have to make a sql database ig (For account credentials and encryption details) and link it to my python code. I’m still new so i’m not sure if the sql database method for keeping records is how the real companies operate, but still seems pretty nice. . And I mean these are journals that we’re talking about, - so security and privacy matter a lot. . Tho my whole idea and code is that the actual journal entry is never stored. Only the encryption sequence and logic is. . That way, even if some dummy somehow got access to the database, they wouldn’t find the journal itself (Hehe can’t outsmart me) . For now, the plan pretty clear: Finish the Python main code Get encryption working properly Add database support Convert it into a website Well, that’s it ig. . I’m gonna go and tmrw complete the whole thing in python and then yes - hopefully convert it into a website :)"}, {"post_id": 7639, "ts": "2026-06-12T19:21:01Z", "hours": 0.9731, "text": "Devlog #2 - The First Error and an Outline . Ran into the first error, phewww! . Honestly, had it coming - things were going way too smoothly for a rather newbie like me 😭 . I was working on the account system and trying to get the signup and login flow working when I hit the error. I also created a basic outline of flow (In my mind 😅) . Spent a good chunk of time staring, retracing my code, and trying to figure out what exactly I had written wrong. But yes, I’m on it!"}, {"post_id": 7568, "ts": "2026-06-12T17:29:14Z", "hours": 0.5239, "text": "Devlog #1 - The Beginning . Today wasn’t about building features but about getting everything ready. . I finished setting up the Github thing (Took me an hour lol), cleaned things up, and wrote the first version of the README. . It might not seem like much, but damn did it feel so hectic, maybe cuz it’s my first time working on a real software project :) . After the setup, I finally started writing the core code. . Right now it’s just the foundation and an outline that I’ve set out to achieve :) . The journey begins!"}]...
|
Title: Privournal by @Manonit | Stardance
Devlogs Title: Privournal by @Manonit | Stardance
Devlogs:
Devlog #1 - The Beginning . Today wasn’t about building features but about getting everything ready. . I finished setting up the Github thing (Took me an hour lol), cleaned things up, and wrote the first version of the README. . It might not seem like much, but damn did it feel so hectic, maybe cuz it’s my first time working on a real software project :) . After the setup, I finally started writing the core code. . Right now it’s just the foundation and an outline that I’ve set out to achieve :) . The journey begins!
Devlog #2 - The First Error and an Outline . Ran into the first error, phewww! . Honestly, had it coming - things were going way too smoothly for a rather newbie like me 😭 . I was working on the account system and trying to get the signup and login flow working when I hit the error. I also created a basic outline of flow (In my mind 😅) . Spent a good chunk of time staring, retracing my code, and trying to figure out what exactly I had written wrong. But yes, I’m on it!
Devlog #3 - The Plan’s Shape Guys! . Errors fixed and a basic outline has been made (This time on a paper Hehe) . AND i’ve thought about how i’m gonna go about it! . I’ve also spent some time thinking about how I’m actually gonna build this thing. . I’ll have to make a sql database ig (For account credentials and encryption details) and link it to my python code. I’m still new so i’m not sure if the sql database method for keeping records is how the real companies operate, but still seems pretty nice. . And I mean these are journals that we’re talking about, - so security and privacy matter a lot. . Tho my whole idea and code is that the actual journal entry is never stored. Only the encryption sequence and logic is. . That way, even if some dummy somehow got access to the database, they wouldn’t find the journal itself (Hehe can’t outsmart me) . For now, the plan pretty clear: Finish the Python main code Get encryption working properly Add database support Convert it into a website Well, that’s it ig. . I’m gonna go and tmrw complete the whole thing in python and then yes - hopefully convert it into a website :)
Devlog #4 - Still on the Db thing . Hehe, my highschool Python-SQL interface notes are coming in handy! . When I was studying this stuff, I honestly didn’t think I’d ever end up using most of it cuz it seemed too basic Turns out I was wrong :) . Since Privournal is gonna need a database for account credentials and all that, I’ve started revising my old notes and figuring out how everything fits together. . Let’s see how this goes!
Devlog #5 - Database Established! . Now the basic outline has to be perfected, with each and every thing being functional. . After spending some time figuring out SQL, databases, connections, and all that stuff, I finally managed to get Python talking to the database successfully :) . Seeing actual records being fetched felt pretty satisfying not gonna lie. For now, the goal’s Add features and make everything functional Connect everything together Improve the overall structure On the way to do that!
Devlog #6 - Advanced Encryption! Pheww, this part took some effort! . Today I worked on the main encryption logic for Advanced Encryption, and after a lot of thinking, coding, testing, and rethinking, I finally got the foundation for it down :) . This is one of the core features of Privournal, so it feels really good seeing it slowly come together. . That said, this is only a small win . The real challenge is gonna be the “Swiption” feature. Bet Swiption is gonna take half my brain cells 😭
Devlog #7 - Almost There! Only the Swiption feature remains! . I’ve also been thinking about adding another cool feature where the covers are randomly chosen using Python’s random module. The idea is that it’ll be added in Custom Encryption. . Also, my bad 😭 . I sometimes refered to the Custom Encryption as Advanced Encrytion, that might confuse you - but i’ll be consistent with names now. It’s just that it’s the start and so many features and ideas just mush into my head 🙃 . Once Swiption is done, the Python version should basically be mostly complete, and then it’ll be time for da next step . Getting all this on a website, tho that is gonna be really difficult for me, I really don’t know how to make websites 🥲. . Not gonna lie, that part scares me a a lot cuz I don’t wanna use AI for the website 😭 . I really don’t know much about web development, but I guess that’s part of building a project. You learn whatever you need as you go. . Thank you so much for reading these devlogs tho :) . Hopefully tmrw the code will be done and I’ll be one step closer to completing Privournal!
Devlog #8 - The Eights. . So this would be Privournal’s 8th devlog, and this one feels kinda special :) . My birthday falls on an 8th too, and I just love the number 8. . Anyways, I was actually supposed to be done with the Swiption feature by now, but I just couldn’t help myself and started working on the Random Encryption feature. . Reason’s that it just came to me - . Why not make Random Encryption available for both Advanced Encryption AND Swiption too?? . This would make the whole Encryption process super fast if some user doesn’t want to manually encrypt each letter. So I’m onto that, then I’ll immediately look into Swiption. . Then finally I’ll refine the whole code and just go through all the variables, functions and rename them if needed (I’m one of those people who name the variable something silly and forget what it was for 😭) . I’ve also started mapping out the overall visual flow of Privournal cuz it was getting a bit confusing. . I’m thinking abt wrapping this project up in about 12 devlogs, and then launching it. . You can also check out the GitHub - I’ve been committing code changes on it regularly :) . Thanks for reading!
Devlog #9 - This was unexpected… Turns out there were some issues in the decryption function. It completely ignored spaces while decrypting, which definitely wasn’t ideal 😭 . I’ve fixed that tho. . Also I remade the tables in database with much more info such as date of encryption and email (for forgot password purposes) . And this code was getting too long, like more than 400 lines long. . So, I’ve started splitting things into different files to keep everything organized. Db code has its own file, big functions like AdvEn() have their own file, and the same goes for Swiption and Random Encryption logic. . Target’s to finish the code tonight. . Thanks for reading!
Devlog #10 - A Slight Setback This is going to be the biggest devlog. And this one’s gonna be a disappointing one 🥲 . First of all, I was talking to my brother and he asked such a good question - It pointed to a flaw which I didn’t notice at all. . Let’s say there’s a word “am” in the journal, a’s cover is 1 and m’s cover is 27 (so am = 127). Now cuz there’s not spacing the decryption code will actually traverse thru each of number at a time in the encrypted text (127), so it’ll literally convert 1 and then 2 and then 7 separately. This was such a major flaw in my logic and I’m still agonizing internally over the fact that my eyes missed it. . But ah it’s ok, I’m fixing that by simply making adding a trailing space after the cover to separate each letter’s cover. . There was so much running and errors and staring at screen and all that. . Another thing I noticed is that in Advanced Encryption when the user will choose covers for 52 letters, he might accidentally repeat a cover - which obvi will make it impossible to distinguish btw 2 letters. So I gotta add each cover to a list and then every time the user adds a cover i’ll see if it’s already there in the list or not. . Now these flaws I got to know when I was talking to my brother, and it was past midnight. So almost immediately after waking up I was onto fixing these flaws, and it’s in progress :) . Apart from that, I’ve been refining the code (Found some silly errors in functions) and fixing more logic issues. . Earlier the Encryption Key that I was using to decrypt, it was a dictionary - with the keys as letters and values as the cover. So before uploading them to the db table, I converted them into text. But then while fixing decryption code, I did tried dict(the string key) and later found out that it all doesn’t work like that, the syntax. . I checked online, asked GPT, he suggested that I use the json module, and so I did. Json made it pretty easy, now the conversion was smooth and 2 liner. . Also I fixed all the login/signup system, it works as smooth as butter now Hehe . I’d say the main issue wasn’t the code it was following where am I. . Like cuz there are so many functions and steps and paths that I was getting overwhelmed (plus the code is like 600 lines), so I basically carefully went thru each line of code and arranged each function in an order and side by side made the final flowchart (It made following the code super easy and looks cool tbh) - But yes that’s hectic work right there. . Now after all that… Does the code run? HELL NO IT DOESNT! . It’s still showing 21 errors 😭 Plus, Swiption’s still left. . So right now, I’m trying to fix the flaws and errors and get this code up and running without Swiption, once it is smooth then at the end I can code Swiption into it. . See ya in the next devlog!
Devlog #11 - First Successful Test! Let’s go!!! . First successful test done 😇 . The database fetching works, the encryption flow works - it wasn’t working earlier tho (And I spent an hour finding errors, like i’d run it again n again and also ended up rewriting portions, like my Advanced Encyption code was all messed up 😭) . But yes, now it’s working, i’m sure there are a couple more errors but i’m on my way to fix em! . And yk some of the errors were so silly - I had written input(“Enter cover for”,x), and damn i failed to realise what the issue was. . Then after a lot of trying I asked GPT and it said it’s cuz input() can only have one argument in the braces 😅 . A lot of other errors too were like me getting all confused btw variable names, function not being global and so on. . But yeah, one at a time i fixed em, fixed the code and now only the refining of the code and some other bugs remain. . And um I had said i’d do it in 10 devlogs, but ah now it looks like 12th would be the last one. . But hey, the more the better, ig? 😭 . See ya in the next devlog!
Devlog #12 - IT WORKS! FINALLY! After an hour of debugging, EVERYTHING WORKS! -Encryption -Decryption -Uploading to & Fetching from the Database -Sign Up -Login . The only things that aren’t fully working yet are Swiption and Random Mode, and honestly that’s on me 😭. I got way too focused on making everything else work first AND GOD I had to improvise whole sections of the decryption logic, you won’t believe it. . If you compare the code I committed before this and the code I committed today, I had to improvise so much! . I removed and added so much. My old decryption was code wrong, I mean the logic was on point but the syntax and a few other things were off that’s why it wasn’t working. . Some of the errors were genuinely silly, again 😅 . All my elifs somehow had the same condition, and people this is why you don’t copy paste conditions to save time (I still don’t know how I missed that) 🥲 . My traversal i was a string, and I kept accidentally treating it like an int iterator, I mean ugh. . A lot of bugs were literally sitting right in front of my eyes. . Some bugs were much bigger tho. One of the weirdest happened after I finally got decryption working - The decrypted text had way too many spaces between words. . After staring at it for a while, I noticed that the number of spaces was exactly the same as the number of unique letters in the text. That’s when it hit me - the loop was continuing to run even after finding a match. Few “breaks” later hehe, everything worked 😭 . After Swiption and Random Mode, those 2 really aren’t done right now, I’m sorry I type so slow 😭 . Yeah so after that I’ll focus on making the code look real pretty, like -Fixing my silly variable names -Comment notes ig? -Better spacing and formatting -Cleaning up extra files -Writing a proper README and project description . And yes… On the 13th Devlog, the project will be done done 🤞🏻 . Note : I improvised all my previous devlogs, with proper format so that it’s easier to read, you can tell me if it’s better 🙃 . See you in the next one!
Devlog #13 - IT’S DONE DONE! The Final Chapter. FINALLY. After two intense days and 16+ hours of grinding, Privournal is officially complete and ready for Stardance! 😭🎉 OH AND Yeah, it’s been two days - Long time no see 😭 . Sorry for disappearing without posting Devlog #13 🥲 . These last 16+ hours were so packed with debugging, packaging, testing, and polishing that I kept postponing the devlog. So this one covers the entire final stretch. . Btw hey I’ll upload the clean Flowchart on Git repo, and yk I was gonna write a LOT here with complete details, but damn there’s a limit. Well it’s oki i’ll add a list of all my devlogs to the repo too :) What Happened? I thought Devlog #12 was the “everything works” moment, but the final stretch turned out to be the work. Audited every function in the codebase Fixed dozens of lingering bugs Cleaned up the entire code Updated the README 10+ times Set up PyPI packaging and releases Recorded asciinema demos (Took enormous time 😭) Added prettier output/interface functions Tested every scenario I could think of Major Change: MySQL → SQLite One of the biggest changes was moving away from MySQL. . Originally, Privournal used MySQL with accounts and a shared database. Later I realized that requires a server, hosting, maintenance, and introduces privacy concerns. . So I redesigned everything around SQLite. . Benefits: Fully offline More private Easier installation Simpler deployment Probably the biggest architectural change in the entire project. Biggest Bugs Fixed Login/signup flow issues Missing database commits Foreign key linking problems JSON serialization/loading bugs The infamous “extra spaces everywhere” decryption bug Variable scope and traversal issues Randomised Mode integration By the end of Day 1, the core encryption/decryption system was finally reliable. The Swiption Demon 😭 Swiption and SwipDe took forever. . The idea sounds simple: letters rotate through multiple covers after a certain number of occurrences. . Actually implementing occurrence tracking, rotation logic, life values, multiple dictionaries, JSON storage, and decryption logic nearly broke my brain 😭 . The funniest part? . After hours of struggling I realized I had overcomplicated everything. Since every cover uniquely maps to a letter, I could simply search through the dictionaries instead of tracking a ton of extra information. LIKE DAMN. Swiption is now fully functional and ended up becoming my coolest feature in the project. Packaging & Shipping Cleaned up the repository Improved README and documentation Fixed PyPI packaging issues Tested in fresh virtual environments Published releases Recorded final demos ✨ Project Complete Privournal is now a real, usable command-line journal encryptor. Thanks to: My brother for catching early logic flaws GPT for quick syntax rescues Everyone who followed the devlogs And myself for not giving up 😭 **Privournal is shipped and ready for Stardance! ** I’d love your feedback once you try it. . This project taught me something exams never did : . Working religiously on something with all your heart to make it real. . Thank you for reading all 13 devlogs ❤️ . ✨ See you in the next project ✨ | Project Complete | Ready to Submit | 🎉
##Devlog #14 - The Reviewer Arc 🥲 . Well… . The reviewer found some issues 😭 . So I went back and tested basically the ENTIRE project again. . While testing, I found and fixed a bunch of errors, especially in Advanced Encryption. I also added a lot of fallback checks throughout the code so Privournal doesn’t randomly decide to crash anymore 😭 . I also improved the decryption flow. . Earlier users had to select journals using IDs, now they can simply choose them by name, which feels way cleaner. . Another addition was a user guide in menu. I was short on time and it was a no brainer, so I used Claude to help generate the guide content and then integrated it into Privournal. The goal was simply to make the different encryption modes easier to understand :) . Apart from code changes, I also polished the project page, uploaded a sample flowchart, improved formatting and timing, and recorded a completely new asciinema demo PLUS I updated the README too. . Then came final testing, packaging, uploading the latest release, and requesting review again 🤞🏻 . Hopefully Privournal passes thru this time 😭 . Thank you : )
Devlog 15! It’s done. Phew. Finally, Privournal is DONE. Complete, everything’s perfect. In this final version I’ve made so many improvements! Instead of using time.sleep() to give pauses/time to copy the details, now the users can copy and paste encrypted text and its key without a time limit, and then they can simply press Enter to move ahead. I also made HUGE changes to the code. Earlier, the code used to run and at multiple steps ask for login/signup, which was fine but it was confusing. Now the first page is for login/signup, then the rest of the code flows smoothly accordingly. This restructuring required writing many parts of the code again and breaking a lot of functions into 2 parts. I also renamed some variables. I also worked on spacing and formatting. Now the user details are printed cleanly in a table. Overall, the code outputs are much more uniform. I made a new ASCII recording. It is yet to be updated on my GitHub, though. I’ve also published this new version on PyPI. If you had already installed Privournal, you can just update it. Now the main thing. I’m going to make a Website for Privournal where users wouldn’t need to install anything and can just go straight to encrypting or decrypting their journals. This version will still exist, though. It’ll be a rather Retro CLI version for people who like it this way. Phew. I’ll work on that now.
Devlog 16! — Okay, NOW It’s Done. 😭 Phew. I thought Privournal was finally finished, but while making the final ASCII recording, I found a bunch of small errors (Some was huge), inconsistencies and table issues that I had to fix. What I worked on: Added two new functions: Show Keys and View Account . Show Keys lets users view all their saved encryption keys. View Account displays their account details neatly in a table. Fixed several encryption and decryption bugs , including issues with journal selection, menu choices and input validation. Fixed problems with database values and journal data being handled incorrectly. Improved table formatting, spacing and alignment throughout the program. Cleaned up various small inconsistencies and errors that appeared during full end-to-end testing. Made the new ASCII recording . There was some old test data already stored, which was causing confusing duplicate entries and messing up the tables. After clearing that out, everything worked properly. And finally… The entire thing worked perfectly. 🎉 Most of this Devlog was about fixing the small things rather than adding huge new features, but it made Privournal more consistent and reliable.
Ships:
I built Privournal, a command-line journal encryptor that allows users to encrypt and decrypt journal entries locally on their own device. Because for me, someone reading my journal is a legit nightmare, and Privournal is something I can use to keep my digital journals secure. For me that’s a clear quality-of-life improvement : ) Write your journal anywhere (Notes, Notion, etc), paste it into Privournal, get back unreadable text, paste that back into your app. No journal content is ever stored - only the encryption key, and that too locally, if you make an account. To read it yourself you can again head to Privournal and decrypt it! It supports multiple encryption modes, including Basic Encryption, Advanced Encryption, Randomized Encryption, and Swiption - a dynamic encryption system that changes a letter’s cover after a particular number of occurrences, making it impossible to crack. The biggest challenge was implementing Swiption and its decryption logic. Managing occurrence tracking, rotating covers, JSON storage, database integration, and reliable decryption took multiple iterations and a lot of debugging. I also migrated the project from a MySQL-based architecture to SQLite after realizing a shared database conflicted with the goal of being fully offline and private. I’m most proud of turning an idea into a complete, usable package that can be installed through PyPI. I’ve never worked on something so religiously on something of this complexity. The project ended up being over 1400 lines of code and taught me a huge amount about python, databases, GitHub and packaging, debugging, and obviously logical thinking. I’ve never worked on something so religiously on something of this complexity. 3 Major Quality-of-Life Improvements : Zero-setup local encryption - Works completely offline with automatic SQLite database. No server or complicated config needed. Powerful & flexible encryption - Multiple modes + Swiption (dynamic rotating covers) makes it much stronger than simple substitution ciphers. Seamless workflow - Write anywhere -> encrypt -> paste back -> decrypt easily with account or manual key. Perfect for daily journaling : ) Try creating an account (or continue without an account), encrypting a journal entry, saving it, and then decrypting it again. Swiption and Randomised Modes are the most interesting and secure features to experiment with. To test it, run these on terminal : pip install privournal python import MainCode MainCode.start() Thank you so much for reading! : )
I made Privournal, a retro CLI application for private journaling and custom text encryption featuring basic ciphers, advanced encryption (Swiption, Randomised, Manual Modes Hehe), and new features like Show Keys and View Account. Pheww you’re gonna love this if you’ve people trying to read your journals 😭 The hardest part was restructuring the whole flow so as to make it less repetitive and cleaner , fixing CLI table alignment glitches, and honestly, if you saw my last ship you’d know that the Swiption feature I made gave me a pretty tough time, Lol. Though I’m really proud of creating a seamless terminal workflow and getting it published live on PyPI as well as GitHub, this is one of the few things I’ve worked on and completed in my life. To test it out, run pip install –upgrade privournal, and type privournal in your terminal, and try encrypting and immediately decrypting a short sentence with or without an account!...
|
1793105555.798836
|
1793191955.798836
|
|
17942
|
Cyber OS by @Ann_with_an_e | Stardance
|
Ann_with_an_e
|
2
|
48.0
|
655
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-07T01:12:54Z", "hours": 28.0, "multiplier": 14.07, "payout": 394, "blessing": "neutral", "text": "What I made: Cyber OS is an interactive, web-based OS. It has multiple applications, with closable, draggable windows with a z-index. There are roughly twelve applications in total, not counting the ones on the top bar. While I would love to ramble about all my applications, here are the ones I’m most proud of! In-Filter-Traitor: An application that filters your photos to either black and white, or a two-toned image that you can choose the shadows and highlights of! Ever felt your photos could benefit from a few more Gotham vibes? Never? Well, that’s disappointing. POST-IT: A virtual sticky note! I really love it mostly due to the design that may or may not have been a direct rip-off from the app in windows. It’s silly, but I’m happy that I managed to recreate it. Terminal: It lets you control the OS by practicing the ancient art of typing orange runes into a dark void. If you don’t know what to type, the void will inform you. Easter Egg! It just occurred to me that I may be overhyping this. Anyway, this is how it works- on the last slide of the sidebar there is an app called Comms. You will not be able to access it without a password. The password is hidden somewhere within the OS. There’s a window called Developer Logs that might tell you what Comms does, but not the password. If you’re short of time, or not up for a treasure hunt, the password is in my README with a spoiler warning! Also tell me if my hiding place was too obvious lol. Feeling Lost? Something not working? Please go through the README, I do think it covers most of the quirks you might encounter. Any application that’s un-intuitive has ⓘ. If you’re confused, click on it! If its anything that isn’t covered between the two, tell me! I’ll make sure to fix it up. What I’m proud of This took me so much time to make. I’m really proud that I managed to do this regularly between school, classes and competitions. I’m really bad at time management so this is a huge win for me! I’m also really proud of the fact that I’m able to debug stuff myself now a bit more. Before I needed to constantly google why my console was showing up an error, and how to fix it. Now I can somewhat understand why my code glitched, and the steps I can take to remedy it. I had so much fun making this, and now I’m going to be slightly lost now lol. But anyway, I put a lot of heart into this project, and I really hope that its visible! Thank you all for following along!", "repo": "https://github.com/syntax-error4O4/Cyber-OS", "demo": "https://syntax-error4o4.github.io/Cyber-OS/"}, {"ship_num": 2, "ts": "2026-06-20T08:35:30Z", "hours": 20.0, "multiplier": 13.37, "payout": 261, "blessing": "neutral", "text": "#Overview Cyber OS is a web based OS that is interactive with multiple draggable and closable windows. It has a hand-drawn background with a unique color palette inspired from cyberpunk and old CRT monitors. #Applications -Archive of Words: An application that introduces you to the most obscure words English has to offer. Have you ever wanted to win a crossword by knowing an eight letter word for theft? Well, here’s your chance! -Painterly: A standard painting application with a small twist- a pure black canvas and colors catered specifically for contrast without looking overwhelming. It also features a brush size changer, undo and redo buttons -Calculator: Your standard run-of-the-mill application for basic arithmetic computations -Display Settings: Distinct display settings meant to mimic the look of an old school CRT monitor. They can also be turned off, if they are not to the users’ liking. -Desktop Companion: An animated pixel sprite at the bottom right that keeps you company as you go about your work. _ I honestly found that learning code while actively creating a project was so much more enjoyable. I ran into so many hurdles, especially with the js code, from formatting to naming mishaps. I did learn more from making those mistakes than just knowing about them. I did want to create a few more interesting applications, but I need to learn a bit more before trying them. Keep an eye out! I’m incredibly proud of how this turned out. And I hope you’ll love it too! Cheers!", "repo": "https://github.com/syntax-error4O4/Cyber-OS", "demo": "https://syntax-error4o4.github.io/Cyber-OS/"}]...
|
[{"post_id": 23336, "ts": "202 [{"post_id": 23336, "ts": "2026-07-06T07:03:50Z", "hours": 2.4808, "text": "What I added Okay, you guys; this might just be the most complete this project has ever been. I only did minor additions here, so here goes- I made add the buttons with text on them hover uniformly. Its slightly superficial, but I just wanted them to be uniform. I added information buttons on the header for certain apps that might have quirks or be un-intuitive to navigate. Tbh I copied the code for my first information button pop-up and just added a different letter in front of it. I also added wallpapers! You now have six wallpapers to choose from. Initially I wanted to draw all of them. The default background I drew btw, but I just don’t have the time for it rn, so maybe in the future. So someone reviewed and told me my project doesn’t work in comet. I didn’t really know what comet was until I looked it up. There are a lot of differing opinions on what it could have been, so I have no clue. If someone has any idea, do reach out. Finally, I organized my html. Its strange to see how many comments I made towards the beginning, telling exactly what a div did. I was really unfamiliar with making page of that size, even if it wasn’t much. This time I didn’t go overboard in commenting and organising it I don’t have git so now I need to update my files on github, and edit the README. Once that’s done, its time to ship! Super excited for that"}, {"post_id": 22919, "ts": "2026-07-05T15:47:40Z", "hours": 4.1128, "text": "What I Added I think this might just be my best app yet. I created an app called Terminal, which is a ripoff PowerShell. I had so much fun making it! There are multiple commands, some which run an animation, and others that perform simple tasks. When I was done with Terminal, I saw that I had exactly 11 apps. Which is a great number, don’t get me wrong, but I wanted an even twelve. Hence-Comms. My final app. You need a password to access it. Where you may get the password? That’s up to you to click around and find out. If you’re curious enough to know what it is, but not enough to explore, I’ll put it in my READMe when I ship this! Because I do want everyone to be able to use all applications, if you don’t feel like a treasure hunt. It’s a pretty cool app that you miiighht need if you want to access another window. I added another button on the Top Bar. It opens up a window, that may or may not be related to Comms. Be warned, it probably might tell you exactly what Comms is but not how to access it. This window allows you to use whatever you find in Comms to good use! I also made the two-tone filter update while you choose the colours. I also discovered the Go Live extension, which has worked wonders for both my refresh button and my console, which kept showing me the phrase unsafe URL for every image I loaded. I’m glad it finally found peace in its security"}, {"post_id": 22203, "ts": "2026-07-04T15:40:02Z", "hours": 7.6867, "text": "What I Added I added a third slide to my sidebar, which means we get a new group of apps! With context to my last post about practicing DRY, I decided to parse through my code to see how much I could cut down. There was so much! I was under-using my classes so much, its crazy. Or so many places I didn’t make a class at all and just copy-pasted the styles on the buttons. I did my level best to fix all of that without breaking anything. My code looks much better now. Thanks for the tip, random reviewer I do not know-I finally saw the light lol. I made an app to place filters on images! Right now there’s a B&W filter and two toned filter the user can choose. There’s also an info button on the header if there’s any confusion. I feel like I’ll be adding that info button in a few more places. I also made a calendar. Okay, I’m going to vent here a little, feel free to scroll. This is mostly abt all the issues I ran into while coding-and all of it is very dumb. I learnt that I apparently didn’t know that its calendar not calender. Also I switch between American and British English a lot, so my html and js did NOT match in their spelling of “grey”. Istg, I make my own life harder at times. In the same vein, a similar naming mishap caused my js to break- it was at the end of the file, and hidden enough that its not visible while using. When I wrote the code for my calendar it didn’t work. I thought I made a mistake. I spent so much time rewriting, googling, getting frustrated. A lot of places it mentioned maybe the script wasn’t being defered properly. I was like nope, everything else works fine. I put the logic into the html script, it worked. I thought it was a mistake in the punctuation or indent and left it at that. Later in the day when I returned to make another app, it obviously did not work- I went through the same cycle. This time I was stubborn and didn’t want to put it in the html. I literally exhausted all possible options until I realized I could just check the console. There I did find an error, not in my calendar code, not in the app I was making, but in the filter app. I went through the five stages of grief in that second lol. I have no idea why I spelled grey differently. There should be a spellcheck while coding too. English is not my native language, so it could be a bit excusable, but I feel so dumb rn. You live and learn ig."}, {"post_id": 21307, "ts": "2026-07-03T04:55:00Z", "hours": 7.8197, "text": "So first of all, I got my payout! Thank you so much to everyone who voted and gave me feedback. All your suggestions were really great and I’ve started to fix some of the bugs you guys found. I would have probably not have found out about the zooming thing because I never zoom in lol. What I Added So, I added a task manager. It’s basically a to-do list, where you can list the stuff you need to get done and check the box once it is. Initially it was just a button the hid itself. Out of curiosity I googled and found out there is a way to add a checkbox! You make an input element and give it the type “checkbox”. I rewrote my code to add that. Then I made a stopwatch and timer thing. The js felt really hard to write, so I asked a friend for help and she basically guided and explained the logic to me. The timer style was modelled of that of my phone, which meant you needed to scroll to set the time. But the scrolling was interpreted as dragging by my dragging code, so I needed a fix. Right now, you need to click on the text and press the arrow keys to navigate it. I understand that it might not be very intuitive, so I added a pop-up warning. I also added a few more tracks to my song app along with a scroll bar. I implemented some suggestions from the reviews, like making the window offset at the centre instead of the top left and it has made such a difference. I also understood I was repeating myself a lot in the code as someone pointed out. I’m trying my best to be mindful and code effectively now! In the interest of transparency, I was making a weather app that could check your weather. I ran into a lot of issues on the first half itself. I spent a lot of time trying to fix it. At one point, it messed up all my other code, so I had to delete it. At least an hour or three was wasted in that. I feel like it’s a bit unfair of me to count that so I’ll turn off my tracker the next time I code. Idk, it just makes me feel like I’m cheating to count those hours when nothing really came out of it. Anyways, here’s the progress pic!"}, {"post_id": 17495, "ts": "2026-06-28T09:39:53Z", "hours": 5.9353, "text": "What I added: I really wanted to make a music player next, so that’s what I set upon making. I already knew that I wanted to make it look like an iPod. This app now can mute, skip to songs on the playlist, show you the menu and pause. It will also play on the background while the app is both open or closed until the song is over. Next up is a POST-IT app. It create multiple post its, change colours and has multiple formatting options. This was even more fun to make than the music player lol. My icon accidently hides behind the ipod icon, so I do need to fix that. Its pretty straightforward but I feel to lazy rn. I realized that if I were to keep making more features, my page was going to look really cluttered. I thought of adding another sidebar but decided against it. I instead made two buttons under the sidebar and grouped all my apps into two. So, when the current group is active, the other app icons are hidden, and by clicking the next button you can see the next group of apps. This is your reminder that you can make art with anything- even with a limited colour palette. So why not make it on my webOS? If you want more options, I just added an opacity slider and an option to choose your own colours."}, {"post_id": 12411, "ts": "2026-06-20T08:01:12Z", "hours": 0.9375, "text": "So this project is finally ready to ship. Sorry for the formatting on the last devlog, I didn’t realize they added Markdown. I’m sure that must have been a nightmare to read through! What I Did (Final Touches) I felt the buttons could use some pizzaz so I changed the background to black, the text and the border to orange. It looks so much better! Check out the calculator, it looks amazing now. Finally, I added a small animated pixel sprite on the bottom right of the screen. This sprite is just pure randomness personified. I had so much fun picking it out. — I created my GitHub repo and edited my README to look a little better. When I generated the link for my webpage on GitHub Pages, my top bar was cut off!?!? At that point, I was genuinely so frustrated. It wouldn’t fix no matter what I tried. In the end, I just generated a new link and it somehow showed up!? How? Great question, I have no idea. I’m so glad I finally finished this OS! I never got around to thinking of a name so it’s just gonna stay as Cyber-OS lol. I really never thought I would be able to make this, even when I started with the mission. I’m glad I stuck to it. Thanks for following along with me! Go check my OS out yourselves! Cheers!"}, {"post_id": 11343, "ts": "2026-06-18T15:37:20Z", "hours": 4.7439, "text": "What I’m Making : A custom web-based OS that I’ve taken to calling Cyber OS (cool name pending) What I’ve Done so Far: –So today might not have been the most productive day in creating something new per say. A lot of my time was spent refining features already available. Case in point, today I 1) Changed the content of one of my applications from interesting proses to words instead. I do maintain a list of obscure words, so it was really fun to pick which ones made the cut 2) I changed the canvas of my painting application from black to white and muted the colors available to fit my theme more. 3) I fixed an error in my calculator that involved exponents. I also changed the display to be slightly more neater. 4) I created an application to alter display settings. Most of the filters available are inspired from those old televisions, those really chunky cathode ray ones. I didn’t quite do it justice though I do think I might ship this as an initial version when I get the time. Not really sure about it, I’m really indecisive. Anyways, here’s the customary progress pic!"}, {"post_id": 10067, "ts": "2026-06-16T17:26:06Z", "hours": 4.5239, "text": "What I’m making -So I’m actively working on a custom built OS that I’ve been calling Cyber OS because I can’t think of a great name yet. I plan to make applications?/windows? for my hobbies, which are pretty wide ranging. From art to math to literature, the goal is to have something for everyone. What I’ve done -Quick recap, I made an information window, drew the background, and made a scalable code for closing and dragging windows. I then created my first app that is a small archive of phrases that I came across while reading that I particularly liked. -Update time! I made an application for drawing. It has eight colors, undo and redo buttons and a feature to change the brush size. What I struggled with -This time I had more of an issue making the code by myself. Most of the time was spent debugging tbh. I had a really major issue with the colors not showing up on the canvas. It was really a learning experience fixing that. I also realized that the brush slider just made my entire window move. So I changed it to an number input based thing. I ran into a few issues with the slider too, but managed to solve it relatively quicker. All in all, I’m really proud of all the progress I made. Cheers!"}, {"post_id": 8643, "ts": "2026-06-14T11:25:49Z", "hours": 6.5003, "text": "What I’m Making -A web-based OS that I’m calling Cyber OS currently. I’m a person with really diverse interests, so I’m creating something that will hopefully spark your interest too. What I’ve Done -Major style updates -Drew an app icon -made a draggable and closable window -connected the app and the window -created hover effects for each button -organized my code Next session I’ll probably begin creating the next app. I also want to make a task bar of sorts. Despite doing my best to keep my code clean its really messy rn. I’ll build the app in another file and then bring it over to my OS. Overall a really productive day, but I’m pretty pleased with the results. The progress from my previous logs is really visible. I’m knackered though, so I’m off for the day. Cheers!"}, {"post_id": 8174, "ts": "2026-06-13T16:56:20Z", "hours": 2.3675, "text": "What I’m Making -I’m working on a web-based OS that I’ve been calling Cyber OS (cool name pending) What I’ve added -a top bar -an active clock -a draggable and closable information button What I struggled with -I made a few mistakes with naming variables, which took me a lot longer to identify that it should have. -I couldn’t figure out why my page was a little larger than my screen. I kept having to scroll. I deleted a few lines of formatting and re-wrote it. Didn’t really work out. A second of googling later, I found out about the overflow button?/function? Phew. That was a relief. Cheers!"}, {"post_id": 8062, "ts": "2026-06-13T13:49:52Z", "hours": 1.0553, "text": "What I’m making: -I’m working on a Web-OS that I’ve named Cyber OS. What I’ve done so far -I created the welcome box and stylized it -Drew a wallpaper for the background What I struggled with -Mainly I had a bit of an issue with Github, because I couldn’t figure out why my time wasn’t logging when I was coding in an active workspace. Eventually I decided to copy the code I wrote to my VS editor and upload the project in Github later. I did loose around half an hour but uk….you do what you must."}]...
|
Title: Cyber OS by @Ann_with_an_e | Stardance
Dev Title: Cyber OS by @Ann_with_an_e | Stardance
Devlogs:
What I’m making: -I’m working on a Web-OS that I’ve named Cyber OS. What I’ve done so far -I created the welcome box and stylized it -Drew a wallpaper for the background What I struggled with -Mainly I had a bit of an issue with Github, because I couldn’t figure out why my time wasn’t logging when I was coding in an active workspace. Eventually I decided to copy the code I wrote to my VS editor and upload the project in Github later. I did loose around half an hour but uk….you do what you must.
What I’m Making -I’m working on a web-based OS that I’ve been calling Cyber OS (cool name pending) What I’ve added -a top bar -an active clock -a draggable and closable information button What I struggled with -I made a few mistakes with naming variables, which took me a lot longer to identify that it should have. -I couldn’t figure out why my page was a little larger than my screen. I kept having to scroll. I deleted a few lines of formatting and re-wrote it. Didn’t really work out. A second of googling later, I found out about the overflow button?/function? Phew. That was a relief. Cheers!
What I’m Making -A web-based OS that I’m calling Cyber OS currently. I’m a person with really diverse interests, so I’m creating something that will hopefully spark your interest too. What I’ve Done -Major style updates -Drew an app icon -made a draggable and closable window -connected the app and the window -created hover effects for each button -organized my code Next session I’ll probably begin creating the next app. I also want to make a task bar of sorts. Despite doing my best to keep my code clean its really messy rn. I’ll build the app in another file and then bring it over to my OS. Overall a really productive day, but I’m pretty pleased with the results. The progress from my previous logs is really visible. I’m knackered though, so I’m off for the day. Cheers!
What I’m making -So I’m actively working on a custom built OS that I’ve been calling Cyber OS because I can’t think of a great name yet. I plan to make applications?/windows? for my hobbies, which are pretty wide ranging. From art to math to literature, the goal is to have something for everyone. What I’ve done -Quick recap, I made an information window, drew the background, and made a scalable code for closing and dragging windows. I then created my first app that is a small archive of phrases that I came across while reading that I particularly liked. -Update time! I made an application for drawing. It has eight colors, undo and redo buttons and a feature to change the brush size. What I struggled with -This time I had more of an issue making the code by myself. Most of the time was spent debugging tbh. I had a really major issue with the colors not showing up on the canvas. It was really a learning experience fixing that. I also realized that the brush slider just made my entire window move. So I changed it to an number input based thing. I ran into a few issues with the slider too, but managed to solve it relatively quicker. All in all, I’m really proud of all the progress I made. Cheers!
What I’m Making : A custom web-based OS that I’ve taken to calling Cyber OS (cool name pending) What I’ve Done so Far: –So today might not have been the most productive day in creating something new per say. A lot of my time was spent refining features already available. Case in point, today I 1) Changed the content of one of my applications from interesting proses to words instead. I do maintain a list of obscure words, so it was really fun to pick which ones made the cut 2) I changed the canvas of my painting application from black to white and muted the colors available to fit my theme more. 3) I fixed an error in my calculator that involved exponents. I also changed the display to be slightly more neater. 4) I created an application to alter display settings. Most of the filters available are inspired from those old televisions, those really chunky cathode ray ones. I didn’t quite do it justice though I do think I might ship this as an initial version when I get the time. Not really sure about it, I’m really indecisive. Anyways, here’s the customary progress pic!
So this project is finally ready to ship. Sorry for the formatting on the last devlog, I didn’t realize they added Markdown. I’m sure that must have been a nightmare to read through! What I Did (Final Touches) I felt the buttons could use some pizzaz so I changed the background to black, the text and the border to orange. It looks so much better! Check out the calculator, it looks amazing now. Finally, I added a small animated pixel sprite on the bottom right of the screen. This sprite is just pure randomness personified. I had so much fun picking it out. — I created my GitHub repo and edited my README to look a little better. When I generated the link for my webpage on GitHub Pages, my top bar was cut off!?!? At that point, I was genuinely so frustrated. It wouldn’t fix no matter what I tried. In the end, I just generated a new link and it somehow showed up!? How? Great question, I have no idea. I’m so glad I finally finished this OS! I never got around to thinking of a name so it’s just gonna stay as Cyber-OS lol. I really never thought I would be able to make this, even when I started with the mission. I’m glad I stuck to it. Thanks for following along with me! Go check my OS out yourselves! Cheers!
What I added: I really wanted to make a music player next, so that’s what I set upon making. I already knew that I wanted to make it look like an iPod. This app now can mute, skip to songs on the playlist, show you the menu and pause. It will also play on the background while the app is both open or closed until the song is over. Next up is a POST-IT app. It create multiple post its, change colours and has multiple formatting options. This was even more fun to make than the music player lol. My icon accidently hides behind the ipod icon, so I do need to fix that. Its pretty straightforward but I feel to lazy rn. I realized that if I were to keep making more features, my page was going to look really cluttered. I thought of adding another sidebar but decided against it. I instead made two buttons under the sidebar and grouped all my apps into two. So, when the current group is active, the other app icons are hidden, and by clicking the next button you can see the next group of apps. This is your reminder that you can make art with anything- even with a limited colour palette. So why not make it on my webOS? If you want more options, I just added an opacity slider and an option to choose your own colours.
So first of all, I got my payout! Thank you so much to everyone who voted and gave me feedback. All your suggestions were really great and I’ve started to fix some of the bugs you guys found. I would have probably not have found out about the zooming thing because I never zoom in lol. What I Added So, I added a task manager. It’s basically a to-do list, where you can list the stuff you need to get done and check the box once it is. Initially it was just a button the hid itself. Out of curiosity I googled and found out there is a way to add a checkbox! You make an input element and give it the type “checkbox”. I rewrote my code to add that. Then I made a stopwatch and timer thing. The js felt really hard to write, so I asked a friend for help and she basically guided and explained the logic to me. The timer style was modelled of that of my phone, which meant you needed to scroll to set the time. But the scrolling was interpreted as dragging by my dragging code, so I needed a fix. Right now, you need to click on the text and press the arrow keys to navigate it. I understand that it might not be very intuitive, so I added a pop-up warning. I also added a few more tracks to my song app along with a scroll bar. I implemented some suggestions from the reviews, like making the window offset at the centre instead of the top left and it has made such a difference. I also understood I was repeating myself a lot in the code as someone pointed out. I’m trying my best to be mindful and code effectively now! In the interest of transparency, I was making a weather app that could check your weather. I ran into a lot of issues on the first half itself. I spent a lot of time trying to fix it. At one point, it messed up all my other code, so I had to delete it. At least an hour or three was wasted in that. I feel like it’s a bit unfair of me to count that so I’ll turn off my tracker the next time I code. Idk, it just makes me feel like I’m cheating to count those hours when nothing really came out of it. Anyways, here’s the progress pic!
What I Added I added a third slide to my sidebar, which means we get a new group of apps! With context to my last post about practicing DRY, I decided to parse through my code to see how much I could cut down. There was so much! I was under-using my classes so much, its crazy. Or so many places I didn’t make a class at all and just copy-pasted the styles on the buttons. I did my level best to fix all of that without breaking anything. My code looks much better now. Thanks for the tip, random reviewer I do not know-I finally saw the light lol. I made an app to place filters on images! Right now there’s a B&W filter and two toned filter the user can choose. There’s also an info button on the header if there’s any confusion. I feel like I’ll be adding that info button in a few more places. I also made a calendar. Okay, I’m going to vent here a little, feel free to scroll. This is mostly abt all the issues I ran into while coding-and all of it is very dumb. I learnt that I apparently didn’t know that its calendar not calender. Also I switch between American and British English a lot, so my html and js did NOT match in their spelling of “grey”. Istg, I make my own life harder at times. In the same vein, a similar naming mishap caused my js to break- it was at the end of the file, and hidden enough that its not visible while using. When I wrote the code for my calendar it didn’t work. I thought I made a mistake. I spent so much time rewriting, googling, getting frustrated. A lot of places it mentioned maybe the script wasn’t being defered properly. I was like nope, everything else works fine. I put the logic into the html script, it worked. I thought it was a mistake in the punctuation or indent and left it at that. Later in the day when I returned to make another app, it obviously did not work- I went through the same cycle. This time I was stubborn and didn’t want to put it in the html. I literally exhausted all possible options until I realized I could just check the console. There I did find an error, not in my calendar code, not in the app I was making, but in the filter app. I went through the five stages of grief in that second lol. I have no idea why I spelled grey differently. There should be a spellcheck while coding too. English is not my native language, so it could be a bit excusable, but I feel so dumb rn. You live and learn ig.
What I Added I think this might just be my best app yet. I created an app called Terminal, which is a ripoff PowerShell. I had so much fun making it! There are multiple commands, some which run an animation, and others that perform simple tasks. When I was done with Terminal, I saw that I had exactly 11 apps. Which is a great number, don’t get me wrong, but I wanted an even twelve. Hence-Comms. My final app. You need a password to access it. Where you may get the password? That’s up to you to click around and find out. If you’re curious enough to know what it is, but not enough to explore, I’ll put it in my READMe when I ship this! Because I do want everyone to be able to use all applications, if you don’t feel like a treasure hunt. It’s a pretty cool app that you miiighht need if you want to access another window. I added another button on the Top Bar. It opens up a window, that may or may not be related to Comms. Be warned, it probably might tell you exactly what Comms is but not how to access it. This window allows you to use whatever you find in Comms to good use! I also made the two-tone filter update while you choose the colours. I also discovered the Go Live extension, which has worked wonders for both my refresh button and my console, which kept showing me the phrase unsafe URL for every image I loaded. I’m glad it finally found peace in its security
What I added Okay, you guys; this might just be the most complete this project has ever been. I only did minor additions here, so here goes- I made add the buttons with text on them hover uniformly. Its slightly superficial, but I just wanted them to be uniform. I added information buttons on the header for certain apps that might have quirks or be un-intuitive to navigate. Tbh I copied the code for my first information button pop-up and just added a different letter in front of it. I also added wallpapers! You now have six wallpapers to choose from. Initially I wanted to draw all of them. The default background I drew btw, but I just don’t have the time for it rn, so maybe in the future. So someone reviewed and told me my project doesn’t work in comet. I didn’t really know what comet was until I looked it up. There are a lot of differing opinions on what it could have been, so I have no clue. If someone has any idea, do reach out. Finally, I organized my html. Its strange to see how many comments I made towards the beginning, telling exactly what a div did. I was really unfamiliar with making page of that size, even if it wasn’t much. This time I didn’t go overboard in commenting and organising it I don’t have git so now I need to update my files on github, and edit the README. Once that’s done, its time to ship! Super excited for that
Ships:
#Overview Cyber OS is a web based OS that is interactive with multiple draggable and closable windows. It has a hand-drawn background with a unique color palette inspired from cyberpunk and old CRT monitors. #Applications -Archive of Words: An application that introduces you to the most obscure words English has to offer. Have you ever wanted to win a crossword by knowing an eight letter word for theft? Well, here’s your chance! -Painterly: A standard painting application with a small twist- a pure black canvas and colors catered specifically for contrast without looking overwhelming. It also features a brush size changer, undo and redo buttons -Calculator: Your standard run-of-the-mill application for basic arithmetic computations -Display Settings: Distinct display settings meant to mimic the look of an old school CRT monitor. They can also be turned off, if they are not to the users’ liking. -Desktop Companion: An animated pixel sprite at the bottom right that keeps you company as you go about your work. _ I honestly found that learning code while actively creating a project was so much more enjoyable. I ran into so many hurdles, especially with the js code, from formatting to naming mishaps. I did learn more from making those mistakes than just knowing about them. I did want to create a few more interesting applications, but I need to learn a bit more before trying them. Keep an eye out! I’m incredibly proud of how this turned out. And I hope you’ll love it too! Cheers!
What I made: Cyber OS is an interactive, web-based OS. It has multiple applications, with closable, draggable windows with a z-index. There are roughly twelve applications in total, not counting the ones on the top bar. While I would love to ramble about all my applications, here are the ones I’m most proud of! In-Filter-Traitor: An application that filters your photos to either black and white, or a two-toned image that you can choose the shadows and highlights of! Ever felt your photos could benefit from a few more Gotham vibes? Never? Well, that’s disappointing. POST-IT: A virtual sticky note! I really love it mostly due to the design that may or may not have been a direct rip-off from the app in windows. It’s silly, but I’m happy that I managed to recreate it. Terminal: It lets you control the OS by practicing the ancient art of typing orange runes into a dark void. If you don’t know what to type, the void will inform you. Easter Egg! It just occurred to me that I may be overhyping this. Anyway, this is how it works- on the last slide of the sidebar there is an app called Comms. You will not be able to access it without a password. The password is hidden somewhere within the OS. There’s a window called Developer Logs that might tell you what Comms does, but not the password. If you’re short of time, or not up for a treasure hunt, the password is in my README with a spoiler warning! Also tell me if my hiding place was too obvious lol. Feeling Lost? Something not working? Please go through the README, I do think it covers most of the quirks you might encounter. Any application that’s un-intuitive has ⓘ. If you’re confused, click on it! If its anything that isn’t covered between the two, tell me! I’ll make sure to fix it up. What I’m proud of This took me so much time to make. I’m really proud that I managed to do this regularly between school, classes and competitions. I’m really bad at time management so this is a huge win for me! I’m also really proud of the fact that I’m able to debug stuff myself now a bit more. Before I needed to constantly google why my console was showing up an error, and how to fix it. Now I can somewhat understand why my code glitched, and the steps I can take to remedy it. I had so much fun making this, and now I’m going to be slightly lost now lol. But anyway, I put a lot of heart into this project, and I really hope that its visible! Thank you all for following along!...
|
1793123719.431276
|
1793210119.431276
|
|
22364
|
Binary Bound by @PAPER_01 | Stardance
|
PAPER_01
|
2
|
48.0
|
811
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-18T03:37:24Z", "hours": 12.0, "multiplier": 13.82, "payout": 198, "blessing": "blessed", "text": "Shipping the Updated version Game link: https://sudip-project-06.wuaze.com/ Hello everyone, Welcome First of all, thank you so much for all the feedbacks. I worked on the previous feedback and I have updated the game. One of the biggest issues people found was that the anyone could easily cheat .[Consider reading devlog #10 for more =) ] Previously, anyone could open the browser console and see the random number directly. They could also execute the `saveScore` function with fake values, like completing the game in one try on Impossible difficulty, and the server would simply trust that data and add it to the leaderboard. ( ̄▽ ̄;) To avoid this, I implemented some changes. Previously, the random number was generated and verified in the frontend using JavaScript. Now, all of that logic has been moved to PHP. The random number is generated on the server, checked on the server, and only whether the entered number is correct or not is sent back to the browser. This means that even if someone tries to call the `saveScore` or `setScore` function manually from the browser console without actually winning, the server will simply reject it. ( •̀ ω •́ )✧ I also received some feedback about the sound effects. Some people said the error sound was a little too sudden, and honestly, looking at it from their perspective, they're right. So I made a few changes regarding that as well. - By default, the Disable Sound option is now enabled. - Anyone can turn the sounds back on anytime. - The preference is saved in Local Storage, so you won't have to change it every time =) - I also applied the Disable Sound option to the win sound as well as per the feedback. For now, I'll consider this project shipped, but I still plan to add more features and improvements in the future based on your feedback. Thank you so much for being part of this journey. And yeah, I would still love any feedback you want to share. (ᵔᴗᵔ) Thank you so much. <(_ _)> Have a nice day! =)", "repo": "https://github.com/sudipstha-01/Binary-Bound", "demo": "https://sudip-project-06.wuaze.com/"}, {"ship_num": 2, "ts": "2026-07-04T02:18:54Z", "hours": 36.0, "multiplier": 17.21, "payout": 613, "blessing": "neutral", "text": "**Hello Everyone** , Welcome ! For this time I have made a Game Binary Bound . The concept is simple , the JS generate a random number and you are supposed to guess it in least number of tries possible , but there is more than that . I tried to make the game more interesting and fun . I will explain it properly in the features section below =) **Features** **Levels **: There are total of 6 levels where you guess the number between Level 1 : 1 - 10 Level 2 : 1 - 100 Level 3 : 1 - 1000 Level 4 : 1 - 10000 Level 5 : 1 - 100000 Level Impossible : 1 - 1000000 **HINT (for non-hardcore mode)** : There is also a hint below the input box where you will be given hint , which will tell you the next number you are supposed to guess is higher or lower the current one you just guessed. Let me leave no confusion . Assume you are playing Level 2 (its also selected by default =) ) You chose 50 , and the hint says something like \"Hint : Nah buddy, try Guessing Lower\" then you can totally eliminate Numbers below 50 and chose any lower and the process reapeats . hopefully it was clear . **The HARDCORE Mode** : What if there was no hint 😗 . How would you guess the your next number ? Yep thats Hardcore mode , but I know it would be abit tooooooo dificult if we imagine it with level 3 or 4 or even higer . Thats why i have also added the GIF system (HARDCORE lifesaver). **The secret HINT**: GIFs are fun ! So to make the game more interesting I have also used the GIFs but its role is actually more than that .For the Hardcore mode player It could sometime act as a Secret Hint . Its expalined in the Devlog #6 but lemme expain to you in short anyway. There are total of 18 GIFs which will be displayed randomly in the game . Among which 3 are hints which hints you to guess lower and another 3 are hints which hints you to guess higher . Which means there is 33.33% chance that the GIFs = Hint =) It is applied to all Level and modes . I hope it was clear =) . [It is also explained in detail in Devlog #6] **The Leaderboard** : I have integrated a leaderboard system where all the players will be listed who has guessed the number at least once . Also I would like to explain you the ranking system . The common rule is the one who gusses in the least number of tries ranks higher(at the top). But here is a catch , In case if there are two players with same number of try and they achieved the position same number of time then they will share the same rank . Lemme give you an example : Assume two players (Player A and Player B) Player A guessed the number in 2 tries ( one time ) Player B also guessed the number in 2 tries (two times) Then in that case Player B will be ranked above player A . **The SFXs** : There is sound effect (different for each , correct guess and incorrect guess (meme sound btw😅) . Its just for fun , but you can mute that option by clicking on the Error sound btn (and your preference will also be saved in localStorage =) ) Now lemme tell you some more about my project . I first time saw this design (theme) in the instagram and tried to replicate in , and I found what colors they exactly use from this site : https://neumorphism.io/#e0e0e0 I will be transparent and declare the use of AI : I used AI (Gemini and ChatGPT) . ChatGPT while making the shake error nad Gemini especially for Debuging the backend and while making the leaderboard system . I assume thats it for this project . Its my biggest project I have worked on so far . **Thank you so much for reading .** If something was unclear please comment , i will reply =) **Have a nice day =)**", "repo": "https://github.com/sudipstha-01/Binary-Bound", "demo": "https://sudip-project-06.wuaze.com/"}]...
|
[{"post_id": 30492, "ts": "202 [{"post_id": 30492, "ts": "2026-07-18T03:24:35Z", "hours": 2.0, "text": "Devlog #11 Game link : https://sudip-project-06.wuaze.com/ Hello everyone, Welcome to Devlog #11 of Binary Bound. Thank you so much for all the feedbacks. I’m still reading them and trying to improve the game based on them. <(_ _)> One of the major things I worked on was securing the save score functionality. Previously, anyone could just open the browser console and just call the saveScore function with fake values, like one try on level impossible, and the server would just believe it and share it to the leaderboard. To fix this, I moved all that trust to the server side instead of the browser side sending the score data. The server now tracks everything itself using PHP sessions during the game. So when the game ends and submits a score, PHP just reads from its own memory instead of listening to the browser. And if someone still tries to use the setScore function from the browser console without actually winning, then the server will just reject it. ( •̀ ω •́ )✧ I also got some feedback that some people did not like hearing the sound effects, as it was jumpscare, and watching from that persepective they are correct. So I made a few changes regarding that as well. • By default, the Disable Sound option is on. • Anyone can turn the sounds back on anytime. • Their preference is saved in Local Storage. • I also applied the Disable Sound option to the win sound as well. Thank you so much. And yeah, I would still love any feedback you want to share. (ᵔᴗᵔ). I will ship this project for now but will still add more features on it. Thank you so much. <(_ _)> Have a nice day =)"}, {"post_id": 30114, "ts": "2026-07-17T13:00:49Z", "hours": 6.0, "text": "Devlog #10 Game link : https://sudip-project-06.wuaze.com/ Hello everyone, Welcome to Devlog #10 of Binary Bound . Yeah, it’s the first devlog after the ship. First, I would like to thank everyone for the feedbacks and your love and support. I’m really glad, and I feel really blessed for all the feedbacks, comments, likes—everything. Thank you so much. (╥﹏╥)♡ And yeah, like I told before, I’m working on your feedbacks. I actually have not completed all the improvements that the feedback asked me to, but I’m still working on it. First, I fixed what I guess was the main issue. Anyone could console.log … theSUSimposter (Those who know, they know.) (¬‿¬) (Actually it was the variable where the random number was created and stored) They could literally see what the random number was, and some of them also used the function I made to save the score by executing it directly from the browser console.( ̄▽ ̄;) To avoid this, I implemented some changes. Previously, the random number was generated and verified in the frontend JavaScript. Now, I have moved that logic to PHP. The random number is now generated on the server, checked there, and only the result of whether the entered number is correct or not is returned. I’m currently working on securing the save score functionality as well. Once I finish it, I’ll upload the update and let you all know. Also one more thing , i accidently deleted the old database , i am so sorry , but i had one backup but not all of them are here, i apologize (╥﹏╥). Thank you so much. And yeah, I would still love any feedback you want to share. Thank you so much. <(_ _)> Have a nice day…"}, {"post_id": 29313, "ts": "2026-07-16T05:07:25Z", "hours": 2.0, "text": "Hello everone , Thank you so much for all the love and support last time, Now I have collected all the feedbacks and now currently am working on them, Thank you so much for reading , Have a nice day =)"}, {"post_id": 21896, "ts": "2026-07-04T02:17:42Z", "hours": 0.0, "text": "Finally Shipping !!!! Live Demo here : https://sudip-project-06.wuaze.com/ Have a nice day"}, {"post_id": 21866, "ts": "2026-07-04T01:08:12Z", "hours": 2.0, "text": "**Hello Everyone! ** I know I said that the las one would be my final devlog.. but here I am again . Welcome to **Devlog #9. ** I know I said that the las one would be my final devlog.. but here I am again . Welcome to Devlog #9. According to the timer or the time spent on the project might be displaying around 2 hours , but behind it there is a whole story . Lemme tell You. After the last devlog , I tried hosting/deploying the project on the internet and as I was doing that , I ran into 500 Internal Server Issue and I know its hard to believe but it took me 5 HOURS to only notice that the error was a single space (to be specific , Before fix=> header(“Content-Type: application/json”); After fix=> header(“Content-Type : application/json”); ) Honestly I didnt even know it could cause issue , as the previous code worked perfectly when i ran the code locally(using the vscode extension PHP Server by brapifra), It was Gemini who figured it out when I sent it the screenshot of the error and the code(after it was uploaded to the server). I literally thought it was issue with my account with which I was hosting , so I even tried creating multiple accounts and digged into Youtube and more but could find what was wrong, I feel really greatful to Gemini for this . (The loading of GIF and sound still takes abit time when its loading for the first time,but it SHOULD be fine after that, hopefully😅). I understood the feeling of both frustration and exitment during this journey . I cant ensure you that the project is flawless but I hope it would be fun for you . Now I can say that , Finally the project is complete and here is the demo link : https://sudip-project-06.wuaze.com/ Will be Shipping soon! **Thank You SOOOOOOO Much . Have a nice day ."}, {"post_id": 21414, "ts": "2026-07-03T10:51:51Z", "hours": 3.0, "text": "Devlog #08 Hello everyone , Welcome again . (I will keep this one devlog abit short) . This might be probably the last devlog for this project . Finally the polishing stuff is done . I have made this site responsive (still i recomend playing this game on pc / laptop , honestly i suck at making site responsive but i did try.) , also before I used index as position thats why i had an ranking issue on the leaderboard which took me longer to find then to fix it acutally (i will keep the screenshot somewhere below.). I plan to explain the whole game once again while shipping. Thank you everyone . Have a nice day ."}, {"post_id": 21241, "ts": "2026-07-03T02:25:09Z", "hours": 3.0, "text": "Hello again , everyone! Welcome to Devlog #07 Before I get into the actual update , i want to mention about the to hackatime members( Other readers can skip to next paragraph ) that after i renamed some of my files name it totally created the new section on hackatime file and has sepetrated time counter for them and my time on the particular file started from 0 min again. I completely forrgot to mention this in the previous devlogs even though I have added this feature like few days ago that there is a sound effects which will be played when user gets the answer correct and also for incorrect (all of them are meme sound effects😅) and it will be played after the user take a guess. And the main update for this is that I have added a mute btn which will you can use to turn the error sound off , also the user preference of (off/on) will be saved in **LocalStorage **so it will remember your preference =) (as long as you are using the samebrowser) . Hope I made things clear if not please comment and i will try to explain again .. Also currently I am working on the responsiveness of the site ( and i suck at this fr). Thank you for reading . Have a nice day ."}, {"post_id": 20695, "ts": "2026-07-02T11:14:14Z", "hours": 4.0, "text": "Devlog #6 Hello again everyone , this devlog might be abit longer but I want to make sure you all understand what changes I made recently . Welcome back to the journey of me converting a Simple Number Guessing Game(Named Binary Bound ) into a full on backend integrated game where you prove the world how lucky you are (probably😐). Lets start with whats new (will explain in detail below): Functioning Leaderboard Added a GIF section to make the game even more intresting. A secret hint for Hardcore Mode (will explain below). First lemme explain the Leaderboard system Players who guess the number in fewer number of tries ranks higher . If two or more players guess the number in the same number of attempts , the player with more total wins gets the higher rank . [Only the best records are considered for record , which means if a player guesses the number in 3 tries and later in 2 tries then only the record of 2 is stored in the database ] lemme give you an example : Assume there are two player , i.e Player A and Player B Player A : Guessed the number in 3 tries (only one time). Player B : Also Guessed the number in 3 tries but gets correct 2 times then player B will rank above Player A . I hope I was able to make thinkgs clear , if not please comment and I will try again to explain. Now Lets talk about The GIF system . We all know GIFs are fun , but here (expecially for hardcore mode player , it will be more than that .) (btw almost all of them are anime😶🌫️ GIFs) I have linked total 18 GIFs and among them 6 are hints. Lemme explain In details I have total 3 folders storing GIFs Folder name : [ Correct ] -> It has 3 GIFs from which a random any one will be played when the user guesses the answer correct . [ Down ] -> It has 3 GIFs which will be hinting downward . (Hinting guess lower) [ Up ] -> It has 3 GIFs which will be hinting upward . (Hinting guess higher) [ Error ] -> It has total 9 GIFs which has random GIFs , not meant to hint anything , they are just for fun . [ The GIFs will be played in all levels ranging from level 1 to level impossible ] How these GIF are helpful for hardcore player . Since the 6 of the GIFs are helpful or hintful you may say , then there is total of (6/18) = 1/3 ( 33.33% ) chance that the GIF might be helpful . eg. If you are playing Level : Impossible (i.e Guessing number from 1 to 1 Million🤧) and you took your guess and spot that the GIF hints you UP or Down then you could easily eliminate 500K numbers (if you choose 500,000). Hope I made this system clear as well . If I didnt forget anything while writing this devlog , probalbly Thats it (I will update you if i forgot anything here . ) Maybe will polish the game more and see if could add anything new . Till then Thank you for reading Bye! Have a Nice day"}, {"post_id": 20411, "ts": "2026-07-02T00:27:57Z", "hours": 1.0, "text": "Devlog #05 Hello everyone again , A quick update again on the Binary Bound Game I was working on. Now Finally the leaderboard system is working ( yeeeeee ) , but for now it stores every try made by the user😖 . So now next i will try to do is save only the highest score earned (which is least try in this case) , after i fix it , i will report soon. And also the autologin system is ready , whcih means if the user entered the unique username on the welcome page once then the user wont have to bother entering the name everytime he/she logs in (used LocalStorage for that). Thank you for reading . Have a nice day =)"}, {"post_id": 19988, "ts": "2026-07-01T13:48:28Z", "hours": 3.0, "text": "Devlog 04 Hello everyone, Welcome again! A quick update on Binary Bound. I just finished working on the backend and the databases, (used php and sql btw) and finally the backend seems to be functioning but still the leaderboard is still under construction. Will be giving report soon. Thank You Have a nice day"}, {"post_id": 19758, "ts": "2026-07-01T04:31:32Z", "hours": 7.0, "text": "Devlog #3 Hello again everyone ! Now I have made some more changes on the game , I changed the theme to Neumorphism(I saw it on IG) and Also i have made different levels along with a hardcore mode. Lemme explain in detail about the levels Level 1 : 1 - 10 Level 2 : 1 - 100 Level 3 : 1 - 1000 Level 4 : 1 - 10000 Level 5 : 1 - 100000 Level Impossible : 1 - 1M I know that the higher levels are too difficult but there is always hint to help but there is a catch . I also added a HardCore Mode In the hardcore Mode even the hints are not available . Just wanted to make the game a bit hard to see what it feels like 😅 Currently I am working on the backend and Leaderboard system . Thank You So much Have a nice day =)"}, {"post_id": 15027, "ts": "2026-06-24T12:31:26Z", "hours": 7.0, "text": "Devlog #2: Features Added Last time, I mostly worked on the layouts. This time, I finally got the game working! Things took a little longer than expected because I kept accidentally breaking my own code , What I added: Core game functionality is now working -Level system added Sound effects Screen shake animation for errors Color feedback: Green for correct guesses Red for wrong guesses 💡 Hint system Guess/try counter -Reset button Started preparing customization features (still a work in progress) Current Status: ✅ Game is playable ✅ Levels are functional 🚧 Customization is still under construction 🚧 Backend coming soon Thanks for checking out my progress! =)"}, {"post_id": 12391, "ts": "2026-06-20T07:03:50Z", "hours": 1.0, "text": "I started working on a Guess the number game[Name : Binary Bound] . I know its a simple project but I am new in this field and i am just trying to build and learn more. This is a simple game but i would try integrating backend too and add something special to make it unique and more fun to play . Here , ⬜ The white box is main playing area 🟦 The blue box is for customizing the game settings area. 🟩 The green box is the are for leaderboard information area."}]...
|
Title: Binary Bound by @PAPER_01 | Stardance
Devl Title: Binary Bound by @PAPER_01 | Stardance
Devlogs:
I started working on a Guess the number game[Name : Binary Bound] . I know its a simple project but I am new in this field and i am just trying to build and learn more. This is a simple game but i would try integrating backend too and add something special to make it unique and more fun to play . Here , ⬜ The white box is main playing area 🟦 The blue box is for customizing the game settings area. 🟩 The green box is the are for leaderboard information area.
Devlog #2: Features Added Last time, I mostly worked on the layouts. This time, I finally got the game working! Things took a little longer than expected because I kept accidentally breaking my own code , What I added: Core game functionality is now working -Level system added Sound effects Screen shake animation for errors Color feedback: Green for correct guesses Red for wrong guesses 💡 Hint system Guess/try counter -Reset button Started preparing customization features (still a work in progress) Current Status: ✅ Game is playable ✅ Levels are functional 🚧 Customization is still under construction 🚧 Backend coming soon Thanks for checking out my progress! =)
Devlog #3 Hello again everyone ! Now I have made some more changes on the game , I changed the theme to Neumorphism(I saw it on IG) and Also i have made different levels along with a hardcore mode. Lemme explain in detail about the levels Level 1 : 1 - 10 Level 2 : 1 - 100 Level 3 : 1 - 1000 Level 4 : 1 - 10000 Level 5 : 1 - 100000 Level Impossible : 1 - 1M I know that the higher levels are too difficult but there is always hint to help but there is a catch . I also added a HardCore Mode In the hardcore Mode even the hints are not available . Just wanted to make the game a bit hard to see what it feels like 😅 Currently I am working on the backend and Leaderboard system . Thank You So much Have a nice day =)
Devlog 04 Hello everyone, Welcome again! A quick update on Binary Bound. I just finished working on the backend and the databases, (used php and sql btw) and finally the backend seems to be functioning but still the leaderboard is still under construction. Will be giving report soon. Thank You Have a nice day
Devlog #05 Hello everyone again , A quick update again on the Binary Bound Game I was working on. Now Finally the leaderboard system is working ( yeeeeee ) , but for now it stores every try made by the user😖 . So now next i will try to do is save only the highest score earned (which is least try in this case) , after i fix it , i will report soon. And also the autologin system is ready , whcih means if the user entered the unique username on the welcome page once then the user wont have to bother entering the name everytime he/she logs in (used LocalStorage for that). Thank you for reading . Have a nice day =)
Devlog #6 Hello again everyone , this devlog might be abit longer but I want to make sure you all understand what changes I made recently . Welcome back to the journey of me converting a Simple Number Guessing Game(Named Binary Bound ) into a full on backend integrated game where you prove the world how lucky you are (probably😐). Lets start with whats new (will explain in detail below): Functioning Leaderboard Added a GIF section to make the game even more intresting. A secret hint for Hardcore Mode (will explain below). First lemme explain the Leaderboard system Players who guess the number in fewer number of tries ranks higher . If two or more players guess the number in the same number of attempts , the player with more total wins gets the higher rank . [Only the best records are considered for record , which means if a player guesses the number in 3 tries and later in 2 tries then only the record of 2 is stored in the database ] lemme give you an example : Assume there are two player , i.e Player A and Player B Player A : Guessed the number in 3 tries (only one time). Player B : Also Guessed the number in 3 tries but gets correct 2 times then player B will rank above Player A . I hope I was able to make thinkgs clear , if not please comment and I will try again to explain. Now Lets talk about The GIF system . We all know GIFs are fun , but here (expecially for hardcore mode player , it will be more than that .) (btw almost all of them are anime😶🌫️ GIFs) I have linked total 18 GIFs and among them 6 are hints. Lemme explain In details I have total 3 folders storing GIFs Folder name : [ Correct ] -> It has 3 GIFs from which a random any one will be played when the user guesses the answer correct . [ Down ] -> It has 3 GIFs which will be hinting downward . (Hinting guess lower) [ Up ] -> It has 3 GIFs which will be hinting upward . (Hinting guess higher) [ Error ] -> It has total 9 GIFs which has random GIFs , not meant to hint anything , they are just for fun . [ The GIFs will be played in all levels ranging from level 1 to level impossible ] How these GIF are helpful for hardcore player . Since the 6 of the GIFs are helpful or hintful you may say , then there is total of (6/18) = 1/3 ( 33.33% ) chance that the GIF might be helpful . eg. If you are playing Level : Impossible (i.e Guessing number from 1 to 1 Million🤧) and you took your guess and spot that the GIF hints you UP or Down then you could easily eliminate 500K numbers (if you choose 500,000). Hope I made this system clear as well . If I didnt forget anything while writing this devlog , probalbly Thats it (I will update you if i forgot anything here . ) Maybe will polish the game more and see if could add anything new . Till then Thank you for reading Bye! Have a Nice day
Hello again , everyone! Welcome to Devlog #07 Before I get into the actual update , i want to mention about the to hackatime members( Other readers can skip to next paragraph ) that after i renamed some of my files name it totally created the new section on hackatime file and has sepetrated time counter for them and my time on the particular file started from 0 min again. I completely forrgot to mention this in the previous devlogs even though I have added this feature like few days ago that there is a sound effects which will be played when user gets the answer correct and also for incorrect (all of them are meme sound effects😅) and it will be played after the user take a guess. And the main update for this is that I have added a mute btn which will you can use to turn the error sound off , also the user preference of (off/on) will be saved in **LocalStorage **so it will remember your preference =) (as long as you are using the samebrowser) . Hope I made things clear if not please comment and i will try to explain again .. Also currently I am working on the responsiveness of the site ( and i suck at this fr). Thank you for reading . Have a nice day .
Devlog #08 Hello everyone , Welcome again . (I will keep this one devlog abit short) . This might be probably the last devlog for this project . Finally the polishing stuff is done . I have made this site responsive (still i recomend playing this game on pc / laptop , honestly i suck at making site responsive but i did try.) , also before I used index as position thats why i had an ranking issue on the leaderboard which took me longer to find then to fix it acutally (i will keep the screenshot somewhere below.). I plan to explain the whole game once again while shipping. Thank you everyone . Have a nice day .
**Hello Everyone! ** I know I said that the las one would be my final devlog.. but here I am again . Welcome to **Devlog #9. ** I know I said that the las one would be my final devlog.. but here I am again . Welcome to Devlog #9. According to the timer or the time spent on the project might be displaying around 2 hours , but behind it there is a whole story . Lemme tell You. After the last devlog , I tried hosting/deploying the project on the internet and as I was doing that , I ran into 500 Internal Server Issue and I know its hard to believe but it took me 5 HOURS to only notice that the error was a single space (to be specific , Before fix=> header(“Content-Type: application/json”); After fix=> header(“Content-Type : application/json”); ) Honestly I didnt even know it could cause issue , as the previous code worked perfectly when i ran the code locally(using the vscode extension PHP Server by brapifra), It was Gemini who figured it out when I sent it the screenshot of the error and the code(after it was uploaded to the server). I literally thought it was issue with my account with which I was hosting , so I even tried creating multiple accounts and digged into Youtube and more but could find what was wrong, I feel really greatful to Gemini for this . (The loading of GIF and sound still takes abit time when its loading for the first time,but it SHOULD be fine after that, hopefully😅). I understood the feeling of both frustration and exitment during this journey . I cant ensure you that the project is flawless but I hope it would be fun for you . Now I can say that , Finally the project is complete and here is the demo link : https://sudip-project-06.wuaze.com/ Will be Shipping soon! **Thank You SOOOOOOO Much . Have a nice day .
Finally Shipping !!!! Live Demo here : https://sudip-project-06.wuaze.com/ Have a nice day
Hello everone , Thank you so much for all the love and support last time, Now I have collected all the feedbacks and now currently am working on them, Thank you so much for reading , Have a nice day =)
Devlog #10 Game link : https://sudip-project-06.wuaze.com/ Hello everyone, Welcome to Devlog #10 of Binary Bound . Yeah, it’s the first devlog after the ship. First, I would like to thank everyone for the feedbacks and your love and support. I’m really glad, and I feel really blessed for all the feedbacks, comments, likes—everything. Thank you so much. (╥﹏╥)♡ And yeah, like I told before, I’m working on your feedbacks. I actually have not completed all the improvements that the feedback asked me to, but I’m still working on it. First, I fixed what I guess was the main issue. Anyone could console.log … theSUSimposter (Those who know, they know.) (¬‿¬) (Actually it was the variable where the random number was created and stored) They could literally see what the random number was, and some of them also used the function I made to save the score by executing it directly from the browser console.( ̄▽ ̄;) To avoid this, I implemented some changes. Previously, the random number was generated and verified in the frontend JavaScript. Now, I have moved that logic to PHP. The random number is now generated on the server, checked there, and only the result of whether the entered number is correct or not is returned. I’m currently working on securing the save score functionality as well. Once I finish it, I’ll upload the update and let you all know. Also one more thing , i accidently deleted the old database , i am so sorry , but i had one backup but not all of them are here, i apologize (╥﹏╥). Thank you so much. And yeah, I would still love any feedback you want to share. Thank you so much. <(_ _)> Have a nice day…
Devlog #11 Game link : https://sudip-project-06.wuaze.com/ Hello everyone, Welcome to Devlog #11 of Binary Bound. Thank you so much for all the feedbacks. I’m still reading them and trying to improve the game based on them. <(_ _)> One of the major things I worked on was securing the save score functionality. Previously, anyone could just open the browser console and just call the saveScore function with fake values, like one try on level impossible, and the server would just believe it and share it to the leaderboard. To fix this, I moved all that trust to the server side instead of the browser side sending the score data. The server now tracks everything itself using PHP sessions during the game. So when the game ends and submits a score, PHP just reads from its own memory instead of listening to the browser. And if someone still tries to use the setScore function from the browser console without actually winning, then the server will just reject it. ( •̀ ω •́ )✧ I also got some feedback that some people did not like hearing the sound effects, as it was jumpscare, and watching from that persepective they are correct. So I made a few changes regarding that as well. • By default, the Disable Sound option is on. • Anyone can turn the sounds back on anytime. • Their preference is saved in Local Storage. • I also applied the Disable Sound option to the win sound as well. Thank you so much. And yeah, I would still love any feedback you want to share. (ᵔᴗᵔ). I will ship this project for now but will still add more features on it. Thank you so much. <(_ _)> Have a nice day =)
Ships:
**Hello Everyone** , Welcome ! For this time I have made a Game Binary Bound . The concept is simple , the JS generate a random number and you are supposed to guess it in least number of tries possible , but there is more than that . I tried to make the game more interesting and fun . I will explain it properly in the features section below =) **Features** **Levels **: There are total of 6 levels where you guess the number between Level 1 : 1 - 10 Level 2 : 1 - 100 Level 3 : 1 - 1000 Level 4 : 1 - 10000 Level 5 : 1 - 100000 Level Impossible : 1 - 1000000 **HINT (for non-hardcore mode)** : There is also a hint below the input box where you will be given hint , which will tell you the next number you are supposed to guess is higher or lower the current one you just guessed. Let me leave no confusion . Assume you are playing Level 2 (its also selected by default =) ) You chose 50 , and the hint says something like "Hint : Nah buddy, try Guessing Lower" then you can totally eliminate Numbers below 50 and chose any lower and the process reapeats . hopefully it was clear . **The HARDCORE Mode** : What if there was no hint 😗 . How would you guess the your next number ? Yep thats Hardcore mode , but I know it would be abit tooooooo dificult if we imagine it with level 3 or 4 or even higer . Thats why i have also added the GIF system (HARDCORE lifesaver). **The secret HINT**: GIFs are fun ! So to make the game more interesting I have also used the GIFs but its role is actually more than that .For the Hardcore mode player It could sometime act as a Secret Hint . Its expalined in the Devlog #6 but lemme expain to you in short anyway. There are total of 18 GIFs which will be displayed randomly in the game . Among which 3 are hints which hints you to guess lower and another 3 are hints which hints you to guess higher . Which means there is 33.33% chance that the GIFs = Hint =) It is applied to all Level and modes . I hope it was clear =) . [It is also explained in detail in Devlog #6] **The Leaderboard** : I have integrated a leaderboard system where all the players will be listed who has guessed the number at least once . Also I would like to explain you the ranking system . The common rule is the one who gusses in the least number of tries ranks higher(at the top). But here is a catch , In case if there are two players with same number of try and they achieved the position same number of time then they will share the same rank . Lemme give you an example : Assume two players (Player A and Player B) Player A guessed the number in 2 tries ( one time ) Player B also guessed the number in 2 tries (two times) Then in that case Player B will be ranked above player A . **The SFXs** : There is sound effect (different for each , correct guess and incorrect guess (meme sound btw😅) . Its just for fun , but you can mute that option by clicking on the Error sound btn (and your preference will also be saved in localStorage =) ) Now lemme tell you some more about my project . I first time saw this design (theme) in the instagram and tried to replicate in , and I found what colors they exactly use from this site : https://neumorphism.io/#e0e0e0 I will be transparent and declare the use of AI : I used AI (Gemini and ChatGPT) . ChatGPT while making the shake error nad Gemini especially for Debuging the backend and while making the leaderboard system . I assume thats it for this project . Its my biggest project I have worked on so far . **Thank you so much for reading .** If something was unclear please comment , i will reply =) **Have a nice day =)**
Shipping the Updated version Game link: https://sudip-project-06.wuaze.com/ Hello everyone, Welcome First of all, thank you so much for all the feedbacks. I worked on the previous feedback and I have updated the game. One of the biggest issues people found was that the anyone could easily cheat .[Consider reading devlog #10 for more =) ] Previously, anyone could open the browser console and see the random number directly. They could also execute the `saveScore` function with fake values, like completing the game in one try on Impossible difficulty, and the server would simply trust that data and add it to the leaderboard. ( ̄▽ ̄;) To avoid this, I implemented some changes. Previously, the random number was generated and verified in the frontend using JavaScript. Now, all of that logic has been moved to PHP. The random number is generated on the server, checked on the server, and only whether the entered number is correct or not is sent back to the browser. This means that even if someone tries to call the `saveScore` or `setScore` function manually from the browser console without actually winning, the server will simply reject it. ( •̀ ω •́ )✧ I also received some feedback about the sound effects. Some people said the error sound was a little too sudden, and honestly, looking at it from their perspective, they're right. So I made a few changes regarding that as well. - By default, the Disable Sound option is now enabled. - Anyone can turn the sounds back on anytime. - The preference is saved in Local Storage, so you won't have to change it every time =) - I also applied the Disable Sound option to the win sound as well as per the feedback. For now, I'll consider this project shipped, but I still plan to add more features and improvements in the future based on your feedback. Thank you so much for being part of this journey. And yeah, I would still love any feedback you want to share. (ᵔᴗᵔ) Thank you so much. <(_ _)> Have a nice day! =)...
|
1792878842.0991673
|
1793742842.0991673
|
|
22565
|
In This Economy!? by @OrangePainting | Stardance
|
OrangePainting
|
1
|
48.0
|
593
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-28T11:27:44Z", "hours": 48.0, "multiplier": 16.7, "payout": 593, "blessing": "neutral", "text": "I made an incremental clicker game where you experience the harsh results of applying to jobs. Work hard, apply a lot, and complete projects to maximize your chances of landing an offer! This game was created for The Very Serious Juniper Dev Game Jam, which meant I had 7 days to create a game with the theme “spin to win.” It was challenging to bring this all together in 7 or so days, but the community I had in-person and online helped me finish this project. I have had this game playtested a few times to be able to find soooo many bugs, graphical issues, and suggestions. Because of this, I am very proud of what I have made. Please play it on itch.io using the buttons, and feel free to check out the code in Github. This entire game was made using the Godot Game Engine.", "repo": "https://github.com/OrangePainting/in-this-economy", "demo": "https://orangepainting.itch.io/in-this-economy"}]...
|
[{"post_id": 17537, "ts": "202 [{"post_id": 17537, "ts": "2026-06-28T11:22:04Z", "hours": 0.3436, "text": "Final Devlog There was some issues with linking my game, but now everything is set, and I even did some more optimizations. Please play my game on itch.io, and you can see the github with all my code linked as well."}, {"post_id": 17031, "ts": "2026-06-27T17:18:33Z", "hours": 6.6281, "text": "In This Economy!? - Devlog 5 Yay, it’s done. Please play it and provide feedback so that I can make the game better in the future! Itch.io page is finished up Added 2 more tracks Added some more sound effects Added a tutorial at the beginning of the game Fixed some more bugs and graphical issues Game works on mobile, and desktop (mouse and spacebar works) Added achievements to track the player’s progress Added another minigame project, each with their own win and death screens now. Some Final QOL stuff to finish There are some minor graphical issues, but they are mainly unnoticable. I also plan to improve the performance of the game in the backend after this project is shipped :) Thanks!"}, {"post_id": 16124, "ts": "2026-06-26T06:51:54Z", "hours": 20.3653, "text": "In This Economy!? - Devlog 4 I did a ton of more changes again, but mainly it’s just Quality of Life stuff, mainly from my friends playtesting the game for me: Big Changes: 2 More music tracks and 10 more paper sounds added Added a start screen that players can type into Added a new project minigame to balance out the game in general Smaller Changes: The game is more balanced Replaced the Quit button with a Credits button because this game will be played on the web Changed the projects tab to be more understandable"}, {"post_id": 14705, "ts": "2026-06-23T22:06:09Z", "hours": 12.3967, "text": "[PLACEHOLDER] - Devlog 3 I added a bunch of things, because I’m nearing the deadline (only 2 days left :0) Big changes: Added a lot of SFX and Music, mostly done by me but also sourced from online Added more art for projects and the background using Aseprite Added Title Screen with start and quit buttons Added End Screen for when you win the game Made my first project for the projects tab Made more active UI How To Play section is complete Updated the layout entirely QOL stuff: Added settings for Music and SFX in the settings section Added Credits Entire project is organized to make things easier to access Scrolling background in the main menu, along with custom shader and particle animations just for fun Better animations so that things don’t suddenly appear or disappear Still have a lot more things to do, but it should be doable yay."}, {"post_id": 13377, "ts": "2026-06-21T22:19:18Z", "hours": 6.6122, "text": "[PLACEHOLDER] - Devlog 2 Added more functionality: There is now a tab system that players can click through Base upgrades are now available, and are functional Changed a few sprites to make disabled button sprites, and fit the theme more of applying to jobs I plan to add more places to spin, as that’s a key mechanic for this game. I want it to be as accessible too, so a tutorial is also necessary to make at some point."}, {"post_id": 12243, "ts": "2026-06-20T00:12:47Z", "hours": 1.9492, "text": "[PLACEHOLDER] - Devlog 1 Currently don’t have much done, but added some basic spin functionality, along with some pass and fail results. There isn’t much else yet, but I plan to add some upgrades and make the sprites a little better before the 7th day. Don’t have a name yet."}]...
|
Title: In This Economy!? by @OrangePainting | Star Title: In This Economy!? by @OrangePainting | Stardance
Devlogs:
[PLACEHOLDER] - Devlog 1 Currently don’t have much done, but added some basic spin functionality, along with some pass and fail results. There isn’t much else yet, but I plan to add some upgrades and make the sprites a little better before the 7th day. Don’t have a name yet.
[PLACEHOLDER] - Devlog 2 Added more functionality: There is now a tab system that players can click through Base upgrades are now available, and are functional Changed a few sprites to make disabled button sprites, and fit the theme more of applying to jobs I plan to add more places to spin, as that’s a key mechanic for this game. I want it to be as accessible too, so a tutorial is also necessary to make at some point.
[PLACEHOLDER] - Devlog 3 I added a bunch of things, because I’m nearing the deadline (only 2 days left :0) Big changes: Added a lot of SFX and Music, mostly done by me but also sourced from online Added more art for projects and the background using Aseprite Added Title Screen with start and quit buttons Added End Screen for when you win the game Made my first project for the projects tab Made more active UI How To Play section is complete Updated the layout entirely QOL stuff: Added settings for Music and SFX in the settings section Added Credits Entire project is organized to make things easier to access Scrolling background in the main menu, along with custom shader and particle animations just for fun Better animations so that things don’t suddenly appear or disappear Still have a lot more things to do, but it should be doable yay.
In This Economy!? - Devlog 4 I did a ton of more changes again, but mainly it’s just Quality of Life stuff, mainly from my friends playtesting the game for me: Big Changes: 2 More music tracks and 10 more paper sounds added Added a start screen that players can type into Added a new project minigame to balance out the game in general Smaller Changes: The game is more balanced Replaced the Quit button with a Credits button because this game will be played on the web Changed the projects tab to be more understandable
In This Economy!? - Devlog 5 Yay, it’s done. Please play it and provide feedback so that I can make the game better in the future! Itch.io page is finished up Added 2 more tracks Added some more sound effects Added a tutorial at the beginning of the game Fixed some more bugs and graphical issues Game works on mobile, and desktop (mouse and spacebar works) Added achievements to track the player’s progress Added another minigame project, each with their own win and death screens now. Some Final QOL stuff to finish There are some minor graphical issues, but they are mainly unnoticable. I also plan to improve the performance of the game in the backend after this project is shipped :) Thanks!
Final Devlog There was some issues with linking my game, but now everything is set, and I even did some more optimizations. Please play my game on itch.io, and you can see the github with all my code linked as well.
Ships:
I made an incremental clicker game where you experience the harsh results of applying to jobs. Work hard, apply a lot, and complete projects to maximize your chances of landing an offer! This game was created for The Very Serious Juniper Dev Game Jam, which meant I had 7 days to create a game with the theme “spin to win.” It was challenging to bring this all together in 7 or so days, but the community I had in-person and online helped me finish this project. I have had this game playtested a few times to be able to find soooo many bugs, graphical issues, and suggestions. Because of this, I am very proud of what I have made. Please play it on itch.io using the buttons, and feel free to check out the code in Github. This entire game was made using the Godot Game Engine....
|
1793069390.5454943
|
1793155790.5454943
|
|
26729
|
just tell me what to do by @justrivaan | Stardance
|
justrivaan
|
3
|
48.0
|
944
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-26T07:11:51Z", "hours": 29.0, "multiplier": 18.85, "payout": 647, "blessing": "blessed", "text": "Hello, this is the final devlog for my project, i believe that the website, for its sole purpose is now totally finished. ‘just tell me what to do’ is a website i have developed for a huge problem in real life, decision making. You have to choose a time duration (the time u have on hand), and you msut choose how you are feeling (emotion), and then type out a brain dump. This input gives you an output that helps you come to a decision about your problem. There are also modes for the responses, these modes change the way the AI responds to you. There is a mode recommendation feature where if the AI believes that your brain dump is better suitable for another mode, then it recommends you to swap to that mode instead. I have really enjoyed working on this site. There were many bugs along the way, but in the end it all worked out!", "repo": "https://github.com/officiallyrivaan/just-tell-me-what-to-do", "demo": "https://just-tell-me-what-to-do.vercel.app"}, {"ship_num": 2, "ts": "2026-07-05T02:06:39Z", "hours": 15.0, "multiplier": 17.79, "payout": 226, "blessing": "neutral", "text": "The second ship of just tell me what to do! Alright, first, here’s a quick summary on what just tell me what to do is. An AI powered tool, where you choose your time on hand, then you choose how you are feeling, and then finally dump your thoughts. This gives you the next step, the next step may help to come to a more precise decision, or it maybe just to cheer you up. I went through WAY too many difficulties during this making, i tried making user accounts, but that didnt work out, and a lot more was tried… Now the HUGE update! Modes have been added to the AI, You get to choose how the AI behaves with you! There are six new modes, (the details for them are in the previous devlog) selecting the right mode can u help you for the next step much more effectively! I am really proud of my progress so far, its been insane how much work has been put into this project, and im hoping to continue this further!", "repo": "https://github.com/officiallyrivaan/just-tell-me-what-to-do", "demo": "https://just-tell-me-what-to-do.vercel.app"}, {"ship_num": 3, "ts": "2026-06-28T14:40:38Z", "hours": 4.0, "multiplier": 19.11, "payout": 71, "blessing": "neutral", "text": "As I thought about ideas, I found myself constantly thinking about the problem that everyone deals with but never considers: choosing what to do next. From procrastination to boredom or from being indecisive to having too many options to pick from, making small decisions can end up taking more time than one would expect. And that is how just tell me what to do came to life. The app poses a set of questions to users and based on their answers, makes an AI-suggested recommendation to do something specific next. Those questions include the amount of free time users have, their current state, and any limits they may have. My intention was not to create a new planning tool but rather to help remove the obstacle in making the first step and continue without additional delays. Development was definitely far from being a straight road ahead. More often than not, my time was used to solve bugs rather than implementing new features. They included different behavior between AI models, unexpected failure of my API key, and an annoying UI bug when the to-do pile overlayed with its own popup. The aspect which I am most proud of is the very idea itself. This is the problem that I myself faced, and many other people, I presume, must have had their experiences as well. Rather than just creating another productivity app, I have wanted to make something that would be practical for someone’s daily routine. Even if the app will help save just a few minutes, it would already mean a lot. Moreover, this project gave me an opportunity to practice debugging and using the API of an AI. Each of the problems that I managed to solve added to my knowledge, and at the end of the project, I knew a lot more about frontend and using an AI in the project. All in all, just tell me what to do has turned out to be one of those projects which was very easy at first but proved to be rather challenging in practice. I am glad that I made it till the end despite all the bugs and came up with something practical.", "repo": "https://github.com/officiallyrivaan/just-tell-me-what-to-do", "demo": "https://just-tell-me-what-to-do.vercel.app"}]...
|
[{"post_id": 32255, "ts": "202 [{"post_id": 32255, "ts": "2026-07-21T09:39:08Z", "hours": 8.0, "text": "bugs finally fixed!!! (some) alright, im back now, i had taken a short break. i fixed the liquid glass bugs, and it is finally good enough! Im fine tuning the mode recommendation feature, to make it accurate now."}, {"post_id": 28171, "ts": "2026-07-14T09:28:38Z", "hours": 3.0, "text": "okay, this devlog is gonna be a short one, since i just wanted to keep yall updated on whats up. basically, ive been facing bugs on the liquid glass topbar, i might scratch the idea entirely, not sure, and now im facing bugs on the mode recommendation…"}, {"post_id": 26365, "ts": "2026-07-11T03:30:41Z", "hours": 7.0, "text": "i worked a lot on the backend already so now i decided to work on the frontend. im developing a liquid glass component for the topbar, its not ready yet, trust me making it is a PAIN. im also almost done with the mode recommendations! im pretty sure by tommorow, or today, all of these updates will be out!"}, {"post_id": 25821, "ts": "2026-07-10T09:05:02Z", "hours": 8.0, "text": "its me again! i was on a grind, and i spent 8 hours refining the mode-specific responses, i did not change much else. next up, im planning on adding mode recommendations. this update looks at your brain dump, and suggests if there is a better mode for this input."}, {"post_id": 22538, "ts": "2026-07-05T01:56:46Z", "hours": 12.0, "text": "okay, honestly that grind was insane. 12 hours of work, i toughed it out. anyways, now to the project. alright, so a super cool update, now theres modes to the ai, like personalities that u think will best suit you. 6 modes have been added, just decide - the defualt, vent - ai is a calm listener and gives u small gentle steps, roast me - straight forward, friend-like attitude that shows you the total truth in a blunt way, hype me up - high energy, gets you pumped up u for the next step, talk it through - thinks alongside with you, and provides clarity, and finally break it down - treats your brain dumb as a task list, and is more analytical. These are the new modes, and ive made a change mode button on the tool page. This may be my final devlog before the ship! Insane update, im excited to see how this turns out!"}, {"post_id": 21998, "ts": "2026-07-04T07:06:10Z", "hours": 2.0, "text": "INSANE UPDATEEEEE! alright now ive added 2 new pages instead of 1 long scroll through page. Personally, the scroll through is really generic, and feels unfinished. One page is for “the tool,” (the ai suggester on waht to do) the other is called “my patterns” this gives u an analysis on your mood trends, productive hours etc. Im not sure if im planning to keep this feature since it feels kind of pointless. I also have added a pomodoro timer, where u get 25 minutes to complete your activity, its totally optional. In addition to that i added a share button, so u can copy it and put it into your notes, or screenshot it and send it to people! anyways, thats it for now. stay tuned for the next one!"}, {"post_id": 21581, "ts": "2026-07-03T16:42:41Z", "hours": 0.0, "text": "wsp guys! im back to working on this project, i made a few css changes over the week, nothing much really, i would want yall to suggest me some features that i can implement in the website! feel free to comment, really helps out!"}, {"post_id": 17610, "ts": "2026-06-28T14:11:26Z", "hours": 1.0, "text": "FINAL DEVLOGGGGGG, I encountered way too many bugs deleting my .env file. it was PAINFUL. Finally fixed and im gonna ship the project!!!!!!! Huge new feature added, i call it the to-do pile. Your last 5 actions show up on it, and a button thats clickable saying “did it,” as soon as you click it, the action dissappears from the to-do pile! Its been really fun working on this site!"}, {"post_id": 17569, "ts": "2026-06-28T12:29:28Z", "hours": 1.0, "text": "FINISHED BUG FIXING!!!! That took way too long. Devlog #2. Alright so now i’ve fixed the major prompting issue, you can finally talk to the ai without it bringing up additional math pass rates. 😅 I figured i’d host it on OnRender since im used to it. Added environment variables instead of the .env since its not testing anymore. Rebuilt the UI slightly. Worked on it all day. Theres a share option now, which copies the text instantly (incase you want to put it on your notes/to-do-list) Hoping i face no major bugs, please check out the site and let me know if theres bugs! (you can drop a comment or wtv) Added some nice translucent/glassy ui aswell. Not sure what’s next but lets see!"}, {"post_id": 17450, "ts": "2026-06-28T07:27:43Z", "hours": 0.0, "text": "First Devlog, i thought of one of the biggest problems in daily life, decision making. Im sure every one of us has faced this ATLEAST once, if not hundreds and thousands of times. On average, roughly 2.5 hours is spent on indecisiveness by humans, may it be micro decisions or important decisions. This led me to making, “just tell me what to do,” a website thats AI-Powered and helps you get your thoughts straight and come to a decision. I’ve made the first version, its not being hosted anywhere yet due to major bugs, but hopefully by my second devlog i will have started hosting it."}]...
|
Title: just tell me what to do by @justrivaan | St Title: just tell me what to do by @justrivaan | Stardance
Devlogs:
First Devlog, i thought of one of the biggest problems in daily life, decision making. Im sure every one of us has faced this ATLEAST once, if not hundreds and thousands of times. On average, roughly 2.5 hours is spent on indecisiveness by humans, may it be micro decisions or important decisions. This led me to making, “just tell me what to do,” a website thats AI-Powered and helps you get your thoughts straight and come to a decision. I’ve made the first version, its not being hosted anywhere yet due to major bugs, but hopefully by my second devlog i will have started hosting it.
FINISHED BUG FIXING!!!! That took way too long. Devlog #2. Alright so now i’ve fixed the major prompting issue, you can finally talk to the ai without it bringing up additional math pass rates. 😅 I figured i’d host it on OnRender since im used to it. Added environment variables instead of the .env since its not testing anymore. Rebuilt the UI slightly. Worked on it all day. Theres a share option now, which copies the text instantly (incase you want to put it on your notes/to-do-list) Hoping i face no major bugs, please check out the site and let me know if theres bugs! (you can drop a comment or wtv) Added some nice translucent/glassy ui aswell. Not sure what’s next but lets see!
FINAL DEVLOGGGGGG, I encountered way too many bugs deleting my .env file. it was PAINFUL. Finally fixed and im gonna ship the project!!!!!!! Huge new feature added, i call it the to-do pile. Your last 5 actions show up on it, and a button thats clickable saying “did it,” as soon as you click it, the action dissappears from the to-do pile! Its been really fun working on this site!
wsp guys! im back to working on this project, i made a few css changes over the week, nothing much really, i would want yall to suggest me some features that i can implement in the website! feel free to comment, really helps out!
INSANE UPDATEEEEE! alright now ive added 2 new pages instead of 1 long scroll through page. Personally, the scroll through is really generic, and feels unfinished. One page is for “the tool,” (the ai suggester on waht to do) the other is called “my patterns” this gives u an analysis on your mood trends, productive hours etc. Im not sure if im planning to keep this feature since it feels kind of pointless. I also have added a pomodoro timer, where u get 25 minutes to complete your activity, its totally optional. In addition to that i added a share button, so u can copy it and put it into your notes, or screenshot it and send it to people! anyways, thats it for now. stay tuned for the next one!
okay, honestly that grind was insane. 12 hours of work, i toughed it out. anyways, now to the project. alright, so a super cool update, now theres modes to the ai, like personalities that u think will best suit you. 6 modes have been added, just decide - the defualt, vent - ai is a calm listener and gives u small gentle steps, roast me - straight forward, friend-like attitude that shows you the total truth in a blunt way, hype me up - high energy, gets you pumped up u for the next step, talk it through - thinks alongside with you, and provides clarity, and finally break it down - treats your brain dumb as a task list, and is more analytical. These are the new modes, and ive made a change mode button on the tool page. This may be my final devlog before the ship! Insane update, im excited to see how this turns out!
its me again! i was on a grind, and i spent 8 hours refining the mode-specific responses, i did not change much else. next up, im planning on adding mode recommendations. this update looks at your brain dump, and suggests if there is a better mode for this input.
i worked a lot on the backend already so now i decided to work on the frontend. im developing a liquid glass component for the topbar, its not ready yet, trust me making it is a PAIN. im also almost done with the mode recommendations! im pretty sure by tommorow, or today, all of these updates will be out!
okay, this devlog is gonna be a short one, since i just wanted to keep yall updated on whats up. basically, ive been facing bugs on the liquid glass topbar, i might scratch the idea entirely, not sure, and now im facing bugs on the mode recommendation…
bugs finally fixed!!! (some) alright, im back now, i had taken a short break. i fixed the liquid glass bugs, and it is finally good enough! Im fine tuning the mode recommendation feature, to make it accurate now.
Ships:
As I thought about ideas, I found myself constantly thinking about the problem that everyone deals with but never considers: choosing what to do next. From procrastination to boredom or from being indecisive to having too many options to pick from, making small decisions can end up taking more time than one would expect. And that is how just tell me what to do came to life. The app poses a set of questions to users and based on their answers, makes an AI-suggested recommendation to do something specific next. Those questions include the amount of free time users have, their current state, and any limits they may have. My intention was not to create a new planning tool but rather to help remove the obstacle in making the first step and continue without additional delays. Development was definitely far from being a straight road ahead. More often than not, my time was used to solve bugs rather than implementing new features. They included different behavior between AI models, unexpected failure of my API key, and an annoying UI bug when the to-do pile overlayed with its own popup. The aspect which I am most proud of is the very idea itself. This is the problem that I myself faced, and many other people, I presume, must have had their experiences as well. Rather than just creating another productivity app, I have wanted to make something that would be practical for someone’s daily routine. Even if the app will help save just a few minutes, it would already mean a lot. Moreover, this project gave me an opportunity to practice debugging and using the API of an AI. Each of the problems that I managed to solve added to my knowledge, and at the end of the project, I knew a lot more about frontend and using an AI in the project. All in all, just tell me what to do has turned out to be one of those projects which was very easy at first but proved to be rather challenging in practice. I am glad that I made it till the end despite all the bugs and came up with something practical.
The second ship of just tell me what to do! Alright, first, here’s a quick summary on what just tell me what to do is. An AI powered tool, where you choose your time on hand, then you choose how you are feeling, and then finally dump your thoughts. This gives you the next step, the next step may help to come to a more precise decision, or it maybe just to cheer you up. I went through WAY too many difficulties during this making, i tried making user accounts, but that didnt work out, and a lot more was tried… Now the HUGE update! Modes have been added to the AI, You get to choose how the AI behaves with you! There are six new modes, (the details for them are in the previous devlog) selecting the right mode can u help you for the next step much more effectively! I am really proud of my progress so far, its been insane how much work has been put into this project, and im hoping to continue this further!
Hello, this is the final devlog for my project, i believe that the website, for its sole purpose is now totally finished. ‘just tell me what to do’ is a website i have developed for a huge problem in real life, decision making. You have to choose a time duration (the time u have on hand), and you msut choose how you are feeling (emotion), and then type out a brain dump. This input gives you an output that helps you come to a decision about your problem. There are also modes for the responses, these modes change the way the AI responds to you. There is a mode recommendation feature where if the AI believes that your brain dump is better suitable for another mode, then it recommends you to swap to that mode instead. I have really enjoyed working on this site. There were many bugs along the way, but in the end it all worked out!...
|
1792878860.1476197
|
1793742860.1476197
|
|
27322
|
Bazaar Tracker HSB by @SagittaJL | Stardance
|
SagittaJL
|
1
|
48.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-11T20:56:51Z", "hours": 48.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I built a live Hypixel SkyBlock Bazaar tracker that ranks 1200+ items using my own Gamma and Omega market metrics. The hardest part was dealing with Hypixel’s item data and getting custom item icons to work reliably. I’m most proud that it went from a small Python script into a full Flask website that’s now live. You can try searching for items, changing tax/Omega settings, and switching backgrounds in the settings menu. This is for all the SkyBlock buffs.", "repo": "https://github.com/linjeffrey21-creator/BazaarTracker", "demo": "https://bazaar-tracker-ten.vercel.app/"}]...
|
[{"post_id": 78875, "ts": "202 [{"post_id": 78875, "ts": "2026-10-11T20:54:39Z", "hours": 0.4081, "text": "Project is live on Render!"}, {"post_id": 78852, "ts": "2026-10-11T19:30:12Z", "hours": 13.8189, "text": "The Bazaar Tracker looks better off now with live item data, ranking, search, taxes, custom Gamma/Omega scores, item icons, and a background picker. My next step is to host it somewhere so other people can actually use it."}, {"post_id": 72086, "ts": "2026-09-22T04:22:54Z", "hours": 2.4642, "text": "Put the backend on a website now, working on the aesthetics but first time with YouTube"}, {"post_id": 71641, "ts": "2026-09-21T06:38:25Z", "hours": 30.8742, "text": "Working on a Search Feature to Expand the Catalog"}, {"post_id": 18576, "ts": "2026-06-29T19:27:44Z", "hours": 0.0692, "text": "This started as a script to list Hypixel SkyBlock reforge stones by category. Then, I decided to turn it into a full-on demand & stability scoring system for the Bazaar. It’s still in the works, as I don’t have many products being tracked right now. There’s a custom Demand Score (γ) for every item and a Stability Score (Ω) for each item. The program also spits out a Top 20 list of the most liquid, most in-demand flips, ranked by gamma."}]...
|
Title: Bazaar Tracker HSB by @SagittaJL | Stardanc Title: Bazaar Tracker HSB by @SagittaJL | Stardance
Devlogs:
This started as a script to list Hypixel SkyBlock reforge stones by category. Then, I decided to turn it into a full-on demand & stability scoring system for the Bazaar. It’s still in the works, as I don’t have many products being tracked right now. There’s a custom Demand Score (γ) for every item and a Stability Score (Ω) for each item. The program also spits out a Top 20 list of the most liquid, most in-demand flips, ranked by gamma.
Working on a Search Feature to Expand the Catalog
Put the backend on a website now, working on the aesthetics but first time with YouTube
The Bazaar Tracker looks better off now with live item data, ranking, search, taxes, custom Gamma/Omega scores, item icons, and a background picker. My next step is to host it somewhere so other people can actually use it.
Project is live on Render!
Ships:
I built a live Hypixel SkyBlock Bazaar tracker that ranks 1200+ items using my own Gamma and Omega market metrics. The hardest part was dealing with Hypixel’s item data and getting custom item icons to work reliably. I’m most proud that it went from a small Python script into a full Flask website that’s now live. You can try searching for items, changing tax/Omega settings, and switching backgrounds in the settings menu. This is for all the SkyBlock buffs....
|
1793145146.2587867
|
1793231546.2587867
|
|
33072
|
Hundred Acre Wood OS by @stratustraipsing | Starda Hundred Acre Wood OS by @stratustraipsing | Stardance...
|
stratustraipsing
|
1
|
48.0
|
524
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-08T00:28:04Z", "hours": 48.0, "multiplier": 11.26, "payout": 524, "blessing": "neutral", "text": "Hundred Acre Wood OS is live! Thanks to everyone for all the encouragement I received on this very fast-track project that ended up taking just under 50 hours. The likes and comments were always very nice and were so fun to read in between my working on the project. I am happy to say that I have renewed my frontend development skills (the meta-goal) and gone even further past that into completely unfamiliar territory . This could not come at a better time as I prepare for college courses and would love to make programming a more frequent habit of mine as another method of studying and displaying what I learn. The best way to get better at something is to have a project in mind to work towards and I have proved my own advice here again by giving myself this task. Enjoy my project and share it with anybody that happens to be a fan of Winnie-the-Pooh! It was made with lots of love and care <3.", "repo": "https://github.com/stratustraipsing/myOS", "demo": "https://hawos.netlify.app"}]...
|
[{"post_id": 42658, "ts": "202 [{"post_id": 42658, "ts": "2026-08-07T14:32:53Z", "hours": 10.2908, "text": "Hundred Acre Wood OS is (99%) DONE. Three consecutive work days have passed of me working on the 8-step interactive walkthrough. The first hour after writing out the full plan on paper was extremely discouraging. I had built the welcome sign pendulum previously and so I thought it would be simply to make the click and ensuing animation by just adding another img on top and making their animations identical. Not so. Even when I finally got the keyframes of both correct without random jumping or awkward swings and visiting cubicbezier.com in search of a gravity-accurate acceleration, the two image just would not align. So I did the most obvious thing and made a new image of the two together in google slides. Once that was done, I was able to halve the css dedicated to the animation and move on with the walkthrough. From there, it was really just a lot of positioning elements correctly and setting timeouts perfectly. I was pleasantly surprised by how many elements I had that could be reused (if you explore my page, you may find all two appearances of my TV animation). The walkthrough is designed to get the user familiar with most every feature existing there while being more entertaining and thus less skippable. One of the biggest issues I found with my desire to keep adding apps was that I knew that very few people would even discover each piece of my page. Because my OS is obviously not in competition with Windows and Mac, I wanted it to at least be entertaining. Over the next few days I hope to share this project with friends and family in order to crush any bugs or inconsistencies that may remain. I expect this process to be very little actual coding, likely less than half an hour in total. I believe however, like when writing, it is important to walk away from things you have worked on and come back with fresh eyes for increasing periods of time. There’s always a typo you just don’t see yet until someone else points it out for you."}, {"post_id": 41661, "ts": "2026-08-06T00:55:57Z", "hours": 2.3281, "text": "Forgot to attach this vid on the last devlog."}, {"post_id": 40517, "ts": "2026-08-04T03:15:47Z", "hours": 10.8686, "text": "I accidentally went an entire hour over the devlog 10 able to be logged :( …but I made so much progress! I firstly built the html for my timer and terminal, which were the last two apps I wanted. A long time was spent after that before finishing them when I suddenly remembered I had not committed any changes to github for two weeks and had yet to put my site on netlify for a public url. The timer is not super good looking to be honest, especially compared to how much work was put into the design of everything else, if you have any suggestions for that please let me know, if nobody does that’s how it’s going to stay for the unforeseeable future. For a while as I was building the timer, I was actually thinking of scrapping the entire terminal-app idea since I had no idea how much work I wanted to continue putting into this project before I found a stopping point for when I leave for college in under two weeks. I am so happy I went for it though because I can now offer the remaining odds-and-ends features I wasn’t sure how to incorporate otherwise. All that finished within a day. I also learned a little more about terminals as a whole, which was the meta-goal. Critically, the app also ties into my final and most creative step forwards: the environmental puzzle."}, {"post_id": 35968, "ts": "2026-07-27T19:15:27Z", "hours": 6.7631, "text": "HAW OS biggest updates: 2 new apps. The apps I promised you all are now here! Rabbit’s goal tracker and Piglet’s mood support are fully functioning and I think together they add a bit of originality to the OS in accordance with the theme. The mood support app (sunshine icon) as well as the library/notes app contain speech from their respective characters, owl and piglet. In my search for simple animations, I’ve become a heavy user of GIFs directly from GIPHY. Because transparent GIFs are quite rare/difficult to create, almost all of the moving elements on my page are from under the ‘stickers’ tab of that site. I even got an opportunity to practice with grid display while organizing the emotion faces.This all took a while but what was really time-consuming was debugging the JS while adding lines for details like offsetting and adding z-index to opened windows and getting distracted by the fragments of easter eggs that I had planted throughout without having connected them all yet. My typos are terrible when I rush and any issue with the difference between id or the function I’m calling just causes the whole page to get messed up. Because the OS is a little fuller now, I’ve also begun to find test subjects for it (my family and friends) who may not have advice or critiques but are great at coming up with compliments. If anybody has any ideas they’d like to see implemented here, write a comment and I’ll respond as fast as I can get to it. I suspect I will be done within a few days at my current work pace."}, {"post_id": 33315, "ts": "2026-07-23T03:43:24Z", "hours": 9.9719, "text": "Each devlog I make logs more and more time. It felt wrong to make an entire video recording of my OS before there were some real differences. Weather widget, battery widget, music player, and design clean-up are all off the checklist now. The majority of my time according to the hackatime report was my css file, surprisingly. First of all, the weather app is the most technically advanced appearing widget here. It is how I have come to learn what an API is. And it’s amazing! All the weather data comes to me live and all I have to do is get my functions straight in JS, though I did end up needed two (one for city-> coordinates, another for coordinates-> weather). I did additionally watch several youtube tutorials in order to understand how these kinds of API-features usually work out, but very few actually included a search result dropdown. There are some issues with this addition (every search leads to 5 results, some of which may be duplicates) but I’m not really interested in wading through that mess for a long time. More important than that, however, is that I spent over an hour building the code for my battery widget only to discover that the two browsers I use -Firefox and Safari- do not support its API due to data issues. Which is understandable, but I wish I had known that before I bothered. Furthermore, my first-choice font doesn’t even show on Safari? Anyway, you can view my full OS as it should be in this recording below (taken in VSCode)."}, {"post_id": 31828, "ts": "2026-07-20T14:58:42Z", "hours": 4.0339, "text": "I would post a much longer devlog here but my last was deleted because of the size of my video. So here is what I have done. The owl’s library app has been set up after much pondering on whether I should have a notes app at all considering how many other notes apps exist that are much better overall. However, I am very happy with the end result. ‘Owl’s Library’ essentially encourages you to create a curated collection of your personal tastes. Through building this, I also found the best way for me to build these apps moving forward is to create a rough draft html, move on to CSS, and only lastly to JS. Any bouncing around between those ends up too confusing for me and I lose track of what’s going on. I think I will have to make a few detours to freeCodeCamp for DOM JS practice in between working on HAW. Here are my next tentative app ideas: music with pooh, weather widget, battery widget with an eeyore that appears when below 20%, terminal with storybook commands, rate your mood app with piglet’s supportive comments for wherever you are, and an app with rabbit for you to write one goal in the format of “after I finish (…) I will continue by (…)” (ex: finish biology homework –> watch an interesting yt video on genetics) as a way for you to reward yourself without sacrificing intrinsic motivation."}, {"post_id": 30499, "ts": "2026-07-18T03:52:19Z", "hours": 2.5853, "text": "HAW OS is looking great: I downloaded a custom font by winnie the pooh himself (piglet’s was a little too messy for my purposes), introduced a welcome sign with a pendulum-like swing, and I have written in my html comments the vision as of this moment. This OS will make you learn how to navigate it by following an environmental puzzle. I have the first few steps in mind but I’m trying my best to keep it a secret because I want people viewing the page to have no spoilers beforehand. It’s going to be difficult. Both for me to set-up and you to solve. I spent a very long time just trying to cut down my css hover area size since I had used remove.bg on an image and the invisible area around it was just too big to let slide. Eventually I just went back in my files and cropped the image but I had already wasted a lot of time by then trying to figure out if there was an ‘easier’ way. I’ve also been experimenting with vibecoding since my JS is rusty but built-in chat is honestly not very good for a beginner that insists on understanding everything it writes for me and I fall back on youtube tutorials 9 times out of 10. It’s just not worth it in my case except for when I can ask it questions for debugging quickly, and here it does an exceptional job of helping me move on without getting too frustrated."}, {"post_id": 29244, "ts": "2026-07-16T01:01:40Z", "hours": 0.8956, "text": "My Hundred Acre Woods OS is finally up after over an hour of trying to understand how VS code works (like where the run button is) and about 15 minutes of actually writing code so that my background image from Pinterest even shows up. So much time setting things up. I can’t wait to see what I can do with this, but it’s truly difficult for me to even get my priorities together at this point. I haven’t built a website in years. One of the first things I looked up for my html file was how to write a comment because I couldn’t be sure of myself and I still ended up getting something wrong by putting it above the head tag . Looking forward to actually making changes to this OS. At least the picture I found is really nice :)"}]...
|
Title: Hundred Acre Wood OS by @stratustraipsing | Title: Hundred Acre Wood OS by @stratustraipsing | Stardance
Devlogs:
My Hundred Acre Woods OS is finally up after over an hour of trying to understand how VS code works (like where the run button is) and about 15 minutes of actually writing code so that my background image from Pinterest even shows up. So much time setting things up. I can’t wait to see what I can do with this, but it’s truly difficult for me to even get my priorities together at this point. I haven’t built a website in years. One of the first things I looked up for my html file was how to write a comment because I couldn’t be sure of myself and I still ended up getting something wrong by putting it above the head tag . Looking forward to actually making changes to this OS. At least the picture I found is really nice :)
HAW OS is looking great: I downloaded a custom font by winnie the pooh himself (piglet’s was a little too messy for my purposes), introduced a welcome sign with a pendulum-like swing, and I have written in my html comments the vision as of this moment. This OS will make you learn how to navigate it by following an environmental puzzle. I have the first few steps in mind but I’m trying my best to keep it a secret because I want people viewing the page to have no spoilers beforehand. It’s going to be difficult. Both for me to set-up and you to solve. I spent a very long time just trying to cut down my css hover area size since I had used remove.bg on an image and the invisible area around it was just too big to let slide. Eventually I just went back in my files and cropped the image but I had already wasted a lot of time by then trying to figure out if there was an ‘easier’ way. I’ve also been experimenting with vibecoding since my JS is rusty but built-in chat is honestly not very good for a beginner that insists on understanding everything it writes for me and I fall back on youtube tutorials 9 times out of 10. It’s just not worth it in my case except for when I can ask it questions for debugging quickly, and here it does an exceptional job of helping me move on without getting too frustrated.
I would post a much longer devlog here but my last was deleted because of the size of my video. So here is what I have done. The owl’s library app has been set up after much pondering on whether I should have a notes app at all considering how many other notes apps exist that are much better overall. However, I am very happy with the end result. ‘Owl’s Library’ essentially encourages you to create a curated collection of your personal tastes. Through building this, I also found the best way for me to build these apps moving forward is to create a rough draft html, move on to CSS, and only lastly to JS. Any bouncing around between those ends up too confusing for me and I lose track of what’s going on. I think I will have to make a few detours to freeCodeCamp for DOM JS practice in between working on HAW. Here are my next tentative app ideas: music with pooh, weather widget, battery widget with an eeyore that appears when below 20%, terminal with storybook commands, rate your mood app with piglet’s supportive comments for wherever you are, and an app with rabbit for you to write one goal in the format of “after I finish (…) I will continue by (…)” (ex: finish biology homework –> watch an interesting yt video on genetics) as a way for you to reward yourself without sacrificing intrinsic motivation.
Each devlog I make logs more and more time. It felt wrong to make an entire video recording of my OS before there were some real differences. Weather widget, battery widget, music player, and design clean-up are all off the checklist now. The majority of my time according to the hackatime report was my css file, surprisingly. First of all, the weather app is the most technically advanced appearing widget here. It is how I have come to learn what an API is. And it’s amazing! All the weather data comes to me live and all I have to do is get my functions straight in JS, though I did end up needed two (one for city-> coordinates, another for coordinates-> weather). I did additionally watch several youtube tutorials in order to understand how these kinds of API-features usually work out, but very few actually included a search result dropdown. There are some issues with this addition (every search leads to 5 results, some of which may be duplicates) but I’m not really interested in wading through that mess for a long time. More important than that, however, is that I spent over an hour building the code for my battery widget only to discover that the two browsers I use -Firefox and Safari- do not support its API due to data issues. Which is understandable, but I wish I had known that before I bothered. Furthermore, my first-choice font doesn’t even show on Safari? Anyway, you can view my full OS as it should be in this recording below (taken in VSCode).
HAW OS biggest updates: 2 new apps. The apps I promised you all are now here! Rabbit’s goal tracker and Piglet’s mood support are fully functioning and I think together they add a bit of originality to the OS in accordance with the theme. The mood support app (sunshine icon) as well as the library/notes app contain speech from their respective characters, owl and piglet. In my search for simple animations, I’ve become a heavy user of GIFs directly from GIPHY. Because transparent GIFs are quite rare/difficult to create, almost all of the moving elements on my page are from under the ‘stickers’ tab of that site. I even got an opportunity to practice with grid display while organizing the emotion faces.This all took a while but what was really time-consuming was debugging the JS while adding lines for details like offsetting and adding z-index to opened windows and getting distracted by the fragments of easter eggs that I had planted throughout without having connected them all yet. My typos are terrible when I rush and any issue with the difference between id or the function I’m calling just causes the whole page to get messed up. Because the OS is a little fuller now, I’ve also begun to find test subjects for it (my family and friends) who may not have advice or critiques but are great at coming up with compliments. If anybody has any ideas they’d like to see implemented here, write a comment and I’ll respond as fast as I can get to it. I suspect I will be done within a few days at my current work pace.
I accidentally went an entire hour over the devlog 10 able to be logged :( …but I made so much progress! I firstly built the html for my timer and terminal, which were the last two apps I wanted. A long time was spent after that before finishing them when I suddenly remembered I had not committed any changes to github for two weeks and had yet to put my site on netlify for a public url. The timer is not super good looking to be honest, especially compared to how much work was put into the design of everything else, if you have any suggestions for that please let me know, if nobody does that’s how it’s going to stay for the unforeseeable future. For a while as I was building the timer, I was actually thinking of scrapping the entire terminal-app idea since I had no idea how much work I wanted to continue putting into this project before I found a stopping point for when I leave for college in under two weeks. I am so happy I went for it though because I can now offer the remaining odds-and-ends features I wasn’t sure how to incorporate otherwise. All that finished within a day. I also learned a little more about terminals as a whole, which was the meta-goal. Critically, the app also ties into my final and most creative step forwards: the environmental puzzle.
Forgot to attach this vid on the last devlog.
Hundred Acre Wood OS is (99%) DONE. Three consecutive work days have passed of me working on the 8-step interactive walkthrough. The first hour after writing out the full plan on paper was extremely discouraging. I had built the welcome sign pendulum previously and so I thought it would be simply to make the click and ensuing animation by just adding another img on top and making their animations identical. Not so. Even when I finally got the keyframes of both correct without random jumping or awkward swings and visiting cubicbezier.com in search of a gravity-accurate acceleration, the two image just would not align. So I did the most obvious thing and made a new image of the two together in google slides. Once that was done, I was able to halve the css dedicated to the animation and move on with the walkthrough. From there, it was really just a lot of positioning elements correctly and setting timeouts perfectly. I was pleasantly surprised by how many elements I had that could be reused (if you explore my page, you may find all two appearances of my TV animation). The walkthrough is designed to get the user familiar with most every feature existing there while being more entertaining and thus less skippable. One of the biggest issues I found with my desire to keep adding apps was that I knew that very few people would even discover each piece of my page. Because my OS is obviously not in competition with Windows and Mac, I wanted it to at least be entertaining. Over the next few days I hope to share this project with friends and family in order to crush any bugs or inconsistencies that may remain. I expect this process to be very little actual coding, likely less than half an hour in total. I believe however, like when writing, it is important to walk away from things you have worked on and come back with fresh eyes for increasing periods of time. There’s always a typo you just don’t see yet until someone else points it out for you.
Ships:
Hundred Acre Wood OS is live! Thanks to everyone for all the encouragement I received on this very fast-track project that ended up taking just under 50 hours. The likes and comments were always very nice and were so fun to read in between my working on the project. I am happy to say that I have renewed my frontend development skills (the meta-goal) and gone even further past that into completely unfamiliar territory . This could not come at a better time as I prepare for college courses and would love to make programming a more frequent habit of mine as another method of studying and displaying what I learn. The best way to get better at something is to have a project in mind to work towards and I have proved my own advice here again by giving myself this task. Enjoy my project and share it with anybody that happens to be a fan of Winnie-the-Pooh! It was made with lots of love and care <3....
|
1793130767.209542
|
1793217167.209542
|
|
33142
|
Monicraft by @Camiel | Stardance
|
Camiel
|
1
|
48.0
|
846
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-22T15:43:50Z", "hours": 48.0, "multiplier": 17.55, "payout": 846, "blessing": "neutral", "text": "Monicraft is a TUI based app that runs right in your terminal. It contains features like Real-Time Console Monitoring, Command Execution, Power Actions, Resource Monitoring, A Chat Mode, A Settings Page, A Mod Page and A Player Manager. It relies on the Pterodactyl Panel’s client API, which most rented servers run on, so it’s pretty useful if you prefer an alternate way of monitoring your server or want easier acces to things like player data and stats. I think it turned out to be a really great and pretty useful project. I run a minecraft server myself, and I think I could actually use this to monitor my minecraft server. The UI looks not that bad for a TUI tool and the features allow you to do almost anything you can do on the web Pterodactyl Panel. I learned alot of new things while making this project. I learned how to use an API and websockets. I also learned how to optimize networking and apps in general to make them run smoother. I think that my python skills also improved overall, together with the way of computational thinking. It was a really long project and I put alot of time in it, but I think it was worth it and look out to making more projects like this.", "repo": "https://github.com/Camiel13/Monicraft", "demo": "https://github.com/Camiel13/Monicraft/releases/tag/v1.0.0"}]...
|
[{"post_id": 52410, "ts": "202 [{"post_id": 52410, "ts": "2026-08-22T15:16:51Z", "hours": 7.4864, "text": "Monicraft - Offline Player Caching, More statistics, Better Exception Handling & More The final devlog for Monicraft is finally here. It has been a long, but really educational, journey. I’ve locked in for a last time and rewritten the whole player manager logic . It is now way more optimized and only updates the data for online players. I’ve switched from keeping everything apart to making a class for each player and storing all the data in it, and then keeping those objects in a dictionary with the player’s uuid as the key. New Features: Offline Player Caching: The data for all players is now cached at all times, right into memory. It then checks the online player list and updates it every 30 seconds (by default). More configuration: You can now change the interval for the player data fetching and the online player list fetching. You can also set a prefix for the chat mode, like Admin Camilio13 > {message} . More Resource Management: You can now also see the disk usage (total size of the server) and network inbound and outbound on the main screen. UI improvement: I gave the main screen a little overhaul to make it look a bit better. And I tried to make the buttons and everything else as stable as possible, but they’re still sometimes shifting or not perfectly centered depending on your screen size and terminal zoom. This is a problem I can’t fix and will always be there when using Textual. Fixed bugs: Several bugs with dummy mode, the app relied on non-existing API functions. Cursor kept shifting when player list refreshed. Pterodactyl client API rate limit was exceeded on big servers."}, {"post_id": 51217, "ts": "2026-08-20T19:06:09Z", "hours": 4.7794, "text": "Monicraft - Offline Player List, Async Player Data Fetching & More Monicraft’s second-to-last devlog has arrived . I’ve now added the last feature I wanted to add, the “include offline player list” button. It works by simply getting the whole usercache.json file and getting all the names and UUID’s in it. After that it’s just using my old function to retrieve the saved data and stats on the server. I still wanna optimize it and take some time to fix and improve the application overall. New Features: Include Offline Players: A toggle which toggles (yeah, the toggle toggles something ) the visibility of offline players in the Player List. Also added a extra column to the table to see who’s online and who’s not. Online players will allways show up at the top. You’re also able to use some of the Player Manager’s features on offline players. Async Player Data Fetching: The fetching of playerdata (stored in {UUID}.dat ) now operates in parralel, so bigger servers don’t have to wait for seconds every time the table is built. This brings up the problem that the default rate limit for the client API is 240 requests/min, so really big servers with more than 40 recent (offline) players or even online players will exceed this limit. This is why I wanted to implement offline player caching, more on that in future plans. Improved Stats UI: The statistics pop-up was a bit too small and not all the data could fit in. So I made it a bit cooler by making it bigger Small Fixes Only ping the server when it’s running to prevent errors. Fixed a problem where my Unicode characters got turned into ugly emoji’s . I didn’t discover this until I ran it in my native terminal, I’ve done all the testing in my built-in terminal in my IDE. Future Plans: I think I will be doing one more devlog where I will add these features and polish it for the first SHIP. Fix a bug where you suddenly select the first row of the table after rebuilding it Create a cache for offline players Add disk usage resource data Settings: Changing the loop delay Settings: Chat mode and message prefixes Make the GitHub workflow files Make an installation guide in the README"}, {"post_id": 50549, "ts": "2026-08-19T19:05:37Z", "hours": 7.2922, "text": "Monicraft - Player Statistics, Asynchronous Networking & More I’ve been working hard on some big changes to make the project, faster, more reliable and visually attractive. I’ve gone ahead and implemented one of the two final changes, the statistics screen for players. It was alot of repetitive work, but I managed to make it look good. At first I wanted to parse some of the saved stats (such as play time, deaths, etc.) manually, but I came to the conclusion that formatting the tag ( minecraft:damage_dealt –> Damage Dealt ) and showing them was a better idea. I found some naming logic in the tags so I could filter out time, distances and damage to format them into a readable format. All distance stats end with one_cm and are stored in centimeters (1/100 of a block). All time stats contain the substring \"time\" and are stored in ticks (1/20 of a second). And finally all the damage stats contain the substring \"damage\" and are stored as 10 times the damage for more precision (or 20 times the hearts damage). New Features: Statistics screen: This screen is accessed trough the “Stats” button in the player manager and contains 3 tabs: General, Entities and Items. General contains stats like amount of jumps, distance walked and interactions with special blocks, entities shows the kill count for every entity you’ve killed and the Items tab shows how many of each item you’ve crafted, mined, used, broken, picked up and dropped. Async Networking: I’ve switched from the requests library to the httpx library to make it so queries, server statuses and normal requests all operate separately. UUID caching: Monicraft will now no longer have to send a request to the API to figure out someones UUID. On the first request it caches every user and their names, which are stored in usercache.json on the server, right into RAM for faster acces and less requests. Small fixes and optimizations: When starting up without any credentials, it will now scan for credentials until inputted in the settings instead of crashing. The request headers are also updated when new credentials saved. I’ve fixed a logging issue with the API class which was trying to show notifications, without being part of the actual GUI. It is now fixed by passing the app class onto the API class and giving it acces to the GUI. Future Plans: Include offline players in player manager: Last real feature I want to add. Finalizing and polishing: I wanna make sure everything runs bug-free, the program doesn’t crash and also make it look good on most (I can’t make it look good on all screen sizes) screen sizes. I need to build the executables and make sure they’re working."}, {"post_id": 46840, "ts": "2026-08-14T11:20:00Z", "hours": 5.5733, "text": "Monicraft - Player Manager, Dummy Mode & More! I’m getting close to finishing this project (fr this time ). I think it will be one more devlog, it’s been a long ride. I randomly realised that not everyone has a minecraft server laying around, so I decided to make a dummy mode, so everyone can test out the Monicraft dashboard. I’ve now polished all the player manager buttons (except for Include offline players and Statistics , more on that in future plans). You’re now able to message, kick, ban and change gamemode with the player manager. I made this more user-friendly by using pop-ups. New Features: Pop-ups in Player Manager : You’re now able to give the reason for a kick or ban with the use of an interactive pop-up. The message feature also uses a pop-up to send a message directly to the selected player. Changing the gamemode is done trough a pop-up with a selection menu, which excludes the gamemode the player is currently in and let’s you choose between the other 3. Dummy Mode : This mode is accessed by adding the --dummy argument when running the program. This makes it so every command that is sent to the “server” is just displayed in the terminal, making you able to see what’s going on. I’ve added a stream_dummy_data() function that updates the stats every 2 seconds with random values. The mod list will be empty. The player list will display a random new player every 10 seconds (those are the default minecraft skins’ names + some random number). You’re able to use every feature from the player manager in dummy mode, everything being sent will be displayed in the console. Fixed Reconnect Logic : When the server disconnects for whatever reason, the dasboard will now try to reconnect every 5 seconds. Queries with statusses as fallback : The recent implementation used both queries and statusses if queries were enabled. It now only uses statusses if queries are not enabled. This makes it alot more optimized, using only one of two all the time. Future Plans: Implement the Include Offline Players button : This makes it so offline players (cached in usercache.json in the server’s root) will be displayed in the player list. Maby I’ll also add the ability to manage offline players, but I’m not sure. Implement the Statistics button : This button will show a pop-up that shows all the player’s stats (such as blocks broken, mobs killed, etc.)"}, {"post_id": 43851, "ts": "2026-08-09T09:13:38Z", "hours": 5.7478, "text": "Monicraft - Player Manager, NBT Parsing & More It’s been a few long session with alot of thinking and implementing . I never thought that getting the online players would be so hard. At first, I wanted to use minecraft’s list command and then parse the output from the terminal, but that was way too hard and would not work on big servers with terminals full of commands. So I decided to use the mcstatus library to get a list of all online players. This is done by: Sending a query to the server. If queries are disabled on the server or the query simply fails, it sends a normal status request (server list ping) to the server. I then use the name to get the UUID of a player stored in the usercache.json file in the root directory of every minecraft server. That UUID is then used to get the saved {UUID}.dat file in the worlds folder. All the player’s data (e.g. health, hunger, position, gamemode, etc.) is stored in there. This brings the restriction of the server’s autosave time (which is 5 minutes by default). So I’ve also added a refresh button which saves the game and updates the player list. The player list is automatically updated every ten seconds and based off the lastest safe file. New Features: Player Manager: A way to see all online players and their statistics. You can also kick and ban people by just selecting them and clicking a button. Future Plans: Adding the functionality to toggle the visibility of offline players in the player list. Adding functionality to the following buttons: Stats, Message, Gamemode Adding a player stats screen (viewed by clicking the stats button) which shows all the statistics of a single player (e.g. mobs killed, blocks broken, distance ran, etc.)"}, {"post_id": 35123, "ts": "2026-07-26T11:14:04Z", "hours": 3.625, "text": "Monicraft - Mods list, Server kill, Navigation buttons & UI/UX improvements I’ve added buttons to navigate between screens. I forgot to add this last time, so travelling between screens was a bit tricky. You’re now able to kill the server for when the server get’s stuck in a shutdown or crashes. It will sent a confirmation pop-up message upon the first click, telling you to click another time to confirm. This lasts for 10 seconds and then it will reset. I’ve also added a new screen with a list of all the mods you’ve installed on the server, including name, file size and last changed date. The UI/UX is now alot more stable. I had orginally designed everything on my monitor. But when I would use it on my laptop screen, the whole UI collapsed. So I made everything a bit smaller. Future plans: This project is close to being finished, but I want to add two last features. Player management: Quickly see who’s online on the server and manage them (kick, ban, whitelist, unwhitelist) Version manager: See what versions of Minecraft, Java and mod loader you’re using and modify them."}, {"post_id": 31839, "ts": "2026-07-20T15:10:56Z", "hours": 5.1731, "text": "Monicraft - Settings, Power action buttons, Visual Improvements I’ve added a settings page where you can configure your API key, Panel endpoint and Server ID. It has a save button and automatically saves when leaving the screen, which writes the inputs to an .env file. You can also reset these value’s. I’ve added power action buttons, which can be used to start, restart or stop your minecraft server. I’ve added pop-up toasts for errors and informative messages. I’ve improved the connection funtions to retry every 5 seconds when the connection is lost. Future Plans: Adding a button to navigate to the settings menu (it is now accessed by sending the settings command). Version manager for Java, Minecraft and Mods."}, {"post_id": 29411, "ts": "2026-07-16T10:53:28Z", "hours": 3.705, "text": "Monicraft - Server resources viewer, Sending commands, Chat mode & Styling The console now works properly. It now streams the console directly from your Minecraft server to your terminal trough websockets. The server resources (RAM usage, CPU usage and server state) are now visible in a sidebar and are constantly being updated. It’s now possible to send commands to the server using the input bar at the bottom. I also added a extra “Chat Mode”, it basically puts say in front of every command you send, which makes it easier to chat with the people that are online on your server. The style has been upgraded. I went for a green/nature looking style, because I like the color palette. Bugs and Future Plans: The Chat Mode button doesn’t change color until you move your cursor after you clicked it, not a big problem, but it is kinda confusing. I wanna add the option to view/update/remove your installed mods on the server and give more insight into the installed version of modloader."}, {"post_id": 27092, "ts": "2026-07-12T10:48:13Z", "hours": 4.8117, "text": "First devlog for Monicraft! How I came up with the idea: I was just thinking about what I could possibly make, I felt like coding, but I just didn’t know what I should make. So I just started playing minecraft as always, on the server with my friends. When I was changing something on the server panel, I was wondering how the panel really works. It turns out almost every hosting provider uses the Pterodactyl dashboard. It relies on a REST API, which is publicly available to anyone. I decided to try and recreate such a panel, but in Python. The foundation: The connection with the Pterodactyl API is established trough websockets. I decided to start with a screen which is an overview of the main server resources (such as CPU usage, RAM usage and Storage usage) and the console. The GUI is build with Textual and customized by the built-in TCSS. What I have done so far: Setup the main code space Do some research about the API and learn how Textual works Design the UI shape Connection with the API trough websockets (WIP) I initially started this project to learn more about API’s and specifically websockets. I also wanted to see how it would be to build a GUI app in python and if it’s really as hard/bad-looking as everyone says."}]...
|
Title: Monicraft by @Camiel | Stardance
Devlogs:
Title: Monicraft by @Camiel | Stardance
Devlogs:
First devlog for Monicraft! How I came up with the idea: I was just thinking about what I could possibly make, I felt like coding, but I just didn’t know what I should make. So I just started playing minecraft as always, on the server with my friends. When I was changing something on the server panel, I was wondering how the panel really works. It turns out almost every hosting provider uses the Pterodactyl dashboard. It relies on a REST API, which is publicly available to anyone. I decided to try and recreate such a panel, but in Python. The foundation: The connection with the Pterodactyl API is established trough websockets. I decided to start with a screen which is an overview of the main server resources (such as CPU usage, RAM usage and Storage usage) and the console. The GUI is build with Textual and customized by the built-in TCSS. What I have done so far: Setup the main code space Do some research about the API and learn how Textual works Design the UI shape Connection with the API trough websockets (WIP) I initially started this project to learn more about API’s and specifically websockets. I also wanted to see how it would be to build a GUI app in python and if it’s really as hard/bad-looking as everyone says.
Monicraft - Server resources viewer, Sending commands, Chat mode & Styling The console now works properly. It now streams the console directly from your Minecraft server to your terminal trough websockets. The server resources (RAM usage, CPU usage and server state) are now visible in a sidebar and are constantly being updated. It’s now possible to send commands to the server using the input bar at the bottom. I also added a extra “Chat Mode”, it basically puts say in front of every command you send, which makes it easier to chat with the people that are online on your server. The style has been upgraded. I went for a green/nature looking style, because I like the color palette. Bugs and Future Plans: The Chat Mode button doesn’t change color until you move your cursor after you clicked it, not a big problem, but it is kinda confusing. I wanna add the option to view/update/remove your installed mods on the server and give more insight into the installed version of modloader.
Monicraft - Settings, Power action buttons, Visual Improvements I’ve added a settings page where you can configure your API key, Panel endpoint and Server ID. It has a save button and automatically saves when leaving the screen, which writes the inputs to an .env file. You can also reset these value’s. I’ve added power action buttons, which can be used to start, restart or stop your minecraft server. I’ve added pop-up toasts for errors and informative messages. I’ve improved the connection funtions to retry every 5 seconds when the connection is lost. Future Plans: Adding a button to navigate to the settings menu (it is now accessed by sending the settings command). Version manager for Java, Minecraft and Mods.
Monicraft - Mods list, Server kill, Navigation buttons & UI/UX improvements I’ve added buttons to navigate between screens. I forgot to add this last time, so travelling between screens was a bit tricky. You’re now able to kill the server for when the server get’s stuck in a shutdown or crashes. It will sent a confirmation pop-up message upon the first click, telling you to click another time to confirm. This lasts for 10 seconds and then it will reset. I’ve also added a new screen with a list of all the mods you’ve installed on the server, including name, file size and last changed date. The UI/UX is now alot more stable. I had orginally designed everything on my monitor. But when I would use it on my laptop screen, the whole UI collapsed. So I made everything a bit smaller. Future plans: This project is close to being finished, but I want to add two last features. Player management: Quickly see who’s online on the server and manage them (kick, ban, whitelist, unwhitelist) Version manager: See what versions of Minecraft, Java and mod loader you’re using and modify them.
Monicraft - Player Manager, NBT Parsing & More It’s been a few long session with alot of thinking and implementing . I never thought that getting the online players would be so hard. At first, I wanted to use minecraft’s list command and then parse the output from the terminal, but that was way too hard and would not work on big servers with terminals full of commands. So I decided to use the mcstatus library to get a list of all online players. This is done by: Sending a query to the server. If queries are disabled on the server or the query simply fails, it sends a normal status request (server list ping) to the server. I then use the name to get the UUID of a player stored in the usercache.json file in the root directory of every minecraft server. That UUID is then used to get the saved {UUID}.dat file in the worlds folder. All the player’s data (e.g. health, hunger, position, gamemode, etc.) is stored in there. This brings the restriction of the server’s autosave time (which is 5 minutes by default). So I’ve also added a refresh button which saves the game and updates the player list. The player list is automatically updated every ten seconds and based off the lastest safe file. New Features: Player Manager: A way to see all online players and their statistics. You can also kick and ban people by just selecting them and clicking a button. Future Plans: Adding the functionality to toggle the visibility of offline players in the player list. Adding functionality to the following buttons: Stats, Message, Gamemode Adding a player stats screen (viewed by clicking the stats button) which shows all the statistics of a single player (e.g. mobs killed, blocks broken, distance ran, etc.)
Monicraft - Player Manager, Dummy Mode & More! I’m getting close to finishing this project (fr this time ). I think it will be one more devlog, it’s been a long ride. I randomly realised that not everyone has a minecraft server laying around, so I decided to make a dummy mode, so everyone can test out the Monicraft dashboard. I’ve now polished all the player manager buttons (except for Include offline players and Statistics , more on that in future plans). You’re now able to message, kick, ban and change gamemode with the player manager. I made this more user-friendly by using pop-ups. New Features: Pop-ups in Player Manager : You’re now able to give the reason for a kick or ban with the use of an interactive pop-up. The message feature also uses a pop-up to send a message directly to the selected player. Changing the gamemode is done trough a pop-up with a selection menu, which excludes the gamemode the player is currently in and let’s you choose between the other 3. Dummy Mode : This mode is accessed by adding the --dummy argument when running the program. This makes it so every command that is sent to the “server” is just displayed in the terminal, making you able to see what’s going on. I’ve added a stream_dummy_data() function that updates the stats every 2 seconds with random values. The mod list will be empty. The player list will display a random new player every 10 seconds (those are the default minecraft skins’ names + some random number). You’re able to use every feature from the player manager in dummy mode, everything being sent will be displayed in the console. Fixed Reconnect Logic : When the server disconnects for whatever reason, the dasboard will now try to reconnect every 5 seconds. Queries with statusses as fallback : The recent implementation used both queries and statusses if queries were enabled. It now only uses statusses if queries are not enabled. This makes it alot more optimized, using only one of two all the time. Future Plans: Implement the Include Offline Players button : This makes it so offline players (cached in usercache.json in the server’s root) will be displayed in the player list. Maby I’ll also add the ability to manage offline players, but I’m not sure. Implement the Statistics button : This button will show a pop-up that shows all the player’s stats (such as blocks broken, mobs killed, etc.)
Monicraft - Player Statistics, Asynchronous Networking & More I’ve been working hard on some big changes to make the project, faster, more reliable and visually attractive. I’ve gone ahead and implemented one of the two final changes, the statistics screen for players. It was alot of repetitive work, but I managed to make it look good. At first I wanted to parse some of the saved stats (such as play time, deaths, etc.) manually, but I came to the conclusion that formatting the tag ( minecraft:damage_dealt –> Damage Dealt ) and showing them was a better idea. I found some naming logic in the tags so I could filter out time, distances and damage to format them into a readable format. All distance stats end with one_cm and are stored in centimeters (1/100 of a block). All time stats contain the substring "time" and are stored in ticks (1/20 of a second). And finally all the damage stats contain the substring "damage" and are stored as 10 times the damage for more precision (or 20 times the hearts damage). New Features: Statistics screen: This screen is accessed trough the “Stats” button in the player manager and contains 3 tabs: General, Entities and Items. General contains stats like amount of jumps, distance walked and interactions with special blocks, entities shows the kill count for every entity you’ve killed and the Items tab shows how many of each item you’ve crafted, mined, used, broken, picked up and dropped. Async Networking: I’ve switched from the requests library to the httpx library to make it so queries, server statuses and normal requests all operate separately. UUID caching: Monicraft will now no longer have to send a request to the API to figure out someones UUID. On the first request it caches every user and their names, which are stored in usercache.json on the server, right into RAM for faster acces and less requests. Small fixes and optimizations: When starting up without any credentials, it will now scan for credentials until inputted in the settings instead of crashing. The request headers are also updated when new credentials saved. I’ve fixed a logging issue with the API class which was trying to show notifications, without being part of the actual GUI. It is now fixed by passing the app class onto the API class and giving it acces to the GUI. Future Plans: Include offline players in player manager: Last real feature I want to add. Finalizing and polishing: I wanna make sure everything runs bug-free, the program doesn’t crash and also make it look good on most (I can’t make it look good on all screen sizes) screen sizes. I need to build the executables and make sure they’re working.
Monicraft - Offline Player List, Async Player Data Fetching & More Monicraft’s second-to-last devlog has arrived . I’ve now added the last feature I wanted to add, the “include offline player list” button. It works by simply getting the whole usercache.json file and getting all the names and UUID’s in it. After that it’s just using my old function to retrieve the saved data and stats on the server. I still wanna optimize it and take some time to fix and improve the application overall. New Features: Include Offline Players: A toggle which toggles (yeah, the toggle toggles something ) the visibility of offline players in the Player List. Also added a extra column to the table to see who’s online and who’s not. Online players will allways show up at the top. You’re also able to use some of the Player Manager’s features on offline players. Async Player Data Fetching: The fetching of playerdata (stored in {UUID}.dat ) now operates in parralel, so bigger servers don’t have to wait for seconds every time the table is built. This brings up the problem that the default rate limit for the client API is 240 requests/min, so really big servers with more than 40 recent (offline) players or even online players will exceed this limit. This is why I wanted to implement offline player caching, more on that in future plans. Improved Stats UI: The statistics pop-up was a bit too small and not all the data could fit in. So I made it a bit cooler by making it bigger Small Fixes Only ping the server when it’s running to prevent errors. Fixed a problem where my Unicode characters got turned into ugly emoji’s . I didn’t discover this until I ran it in my native terminal, I’ve done all the testing in my built-in terminal in my IDE. Future Plans: I think I will be doing one more devlog where I will add these features and polish it for the first SHIP. Fix a bug where you suddenly select the first row of the table after rebuilding it Create a cache for offline players Add disk usage resource data Settings: Changing the loop delay Settings: Chat mode and message prefixes Make the GitHub workflow files Make an installation guide in the README
Monicraft - Offline Player Caching, More statistics, Better Exception Handling & More The final devlog for Monicraft is finally here. It has been a long, but really educational, journey. I’ve locked in for a last time and rewritten the whole player manager logic . It is now way more optimized and only updates the data for online players. I’ve switched from keeping everything apart to making a class for each player and storing all the data in it, and then keeping those objects in a dictionary with the player’s uuid as the key. New Features: Offline Player Caching: The data for all players is now cached at all times, right into memory. It then checks the online player list and updates it every 30 seconds (by default). More configuration: You can now change the interval for the player data fetching and the online player list fetching. You can also set a prefix for the chat mode, like Admin Camilio13 > {message} . More Resource Management: You can now also see the disk usage (total size of the server) and network inbound and outbound on the main screen. UI improvement: I gave the main screen a little overhaul to make it look a bit better. And I tried to make the buttons and everything else as stable as possible, but they’re still sometimes shifting or not perfectly centered depending on your screen size and terminal zoom. This is a problem I can’t fix and will always be there when using Textual. Fixed bugs: Several bugs with dummy mode, the app relied on non-existing API functions. Cursor kept shifting when player list refreshed. Pterodactyl client API rate limit was exceeded on big servers.
Ships:
Monicraft is a TUI based app that runs right in your terminal. It contains features like Real-Time Console Monitoring, Command Execution, Power Actions, Resource Monitoring, A Chat Mode, A Settings Page, A Mod Page and A Player Manager. It relies on the Pterodactyl Panel’s client API, which most rented servers run on, so it’s pretty useful if you prefer an alternate way of monitoring your server or want easier acces to things like player data and stats. I think it turned out to be a really great and pretty useful project. I run a minecraft server myself, and I think I could actually use this to monitor my minecraft server. The UI looks not that bad for a TUI tool and the features allow you to do almost anything you can do on the web Pterodactyl Panel. I learned alot of new things while making this project. I learned how to use an API and websockets. I also learned how to optimize networking and apps in general to make them run smoother. I think that my python skills also improved overall, together with the way of computational thinking. It was a really long project and I put alot of time in it, but I think it was worth it and look out to making more projects like this....
|
1793105358.1041088
|
1793191758.1041088
|
|
33690
|
Foodie Haven! by @theodora | Stardance
|
theodora
|
1
|
48.0
|
305
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-21T16:15:55Z", "hours": 48.0, "multiplier": 6.34, "payout": 305, "blessing": "neutral", "text": "This is a website where I share my food experiences with the world. I enjoy cooking and eating a lot, and I created this site to share the joy food brings me with others. Alongside this, I have a condition that restricts what food I can eat; this website allows me to satisfy my cravings before fully recovering. About this project: The Intro and About Me pages give a bit of background on who I am — I enjoy cooking and eating a lot, and I created this site because I wanted to share the joy that food brings me with other people. Blog — This is where I write about my favourite food finds, sharing my thoughts the way a food critic would. Food Personality Quiz — A short, 5-question quiz that figures out your “food sensation type” and recommends what you should try next based on your results. 15-Minute Recipe — Takes you on a trip around the world, one cuisine at a time. Each recipe is designed to be cooked in just 15 minutes, with the full recipe included. Mood Food Matrix — Depending on your mood, this page helps you decide between dining out or cooking at home, and recommends different dishes and recipes to match. City Food Recommendation — Choose a city, browse photos of dishes, and get a restaurant recommendation along with its address.", "repo": "https://github.com/theodora-sin/WebOS", "demo": "https://theodora-sin.github.io/WebOS/index.html"}]...
|
[{"post_id": 32411, "ts": "202 [{"post_id": 32411, "ts": "2026-07-21T16:12:20Z", "hours": 3.8975, "text": "Devlog 7: Shipping my project: Welcome back to another project update! Finally, I am going to ship my project. 🛠️What’s fixed: Checking all the pictures, fixing some silly mistakes by typing the wrong asset picture name. Added a gradient background and finished debugging the City Food Recommendation Page Added Google Maps hyperlinks so users can click the location and navigate directly using Google Maps Edited the navigation bar to make it cleaner and clearer Changed CSS based on screen size Thank you for following my devlog. I am hoping to create a story-based line game soon, see ya!"}, {"post_id": 31954, "ts": "2026-07-20T19:33:12Z", "hours": 8.3625, "text": "Devlog 6:Restyling website to improve UI experience Welcome back to another project update! In this devlog, the focus based on resyle the navigation bar to improve UI experience,so it doesn’t used up the whole upper screen to show other navigation 🛠️ What’s New: Changing the whole navigation bar, instead of using the normal navigation which show all pages, I change to a style where it only show current navigaion bar, click the three line to show the rest of the navigation bar Restyling the blog, so people are easy to understand the layout, choosing what food you are craving, click the image and it will show the blog that I have written Starting to finish off the last page, recommendation page, this is a page where I recommendate people to go to which restaurant to try to most authestic food. 🔮 What’s Next Finishing off the recommendation page Styling the website Hope to ship at the next devlog"}, {"post_id": 31342, "ts": "2026-07-19T17:29:40Z", "hours": 8.4503, "text": "Devlog 5 Restyle the webpage and adding more information for the pages: Welcome back to another project update! In this log, the focus based on restyle the webpage to make it more attraction and providing more information, user are easier to navigate. 🛠️ What’s New: Adding more information to the 15 minutes recipe, now it extend to 20 countries Adding more Blogs, the blogs are a place where I share my favourite food, it’s more like a food blogs where introudce new food and giving comment Adding fade in and other animation throughtout the system to make it more user friendly 🔮 What’s Next? Restyle the navigation bar to improve UI experience Restyle the blog so people can choose what they want to look at"}, {"post_id": 30754, "ts": "2026-07-18T16:12:40Z", "hours": 8.4575, "text": "Devlog #4: Tuning Mood & Launching the Dynamic Food Pathway Welcome back to another project update! In this log, the focus was completely on improving user navigation and building the core feature of the platform: connecting a user’s current emotional state directly to their food choices. 🛠️ What’s New Polishing the Index Page: The home page needed a facelift to make it cleaner and more intuitive. The layout was streamlined to reduce clutter so that when users arrive—especially. The Core Feature: The Mood-to-Food Pathway Page The biggest milestone of this update is the brand-new Mood Selection Page. This page acts as a personalized culinary compass. Instead of browsing a standard, boring menu, users are greeted with an emotional checkpoint: “How are you feeling right now?” Once a user selects their mood, the application branches into two distinct operational pathways based on their energy levels: The “Cook” Pathway: Allowing people to cook for themselves based on their mood. Different mood has its own recipe. The “Eat” Pathway: It is by passing recipes entirely to recommend instant comfort fixes. 🔮 What’s Next? Adding CSS into this page, as I didn’t have time to finish stylish this page yet. Adding more on mood depending recipe or dining out option. Want to update my blogs on food.I hope everyone enjoy this website, please comment about what can I improve and what can I add to this new page."}, {"post_id": 29731, "ts": "2026-07-16T20:26:35Z", "hours": 9.3517, "text": "Devlog #03: Building the “World Map Cuisine” Hey everyone! Welcome back to the project. Instead of only writing a static blog post for each country, I built a Single Page Application using JavaScript that hold 10 different global cuisines. Here is how the structure of World Map Cuisine: –Start Screen (startscreen()) The Entry Point: Welcomes the player,features a prominent “Start” button to launch the game. –Country Selection (countryScreen()) The World Map:Each button is automatically labelled with the country’s name and its national flag emoji –The Recipe (recipeScreen()) It displays the dish name, splits the layout into a split-pane view ingredients on the left, dish photo on the right, step-by-step instructions below, and appends navigation buttons to easily go “Back”, which returns to countryscreen or “Return Home,” which returns to startscreen Our Global Recipe: Every single recipe added to our country’s data object has been carefully designed to hit that sweet spot of intense flavour and a strict 15-minute limit Which international dishes should I add to the page? Let us know in the comments! url playdemo: https://theodora-sin.github.io/WebOS/game.html"}, {"post_id": 27642, "ts": "2026-07-13T12:22:32Z", "hours": 4.7864, "text": "Devlog #2 Creating a sensation quiz based on food Hey everyone! Welcome back to my second devlog. In this devlog I was developed a sensation quiz based on food. Here is a quick look at how it works: The core structure: The quiz contain 5 question Every answer aligns with a specific “sensation personality” trait Once completed, the game calculates your dominant trait to descibe your unique tastes How the Scoring Works: To unlock your personality profile and get your custom recommendations, you must match at least 3 out of 5 categories. This baseline ensures your final result accurately reflects your true sensory preferences! Thank you all for following my development journey. Try out the quiz, enjoy, and have fun! url: https://theodora-sin.github.io/WebOS/personality.html"}, {"post_id": 27208, "ts": "2026-07-12T16:01:38Z", "hours": 4.7114, "text": "My First Devlog: Hey everyone! Welcome to my very first devlog. I’ve been working on a personal website from scratch using HTML, CSS, and JavaScript, and I wanted to share what I’ve built so far. My project is structured with an index.html introduction page, a portfolio page featuring an interactive avatar, and a blog section dedicated to my favourite comfort foods. Avatar: The coolest part of the portfolio is the interactive avatar. I wanted to make the page feel alive, so I used JavaScript to create a toggle effect.When a visitor clicks on the avatar’s eye, it triggers an event. To add a bit of unpredictability and fun, I wrote a script that changes the text color of the avatar page completely at random every time you refresh that page. It makes the site feel different every time you visit. The Comfort Food Blog Beyond the code and the portfolio, I wanted a cosy space to share things I love. I built a blog section entirely dedicated to introducing my ultimate comfort foods. It’s a clean, simple layout designed to make you feel right at home. url: https://theodora-sin.github.io/WebOS/index.html"}]...
|
Title: Foodie Haven! by @theodora | Stardance
Dev Title: Foodie Haven! by @theodora | Stardance
Devlogs:
My First Devlog: Hey everyone! Welcome to my very first devlog. I’ve been working on a personal website from scratch using HTML, CSS, and JavaScript, and I wanted to share what I’ve built so far. My project is structured with an index.html introduction page, a portfolio page featuring an interactive avatar, and a blog section dedicated to my favourite comfort foods. Avatar: The coolest part of the portfolio is the interactive avatar. I wanted to make the page feel alive, so I used JavaScript to create a toggle effect.When a visitor clicks on the avatar’s eye, it triggers an event. To add a bit of unpredictability and fun, I wrote a script that changes the text color of the avatar page completely at random every time you refresh that page. It makes the site feel different every time you visit. The Comfort Food Blog Beyond the code and the portfolio, I wanted a cosy space to share things I love. I built a blog section entirely dedicated to introducing my ultimate comfort foods. It’s a clean, simple layout designed to make you feel right at home. url: https://theodora-sin.github.io/WebOS/index.html
Devlog #2 Creating a sensation quiz based on food Hey everyone! Welcome back to my second devlog. In this devlog I was developed a sensation quiz based on food. Here is a quick look at how it works: The core structure: The quiz contain 5 question Every answer aligns with a specific “sensation personality” trait Once completed, the game calculates your dominant trait to descibe your unique tastes How the Scoring Works: To unlock your personality profile and get your custom recommendations, you must match at least 3 out of 5 categories. This baseline ensures your final result accurately reflects your true sensory preferences! Thank you all for following my development journey. Try out the quiz, enjoy, and have fun! url: https://theodora-sin.github.io/WebOS/personality.html
Devlog #03: Building the “World Map Cuisine” Hey everyone! Welcome back to the project. Instead of only writing a static blog post for each country, I built a Single Page Application using JavaScript that hold 10 different global cuisines. Here is how the structure of World Map Cuisine: –Start Screen (startscreen()) The Entry Point: Welcomes the player,features a prominent “Start” button to launch the game. –Country Selection (countryScreen()) The World Map:Each button is automatically labelled with the country’s name and its national flag emoji –The Recipe (recipeScreen()) It displays the dish name, splits the layout into a split-pane view ingredients on the left, dish photo on the right, step-by-step instructions below, and appends navigation buttons to easily go “Back”, which returns to countryscreen or “Return Home,” which returns to startscreen Our Global Recipe: Every single recipe added to our country’s data object has been carefully designed to hit that sweet spot of intense flavour and a strict 15-minute limit Which international dishes should I add to the page? Let us know in the comments! url playdemo: https://theodora-sin.github.io/WebOS/game.html
Devlog #4: Tuning Mood & Launching the Dynamic Food Pathway Welcome back to another project update! In this log, the focus was completely on improving user navigation and building the core feature of the platform: connecting a user’s current emotional state directly to their food choices. 🛠️ What’s New Polishing the Index Page: The home page needed a facelift to make it cleaner and more intuitive. The layout was streamlined to reduce clutter so that when users arrive—especially. The Core Feature: The Mood-to-Food Pathway Page The biggest milestone of this update is the brand-new Mood Selection Page. This page acts as a personalized culinary compass. Instead of browsing a standard, boring menu, users are greeted with an emotional checkpoint: “How are you feeling right now?” Once a user selects their mood, the application branches into two distinct operational pathways based on their energy levels: The “Cook” Pathway: Allowing people to cook for themselves based on their mood. Different mood has its own recipe. The “Eat” Pathway: It is by passing recipes entirely to recommend instant comfort fixes. 🔮 What’s Next? Adding CSS into this page, as I didn’t have time to finish stylish this page yet. Adding more on mood depending recipe or dining out option. Want to update my blogs on food.I hope everyone enjoy this website, please comment about what can I improve and what can I add to this new page.
Devlog 5 Restyle the webpage and adding more information for the pages: Welcome back to another project update! In this log, the focus based on restyle the webpage to make it more attraction and providing more information, user are easier to navigate. 🛠️ What’s New: Adding more information to the 15 minutes recipe, now it extend to 20 countries Adding more Blogs, the blogs are a place where I share my favourite food, it’s more like a food blogs where introudce new food and giving comment Adding fade in and other animation throughtout the system to make it more user friendly 🔮 What’s Next? Restyle the navigation bar to improve UI experience Restyle the blog so people can choose what they want to look at
Devlog 6:Restyling website to improve UI experience Welcome back to another project update! In this devlog, the focus based on resyle the navigation bar to improve UI experience,so it doesn’t used up the whole upper screen to show other navigation 🛠️ What’s New: Changing the whole navigation bar, instead of using the normal navigation which show all pages, I change to a style where it only show current navigaion bar, click the three line to show the rest of the navigation bar Restyling the blog, so people are easy to understand the layout, choosing what food you are craving, click the image and it will show the blog that I have written Starting to finish off the last page, recommendation page, this is a page where I recommendate people to go to which restaurant to try to most authestic food. 🔮 What’s Next Finishing off the recommendation page Styling the website Hope to ship at the next devlog
Devlog 7: Shipping my project: Welcome back to another project update! Finally, I am going to ship my project. 🛠️What’s fixed: Checking all the pictures, fixing some silly mistakes by typing the wrong asset picture name. Added a gradient background and finished debugging the City Food Recommendation Page Added Google Maps hyperlinks so users can click the location and navigate directly using Google Maps Edited the navigation bar to make it cleaner and clearer Changed CSS based on screen size Thank you for following my devlog. I am hoping to create a story-based line game soon, see ya!
Ships:
This is a website where I share my food experiences with the world. I enjoy cooking and eating a lot, and I created this site to share the joy food brings me with others. Alongside this, I have a condition that restricts what food I can eat; this website allows me to satisfy my cravings before fully recovering. About this project: The Intro and About Me pages give a bit of background on who I am — I enjoy cooking and eating a lot, and I created this site because I wanted to share the joy that food brings me with other people. Blog — This is where I write about my favourite food finds, sharing my thoughts the way a food critic would. Food Personality Quiz — A short, 5-question quiz that figures out your “food sensation type” and recommends what you should try next based on your results. 15-Minute Recipe — Takes you on a trip around the world, one cuisine at a time. Each recipe is designed to be cooked in just 15 minutes, with the full recipe included. Mood Food Matrix — Depending on your mood, this page helps you decide between dining out or cooking at home, and recommends different dishes and recipes to match. City Food Recommendation — Choose a city, browse photos of dishes, and get a restaurant recommendation along with its address....
|
1793123494.7762666
|
1793209894.7762666
|
|
34300
|
sdxl-training by @yearcakes | Stardance
|
yearcakes
|
1
|
48.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-23T10:01:56Z", "hours": 48.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Please note that this project has relatively high resource requirements. The following configuration is recommended as the minimum supported environment: OS: Ubuntu 24.04 LTS RAM: 64 GB GPU VRAM: At least 12 GB NVMe SSD (recommended for latent/text-encoder caching) Running below these requirements may result in insufficient memory, significantly reduced performance, or inability to complete training. Thank you for following the development of this project.", "repo": "https://github.com/zhaozhuoran/sdxl-training", "demo": "https://github.com/zhaozhuoran/sdxl-training/blob/main/DEMO.md"}]...
|
[{"post_id": 33399, "ts": "202 [{"post_id": 33399, "ts": "2026-07-23T09:57:12Z", "hours": 9.5828, "text": "Changes This update introduces benchmarking and metadata-related features, along with improvements to the trainer engine and documentation. Detailed changes: Add benchmark.py for training performance evaluation Add test_benchmark.py and test_metadata_features.py to improve test coverage Enhance the trainer engine with advanced evaluation capabilities Improve LoRA method exporting with detailed example configurations Update documentation with comprehensive usage and configuration examples Status With this update completed, the training framework is now ready for official use. For detailed usage instructions and examples, please refer to: Demo Guide: DEMO.md Usage Guide: USAGE.md Minimum Hardware Requirements Please note that this project has relatively high resource requirements. The following configuration is recommended as the minimum supported environment: OS: Ubuntu 24.04 LTS RAM: 64 GB GPU VRAM: At least 12 GB NVMe SSD (recommended for latent/text-encoder caching) Running below these requirements may result in insufficient memory, significantly reduced performance, or inability to complete training. Thank you for following the development of this project. Commit"}, {"post_id": 32750, "ts": "2026-07-22T03:06:06Z", "hours": 6.7319, "text": "Changes Made Checkpoint System: Added thread-safe locking for checkpoint writes to prevent corruption Required optimizer_state_dict validation for checkpoint integrity Stopped background writers in test cleanups to prevent resource leaks Added cache_vae_dtype config field with fp32/bf16 tradeoff options Dataset & Caching: Migrated dataset caching from pickle to safetensors format for faster/safer storage Added cache_vae_dtype VAE precision control (fp32 safe, bf16 faster/lower VRAM) Added seed parameter for reproducible dataset shuffling and deterministic sampling Performance Optimizations: Added TF32 matmul and cuDNN benchmark for CUDA hardware Added torch.compile support for UNet with dynamic shapes Enabled pin_memory on CUDA for faster data transfer Added VRAM monitoring throughout training phases Reset peak memory stats per epoch for accurate telemetry Hardware Guardrails: Added GPU-first guard verification test (skips on CUDA-enabled machines) Added mixed_precision=‘no’ VRAM usage warnings for <16GB GPUs Better handling of CPU RNG states after map_location=“cuda” loads GPU memory cleanup after model offloading Testing: Fix test_checkpoint.py to shutdown background writers Add GPU-first guard test that requires non-CUDA environment Commit"}, {"post_id": 31785, "ts": "2026-07-20T13:39:09Z", "hours": 5.0014, "text": "feat: add gradient accumulation and offload checkpoint writes to a background worker Accumulate gradients across micro-steps: zero grad only at window start, scale loss by acc_steps, and step optimizer/scheduler at window end. Move snapshot serialization to a background thread so disk I/O and the “latest” copy no longer stall training; recovery checkpoints stay synchronous for crash-durable resume. Clone state to CPU (_to_cpu) before enqueueing to avoid GPU OOM and in-place corruption by later training updates. Treat rolling recovery checkpoints as a minimal resume set (LoRA+RNG only); full snapshots still store optimizer/scheduler/scaler state. Resume from a rolling checkpoint rebuilds optimizer momentum and LR schedule from scratch. Make CaptionProcessor RNG thread-safe with a lock for concurrent prefetch. Add flush()/shutdown() for deterministic test state and clean process exit. Commit"}, {"post_id": 31225, "ts": "2026-07-19T13:28:56Z", "hours": 1.0556, "text": "Two small polish passes today! 📜 Quieter training logs — our console used to shout a full stats line every single step (so noisy 😵). Now it whispers just once every 1,000 steps. Don’t worry though — the little tqdm progress bar still wiggles along in real time, so you always know we’re alive and training! 🐣 🏷️ LoRA name tags — when we export a LoRA, we now tuck proper kohya-standard metadata into the safetensors header. That means sd-webui, ComfyUI, and friends finally recognize our SDXL LoRA and scale it correctly instead of squinting confused. We even peek at a lora_down weight to auto-detect the rank~ 🔍 Small changes, cozy results! Commit"}, {"post_id": 30153, "ts": "2026-07-17T14:29:04Z", "hours": 1.9372, "text": "fixed a sneaky little bug: SDXL micro-conditioning was using the resized image size and crop coords, which was a bit off~ now it happily uses the TRUE original size and original-image-space crop offsets, matching the kohya / diffusers convention, so the model finally understands each image’s real backstory also, caption augmentation used the global random, so it got all mixed up on resume (´;ω;`) gave it its own little seeded RNG baby — its state is saved with the checkpoint and restored exactly, so training picks up right where it left off, no getting lost. collate got a tiny shield too: if a batch mixes cached/uncached samples, it now complains LOUDLY instead of throwing a cryptic KeyError Commit"}, {"post_id": 29989, "ts": "2026-07-17T06:40:32Z", "hours": 2.6072, "text": "Hi~ today the trainer went on a little diet! The VAE and Text Encoders were freeloaders. Once everything is cached, they just sit on the GPU sunbathing and eating ~2GB of VRAM for no reason. So now we politely walk them over to the CPU couch before training starts, and only invite them back if we actually need them. xformers joins the party. The UNet now uses memory-efficient attention when it’s installed, and quietly falls back to plain SDPA if it isn’t — no drama, no crashes. The caching progress bar finally tells the truth. Before, it counted already-cached samples as “work” and lied about the ETA. Now we pre-scan everything first, so the bar only moves for real encoding. Honest bar is best bar. Result: less VRAM, faster start, happier GPU. Nap successful. Commit"}, {"post_id": 29898, "ts": "2026-07-17T02:07:55Z", "hours": 2.3372, "text": "Gave precaching a little diet today! Added a VAE-slicing toggle (off by default = faster), and now we hand VRAM back to the GPU after every batch (no more sneaky CUDA hoarding~). Single-file checkpoints now only carry the UNet home instead of lugging the whole pipeline. Shoved caption augmentation into the prefetch thread, and the progress bar got smarter — it counts only real encodes, not the lazy “already-cached” ones. The GPU is having an easy day, meow~ Commit"}, {"post_id": 29372, "ts": "2026-07-16T08:49:48Z", "hours": 3.0336, "text": "Two little wheels rolled into the trainer today: 🎯 Aspect-ratio bucketing: no more squishing every image into a square! Each pic now hops into the bucket whose ratio fits it best, gets a gentle cover-resize + center-crop, and BucketBatchSampler keeps same-bucket pals together so batches stack nice and tidy. 🏷️ Cute caption magic: Kohya-style tag shuffling, keep_tokens to pin the first few tags, and playful tag / whole-caption dropout — data augmentation now feels like sprinkling sugar 🍬. Also fixed a sneaky SDXL detail: we now record each image’s real original_size and crop_ltrb and feed them into add_time_ids, instead of pretending everything is a 1024² square. The cache grew up too — one combined cache_{hash}.pt carrying latents + text-encoder outputs + metadata, always saved to disk so reruns load in a blink, with shape checks that auto-recompute if you resize. And the UNet now takes a nap 💤 until caching is done, freeing VRAM for the little GPUs that could. Commit"}, {"post_id": 29322, "ts": "2026-07-16T05:27:06Z", "hours": 3.7753, "text": "✨ Precaching got a turbo boost! 🚀 Hi hi~ today the caching step stopped being such a lazy little snail! 🐌➡️🐇 Before, we loaded one image, encoded it, saved it… one… by… one… zzz 😴 The GPU was basically napping while the disk did all the reading. Now we have a squad of worker threads (cache_workers) fetching images in parallel while the GPU chomps through them in batches (cache_batch_size). I/O and compute finally hold hands and work together! 🤝 Bonus: a cute little progress log tells you img/s and ETA, so you know exactly when snack time ends. 🍪⏱️ Also added a safety hug for resumes! If you try to resume a checkpoint with a different config, the trainer now gently stops and asks “are you suuure? type ‘yes’~” 🥺 No more silently mixing old weights with new settings and crying later. In non-interactive mode it just aborts to keep you safe. 💖 Commit"}, {"post_id": 28794, "ts": "2026-07-15T09:13:03Z", "hours": 1.7844, "text": "Added cute little tqdm progress bars to the caching & training loops so we can watch them go brrr~ Commit"}, {"post_id": 28764, "ts": "2026-07-15T07:23:33Z", "hours": 2.6842, "text": "Two handy little things landed in the trainer this time~ 🧊 Caching : VAE latents and text-encoder outputs can now be pre-computed and stored ahead of time! Keep them in RAM or on disk. No more recomputing every step — less VRAM, faster training, yay~ 🎯 UNet-only training : A new train_text_encoder switch (off by default). When off, only the UNet gets LoRA and the text encoders get to rest, so training stays light and breezy! 📝 Also refreshed the config example and added plenty of tests so nothing breaks ✅ Commit"}, {"post_id": 28715, "ts": "2026-07-15T04:16:31Z", "hours": 0.9603, "text": "Single-file SDXL checkpoints are now supported! Commit"}, {"post_id": 28696, "ts": "2026-07-15T03:15:43Z", "hours": 3.885, "text": "Initial implementation of the SDXL Training Toolkit! This is a very early and minimal version. The core training pipeline is now in place, but features like aspect ratio bucketing, VAE caching, and other optimizations are still on the way. Commit"}, {"post_id": 28222, "ts": "2026-07-14T11:20:39Z", "hours": 2.38, "text": "I just realized how complex it is to build an SDXL training pipeline from scratch… It might be a long while before the first version is ready to ship qwq"}]...
|
Title: sdxl-training by @yearcakes | Stardance
De Title: sdxl-training by @yearcakes | Stardance
Devlogs:
I just realized how complex it is to build an SDXL training pipeline from scratch… It might be a long while before the first version is ready to ship qwq
Initial implementation of the SDXL Training Toolkit! This is a very early and minimal version. The core training pipeline is now in place, but features like aspect ratio bucketing, VAE caching, and other optimizations are still on the way. Commit
Single-file SDXL checkpoints are now supported! Commit
Two handy little things landed in the trainer this time~ 🧊 Caching : VAE latents and text-encoder outputs can now be pre-computed and stored ahead of time! Keep them in RAM or on disk. No more recomputing every step — less VRAM, faster training, yay~ 🎯 UNet-only training : A new train_text_encoder switch (off by default). When off, only the UNet gets LoRA and the text encoders get to rest, so training stays light and breezy! 📝 Also refreshed the config example and added plenty of tests so nothing breaks ✅ Commit
Added cute little tqdm progress bars to the caching & training loops so we can watch them go brrr~ Commit
✨ Precaching got a turbo boost! 🚀 Hi hi~ today the caching step stopped being such a lazy little snail! 🐌➡️🐇 Before, we loaded one image, encoded it, saved it… one… by… one… zzz 😴 The GPU was basically napping while the disk did all the reading. Now we have a squad of worker threads (cache_workers) fetching images in parallel while the GPU chomps through them in batches (cache_batch_size). I/O and compute finally hold hands and work together! 🤝 Bonus: a cute little progress log tells you img/s and ETA, so you know exactly when snack time ends. 🍪⏱️ Also added a safety hug for resumes! If you try to resume a checkpoint with a different config, the trainer now gently stops and asks “are you suuure? type ‘yes’~” 🥺 No more silently mixing old weights with new settings and crying later. In non-interactive mode it just aborts to keep you safe. 💖 Commit
Two little wheels rolled into the trainer today: 🎯 Aspect-ratio bucketing: no more squishing every image into a square! Each pic now hops into the bucket whose ratio fits it best, gets a gentle cover-resize + center-crop, and BucketBatchSampler keeps same-bucket pals together so batches stack nice and tidy. 🏷️ Cute caption magic: Kohya-style tag shuffling, keep_tokens to pin the first few tags, and playful tag / whole-caption dropout — data augmentation now feels like sprinkling sugar 🍬. Also fixed a sneaky SDXL detail: we now record each image’s real original_size and crop_ltrb and feed them into add_time_ids, instead of pretending everything is a 1024² square. The cache grew up too — one combined cache_{hash}.pt carrying latents + text-encoder outputs + metadata, always saved to disk so reruns load in a blink, with shape checks that auto-recompute if you resize. And the UNet now takes a nap 💤 until caching is done, freeing VRAM for the little GPUs that could. Commit
Gave precaching a little diet today! Added a VAE-slicing toggle (off by default = faster), and now we hand VRAM back to the GPU after every batch (no more sneaky CUDA hoarding~). Single-file checkpoints now only carry the UNet home instead of lugging the whole pipeline. Shoved caption augmentation into the prefetch thread, and the progress bar got smarter — it counts only real encodes, not the lazy “already-cached” ones. The GPU is having an easy day, meow~ Commit
Hi~ today the trainer went on a little diet! The VAE and Text Encoders were freeloaders. Once everything is cached, they just sit on the GPU sunbathing and eating ~2GB of VRAM for no reason. So now we politely walk them over to the CPU couch before training starts, and only invite them back if we actually need them. xformers joins the party. The UNet now uses memory-efficient attention when it’s installed, and quietly falls back to plain SDPA if it isn’t — no drama, no crashes. The caching progress bar finally tells the truth. Before, it counted already-cached samples as “work” and lied about the ETA. Now we pre-scan everything first, so the bar only moves for real encoding. Honest bar is best bar. Result: less VRAM, faster start, happier GPU. Nap successful. Commit
fixed a sneaky little bug: SDXL micro-conditioning was using the resized image size and crop coords, which was a bit off~ now it happily uses the TRUE original size and original-image-space crop offsets, matching the kohya / diffusers convention, so the model finally understands each image’s real backstory also, caption augmentation used the global random, so it got all mixed up on resume (´;ω;`) gave it its own little seeded RNG baby — its state is saved with the checkpoint and restored exactly, so training picks up right where it left off, no getting lost. collate got a tiny shield too: if a batch mixes cached/uncached samples, it now complains LOUDLY instead of throwing a cryptic KeyError Commit
Two small polish passes today! 📜 Quieter training logs — our console used to shout a full stats line every single step (so noisy 😵). Now it whispers just once every 1,000 steps. Don’t worry though — the little tqdm progress bar still wiggles along in real time, so you always know we’re alive and training! 🐣 🏷️ LoRA name tags — when we export a LoRA, we now tuck proper kohya-standard metadata into the safetensors header. That means sd-webui, ComfyUI, and friends finally recognize our SDXL LoRA and scale it correctly instead of squinting confused. We even peek at a lora_down weight to auto-detect the rank~ 🔍 Small changes, cozy results! Commit
feat: add gradient accumulation and offload checkpoint writes to a background worker Accumulate gradients across micro-steps: zero grad only at window start, scale loss by acc_steps, and step optimizer/scheduler at window end. Move snapshot serialization to a background thread so disk I/O and the “latest” copy no longer stall training; recovery checkpoints stay synchronous for crash-durable resume. Clone state to CPU (_to_cpu) before enqueueing to avoid GPU OOM and in-place corruption by later training updates. Treat rolling recovery checkpoints as a minimal resume set (LoRA+RNG only); full snapshots still store optimizer/scheduler/scaler state. Resume from a rolling checkpoint rebuilds optimizer momentum and LR schedule from scratch. Make CaptionProcessor RNG thread-safe with a lock for concurrent prefetch. Add flush()/shutdown() for deterministic test state and clean process exit. Commit
Changes Made Checkpoint System: Added thread-safe locking for checkpoint writes to prevent corruption Required optimizer_state_dict validation for checkpoint integrity Stopped background writers in test cleanups to prevent resource leaks Added cache_vae_dtype config field with fp32/bf16 tradeoff options Dataset & Caching: Migrated dataset caching from pickle to safetensors format for faster/safer storage Added cache_vae_dtype VAE precision control (fp32 safe, bf16 faster/lower VRAM) Added seed parameter for reproducible dataset shuffling and deterministic sampling Performance Optimizations: Added TF32 matmul and cuDNN benchmark for CUDA hardware Added torch.compile support for UNet with dynamic shapes Enabled pin_memory on CUDA for faster data transfer Added VRAM monitoring throughout training phases Reset peak memory stats per epoch for accurate telemetry Hardware Guardrails: Added GPU-first guard verification test (skips on CUDA-enabled machines) Added mixed_precision=‘no’ VRAM usage warnings for <16GB GPUs Better handling of CPU RNG states after map_location=“cuda” loads GPU memory cleanup after model offloading Testing: Fix test_checkpoint.py to shutdown background writers Add GPU-first guard test that requires non-CUDA environment Commit
Changes This update introduces benchmarking and metadata-related features, along with improvements to the trainer engine and documentation. Detailed changes: Add benchmark.py for training performance evaluation Add test_benchmark.py and test_metadata_features.py to improve test coverage Enhance the trainer engine with advanced evaluation capabilities Improve LoRA method exporting with detailed example configurations Update documentation with comprehensive usage and configuration examples Status With this update completed, the training framework is now ready for official use. For detailed usage instructions and examples, please refer to: Demo Guide: DEMO.md Usage Guide: USAGE.md Minimum Hardware Requirements Please note that this project has relatively high resource requirements. The following configuration is recommended as the minimum supported environment: OS: Ubuntu 24.04 LTS RAM: 64 GB GPU VRAM: At least 12 GB NVMe SSD (recommended for latent/text-encoder caching) Running below these requirements may result in insufficient memory, significantly reduced performance, or inability to complete training. Thank you for following the development of this project. Commit
Ships:
Please note that this project has relatively high resource requirements. The following configuration is recommended as the minimum supported environment: OS: Ubuntu 24.04 LTS RAM: 64 GB GPU VRAM: At least 12 GB NVMe SSD (recommended for latent/text-encoder caching) Running below these requirements may result in insufficient memory, significantly reduced performance, or inability to complete training. Thank you for following the development of this project....
|
1793109323.6882555
|
1793195723.6882555
|
|
40758
|
Game Contained Entirely Within a Minecraft Shader Game Contained Entirely Within a Minecraft Shader by @_Pm7 | Stardance...
|
_Pm7
|
1
|
48.0
|
941
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-31T23:53:19Z", "hours": 48.0, "multiplier": 19.46, "payout": 941, "blessing": "neutral", "text": "I created a fully functional 3d game that runs entirely through a vanilla Minecraft postprocessing effect. Anyone who owns minecraft java edition will be able to load this onto a world and play it. Player input is collected via a datapack that changes colors on the screen when keys are pressed, but besides that the entire game’s code is contained in a resource pack. It is complete with a tank-style movement system, key-door interactions, enemies, and an intuitive level loading system.", "repo": "https://github.com/Pm7-dev/posteffect-game", "demo": "https://github.com/Pm7-dev/posteffect-game/releases/latest"}]...
|
[{"post_id": 59271, "ts": "202 [{"post_id": 59271, "ts": "2026-08-31T23:38:05Z", "hours": 2.5286, "text": "It’s finally finished! After designing the main level and getting some friends to playtest it, I’m happy to say that this project is finally ready for release! The game can now be played by anyone with vanilla Minecraft Java Edition!!"}, {"post_id": 58473, "ts": "2026-08-30T21:49:59Z", "hours": 7.7214, "text": "Added cats I have added my friend’s cat, Mumuy, into the game as an enemy which follows the player around and attacks if she gets close. This took such an incredible amount of pain and debugging with the memory buffer that I’m almost ready to call this project done. In the next devlog I’d like to polish up some things and then finally release the project."}, {"post_id": 52456, "ts": "2026-08-22T16:05:18Z", "hours": 7.8172, "text": "I knew this would take a long time but uh….. oh. I have now created a functioning inventory pickup system, and opening doors will now check to make sure the player is holding the corresponding colored key before it opens. To do this, I had to store an array of colors of the keys in the program memory for the player’s inventory. But since I can’t always guarantee that the array doesn’t have gaps in it, each frame also generates a list of positions of the colors addresses (I guess in a really cursed way you could call these pointers?) so I don’t have to sample the entire inventory list for every pixel in the rendering passes and can instead read the pointers list to know what inventory index to render."}, {"post_id": 49341, "ts": "2026-08-18T03:29:17Z", "hours": 6.1069, "text": "Added spinning keys as placeable objects in the map image I modeled this key in blender and rendered out eight frames of it spinning to create this texture atlas. The atlas is pulled from based on the GameTime. Loading keys into memory from the map proved to be quite a challenge. When initializing the map, the shader reads the map texture for any pixels with opacity 150 and treats them as keys, loading them and their data into a few rows in memory. The data stored and updated along with them is: Their coordinates on the map, their colors, their distance offset from the player, and their rotational offset from the player. Using this data, I created a render pass after the map renderer that adds these in. Next will be a pickup system so they can be used to unlock doors. The player inventory system is probably gonna suuuuuuck to make."}, {"post_id": 47224, "ts": "2026-08-15T00:20:59Z", "hours": 3.9419, "text": "Map units can now be destroyed in real time by pressing the space bar. Listening for the player jump predicate and treating it like an “action” input allows me to make the map destructible. This will be used later to make doors that require keys to open. Additionally, inputs are now polled independently of one another, as shown later in the video. Each input set (movement, rotation, action) has its own text display associated with it, and now the shader samples from three points on the screen to get all the inputs at once."}, {"post_id": 44039, "ts": "2026-08-09T15:30:26Z", "hours": 1.9911, "text": "Wall texture atlas created The shader now looks for specific rgb values in the map so it knows what part of the atlas to sample from, allowing me to choose which wall texture to render when making the game map. Next I will be working on wall collision and an item pickup system."}, {"post_id": 42366, "ts": "2026-08-07T01:37:06Z", "hours": 1.3319, "text": "Wall textures are now sampled from texture images using the raycast positions, I can determine the x coordinate to sample from on the texture just by modding the larger coordinate by one (making the texture repeat every unit.) The Y coordinate is based on the current calculated wall height (determined by the distance between the raycast and the player.) Next I will make textures loaded on an atlas instead of a single image so I can make multiple different types of wall."}, {"post_id": 39874, "ts": "2026-08-03T04:25:21Z", "hours": 7.4583, "text": "Spent a huge amount of time refactoring my entire fragment shader pipeline, splitting it into more than two render passes. Before, there was one pass to update data, and one to render the data. Now there are six: Player input -> Update Map -> Update Player -> Collect Raycast Data -> Render Map -> Update Global Data All these passes share one 512x512 persistent render target to store/load data, which gives me about one megabyte of “ram” given that each pixel stores 32 bits. This should be more than enough for what I need. Currently, I don’t even use half of it, with the largest chunk storing the 256x256 game level that can now be affected by the player. As an added bonus to this new render target storage method, I now store the coordinates of where each camera raycast hits, so I can map textures to the walls. I think I’ll work on a system to do this next."}, {"post_id": 38857, "ts": "2026-08-01T12:49:37Z", "hours": 3.535, "text": "4th Devlog, Rewritten the raycasting system. Now the map is gridlocked to its texture, with each pixel representing one unit. The raycast only has to check the status of each pixel it passes through on the map image rather than sampling at a defined distance interval that could potentially pass through the corners of units. I also fixed the previous fisheye effect by multiplying the caculated ray distance by the cosine of its angle offset from the center Next I would like to work on texture mapping to the walls, but with what I plan to add in the future I think I might spend some time refactoring the way I store the program’s memory so I can fit more data in it and organize it better."}, {"post_id": 37362, "ts": "2026-07-30T00:50:21Z", "hours": 1.4472, "text": "Beginnings of player input Because shader code is run entirely on the GPU, I can’t just directly listen for keyboard input. The only thing that the shader code actually reads is the colors rendered to the screen by minecraft, so I needed to make a sort of “translation layer” that listens for player input in minecraft and outputs a color on the screen so it can be read and interpreted by the shader code. My really jank test rig As shown in the video, the color of the square updates depending on the pressed keys. The inputs are gathered using minecraft’s “predicate” system and are translated to the background color of a text display entity. The player is mounted to an armor stand to stop them from moving away, keeping the text display in the center of the screen always. How I keep track of data in code that can’t store variables If a shader can only read colors, how does it remember where the player is? This question was one that I had until I discovered minecraft’s support for the persistent render target. This allows the shader to sample from the pixels it renders in the current frame in the next frame. A floating point number is stored using thirty two bits. Each pixel’s color is stored with eight bits of precision each for red, green, blue, and alpha channels, which also happens to total 32 bits. So I wrote what is possibly the strangest utility I have ever written, that can translate a float to an rgba color and an rgba color to a float. Now, using a persistent render target that is simply never rendered to the screen, I can store the player’s x, y, and camera position in colors, and update them based on the color in the middle of the screen from the minecraft render. I suppose the persistent render target sorta counts as the game’s “RAM.” I’ll be using it to store a lot more data in the future, but next I’ll be fixing up some issues I found with rendering and player control."}, {"post_id": 36763, "ts": "2026-07-29T01:02:02Z", "hours": 3.0931, "text": "I finally got some actual visual output!! After fixing many compiler errors, and then another few that kept causing the loaded data to reset, I got this output. The current system renders walls based on the pixel’s distance from a wall defined by a texture (visualized in the picture). This created a sort of fisheye distortion that I’ll try and work out later, but I’m happy with my progress for now, and would like to focus on getting player movement functional"}, {"post_id": 36141, "ts": "2026-07-28T01:24:17Z", "hours": 1.3989, "text": "Minecraft has in recent snapshots greatly improved the capabilities of its shader system, now allowing postprocessing shaders “post effects” to be applied using commands. This has wildly changed what is now possible in vanilla minecraft and I immediately was overcome with excitement about what was now possible. After playing around with it for a while and discovering the “persistent” mode on custom render targets, I realized that even more than expected was now possible, and found a way to make posteffects that have fade-in animations by updating the value in a persistent render target over the course of a few frames. To make it consistent across different frame rates, I had to figure out a way to get a deltatime (time between frames), which I was able to do using the GameTime uniform in minecraft. Having gotten a deltatime, I began wondering about the possibilities of creating a fully functional game contained entirely in a minecraft postprocessing shader…"}]...
|
Title: Game Contained Entirely Within a Minecraft Title: Game Contained Entirely Within a Minecraft Shader by @_Pm7 | Stardance
Devlogs:
Minecraft has in recent snapshots greatly improved the capabilities of its shader system, now allowing postprocessing shaders “post effects” to be applied using commands. This has wildly changed what is now possible in vanilla minecraft and I immediately was overcome with excitement about what was now possible. After playing around with it for a while and discovering the “persistent” mode on custom render targets, I realized that even more than expected was now possible, and found a way to make posteffects that have fade-in animations by updating the value in a persistent render target over the course of a few frames. To make it consistent across different frame rates, I had to figure out a way to get a deltatime (time between frames), which I was able to do using the GameTime uniform in minecraft. Having gotten a deltatime, I began wondering about the possibilities of creating a fully functional game contained entirely in a minecraft postprocessing shader…
I finally got some actual visual output!! After fixing many compiler errors, and then another few that kept causing the loaded data to reset, I got this output. The current system renders walls based on the pixel’s distance from a wall defined by a texture (visualized in the picture). This created a sort of fisheye distortion that I’ll try and work out later, but I’m happy with my progress for now, and would like to focus on getting player movement functional
Beginnings of player input Because shader code is run entirely on the GPU, I can’t just directly listen for keyboard input. The only thing that the shader code actually reads is the colors rendered to the screen by minecraft, so I needed to make a sort of “translation layer” that listens for player input in minecraft and outputs a color on the screen so it can be read and interpreted by the shader code. My really jank test rig As shown in the video, the color of the square updates depending on the pressed keys. The inputs are gathered using minecraft’s “predicate” system and are translated to the background color of a text display entity. The player is mounted to an armor stand to stop them from moving away, keeping the text display in the center of the screen always. How I keep track of data in code that can’t store variables If a shader can only read colors, how does it remember where the player is? This question was one that I had until I discovered minecraft’s support for the persistent render target. This allows the shader to sample from the pixels it renders in the current frame in the next frame. A floating point number is stored using thirty two bits. Each pixel’s color is stored with eight bits of precision each for red, green, blue, and alpha channels, which also happens to total 32 bits. So I wrote what is possibly the strangest utility I have ever written, that can translate a float to an rgba color and an rgba color to a float. Now, using a persistent render target that is simply never rendered to the screen, I can store the player’s x, y, and camera position in colors, and update them based on the color in the middle of the screen from the minecraft render. I suppose the persistent render target sorta counts as the game’s “RAM.” I’ll be using it to store a lot more data in the future, but next I’ll be fixing up some issues I found with rendering and player control.
4th Devlog, Rewritten the raycasting system. Now the map is gridlocked to its texture, with each pixel representing one unit. The raycast only has to check the status of each pixel it passes through on the map image rather than sampling at a defined distance interval that could potentially pass through the corners of units. I also fixed the previous fisheye effect by multiplying the caculated ray distance by the cosine of its angle offset from the center Next I would like to work on texture mapping to the walls, but with what I plan to add in the future I think I might spend some time refactoring the way I store the program’s memory so I can fit more data in it and organize it better.
Spent a huge amount of time refactoring my entire fragment shader pipeline, splitting it into more than two render passes. Before, there was one pass to update data, and one to render the data. Now there are six: Player input -> Update Map -> Update Player -> Collect Raycast Data -> Render Map -> Update Global Data All these passes share one 512x512 persistent render target to store/load data, which gives me about one megabyte of “ram” given that each pixel stores 32 bits. This should be more than enough for what I need. Currently, I don’t even use half of it, with the largest chunk storing the 256x256 game level that can now be affected by the player. As an added bonus to this new render target storage method, I now store the coordinates of where each camera raycast hits, so I can map textures to the walls. I think I’ll work on a system to do this next.
Wall textures are now sampled from texture images using the raycast positions, I can determine the x coordinate to sample from on the texture just by modding the larger coordinate by one (making the texture repeat every unit.) The Y coordinate is based on the current calculated wall height (determined by the distance between the raycast and the player.) Next I will make textures loaded on an atlas instead of a single image so I can make multiple different types of wall.
Wall texture atlas created The shader now looks for specific rgb values in the map so it knows what part of the atlas to sample from, allowing me to choose which wall texture to render when making the game map. Next I will be working on wall collision and an item pickup system.
Map units can now be destroyed in real time by pressing the space bar. Listening for the player jump predicate and treating it like an “action” input allows me to make the map destructible. This will be used later to make doors that require keys to open. Additionally, inputs are now polled independently of one another, as shown later in the video. Each input set (movement, rotation, action) has its own text display associated with it, and now the shader samples from three points on the screen to get all the inputs at once.
Added spinning keys as placeable objects in the map image I modeled this key in blender and rendered out eight frames of it spinning to create this texture atlas. The atlas is pulled from based on the GameTime. Loading keys into memory from the map proved to be quite a challenge. When initializing the map, the shader reads the map texture for any pixels with opacity 150 and treats them as keys, loading them and their data into a few rows in memory. The data stored and updated along with them is: Their coordinates on the map, their colors, their distance offset from the player, and their rotational offset from the player. Using this data, I created a render pass after the map renderer that adds these in. Next will be a pickup system so they can be used to unlock doors. The player inventory system is probably gonna suuuuuuck to make.
I knew this would take a long time but uh….. oh. I have now created a functioning inventory pickup system, and opening doors will now check to make sure the player is holding the corresponding colored key before it opens. To do this, I had to store an array of colors of the keys in the program memory for the player’s inventory. But since I can’t always guarantee that the array doesn’t have gaps in it, each frame also generates a list of positions of the colors addresses (I guess in a really cursed way you could call these pointers?) so I don’t have to sample the entire inventory list for every pixel in the rendering passes and can instead read the pointers list to know what inventory index to render.
Added cats I have added my friend’s cat, Mumuy, into the game as an enemy which follows the player around and attacks if she gets close. This took such an incredible amount of pain and debugging with the memory buffer that I’m almost ready to call this project done. In the next devlog I’d like to polish up some things and then finally release the project.
It’s finally finished! After designing the main level and getting some friends to playtest it, I’m happy to say that this project is finally ready for release! The game can now be played by anyone with vanilla Minecraft Java Edition!!
Ships:
I created a fully functional 3d game that runs entirely through a vanilla Minecraft postprocessing effect. Anyone who owns minecraft java edition will be able to load this onto a world and play it. Player input is collected via a datapack that changes colors on the screen when keys are pressed, but besides that the entire game’s code is contained in a resource pack. It is complete with a tank-style movement system, key-door interactions, enemies, and an intuitive level loading system....
|
1793138006.9398832
|
1793224406.9398832
|
|
49748
|
Portfolio Website by @DaintyDust | Stardance
|
DaintyDust
|
3
|
48.0
|
253
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-03T00:20:00Z", "hours": 3.0, "multiplier": 14.51, "payout": 44, "blessing": "neutral", "text": "In the reviews on my previous ships, people gave me alot of feedback on things that were missing or bugged, So i fixed most of them this update. First people asked for a for a fill tool. Secondly a few people pointed out that in a low grid size the paint page was really laggy. Lastly people mentioned that the mobile version was pretty bad. Try out the paint page at: https://daintydust.dev/paint Check out the site at: https://daintydust.dev", "repo": "https://github.com/DaintyDust/DaintyDust.github.io", "demo": "https://daintydust.dev/paint"}, {"ship_num": 2, "ts": "2026-09-30T21:13:00Z", "hours": 12.0, "multiplier": 7.38, "payout": 86, "blessing": "neutral", "text": "I added a sandbox page so people can play around with the text and pixel colors since alot of reviews like that! you can access it at https://daintydust.dev/sandbox (or press “ctrl+/” on any page to popup the commands menu But I didn’t find that enough, i wanted more. So a friend of mine suggested making a kind of paint program where you can draw pixels, shapes and text!", "repo": "https://github.com/DaintyDust/DaintyDust.github.io", "demo": "https://daintydust.dev/paint"}, {"ship_num": 3, "ts": "2026-09-23T21:00:04Z", "hours": 33.0, "multiplier": 5.24, "payout": 123, "blessing": "neutral", "text": "I made a portfolio website to show of my projects. I made the site using react + mantine because mantine UI makes it really easy to add and create components. In the beginning it was pretty challenging because i never created a site in react or with mantine before. So i had to learn all of those from the beginning A friend of mine recommended mantine UI, because it has really nice looking UI components, its free and its opensource! Since i updated my already existing site and rewriting it in react + mantine. I already had a stylesheet to style my website. So i could easily reuse that. Visit the site at: https://daintydust.dev View my portfolio at: https://daintydust.dev/portfolio", "repo": "https://github.com/DaintyDust/DaintyDust.github.io", "demo": "https://daintydust.dev/paint"}]...
|
[{"post_id": 76263, "ts": "202 [{"post_id": 76263, "ts": "2026-10-02T23:36:35Z", "hours": 0.6783, "text": "Added proper mobile support by changing some css selectors"}, {"post_id": 76241, "ts": "2026-10-02T20:26:50Z", "hours": 1.1919, "text": "Fixed the lag on small grid sizes by rebuilding the paint rendering by doing these changes: Drawings are now cached on an offscreen canvas and rendered via a single drawImage() call every frame instead of running 30,000+ fillRect() calls per second. Grouped pixels by color to avoid expensive canvas context switching. maybe still needs some work, but its already alot faster for things like text rendering"}, {"post_id": 75990, "ts": "2026-10-01T21:36:37Z", "hours": 1.1967, "text": "I added a fill tool, this was pretty hard to do since there are some complicated calculations that needed to be made. So for the really hard calculations i used forms online and a bit of AI"}, {"post_id": 75720, "ts": "2026-09-30T21:05:46Z", "hours": 3.6944, "text": "added a text tool to my paint page, you can now add text in different sizes. this was pretty easy to do since i already had a system to display text on my homepage, so i reused most stuff for that also added a tech stack to my portfolio, so others can see what languages i can program in. and I fix a bug where the electrons wouldn’t follow the grid when changing the grid size."}, {"post_id": 75381, "ts": "2026-09-29T21:49:13Z", "hours": 6.2064, "text": "Added a page to paint the pixels. https://daintydust.dev/paint you can use tools like: pencil, brush, rectangle, circle, eraser. or change the brush size or grid size. At first i thought it was pretty easy since i already had a working grid system that could display text. But after alot of trial and error i managed to add the first pen tool. After that was done it was pretty easy adding the other tools"}, {"post_id": 74645, "ts": "2026-09-27T20:44:28Z", "hours": 1.8028, "text": "Added a sandbox page so you can play around with the text and colors and stuff. you can also do this by pressing “ctrl + /” on any page. Also added a projects widget so you can easily go to my portfolio from the homepage"}, {"post_id": 72841, "ts": "2026-09-23T20:58:33Z", "hours": 0.8103, "text": "I updated the readme so i can ship my website!"}, {"post_id": 72784, "ts": "2026-09-23T18:49:33Z", "hours": 5.9961, "text": "added a portfolio page to display all the projects that i’ve worked on! I use multiple mantine packages to make the UI creation much easier. for example for the carousel, image compare and lightbox"}, {"post_id": 67646, "ts": "2026-09-13T20:04:53Z", "hours": 2.1081, "text": "added a page to display all my roblox accounts. it fetches the avatars, usernames and group info from the roblox api based on a list of userid’s."}, {"post_id": 63851, "ts": "2026-09-07T20:39:53Z", "hours": 4.6256, "text": "The site was still pretty laggy on lower end devices. So i reduces the amount of electrons for lower end devices. I also rewrote the whole UI with the mantine UI library. because of this i didn’t have to write my own widget dragging system."}, {"post_id": 48241, "ts": "2026-08-16T15:23:22Z", "hours": 19.7219, "text": "Previously my site was really laggy. my pc used 2gb of ram and 90% GPU (on a 3070 😭) on my site alone. This is why i wanted to rewrite the site. my old site just used basic html/css, thats also another reason i wanted to rewrite my site Since i wanted to learn create a site in react a chose that. Changes: Rewrote and redesigned my site in react. Add secret menu to change the text and colors of the site. Added possibility to add more languages"}]...
|
Title: Portfolio Website by @DaintyDust | Stardanc Title: Portfolio Website by @DaintyDust | Stardance
Devlogs:
Previously my site was really laggy. my pc used 2gb of ram and 90% GPU (on a 3070 😭) on my site alone. This is why i wanted to rewrite the site. my old site just used basic html/css, thats also another reason i wanted to rewrite my site Since i wanted to learn create a site in react a chose that. Changes: Rewrote and redesigned my site in react. Add secret menu to change the text and colors of the site. Added possibility to add more languages
The site was still pretty laggy on lower end devices. So i reduces the amount of electrons for lower end devices. I also rewrote the whole UI with the mantine UI library. because of this i didn’t have to write my own widget dragging system.
added a page to display all my roblox accounts. it fetches the avatars, usernames and group info from the roblox api based on a list of userid’s.
added a portfolio page to display all the projects that i’ve worked on! I use multiple mantine packages to make the UI creation much easier. for example for the carousel, image compare and lightbox
I updated the readme so i can ship my website!
Added a sandbox page so you can play around with the text and colors and stuff. you can also do this by pressing “ctrl + /” on any page. Also added a projects widget so you can easily go to my portfolio from the homepage
Added a page to paint the pixels. https://daintydust.dev/paint you can use tools like: pencil, brush, rectangle, circle, eraser. or change the brush size or grid size. At first i thought it was pretty easy since i already had a working grid system that could display text. But after alot of trial and error i managed to add the first pen tool. After that was done it was pretty easy adding the other tools
added a text tool to my paint page, you can now add text in different sizes. this was pretty easy to do since i already had a system to display text on my homepage, so i reused most stuff for that also added a tech stack to my portfolio, so others can see what languages i can program in. and I fix a bug where the electrons wouldn’t follow the grid when changing the grid size.
I added a fill tool, this was pretty hard to do since there are some complicated calculations that needed to be made. So for the really hard calculations i used forms online and a bit of AI
Fixed the lag on small grid sizes by rebuilding the paint rendering by doing these changes: Drawings are now cached on an offscreen canvas and rendered via a single drawImage() call every frame instead of running 30,000+ fillRect() calls per second. Grouped pixels by color to avoid expensive canvas context switching. maybe still needs some work, but its already alot faster for things like text rendering
Added proper mobile support by changing some css selectors
Ships:
I made a portfolio website to show of my projects. I made the site using react + mantine because mantine UI makes it really easy to add and create components. In the beginning it was pretty challenging because i never created a site in react or with mantine before. So i had to learn all of those from the beginning A friend of mine recommended mantine UI, because it has really nice looking UI components, its free and its opensource! Since i updated my already existing site and rewriting it in react + mantine. I already had a stylesheet to style my website. So i could easily reuse that. Visit the site at: https://daintydust.dev View my portfolio at: https://daintydust.dev/portfolio
I added a sandbox page so people can play around with the text and pixel colors since alot of reviews like that! you can access it at https://daintydust.dev/sandbox (or press “ctrl+/” on any page to popup the commands menu But I didn’t find that enough, i wanted more. So a friend of mine suggested making a kind of paint program where you can draw pixels, shapes and text!
In the reviews on my previous ships, people gave me alot of feedback on things that were missing or bugged, So i fixed most of them this update. First people asked for a for a fill tool. Secondly a few people pointed out that in a low grid size the paint page was really laggy. Lastly people mentioned that the mobile version was pretty bad. Try out the paint page at: https://daintydust.dev/paint Check out the site at: https://daintydust.dev...
|
1793148725.9981918
|
1793235125.9981918
|
|
51395
|
Untitled project by @Arushh | Stardance
|
Arushh
|
1
|
48.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-26T01:28:28Z", "hours": 48.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "After finishing the whole websites building stage I think the website is good although it was not as expected for example the styles were a little different then I expected mainly because of the less content in style and less colours but overall the website works as it should be and based on the working style of the website it works better than I expected it does its job and what the website is made for. It has a lot of components to work around with and build its own pc from scratch from not knowing anything to be able to build a pc in the pc builder. The user could save the build and could also see the other builds saved by other users. The website have large amount of learning material for each component which allows the user to learn from a large about of data for each component and each component has a dedicated learning page so the user can fully understand 1 part before moving to the other part. During the testing I started testing the basic function like if all the buttons, links and things work or not but then I started testing a little advanced things like messing with terminals and consoles to break the website and tried to bypass a feature in a very unexpected way. Mostly everything worked some feature didnt work which I forgot to add while making the website but I quicking fixed those things. But the overall testing part was good enough and it showed me that most of the important features are working and are not able to be broken easily. While testing I found multiple errors which I completely forgot to add in the website for example I forgot to add the limit on the words on the save build so the user was able to write long build names which I didn’t wanted so I had to add a limitation on it and I also didn’t realize the search feature allows special cheractors and the result does not display the correct search result instead shows all the component although it is not supposed to show any so I fixed those issues so I had to add some features and edit some routes and queries on them to add the limitation not just in html so that would not be bypassable and I changed few functions in the filter option so its more advanced on finding the correct name and giving no results for unintended things. The best thing about this website was that the database was working really well with the flask and python codes including some javascript and everything was connected even if one thing broke everything in the database also broke but at the end everything worked just right and I didn’t have many issues in that part. could use the component data, allow the user to create a build and then save that build to the database. The saved build could then be displayed again later. The search and filtering system also allowed users to find components more easily. This showed the planning of using everything together and then implementing it worked very well without any issues. One of the biggest challenge while making this website was working with complex database which was a very wide range data with a lot of components to it and then the many to many relationship which was super complicated and then the database codes to make things up working with together was the most challenging part although it turned out to be working really well. Another challenging part was to add a large amount of learning material in the website which I was able to do really quickly using the help of AI and adding the component to the database to display them in the website including the image where I had to manually add all the images for each of the component to make it look more professional then random image. If I would have changed things from my website from now I would have definitely have worked more on styling adding more gaming vibe and colourful animations. But overall I am happy with what I finished with ! Thank youu soo much enjoy using the website as I have put a lot of effort on it. thank you again !!!", "repo": "https://github.com/Arush2008/PC-Info-guide", "demo": "https://pcguide.dino.icu"}]...
|
[{"post_id": 73797, "ts": "202 [{"post_id": 73797, "ts": "2026-09-26T01:13:20Z", "hours": 1.61, "text": "I fixed a lot of stuff in this log firstly I added rename and delete button in the saved builds which remove the saved build and rename the builds name. I also fixed the database and then I fixed the backends so the website is more secure from getting broken or bypassed by user. Like I put the limitation of cherecters on the saved build name. I did it in the backend insted of html so people cannot break it using inspect. I also fixed the search filter so the user cannot put negative values in the price and for search even if user search with special characters the function will show nothing insted of showing all the parts as before."}, {"post_id": 73476, "ts": "2026-09-25T06:21:14Z", "hours": 0.93, "text": "I build new tables and coded the python quaries for those tables as I wanted to build a many to many relationship to make it more complex as I never tried making one although its not fully many to many but I was confued with this section only and I dont want to spend a lot more time on this section so I just added a little complex database with idea of many to many relationship where the build, brand and build components talks to each others with the other components to save the build and display the build from the components to the database and the website ! I changed my actual build table so it displays minimal stuff insted of repeting the components and I also had to change the html codes due to the change in the database."}, {"post_id": 63989, "ts": "2026-09-08T02:43:23Z", "hours": 45.4914, "text": "This is my first devlog although I already have finished this webiste as I was working on it for a different program but the program was ended and I was not able to get approved and havent got benefit from it ! So just want to put it here so my coding time does not go on waste although I learned a lot but still ! I had around 10 devlogs there as well ! I am soo bad at making devlogs as I always forget to add them but I have over 70 commits in the github."}]...
|
Title: Untitled project by @Arushh | Stardance
De Title: Untitled project by @Arushh | Stardance
Devlogs:
This is my first devlog although I already have finished this webiste as I was working on it for a different program but the program was ended and I was not able to get approved and havent got benefit from it ! So just want to put it here so my coding time does not go on waste although I learned a lot but still ! I had around 10 devlogs there as well ! I am soo bad at making devlogs as I always forget to add them but I have over 70 commits in the github.
I build new tables and coded the python quaries for those tables as I wanted to build a many to many relationship to make it more complex as I never tried making one although its not fully many to many but I was confued with this section only and I dont want to spend a lot more time on this section so I just added a little complex database with idea of many to many relationship where the build, brand and build components talks to each others with the other components to save the build and display the build from the components to the database and the website ! I changed my actual build table so it displays minimal stuff insted of repeting the components and I also had to change the html codes due to the change in the database.
I fixed a lot of stuff in this log firstly I added rename and delete button in the saved builds which remove the saved build and rename the builds name. I also fixed the database and then I fixed the backends so the website is more secure from getting broken or bypassed by user. Like I put the limitation of cherecters on the saved build name. I did it in the backend insted of html so people cannot break it using inspect. I also fixed the search filter so the user cannot put negative values in the price and for search even if user search with special characters the function will show nothing insted of showing all the parts as before.
Ships:
After finishing the whole websites building stage I think the website is good although it was not as expected for example the styles were a little different then I expected mainly because of the less content in style and less colours but overall the website works as it should be and based on the working style of the website it works better than I expected it does its job and what the website is made for. It has a lot of components to work around with and build its own pc from scratch from not knowing anything to be able to build a pc in the pc builder. The user could save the build and could also see the other builds saved by other users. The website have large amount of learning material for each component which allows the user to learn from a large about of data for each component and each component has a dedicated learning page so the user can fully understand 1 part before moving to the other part. During the testing I started testing the basic function like if all the buttons, links and things work or not but then I started testing a little advanced things like messing with terminals and consoles to break the website and tried to bypass a feature in a very unexpected way. Mostly everything worked some feature didnt work which I forgot to add while making the website but I quicking fixed those things. But the overall testing part was good enough and it showed me that most of the important features are working and are not able to be broken easily. While testing I found multiple errors which I completely forgot to add in the website for example I forgot to add the limit on the words on the save build so the user was able to write long build names which I didn’t wanted so I had to add a limitation on it and I also didn’t realize the search feature allows special cheractors and the result does not display the correct search result instead shows all the component although it is not supposed to show any so I fixed those issues so I had to add some features and edit some routes and queries on them to add the limitation not just in html so that would not be bypassable and I changed few functions in the filter option so its more advanced on finding the correct name and giving no results for unintended things. The best thing about this website was that the database was working really well with the flask and python codes including some javascript and everything was connected even if one thing broke everything in the database also broke but at the end everything worked just right and I didn’t have many issues in that part. could use the component data, allow the user to create a build and then save that build to the database. The saved build could then be displayed again later. The search and filtering system also allowed users to find components more easily. This showed the planning of using everything together and then implementing it worked very well without any issues. One of the biggest challenge while making this website was working with complex database which was a very wide range data with a lot of components to it and then the many to many relationship which was super complicated and then the database codes to make things up working with together was the most challenging part although it turned out to be working really well. Another challenging part was to add a large amount of learning material in the website which I was able to do really quickly using the help of AI and adding the component to the database to display them in the website including the image where I had to manually add all the images for each of the component to make it look more professional then random image. If I would have changed things from my website from now I would have definitely have worked more on styling adding more gaming vibe and colourful animations. But overall I am happy with what I finished with ! Thank youu soo much enjoy using the website as I have put a lot of effort on it. thank you again !!!...
|
1793152124.0611758
|
1793238524.0611758
|
|
53661
|
Enhance Prompts by @Tallurisaikumar | Stardance
|
Tallurisaikumar
|
1
|
48.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-28T11:15:35Z", "hours": 48.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Vibe Check provides an innovative platform for prompt design. It enables users to create prompts which elicit better responses from AI. Users can provide general requirements and let the system refine them The system adds relevant contexts, requirements, constraints, and technical specifications It teaches the user about what makes a good prompt A quality checklist helps them evaluate and improve their prompts Various prompting techniques can be applied to the prompt Multiple versions of the prompt can be generated Prompt templates for various applications such as application development, UI design, APIs, troubleshooting, and other AI applications are provided The user can save the prompt and manage versions using version control. Moreover, this innovative tool provides excellent English to Chinese translation to save tokens. Vibe Check can be used with various AI tools such as ChatGPT, Claude, Cursor, v0, Bolt, Gemini, and many more. It is a fantastic tool for developers, students, designers, and all other AI users who desire to create better prompts and achieve better results from their AI tools. It seeks to address the main problem with current prompts, which is unclear instructions leading to poor results. Vibe Check promises to make it easier, faster, smarter, and more effective to create prompts for AI applications.", "repo": "https://github.com/tallurisai9346-beep/Enhance-Prompts", "demo": "https://enhance-prompts-pt3g.vercel.app/"}]...
|
[{"post_id": 56558, "ts": "202 [{"post_id": 56558, "ts": "2026-08-28T11:14:02Z", "hours": 0.3394, "text": "finally my projecgt is complete and your prompts are ready to enhace without any ai it works coompletely without any ai commplete offline"}, {"post_id": 56397, "ts": "2026-08-28T04:48:07Z", "hours": 7.9847, "text": "we can change chinese optimized Directive"}, {"post_id": 55728, "ts": "2026-08-27T18:19:02Z", "hours": 3.035, "text": "ADD SOME MORE FEATURES"}, {"post_id": 55582, "ts": "2026-08-27T15:06:20Z", "hours": 1.2017, "text": "in vibe check may have templates in use to you resoures"}, {"post_id": 55303, "ts": "2026-08-27T01:35:31Z", "hours": 10.4431, "text": "next slide wokrs with any AI coading platform like bolt,lovable,chartgpt,ect……"}, {"post_id": 54896, "ts": "2026-08-26T03:29:54Z", "hours": 7.5028, "text": "after some many after therr step to better prompts degins iam ceeat in my project"}, {"post_id": 54586, "ts": "2026-08-25T16:41:27Z", "hours": 1.9217, "text": "i complete vibe check typing prompt page"}, {"post_id": 54296, "ts": "2026-08-25T07:40:55Z", "hours": 10.8544, "text": "Interface completed just now my project name is write the better prompts"}, {"post_id": 53909, "ts": "2026-08-24T16:48:10Z", "hours": 0.9831, "text": "just few minutes back i complet HTML code now iam staring CSS"}, {"post_id": 53768, "ts": "2026-08-24T13:30:37Z", "hours": 3.735, "text": "add new texts to my project"}, {"post_id": 53646, "ts": "2026-08-24T09:36:25Z", "hours": 0.2878, "text": "i started project to bulid prompts enhance to easy to for developers"}]...
|
Title: Enhance Prompts by @Tallurisaikumar | Stard Title: Enhance Prompts by @Tallurisaikumar | Stardance
Devlogs:
i started project to bulid prompts enhance to easy to for developers
add new texts to my project
just few minutes back i complet HTML code now iam staring CSS
Interface completed just now my project name is write the better prompts
i complete vibe check typing prompt page
after some many after therr step to better prompts degins iam ceeat in my project
next slide wokrs with any AI coading platform like bolt,lovable,chartgpt,ect……
in vibe check may have templates in use to you resoures
ADD SOME MORE FEATURES
we can change chinese optimized Directive
finally my projecgt is complete and your prompts are ready to enhace without any ai it works coompletely without any ai commplete offline
Ships:
Vibe Check provides an innovative platform for prompt design. It enables users to create prompts which elicit better responses from AI. Users can provide general requirements and let the system refine them The system adds relevant contexts, requirements, constraints, and technical specifications It teaches the user about what makes a good prompt A quality checklist helps them evaluate and improve their prompts Various prompting techniques can be applied to the prompt Multiple versions of the prompt can be generated Prompt templates for various applications such as application development, UI design, APIs, troubleshooting, and other AI applications are provided The user can save the prompt and manage versions using version control. Moreover, this innovative tool provides excellent English to Chinese translation to save tokens. Vibe Check can be used with various AI tools such as ChatGPT, Claude, Cursor, v0, Bolt, Gemini, and many more. It is a fantastic tool for developers, students, designers, and all other AI users who desire to create better prompts and achieve better results from their AI tools. It seeks to address the main problem with current prompts, which is unclear instructions leading to poor results. Vibe Check promises to make it easier, faster, smarter, and more effective to create prompts for AI applications....
|
1792878597.3297546
|
1793742597.3297546
|
|
57895
|
Blade of dawn by @Mech2782 | Stardance
|
Mech2782
|
1
|
48.0
|
103
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-03T18:06:35Z", "hours": 48.0, "multiplier": 10.27, "payout": 103, "blessing": "neutral", "text": "Made a 2d action rpg game, it was definitely challenging(alot actually) but it was fun to start with this 1st game which introduced me into game dev, might make a game on my own ig in few days or a week.", "repo": "https://github.com/Sai-Santosh09/Blade-of-Dawn", "demo": "https://mech-2782.itch.io/blade-of-dawn"}]...
|
[{"post_id": 60992, "ts": "202 [{"post_id": 60992, "ts": "2026-09-03T18:00:50Z", "hours": 47.835, "text": "I didn’t knew about the devlog thing cuz I thought to ship this in other ysws but didn’t get time so here I go"}]...
|
Title: Blade of dawn by @Mech2782 | Stardance
Dev Title: Blade of dawn by @Mech2782 | Stardance
Devlogs:
I didn’t knew about the devlog thing cuz I thought to ship this in other ysws but didn’t get time so here I go
Ships:
Made a 2d action rpg game, it was definitely challenging(alot actually) but it was fun to start with this 1st game which introduced me into game dev, might make a game on my own ig in few days or a week....
|
1793127115.6522136
|
1793213515.6522136
|
|
52082
|
GCL - Game Cartridge Launcher by @dylz | Stardance
|
dylz
|
0
|
47.89
|
0
|
[]
|
[{"post_id": 80259, "ts": "202 [{"post_id": 80259, "ts": "2026-10-16T23:47:29Z", "hours": 10.5383, "text": "Backend work Alright, it’s been a while since I’ve worked on this, and coming back I realize that I knew so little about any of how drives, media, filesystems, and all that works. So, I’m going to give a quick synopsis of all I’ve learned (keep in mind, this all applies to LINUX ONLY since that’s what I’m on, the app will come to windows eventually but for the time being I’m not worrying about it): Storage devices are where your computer stores data for storage. One physical device (i.e. a thumb drive) corresponds to one drive , although some physical devices can have multiple drives. These drives are split into BlockDevices, so one drive can have many Block Devices . Block devices can have one or none filesystems; keep in mind there isn’t one universal filesystem that everybody agreed to use so we could all be happy; you’re gonna have to deal with FAT32, NTFS, ext4, exfat and btrfs at a minimum. Now, those filesystems aren’t immediately accessible; they need to be mounted , which esentially means just putting it somewhere in another filesystem on your computer, probably the main one, like your HDD/SSD. A single blockdevice can have many mount points, each with different permissions; one might have NOEXEC permissions so you can’t launch a game from there, another might have RO so you can’t write anything to it. Keep in mind, these permissions are completely separate from file and directory permissions; those are a whole ’nother can of worms. Basically, Physical Device -> Drive[] , Drive -> BlockDevice[] , BlockDevice -> Filesystem? , Filesystem -> (MountPath, Permissions)[] . That’s the really really really big oversimplification but yeah. If you read to here, hopefully you know understand my pain; I commend your patience."}, {"post_id": 61864, "ts": "2026-09-05T00:06:37Z", "hours": 12.6272, "text": "New UI, massively improved backend API To be honest basically all of this devlog was backend, but I’m really happy with how it is now! The time I’ve spent learning rust (there’s a lot of stuff lol) paid off and now I can easily expand the format and add new features whenever I please! For stuff that you can actually see, here’s a new concept UI I made. I’m not at all a designer and I deliberately made this project backend/API focused so that better designers than me could be the ones making actually nice looking apps, but i’m pretty happy with how it looks right now! The last major feature I need to add is animated banners. Unfortunately, there aren’t really any great formats for this, but I’m planning on expirementing with Lottie as it seems like the closest option to what I want. There’ll still be video and static image support, of course, but animated banners are objectively way cooler. Anyways, yeah that’s what I’m gonna focus on next devlog. After that, I’ll do a round of polishing but that should be the first version (call it alpha maybe?) of the app finished! Very happy with the progress :) (see app and json schema preview below)"}, {"post_id": 56892, "ts": "2026-08-28T21:49:32Z", "hours": 14.8028, "text": "an actually good demo next devlog i promise Ok the reason this count is so high is because I spent a diabolical amount of time researching, practicing and learning a bunch of new things. I had never done asynchronous or concurrency before, and now I’m slightly ok at it!!! yippee!! Anyways, under the hood we use events (via UDisks2 and d-bus which was a whole other can of worms) now instead of lsblk to detect when a usb goes in and out so that’ll be a lot more responsive. On that note, I still gotta code windows support (I’m on linux) but I think windows, just by nature of not being linux and having 20 billion different ways to do everything will be a lot easier. mac also exists but uhh erm idk i don’t really wanna do allat (picture is some random ahh code cuz i have no new ui in the slightest lol)"}, {"post_id": 52603, "ts": "2026-08-22T20:08:05Z", "hours": 9.9239, "text": "tbh the majority of these hours have been learning rust, so i’m just gonna explain the project: I’m trying to make a standardized format + launcher for physical pc games . the idea is you’ll just be able to plug in a usb, it’ll get detected and you can click a button to run the game! I also want it to have support for animated banners, metadata, all that stuff. Basically just think like how the wii did it lol anyways next log hopefully i’ll have some gui, even if its just a test. cyall then img is the tentative format"}]...
|
Title: GCL - Game Cartridge Launcher by @dylz | St Title: GCL - Game Cartridge Launcher by @dylz | Stardance
Devlogs:
tbh the majority of these hours have been learning rust, so i’m just gonna explain the project: I’m trying to make a standardized format + launcher for physical pc games . the idea is you’ll just be able to plug in a usb, it’ll get detected and you can click a button to run the game! I also want it to have support for animated banners, metadata, all that stuff. Basically just think like how the wii did it lol anyways next log hopefully i’ll have some gui, even if its just a test. cyall then img is the tentative format
an actually good demo next devlog i promise Ok the reason this count is so high is because I spent a diabolical amount of time researching, practicing and learning a bunch of new things. I had never done asynchronous or concurrency before, and now I’m slightly ok at it!!! yippee!! Anyways, under the hood we use events (via UDisks2 and d-bus which was a whole other can of worms) now instead of lsblk to detect when a usb goes in and out so that’ll be a lot more responsive. On that note, I still gotta code windows support (I’m on linux) but I think windows, just by nature of not being linux and having 20 billion different ways to do everything will be a lot easier. mac also exists but uhh erm idk i don’t really wanna do allat (picture is some random ahh code cuz i have no new ui in the slightest lol)
New UI, massively improved backend API To be honest basically all of this devlog was backend, but I’m really happy with how it is now! The time I’ve spent learning rust (there’s a lot of stuff lol) paid off and now I can easily expand the format and add new features whenever I please! For stuff that you can actually see, here’s a new concept UI I made. I’m not at all a designer and I deliberately made this project backend/API focused so that better designers than me could be the ones making actually nice looking apps, but i’m pretty happy with how it looks right now! The last major feature I need to add is animated banners. Unfortunately, there aren’t really any great formats for this, but I’m planning on expirementing with Lottie as it seems like the closest option to what I want. There’ll still be video and static image support, of course, but animated banners are objectively way cooler. Anyways, yeah that’s what I’m gonna focus on next devlog. After that, I’ll do a round of polishing but that should be the first version (call it alpha maybe?) of the app finished! Very happy with the progress :) (see app and json schema preview below)
Backend work Alright, it’s been a while since I’ve worked on this, and coming back I realize that I knew so little about any of how drives, media, filesystems, and all that works. So, I’m going to give a quick synopsis of all I’ve learned (keep in mind, this all applies to LINUX ONLY since that’s what I’m on, the app will come to windows eventually but for the time being I’m not worrying about it): Storage devices are where your computer stores data for storage. One physical device (i.e. a thumb drive) corresponds to one drive , although some physical devices can have multiple drives. These drives are split into BlockDevices, so one drive can have many Block Devices . Block devices can have one or none filesystems; keep in mind there isn’t one universal filesystem that everybody agreed to use so we could all be happy; you’re gonna have to deal with FAT32, NTFS, ext4, exfat and btrfs at a minimum. Now, those filesystems aren’t immediately accessible; they need to be mounted , which esentially means just putting it somewhere in another filesystem on your computer, probably the main one, like your HDD/SSD. A single blockdevice can have many mount points, each with different permissions; one might have NOEXEC permissions so you can’t launch a game from there, another might have RO so you can’t write anything to it. Keep in mind, these permissions are completely separate from file and directory permissions; those are a whole ’nother can of worms. Basically, Physical Device -> Drive[] , Drive -> BlockDevice[] , BlockDevice -> Filesystem? , Filesystem -> (MountPath, Permissions)[] . That’s the really really really big oversimplification but yeah. If you read to here, hopefully you know understand my pain; I commend your patience....
|
1792695063.4179816
|
1793299863.4179816
|
|
51485
|
UNIVERSE WEB by @aryamankumar2403 | Stardance
|
aryamankumar2403
|
2
|
47.69
|
186
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-31T02:42:34Z", "hours": 7.0, "multiplier": 2.41, "payout": 17, "blessing": "neutral", "text": "I removed aal bugs and make the Lamp working", "repo": "https://github.com/Universe-Classes/UNIVERSE-CLASSES", "demo": "https://universe-classes.github.io/UNIVERSE-CLASSES/"}, {"ship_num": 2, "ts": "2026-08-24T08:49:41Z", "hours": 38.0, "multiplier": 4.51, "payout": 169, "blessing": "neutral", "text": "I am building an online learning platform called ‘Universe Classes’ specifically for Class 9 and 10 students following the Bihar Board curriculum. It is a complete portal where students can access free and paid video courses, download structured study materials and notes, and take daily practice quizzes. I’ve also built a dedicated admin panel to manage all the courses, student data, and notifications seamlessly", "repo": "https://github.com/Universe-Classes/UNIVERSE-CLASSES", "demo": "https://universe-classes.github.io/UNIVERSE-CLASSES/"}]...
|
[{"post_id": 59432, "ts": "202 [{"post_id": 59432, "ts": "2026-09-01T08:51:45Z", "hours": 2.6936, "text": "Today I added a 10-minute free trial option to the Universe Classes login page.Now new students can try the platform for 10 minutes before deciding to continue. I wanted to make the first experience simple and useful, so students can check the classes and see how the website works without directly buying anything.I’m also working on improving the login page design and making the whole experience smoother and easier to use.More updates coming soon on Universe Classes."}, {"post_id": 58606, "ts": "2026-08-31T02:41:27Z", "hours": 0.5144, "text": "hey i removed aaal bugs plese rtae"}, {"post_id": 56398, "ts": "2026-08-28T04:53:51Z", "hours": 0.5094, "text": "HI FRIENDS MY SITE NEW LOOK"}, {"post_id": 55414, "ts": "2026-08-27T07:03:20Z", "hours": 3.0514, "text": "I re writed aal css 5th Time"}, {"post_id": 55038, "ts": "2026-08-26T13:53:22Z", "hours": 1.4925, "text": "hi friends i worked 40hours to make this site checcker sayed its vibe coded or maked by ai i writted aal codes again of css and thats my last try i shiiped 4 times but aal times rejected this is last time iam shipping my project"}, {"post_id": 54921, "ts": "2026-08-26T04:31:57Z", "hours": 0.8578, "text": "New Look Of My login Padge The Webiste ais Still Have Errorrs I am trying To fix It"}, {"post_id": 54223, "ts": "2026-08-25T03:47:38Z", "hours": 0.7039, "text": "New look OF my EDUCATION SITE THATS GGOD AND PRETTY"}, {"post_id": 53618, "ts": "2026-08-24T08:29:22Z", "hours": 4.4983, "text": "I AM SHIPPING UNIVERSE CLASSES THE SITE WORK PROPERLY BUT YOU HAVE TO WAIT FOR 30 TO 40 SECOND TO LOAD CONTRNTS"}, {"post_id": 53078, "ts": "2026-08-23T14:24:42Z", "hours": 8.5289, "text": "HI MY SITE IS CRASES WHEN I LOGIN WITH 15 DEVICES I AM SOLVING IUSSUE WAIT FOR SOME DAY😞"}, {"post_id": 52411, "ts": "2026-08-22T15:18:14Z", "hours": 3.5128, "text": "I am building Universe Classesa E-learning Platform For Class 9 and Right now, I"}, {"post_id": 52248, "ts": "2026-08-22T10:45:47Z", "hours": 4.3808, "text": "Currently, I am developing a comprehensive, full-stack e-learning platform called ‘Universe Classes,’ specifically designed to bridge the educational gap for Class 9 and 10 students studying under the Bihar Board curriculum.The project is split into two primary ecosystems: a student-facing portal and a powerful, centralized Admin Control Panel.On the student side, the goal is to provide an intuitive, high-performance interface where learners can create secure accounts via Email or Google Authentication. Once logged in, students gain access to a dynamic dashboard that tracks their progress. The platform seamlessly categorizes content into Free and Paid tiers, offering high-quality video lectures, downloadable structured study materials (like NCERT solutions and hand-written notes), and an interactive daily MCQ quiz engine built to test their knowledge and boost exam preparation.On the backend and administrative side, I am building a robust Admin Panel that gives educators complete control over the application. Admins can upload unlimited courses, link YouTube or Google Drive lectures, manage PDF notes, update live notifications, and highlight academic milestones through a Toppers showcase. We are currently integrating Firebase to securely manage user authentication, session states, and real-time database structures, ensuring that sensitive student data and premium course content remain fully protected.Ultimately, ‘Universe Classes’ isn’t just a website—it is a scalable, secure, and production-ready educational ecosystem built to make quality learning accessible, organized, and affordable"}, {"post_id": 52074, "ts": "2026-08-22T04:39:18Z", "hours": 1.6956, "text": "Some paid notes was just aaded"}, {"post_id": 52046, "ts": "2026-08-22T02:49:16Z", "hours": 0.3086, "text": "I am currently developing an e-learning platform called ‘Universe Classes’ for Class 9 and 10 students. I’ve already designed the frontend interface and a robust admin dashboard. Right now, I am focusing on integrating the backend services, handling secure user login authentication, and structuring the database to manage both free and premium courses and study materials"}, {"post_id": 52024, "ts": "2026-08-22T01:56:09Z", "hours": 10.7028, "text": "LOOK AT THE LOGIN PADGE"}, {"post_id": 51502, "ts": "2026-08-21T08:19:29Z", "hours": 4.4867, "text": "The site is Almost Redy Aal functions are working prperly But site is not proper smooth I am tring to make it perfect"}]...
|
Title: UNIVERSE WEB by @aryamankumar2403 | Stardan Title: UNIVERSE WEB by @aryamankumar2403 | Stardance
Devlogs:
The site is Almost Redy Aal functions are working prperly But site is not proper smooth I am tring to make it perfect
LOOK AT THE LOGIN PADGE
I am currently developing an e-learning platform called ‘Universe Classes’ for Class 9 and 10 students. I’ve already designed the frontend interface and a robust admin dashboard. Right now, I am focusing on integrating the backend services, handling secure user login authentication, and structuring the database to manage both free and premium courses and study materials
Some paid notes was just aaded
Currently, I am developing a comprehensive, full-stack e-learning platform called ‘Universe Classes,’ specifically designed to bridge the educational gap for Class 9 and 10 students studying under the Bihar Board curriculum.The project is split into two primary ecosystems: a student-facing portal and a powerful, centralized Admin Control Panel.On the student side, the goal is to provide an intuitive, high-performance interface where learners can create secure accounts via Email or Google Authentication. Once logged in, students gain access to a dynamic dashboard that tracks their progress. The platform seamlessly categorizes content into Free and Paid tiers, offering high-quality video lectures, downloadable structured study materials (like NCERT solutions and hand-written notes), and an interactive daily MCQ quiz engine built to test their knowledge and boost exam preparation.On the backend and administrative side, I am building a robust Admin Panel that gives educators complete control over the application. Admins can upload unlimited courses, link YouTube or Google Drive lectures, manage PDF notes, update live notifications, and highlight academic milestones through a Toppers showcase. We are currently integrating Firebase to securely manage user authentication, session states, and real-time database structures, ensuring that sensitive student data and premium course content remain fully protected.Ultimately, ‘Universe Classes’ isn’t just a website—it is a scalable, secure, and production-ready educational ecosystem built to make quality learning accessible, organized, and affordable
I am building Universe Classesa E-learning Platform For Class 9 and Right now, I
HI MY SITE IS CRASES WHEN I LOGIN WITH 15 DEVICES I AM SOLVING IUSSUE WAIT FOR SOME DAY😞
I AM SHIPPING UNIVERSE CLASSES THE SITE WORK PROPERLY BUT YOU HAVE TO WAIT FOR 30 TO 40 SECOND TO LOAD CONTRNTS
New look OF my EDUCATION SITE THATS GGOD AND PRETTY
New Look Of My login Padge The Webiste ais Still Have Errorrs I am trying To fix It
hi friends i worked 40hours to make this site checcker sayed its vibe coded or maked by ai i writted aal codes again of css and thats my last try i shiiped 4 times but aal times rejected this is last time iam shipping my project
I re writed aal css 5th Time
HI FRIENDS MY SITE NEW LOOK
hey i removed aaal bugs plese rtae
Today I added a 10-minute free trial option to the Universe Classes login page.Now new students can try the platform for 10 minutes before deciding to continue. I wanted to make the first experience simple and useful, so students can check the classes and see how the website works without directly buying anything.I’m also working on improving the login page design and making the whole experience smoother and easier to use.More updates coming soon on Universe Classes.
Ships:
I am building an online learning platform called ‘Universe Classes’ specifically for Class 9 and 10 students following the Bihar Board curriculum. It is a complete portal where students can access free and paid video courses, download structured study materials and notes, and take daily practice quizzes. I’ve also built a dedicated admin panel to manage all the courses, student data, and notifications seamlessly
I removed aal bugs and make the Lamp working...
|
1792878812.0062625
|
1793742812.0062625
|
|
35769
|
PrismStudio by @Micah | Stardance
|
Micah
|
0
|
47.61
|
0
|
[]
|
[{"post_id": 29274, "ts": "202 [{"post_id": 29274, "ts": "2026-07-16T02:48:58Z", "hours": 47.6064, "text": "Stress testing it to make sure the gpu rendering works properly in zag"}]...
|
Title: PrismStudio by @Micah | Stardance
Devlogs: Title: PrismStudio by @Micah | Stardance
Devlogs:
Stress testing it to make sure the gpu rendering works properly in zag...
|
1792608859.3615768
|
1793213659.3615768
|
|
42167
|
CAFE SHIFT by @Lalith | Stardance
|
Lalith
|
1
|
47.61
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-31T10:36:55Z", "hours": 13.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "This is a 3D website on my hackathon project", "repo": "https://github.com/Hustlenix/cafe-shift-rush-hour", "demo": "https://cafe-shift-rush-hour.vercel.app/"}]...
|
[{"post_id": 80557, "ts": "202 [{"post_id": 80557, "ts": "2026-10-18T04:43:44Z", "hours": 5.0358, "text": "DEVLOG 1: Plan: What I am planning to do is an pixl kinda game which has jessica in it, and an ai chatbot of jessica at the corener of the game, and when you order the food, you can interact with jessica too."}, {"post_id": 69599, "ts": "2026-09-17T11:59:28Z", "hours": 14.8758, "text": "As i felt that my every project and stuff is getting regected, so i deleted everything and started it from first and i think it is a good start. Stay tuned gng"}, {"post_id": 42602, "ts": "2026-08-07T12:49:41Z", "hours": 1.175, "text": "This was juat a simple website trial thing in start, but now it is my whole life style. I spent my last hour trying to figure where to add the 3d robot and idk how to use it and make it work it is just randomly moving and getting worse, and i thought that AI project cycle is so hard to build and integrate it to my website so i’ve programmed a AI assistance thingy how is it?🤣😭"}, {"post_id": 42338, "ts": "2026-08-07T00:39:23Z", "hours": 0.8786, "text": "Simulating the physical robot before we build it! We’re building a physical ocean-cleaning robot for a hackathon, but testing hardware mechanics in real water takes time. So I decided to build a full 3D WebGL simulator right in the browserand make it as a website!Added ocean floor debris (“crap”) and configured the robot entity to simulate autonomous cleanup routes.Programmed custom lighting and exponential underwater fog (THREE.FogExp2) to mimic deep water light decay.Tweaked the rendering loop to run smoothly at 60 FPS without dropping frames. Just tryna add an interactive HUD and keyboard controls so users can pilot the guardian themselves. Try it out in: hustlenix.github.io/aquaguardian! Huge shoutout to https://poly.pizza/m/QCm7qe9uNJ as thats where i got the robo, if not i wouldn’t come this far unto building a 3d robo."}, {"post_id": 42313, "ts": "2026-08-06T23:42:59Z", "hours": 0.9228, "text": "I just changed the background and to stimulate our real hardware project I have added some crap to clean up, and also a robot to clean up the crap"}, {"post_id": 41987, "ts": "2026-08-06T15:05:23Z", "hours": 0.7097, "text": "Tried something new, Today i tried to add some new 3D objects to make it evn cooler, changed the background for oceanic blue, and programmed a robot that is tryna simulate our robot that we are gonna build"}, {"post_id": 41931, "ts": "2026-08-06T13:36:58Z", "hours": 2.2569, "text": "Just a normal day continuously verifing changes that don’t break the project😅😭."}, {"post_id": 41684, "ts": "2026-08-06T01:51:53Z", "hours": 1.6992, "text": "hour 2 of “i have no plan i just opened the laptop” 💻no new feature, no bug to fix, just poking at AquaGuardian because i missed it lol. tweaked some lighting, stared at the robot for a solid 10 min like it owes me money, probably broke something i won’t notice till 2am. that’s the whole update. sometimes you code for a reason, sometimes you just code hustlenix.github.io/aquaguardian 🤖"}, {"post_id": 41425, "ts": "2026-08-05T16:52:57Z", "hours": 1.2886, "text": "I built an entire OCEAN inside your browser, scroll down and you’re literally diving — deeper water, real fish, glowing coral, and our lil guardian robot cleaning trash off the seafloor 🤣. no video, no images, just live 3D running at 60fps. took 1 month, 42 commits, and my whole sleep schedule. hustlenix.github.io/aquaguardian and here is a random AI image on it on how we are assuming it should work and look like."}, {"post_id": 41316, "ts": "2026-08-05T13:43:05Z", "hours": 0.4456, "text": "Wake, Eat, Code, Sleep, Repeat…………………………….."}, {"post_id": 39431, "ts": "2026-08-02T11:55:35Z", "hours": 0.5833, "text": "Our goals for cleaning the oceans"}, {"post_id": 38997, "ts": "2026-08-01T17:03:33Z", "hours": 1.0408, "text": "Finally"}, {"post_id": 38707, "ts": "2026-08-01T07:44:56Z", "hours": 0.7222, "text": "Finally cooked up a W Read Me file"}, {"post_id": 38692, "ts": "2026-08-01T06:31:56Z", "hours": 1.1536, "text": "Finally finished it, ig……………………………….."}, {"post_id": 38630, "ts": "2026-08-01T03:51:10Z", "hours": 0.4208, "text": "When the code is not coding😭😭💔"}, {"post_id": 38436, "ts": "2026-07-31T19:55:18Z", "hours": 1.4039, "text": "Finally added a Read me file"}, {"post_id": 37962, "ts": "2026-07-31T01:02:05Z", "hours": 12.7486, "text": "Just trying new things……………………."}]...
|
Title: CAFE SHIFT by @Lalith | Stardance
Devlogs: Title: CAFE SHIFT by @Lalith | Stardance
Devlogs:
Just trying new things…………………….
Finally added a Read me file
When the code is not coding😭😭💔
Finally finished it, ig………………………………..
Finally cooked up a W Read Me file
Finally
Our goals for cleaning the oceans
Wake, Eat, Code, Sleep, Repeat……………………………..
I built an entire OCEAN inside your browser, scroll down and you’re literally diving — deeper water, real fish, glowing coral, and our lil guardian robot cleaning trash off the seafloor 🤣. no video, no images, just live 3D running at 60fps. took 1 month, 42 commits, and my whole sleep schedule. hustlenix.github.io/aquaguardian and here is a random AI image on it on how we are assuming it should work and look like.
hour 2 of “i have no plan i just opened the laptop” 💻no new feature, no bug to fix, just poking at AquaGuardian because i missed it lol. tweaked some lighting, stared at the robot for a solid 10 min like it owes me money, probably broke something i won’t notice till 2am. that’s the whole update. sometimes you code for a reason, sometimes you just code hustlenix.github.io/aquaguardian 🤖
Just a normal day continuously verifing changes that don’t break the project😅😭.
Tried something new, Today i tried to add some new 3D objects to make it evn cooler, changed the background for oceanic blue, and programmed a robot that is tryna simulate our robot that we are gonna build
I just changed the background and to stimulate our real hardware project I have added some crap to clean up, and also a robot to clean up the crap
Simulating the physical robot before we build it! We’re building a physical ocean-cleaning robot for a hackathon, but testing hardware mechanics in real water takes time. So I decided to build a full 3D WebGL simulator right in the browserand make it as a website!Added ocean floor debris (“crap”) and configured the robot entity to simulate autonomous cleanup routes.Programmed custom lighting and exponential underwater fog (THREE.FogExp2) to mimic deep water light decay.Tweaked the rendering loop to run smoothly at 60 FPS without dropping frames. Just tryna add an interactive HUD and keyboard controls so users can pilot the guardian themselves. Try it out in: hustlenix.github.io/aquaguardian! Huge shoutout to https://poly.pizza/m/QCm7qe9uNJ as thats where i got the robo, if not i wouldn’t come this far unto building a 3d robo.
This was juat a simple website trial thing in start, but now it is my whole life style. I spent my last hour trying to figure where to add the 3d robot and idk how to use it and make it work it is just randomly moving and getting worse, and i thought that AI project cycle is so hard to build and integrate it to my website so i’ve programmed a AI assistance thingy how is it?🤣😭
As i felt that my every project and stuff is getting regected, so i deleted everything and started it from first and i think it is a good start. Stay tuned gng
DEVLOG 1: Plan: What I am planning to do is an pixl kinda game which has jessica in it, and an ai chatbot of jessica at the corener of the game, and when you order the food, you can interact with jessica too.
Ships:
This is a 3D website on my hackathon project...
|
1793108904.8079953
|
1793195304.8079953
|
|
47834
|
student-nexus by @dineshkarthik | Stardance
|
dineshkarthik
|
0
|
47.55
|
0
|
[]
|
[{"post_id": 60970, "ts": "202 [{"post_id": 60970, "ts": "2026-09-03T17:31:26Z", "hours": 7.0306, "text": "succesfully added one personal development tools and one personal data tool they are pomodora which makes you more productive and helps you to completely focus on a particular works and a personla dairyy which tracks your data it is like a e dairy which stores all your text and your acheveiments i aslo added an option to upload photos too my next features is to make it store all the data locally in your system and add an import export option to it and also add a light and dark theme and also a custom adjustable time for pomodora not a static 25 minutes and a animated dairy opening with multiple fonts options to make it ultimate nexus hub which needs everything for a student to do day today works"}, {"post_id": 58927, "ts": "2026-08-31T14:24:05Z", "hours": 7.9036, "text": "Added one of the most important and most useful part of this website which helps you find all the suefull websites in a single place in a category and i also added the feature that you can add your own section own links and names with emojies literally my website is becoming way more productive than i expected"}, {"post_id": 58192, "ts": "2026-08-30T15:27:01Z", "hours": 8.7286, "text": "Everything you learn is not useless there is nothing in the world that is useless .While developing the project it is proved that going to school and learning unknown formulas of mathematics is useful at that age we were thinking like what is the use of this trigonometry what are these formulas where do we use its just for exams but now a realisation came that everything teaches and helps you in your life.Life is a book and every day is a lesson .Literally this stradance platform teaching me a lot of things rather than techinical knowledge it is helping to develop myself once more i am thanking this platform for this amazing programme #stardance #hackclub @dineshkarthik"}, {"post_id": 57502, "ts": "2026-08-29T17:49:06Z", "hours": 8.1503, "text": "All suggestions and updates are acceptable i want sugegstions to improve my ui and gradually website is taking shape i can see the pichart working all my school mathematics helped me to calculates works percentage and overall performance i am excited to complete this project as soon as possible"}, {"post_id": 56486, "ts": "2026-08-28T08:31:31Z", "hours": 8.0961, "text": "The most beautiful part of a developer is completed and that is the CSS part with a long 8 hours of time i completed the alignment flexibility grids and minimal colour structure there is a single last big part is about to start the Javascript i am builting this productive tool completely using frontend no backend no database requirement it works on browser cache storage a very simple website having everything for productivity it not only helps for students it helps to all who needs to work more productively and i think it will take an another full day may be a 20-25 hours to fullfill all my features with complete working project ."}, {"post_id": 55452, "ts": "2026-08-27T09:30:47Z", "hours": 7.6458, "text": "After a lots of efforts and time i completed a first step that is the structure part of html my whole html code is ready to shine with the stylings with css which is the most colourful and interactive for users but a nightmare for a developer. haah my next step will be way longer and also consumes my sleep time a lot ready for the next devlog you will see a clean interactive and user friendly panel of this html in a organised way"}]...
|
Title: student-nexus by @dineshkarthik | Stardance Title: student-nexus by @dineshkarthik | Stardance
Devlogs:
After a lots of efforts and time i completed a first step that is the structure part of html my whole html code is ready to shine with the stylings with css which is the most colourful and interactive for users but a nightmare for a developer. haah my next step will be way longer and also consumes my sleep time a lot ready for the next devlog you will see a clean interactive and user friendly panel of this html in a organised way
The most beautiful part of a developer is completed and that is the CSS part with a long 8 hours of time i completed the alignment flexibility grids and minimal colour structure there is a single last big part is about to start the Javascript i am builting this productive tool completely using frontend no backend no database requirement it works on browser cache storage a very simple website having everything for productivity it not only helps for students it helps to all who needs to work more productively and i think it will take an another full day may be a 20-25 hours to fullfill all my features with complete working project .
All suggestions and updates are acceptable i want sugegstions to improve my ui and gradually website is taking shape i can see the pichart working all my school mathematics helped me to calculates works percentage and overall performance i am excited to complete this project as soon as possible
Everything you learn is not useless there is nothing in the world that is useless .While developing the project it is proved that going to school and learning unknown formulas of mathematics is useful at that age we were thinking like what is the use of this trigonometry what are these formulas where do we use its just for exams but now a realisation came that everything teaches and helps you in your life.Life is a book and every day is a lesson .Literally this stradance platform teaching me a lot of things rather than techinical knowledge it is helping to develop myself once more i am thanking this platform for this amazing programme #stardance #hackclub @dineshkarthik
Added one of the most important and most useful part of this website which helps you find all the suefull websites in a single place in a category and i also added the feature that you can add your own section own links and names with emojies literally my website is becoming way more productive than i expected
succesfully added one personal development tools and one personal data tool they are pomodora which makes you more productive and helps you to completely focus on a particular works and a personla dairyy which tracks your data it is like a e dairy which stores all your text and your acheveiments i aslo added an option to upload photos too my next features is to make it store all the data locally in your system and add an import export option to it and also add a light and dark theme and also a custom adjustable time for pomodora not a static 25 minutes and a animated dairy opening with multiple fonts options to make it ultimate nexus hub which needs everything for a student to do day today works...
|
1792896824.5228674
|
1793760824.5228674
|
|
47985
|
DoubleDeltas by @parkerrupe | Stardance
|
parkerrupe
|
0
|
47.5
|
0
|
[]
|
[{"post_id": 55952, "ts": "202 [{"post_id": 55952, "ts": "2026-08-08T00:00:00Z", "hours": 2.0, "text": "I spent 2 entire hours putting the full printer cad together. It looks so good! Parker, how could adding just the gantries take 2 hours, you ask? Well well well. Basically, each ball joint had to be defined as a ball joint in fusion with proper motion limits and whatnot. And fusion does NOT like this. Fusion crashed 3 times. It errored out unrelated things for no reason more times than I rememeber. It took multiple MINUTES to load each ball joint at times. It was pure torture. But I got it done! It’s pretty cool, I defined all the linear rails as sliders and stuff and so I can literally drag around the effectors and they move like a delta should. One note, the bed has been lowered to 160mm instead of 180mm. This is because of some future plans and also because it just feels better in terms of proportions. It looks so nice now! Oh, and I had to make the printer taller. We are now using 600mm rails instead of 500mm as my arm length was incorrect. Turns out, you can’t just optimize for a 90mm gantry, because the quantum delta side needs way more travel than that. It was actually pretty funny when I first put the cad together with the short arms. Squatted delta. I think it’s funny. Anywho, I got it all done eventually and got fusion to stop crying about it (mostly). It does take noticeably longer to open the document now and timeline changes take a significant amount of time to fully propagate through all the joints. But, because I had to increase the arm lengths, I suddenly didn’t have enough travel for the carriages. Hence why the frame is bigger now."}, {"post_id": 55953, "ts": "2026-08-07T00:00:00Z", "hours": 6.0, "text": "Idlers! I started out with a simple sketch that shows part of the extrusion profile and the linear rail profile, then used that to align my idler hardware (two bearings, a pulley, and a shaft). From there, I made a sketch for the mounting block. This would wrap around to the other side aswell, bolting onto both sides of the vertical extrusion and holding out the tensioner. I guess I should talk about my tensioning method. Basically, I am going to have two idlers “floating” in the middle of the frame vertically. One for the top belt, one for the bottom. These then get pulled towards eachother by bolts and nuts, pulling tension on both top and bottom at once. I think it will work? The only issue is any differences in assembly or belt length will render this useless. Once tension is pulled, the side bolts get clamped down hard onto the vertical extrusion. Easy peasy. So anyways, the body gets doubled to the other side and connected at the middle. I then added nut recesses so that I don’t need to hold the nut while I pull tension, and flattened one side of the roundover on the end. This would be the mating surface of the two idlers, so it makes sense to be flat. This gets mirrored to the other side along with the hardware. Boom, now we have two idlers that meet at the middle. A couple fillets here and there, assigning materials, and adding bolts gets us to this result. I think this turned out really nice! I actually initiallly had some issues with where my mounting holes were and how long the idler was. Turns out I added 8mm somewhere I shouldn’t have. Took a minute to figure out where the discrepancy was but it was an easy fix. And with that, we can install it in the cad! Looks great! Okay, spoiler. I immediately hated it. I don’t trust that I can build both sides identically and I don’t think I can easily get enough travel on the tensioner. Plus, the amount of tension directly correlates to how far my effectors can move instead of that being a fixed value. That is so stupid. Ugh. Back to the drawing board. Literally, let’s make a sketch. So this is my idea. Some sort of mechanism to pull up on the upper span of belt so that I can have stationary idlers. I think I can pull something off. It would integrate with the motor module well I think and lets me make the tensioner and idlers out of sheet metal - so, the entire belt path is sheet metal. The whole thing! That is so freakin cool. This time I actually started with making a sketch of one of the side sheets. The assembly would overall be similar to the old one, except there wouldn’t be anything bridging the gap between the two sides besides the idlers. The side pieces would also be further apart to accomodate for the size of the aluminum extrusions. This just meant I would need a longer shaft. That’s fine. This gets extruded to create the sheet. These are 3/16” thick aluminum sheets that will be lasercut by Oshcut (not sponsored, just cheap). Then I literally just duplicate it and assemble everything. 4 bearings, 2 pulleys, 2 35mm long 5mm dowels, 2 9mm spacers, 2 4mm spacers (both printed), 4 m5x10 bolts, and 2 sheets. All assembled into the double idler! Oh there will also be 4 T nuts for mounting but I am not cadding those as my PC already doesn’t like how many components are in this assembly and I would have to align each and every one by hand. Integrated into the cad, they look awesome! Gosh this printer looks good. Anywho, we have one thing left - the motor side tensioner. This is relatively straight forward. I started by just getting the tensioner hardware into place. Then, I added side plates that would make up the tensioner body. These are super simple and will just be held together with 2x M3 bolts and a printed part. Of course, the motor module side plate needs a cutout for the idler! This cutout is not only for clearance, but th [Entry truncated]"}, {"post_id": 55954, "ts": "2026-08-04T00:00:00Z", "hours": 3.0, "text": "Oh. My. Gosh. I made the sheet metal motor mounts affordable!! I just had to switch all the lasercut parts from powdercoated steel to uncoated 5052 aluminum, and do some trickery to get the motor mounts down to 2 plates instead of 3. Badda bing badda boom, it’s somehow super affordable now!! Like, super affordable. Especially since I have a 50% coupon. This means I can use more lasercutting elsewhere! Like… an electrical panel!! Anywho, I decided to fully redesign the motor mounts. I kinda had to since to get them to fit as 2 plates instead of 3, I needed to move the motor back 5mm and out like 2.5mm ish. Which isn’t bad. Started the same as last time with a pile of hardware, just with slightly different spacing. Once again, I like to work from the motor mount. I really don’t know why I do this - I should be doing the entire plate in one sketch so that my timeline stays cleaner and they are easier to edit, but eh, old habits die hard. Turn it into a full plate by adding the bores for bearings and pins (which are currently oversized, oops). Then I double it for the second plate. Just a simply copy and paste. Now I fix the bores and widths on the plates. These are 0.188” thick 5052 aluminum. I need to double check how I should be tolerancing my bores so that they work as interference/light press fits. Right now they are just exactly matching the part OD for the bore ID, which I think might be fine because of laser kerf? Dunno. I will ask my brother what he did. I also shortened the plates by removing some from the side that is against the vertical extrusion. Or, correction, WAS against the vertical extrusion. Because of how far off center these plates are, I needed to just have it not go up against the vertical otherwise it would hit the horizontals. Shifting it to be centered would take a lot more offseting of the motor, which is something I really want to avoid. Next we get a big printed spacer. This serves as the buffer between the two plates and is also how the modules will mount, with heat inserts in top/bottom (m5 of course). Because of that part, we also need these cutouts in the sides of the plates. These make it so that I can actually still manage to route the belts despite them being somewhat encased in material - this un-encases them. Hopefully it is enough to be able to route the belts. I think it’s gonna be a bit tight, expecially once installed in the frame, but it should be possible. Hopefully not too painful. We will find out! You can also see I added mounting holes in that operation. Same cutting op, just added a bunch of M3 holes. These either thread into the motor or thread into the back plate. Since the plates aren’t getting powder coated, I am willing to deal with tapping them now. Add some screws in the sides and screw holes on top/bottom and we are done with the new motor modules! The mounting holes on top are identical to those on bottom. They are off center so that they are centered with the belt path and thus the rest of the printer. Helps things look nicer from the outside. And here they are integrated into the machine! Gosh, this looks awesome, and will be incredibly rigid! In fact, this means that the only part of my motion system that isn’t metal (or, at least, structurally metal) will be the idlers/tensioners! And even then, I might be able to do something about that… Maybe. Gonna mess around with lasercut designs, CNC designs, and even SLM designs. We will see how this goes! I love how these turned out and I love even more that I managed to fit it in my budget. This is so exciting!!"}, {"post_id": 55955, "ts": "2026-08-03T00:00:00Z", "hours": 2.0, "text": "Bulking up the printed motor mounts because sheet metal is too expensive. Alright, so. Sheet metal adds about $250 to my costs, so I cannot do sheet metal for these motor assemblies. But that’s fine, I don’t need it. I started by going back to the blocky version. I extended out the tall bit so that there is more material over the bearing and idler shaft for strength. Then I actually started making the walls thicker for more material/bracing. Because the end of the part is constrained to 30mm, I need that little divot on the front right. I did the same to the opposite side and brought the curves back! These curves look pretty nice. They start out matching but then the front one diverges into its own thing. It was at this point I realized my walls were now thick enough to utilize the 4th screw hole on the motor. This will help a lot with making everything more rigid. On the initial version I wasn’t able to use this hole because I was optimizing for the entire part to be 30mm wide rather than just the end of it. This would have been fine, but this new bulkier appraoch is just better. Lastly, I added mounting. I added one M5 screw on the rear vertical wall that will actually use a T nut to bolt to the vertical extrusion, while I also added top holes (and unseen bottom holes) for M5 heat inserts for the top/bottom plates to bolt to. This forms a printed and metal sandwich, which is great for rigidity. Integrated into the assembly, it looks great! It kinda bothers me that the screw holes are off center but I might be able to fix that later. That’s motor assemblies done. Yay! I just need to do idlers/tensioners and the “core” of the printer will be done."}, {"post_id": 55925, "ts": "2026-08-02T00:00:00Z", "hours": 3.5, "text": "Motor module 2 electric boogaloo?? Ok so, a friend told me to make some motor modules out of sheet metal. This is a good idea! Unfortunately I think it is out of budget… but it is nice to have around!! Anywho. Start with the same layout as before. Create a motor side plate. This plate is not thick enough for the bearing on its own - it will need stacked with another. That makes these motor modules 3 plates each. 3 times 6 is 18 plates total. Youch, my wallet. Extend it and create a matching idler side plate. This plate can be thick enough for the bearings on its own, so it won’t need stacked. This is good for budget. There’s that second stacked plate. Each thin plate is 0.1”. The thick plate is, you guessed it, 0.2”. From there I made these simple printed part structural spacers. These are designed to be minimal at the top so I can still hopefully route belts. I think it will be difficult to route belts in this design no matter what I do, but this could help. Last, I just add screws and nuts that go through the whole sandwich. This is the easiest and most rigid way I could think of assembling. And I think it turned out really nice! It’s just… these would add $200-$250 to my budget… I think I would rather bulk up the printed part. So that’s what I will do next entry - bulk up the printed version! It is such a small part that I think it is fine - end to end, this thing is like, 110mm. So it really shouldn’t matter much. Actually, one last thing. This cutout will help a ton with belt routing. Ok that’s all for real this time."}, {"post_id": 55926, "ts": "2026-08-01T00:00:00Z", "hours": 5.0, "text": "Motor assemblies!! These motor assemblies are required to get horizontal belt pathing without moving the motors outside of the frame. You can see my preliminary sketch here. I will be using bearings and live shaft idlers to offset the motors about 72mm. Now, moving the motors out of the frame would be a 45mm offset. So, the difference is about an inch. That’s really not bad! I am willing to accept that. Anywho, I take that preliminary sketch and use fusion’s Derive tool, which I just discovered, to move this design into a seperate document. That way we can keep the timeline of this part and the overall printer a bit cleaner. A bit. I am using 605 bearings basically everywhere here since they are nice and beefy for high tension 9mm belts. You can see them on either end of the pulley on the right as well as standalone slightly to the upper left of that pulley as an idler on the back of the belt. This setup mimics having the motor aligned with the carriage path without it actually being, as otherwise the motor would hit the frame. I always like to start with doubleshear on the motor. No particular reason, that’s just where I start. From there it just gets extended. Then I add the 30mm shafts for the idlers and some countersinks for the motor screws! That way I don’t need super long motor screws. I actually then extended up one end. I figured I can use this part to help locate the linear rail! So this print extends to exactly the height the linear rail needs. Since there is one on both top and bottom, it will sandwich the rail and align it. From here, I decided to challenge myself a bit. I wanted this part to be organic! Not as blocky. So, I made this nice spline! This curve is pretty nice looking and is just defined by some random points and the idler bores. With a few fillets, you get a pretty nice result. Slight issue, however, is that this part is centered on the pulleys being centered. Which is fine, except that the pulleys have hubs. You can see those hubs here. So the actual belt is currently not centeed. This is a relatively easy fix! The one big constraint is that the end of this part, where the belt is coming out and the highest point of the part, needs to be 30mm wide. This is because my vertical extrusion is only 30mm wide. So, if it is wider, it will hit the horizontal extrusions of the frame. With a couple extrudes here and there, some press pulls, blah blah, we get this!! The part looks super organic with the recesses on the sides and whatnot. Those are mainly there to provide enough material for the bearing but still keep the part thin enough at the end to fit between the horizontal parts of the frame! And here they are in place in the frame. Currently they are mounted by 3 screws bolting up through the bottom plate and no other mounting. I may change that a bit though… Like, I could bolt to the extrusions, or I could bolt to the top plate of the frame sandwich, all for higher rigidity! For now, I am done though. I am pretty happy with this part as is."}, {"post_id": 55927, "ts": "2026-07-30T00:00:00Z", "hours": 3.5, "text": "Carriages! Okay, these had me stumped for a while. I spent hours (that I am not logging) staring at what others have done, staring at my own CAD, staring at previous designs I have worked with. And I came to a conclusion - I don’t like belt paths where the belt is perpendicular to the carriages. I just don’t. It is so annoying to work with. This is what I mean by perpendicular by the way, sketched over a basic flat carriage I had thrown together. This carriage is what I spent most of my time staring at. Because, somehow, I needed to add belt clamps to this. I hated it. There wasn’t a way I could think of to do it CNC, and that was something I really wanted to do for this project (cnc parts). So, I wanted the belt parallel to the carriages (aka rotated 90 degrees). This would be way easier to clamp the belts and allow for much lighter carriages. This is what I came up with. CNC machined unibody with a flat lasercut plate as a belt clamp. The plate is sandwiched between the carriage and linear rail carriage. So, I just crank down on the 4 mounting screws and it grabs the belt. The belt tooth geometry is based off of Ruiqimao’s Carveoff belt clamps, as those are proven working for 9mm tension. A friend - well actually three friends - then suggested one change, which makes the carriages look nicer and way stronger. Diamond carriages! I think this looks awesome. Now, I keep having people telling me to double shear the ball joints. I don’t think this is necessary. But, they didn’t believe me. So, I decided to try and run a fusion 360 static force sim! First, I calculated the max load on the carriages using a [tool from my friend Deadlock]. This gave me: A max of 30 ish newtons for 500k accel. Not bad. I will be simming with 50 newtons just to be special and over the top. After messing with the sim for a while, I got this result. Setting this up was weird and I have no idea if it is correct, but basically I just defined the screw connections as bolts into threaded holes, assigned materials, and it… worked? Oh I also put the middle of the carriage as stationary/locked in place so it would flex properly. Anywho, to explain the image. The numbers represent factor of safety. The lowest one on the joint is 35. This means that the strength of the part at that point is 35 times higher than the point it would noticeably deflect/fail. Meaning, this part is PLENTY strong. Unlesss I did the sim wrong of course, but I don’t think I did? the deflection is exaggerated just to show what mode of force it is testing. That’s carriages. I really like how these turned out - and most importantly, they only weigh 35 grams each! 35 grams!! Practically nothing."}, {"post_id": 55928, "ts": "2026-07-29T00:00:00Z", "hours": 7.0, "text": "Frame! So, when I left off, we just had extrusions and linear rails. First order of business: connecting those extrusions together! I started with a very simple shape that extends over the horizontal for mounting, and interfaces with the vertical for mounting. After that, I add mounting holes. I am using M5 screws for pretty much all the frame stuff as it consolidates parts and makes assembly easier - I just buy a big bag of M5x10 socket head screws and send it. These corner brackets will be printed out of some sort of fiber filled high performance polymer, like abs-gf. I actually tried a simpler CNC version, but it would’ve been $600 (before tariffs) to get all 12 of the brackets made, so that was a no. Printed it is! I can compensate by sandwiching with lasercut steel. I will show that soon. I then add the 11 remaining brackets via a circular pattern and some copy pasting. My one complaint about copy pasting components, or moving components between parent components, in fusion 360 is that it absolutely nukes your timeline. But I guess if I didn’t use a hybrid design approach it wouldn’t be an issue. Alas, I do hybrid rather than top down (components completely seperate). Meh. Bam, add screws. 6 screws per bracket, 12 brackets… that’s 72 bolts!! Wow. This is gonna be fun to build! Next was working on those aforementioned plate sandwiches. I started out with 1/4 inch steel but ultimately ended up reducing it to 0.12” (practically 1/8”) steel due to pricing. Gotta save money! Anywho, the panels have holes for bolting to the horizontal extrusions with M5 screws as well as bolting into the ends of the vertical extrusions with M8 screws. I also added two more holes to each corner for bolting into the plastic. I am not super worried about this since I am bolting to the aluminum so rigidly, but it does need a bit. I orginally had 4, aka 2 per bracket, but I went down to 1 because of a feature I will be adding later (steel cable eyebolts). Screws!! Keep in mind the bottom is currently identical to this top, so double everything. See! Now let’s do some screw counting again. 30 screws per side, double for top and bottom, that’s 60 more screws, 48 of which are M5. So the count now is 132 screws, 120 of which are M5x10. Surely it won’t get much higher? So, remember how I said this is a steel sandwich? Right now, we only have the outermost panel of the two sandwiches (top/bottom assemblies). We gotta add the second panel of each sandwich! 4 panels total, 2 per top/bottom assembly. The motor modules will be bolting to these panels, so they are pretty important. They also help a lot with rigidity and weight. Making weight go up that is. Heavier is better for frame. These panels are quite similar to the outer panels so I am not gonna show the full process. Just know they have cutouts for the belts to pass through, cutouts for the vertical extrusions, and one big cutout in the middle. I am not totally sure if that middle cutout will be staying but for now it is useful to let me see where I am working. And honestly, the more open the better, as that means I can mess with motors and stuff without dissasembling the frame! More screws!!! These ones are all M5x10. 24 per side, thats 48 total. Add that to the 132 and we now have 180 screws! 168 of which are M5x10. Phew. This is rough. This is what I mean by nuking timelines, ugh. All the copy and paste icons are from organizing the screws in my CAD. Sorting them with their components etc. Absolutely ruins timelines. Last, but certainly not least, I add the eyebolts. These bad boys are for attaching tensioned steel cable diagonals to prevent frame twist. There are 4 of these per side, and this time I mean side of the triangle that is the frame, not top/bottom. So, there is 12 total. You can kinda see the nuts at the bottom - they bolt through the e [Entry truncated]"}, {"post_id": 55929, "ts": "2026-07-28T00:00:00Z", "hours": 7.0, "text": "Ok. I kinda did a lot, but I also kinda only achieved a little. First things first, I made the bed effector setup. This was quick and easy - I reused the CNC machined effector piece so I can save money by buying two of the same part, and then slapped a bed on it. Instead of through bolting this bed I will be attempting to bond mounting points onto the back, much like how LH Stinger does it. We will see if it works! I sure hope so, as it makes using the fiberglass/carbon fiber bed as a print surface way easier. Fairly simple! I need to add a few more screws but I wanted to move on. Next was the arms! This is a super simple part, with a 0.5mm wall stainless steel tube and the 2 cups of the MPJet Joints. This is a 200mm arm length. I would later find out this is wrong… Next was the frame! Boy was this a doozy. I got this wrong a few times. I started at this scale. 800mm verticals and 300mm horizontals, fully 3060 extrusion. I then realized I was 130mm short. How was I 130mm off? Well, lets do the math. 200mm arms + 180mm z height = 380mm needed travel. Double that to 760mm since it’s a double delta. Round up to 800 and that gives me space for idlers in the middle and whatnot. Easy peasy. Except, I forgot to take into account the height of the horizontal extrusions - 60mm plus 60mm, or 120mm total. Add 10mm as a buffer/to get to a nice imperial number, since the seller I am buying frame extrusions from sells in imperial and 930mm is a yard and 5/8 of an inch, which is a nice and easy number. Wait, I forgot to take into account linear rail carriages! That’s 45mm each. So… over a meter now… I somehow ended up at 1120mm. This was a weird number, but I was convinced it was right. Oh right, 1120mm because that lets me use 1 meter rails instead of cutting to 930mm. Easy. It was at this point I realized something felt off. And I was right! I was waaay bigger than I needed to be. How did I manage to get so far off? ’Cause the final frame ended up at 620.725mm (24.438 inches, the closest imperial size they sold to 620mm). Well. I was sizing for 180mm of travel PER SIDE. I only need 90 per side. So yeah, I was almost double what I needed to be. Catching this mistake let me cut down the arms to 100mm and the frame height to the aforementioned 620mm ish. Makes things sooo much nicer and way more rigid than the floppy meter long nonsense. When I tell you this took me 2.5 hours of back and forth math, I am not exaggerating. I went through so many different sizes. I started accounting for rails around the meter mark too, so I had more to adjust than the extrusion length and bleh. Wanted to stick to standard sizes. The final math ended up being: 100mm arm length plus 90 mm z travel plus 45mm carriage is 235mm. Doubled (double delta) is 470mm needed travel. Rounding to 500mm gives me space in the middle for idlers and some overtravel. Add 120 for the frame horizontal heights and you get 620mm. 620mm lets me use 500mm rails! Which are signficantly easier to find and cheaper than meter long rails. Anywho, that’s the final frame, with linear rails added. Now I can finally get to work on the corner joints that actually join the horizontal extrusions to the vertical ones, which will hopefully incorporate some CNC machined parts! Unless it costs too much of course."}, {"post_id": 55902, "ts": "2026-07-27T00:00:00Z", "hours": 2.5, "text": "Alright. Officially kicking this bad boy off. Basically, DoNotDelta V2 for real. Here is my X tier funding pitch: – DDs: DoubleDeltas. DoNotDelta goes big. All new design. Bigger, better, faster. 180mm bed instead of 65mm. Designed to push the speed benefits I initially sought to explore with this kinematic concept. CNC machined parts. Metal panels. Tensioned steel cable diagonal bracing. I learned a LOT building donotdelta. A bit of what works, a whole lot of what doesn’t. All this learning will be carried on through DoubleDeltas. Now that donotdelta works, I feel confident that this motion system is worth exploring further. So, go big or go home. Tech specs: MGN12 linear rails. No more janky linear rods. 2504MAC stepper motors sponsored by LDO High rigidity engineering filament for all parts, Sponsored by Sunlu High performance Duet clone electronics, sponsored by Fysetc. Carbon fiber or thin wall steel arms for high rigidity and low mass (haven’t decided) Custom composite heated bed (carbon fiber or fiberglass) for high rigidity and low mass Dual drive Boombox extruder configured in an ultra short Kevlar-sheathed Bowden setup. Undecided high flow hotend - potentially custom. – So, from that initial pitch, a couple things hav ebeen decided/added on. First of all, after a lot of research, I have decided to use a Mellow Heatcore UHF ALPS for the hotend, with an MZE (meltzone extender). This should grant me plenty of flow, have good rigidity, and importantly, have nozzle probing. That will hopefully make callibration a lot easier overall, something I am looking forward to. That looks like this. I also decided that for the frame I will be using metric 3060 extrusions. This is because I found them for cheap and they are large so they are high rigidity. Paired with MGN12H rails, I should have a really solid foundation to work off of. From there we get stainlesss steel arms and unibody machined effectors (aluminum) for even further rigidity. I am really leaning into rigidity here because I am sick of wimpy printers that can’t handle proper belt tension and have issues with parts flexing (donotdelta…). I actually started working on an effector using SeeMeCNC barbells instead of MPJet joints and lasercut plates sandwiching them, like this: But ultimately I have decided that I will be sticking with MPJet joints and doing a CNC machined effector instead of lasercut plates. I will also likely be doing CNC machined carriages for the vertical towers, but I haven’t decided. Definitely some CNC frame bits. I have the budget (i think), since I already have electronics and motors, which are usually two of the biggest costs. Well, most of the electronics. I need PSUs still. Speaking of PSUs, I actually didn’t mention this in the X tier pitch, but I think I’m gonna do 48v motors. Once again a speed thing. I want to push this bad boy HARD. So yeah. Let’s have fun with this one! No burn out for months like with DoNotDelta."}, {"post_id": 55901, "ts": "2026-07-27T00:00:00Z", "hours": 6.0, "text": "Toolhead! As stated previously, this is made out of CNC machined aluminum. I started with a simple sketch defining a triangle that is circumscribed around a 59mm circle. Why 59mm? That was the smallest number I could get that still left space for the arm joints to do full range of motion without colliding. Weirdly specific, I know. The center hole is for the hotend. That gets extruded, sides get filleted, and the joints get added with tapped m3 holes for mounting. No double shear should be needed since I am mounting to metal. Next was duct. I started by making a rounded cutout in my effector that I want as the start (well, actually midpoint ish, you will see) of the duct and a square I want as the outlet. I moved this square to align with where I want the air to go. The sizing of these was somewhat arbitrary, with the main design constraint being matching a certain cross sectional area - a gentle taper down to 70% of the inlet. So if the inlet is a 17mm circle (19mm hose with a 1mm wall), tahts about 230mm^2 I get to play with. 70% of that is 161mm^2, which is about what my outlet is. You may be thinking, shouldn’t that outlet be a lot smaller to account for the air stream being split into multiple ducts?? No. I will be running 2 ducts. Each duct has its own hose and blower. That’s right, dual cpap. Next is a loft with a curved centerline. This gets me my duct! Then it gets mirrored to the other side of course. At this point my friend was like. You know, having 3 ducts would make it symmetrical/match the delta-esque shaping. Triangles and such. But having 3 CPAP blowers would be silly!! Absurd even!! I love silly. Triple duct, triple cpap. I will NOT be limited by cooling. Next is a little top plate for mounting the hotend. This guy just takes 3x 30mm M3 standoffs, super simple. And it’s all metal, so hopefully rigid af. Another sketch and extrude gets us an extension to the top plate. This is for holding the 3 cpap mounts. One more loft, extrude, and circular pattern gets us the upper section of duct. This is connected in one ring. The whole thing is mounted purely by compression from the upper plate and the effector through the standoffs - no additional hardware. It makes things rather clean. And that’s it! Kinda. I need to figure out how berd air hotend cooling works since I don’t want a fan on the toolhead. But I don’t even know if that takes any additional cad? We will find out! This thing is silly. It’s crazy overkill. It’s bonkers. I love it though. Really sets the tone for the rest of this printer."}]...
|
Title: DoubleDeltas by @parkerrupe | Stardance
De Title: DoubleDeltas by @parkerrupe | Stardance
Devlogs:
Toolhead! As stated previously, this is made out of CNC machined aluminum. I started with a simple sketch defining a triangle that is circumscribed around a 59mm circle. Why 59mm? That was the smallest number I could get that still left space for the arm joints to do full range of motion without colliding. Weirdly specific, I know. The center hole is for the hotend. That gets extruded, sides get filleted, and the joints get added with tapped m3 holes for mounting. No double shear should be needed since I am mounting to metal. Next was duct. I started by making a rounded cutout in my effector that I want as the start (well, actually midpoint ish, you will see) of the duct and a square I want as the outlet. I moved this square to align with where I want the air to go. The sizing of these was somewhat arbitrary, with the main design constraint being matching a certain cross sectional area - a gentle taper down to 70% of the inlet. So if the inlet is a 17mm circle (19mm hose with a 1mm wall), tahts about 230mm^2 I get to play with. 70% of that is 161mm^2, which is about what my outlet is. You may be thinking, shouldn’t that outlet be a lot smaller to account for the air stream being split into multiple ducts?? No. I will be running 2 ducts. Each duct has its own hose and blower. That’s right, dual cpap. Next is a loft with a curved centerline. This gets me my duct! Then it gets mirrored to the other side of course. At this point my friend was like. You know, having 3 ducts would make it symmetrical/match the delta-esque shaping. Triangles and such. But having 3 CPAP blowers would be silly!! Absurd even!! I love silly. Triple duct, triple cpap. I will NOT be limited by cooling. Next is a little top plate for mounting the hotend. This guy just takes 3x 30mm M3 standoffs, super simple. And it’s all metal, so hopefully rigid af. Another sketch and extrude gets us an extension to the top plate. This is for holding the 3 cpap mounts. One more loft, extrude, and circular pattern gets us the upper section of duct. This is connected in one ring. The whole thing is mounted purely by compression from the upper plate and the effector through the standoffs - no additional hardware. It makes things rather clean. And that’s it! Kinda. I need to figure out how berd air hotend cooling works since I don’t want a fan on the toolhead. But I don’t even know if that takes any additional cad? We will find out! This thing is silly. It’s crazy overkill. It’s bonkers. I love it though. Really sets the tone for the rest of this printer.
Alright. Officially kicking this bad boy off. Basically, DoNotDelta V2 for real. Here is my X tier funding pitch: – DDs: DoubleDeltas. DoNotDelta goes big. All new design. Bigger, better, faster. 180mm bed instead of 65mm. Designed to push the speed benefits I initially sought to explore with this kinematic concept. CNC machined parts. Metal panels. Tensioned steel cable diagonal bracing. I learned a LOT building donotdelta. A bit of what works, a whole lot of what doesn’t. All this learning will be carried on through DoubleDeltas. Now that donotdelta works, I feel confident that this motion system is worth exploring further. So, go big or go home. Tech specs: MGN12 linear rails. No more janky linear rods. 2504MAC stepper motors sponsored by LDO High rigidity engineering filament for all parts, Sponsored by Sunlu High performance Duet clone electronics, sponsored by Fysetc. Carbon fiber or thin wall steel arms for high rigidity and low mass (haven’t decided) Custom composite heated bed (carbon fiber or fiberglass) for high rigidity and low mass Dual drive Boombox extruder configured in an ultra short Kevlar-sheathed Bowden setup. Undecided high flow hotend - potentially custom. – So, from that initial pitch, a couple things hav ebeen decided/added on. First of all, after a lot of research, I have decided to use a Mellow Heatcore UHF ALPS for the hotend, with an MZE (meltzone extender). This should grant me plenty of flow, have good rigidity, and importantly, have nozzle probing. That will hopefully make callibration a lot easier overall, something I am looking forward to. That looks like this. I also decided that for the frame I will be using metric 3060 extrusions. This is because I found them for cheap and they are large so they are high rigidity. Paired with MGN12H rails, I should have a really solid foundation to work off of. From there we get stainlesss steel arms and unibody machined effectors (aluminum) for even further rigidity. I am really leaning into rigidity here because I am sick of wimpy printers that can’t handle proper belt tension and have issues with parts flexing (donotdelta…). I actually started working on an effector using SeeMeCNC barbells instead of MPJet joints and lasercut plates sandwiching them, like this: But ultimately I have decided that I will be sticking with MPJet joints and doing a CNC machined effector instead of lasercut plates. I will also likely be doing CNC machined carriages for the vertical towers, but I haven’t decided. Definitely some CNC frame bits. I have the budget (i think), since I already have electronics and motors, which are usually two of the biggest costs. Well, most of the electronics. I need PSUs still. Speaking of PSUs, I actually didn’t mention this in the X tier pitch, but I think I’m gonna do 48v motors. Once again a speed thing. I want to push this bad boy HARD. So yeah. Let’s have fun with this one! No burn out for months like with DoNotDelta.
Ok. I kinda did a lot, but I also kinda only achieved a little. First things first, I made the bed effector setup. This was quick and easy - I reused the CNC machined effector piece so I can save money by buying two of the same part, and then slapped a bed on it. Instead of through bolting this bed I will be attempting to bond mounting points onto the back, much like how LH Stinger does it. We will see if it works! I sure hope so, as it makes using the fiberglass/carbon fiber bed as a print surface way easier. Fairly simple! I need to add a few more screws but I wanted to move on. Next was the arms! This is a super simple part, with a 0.5mm wall stainless steel tube and the 2 cups of the MPJet Joints. This is a 200mm arm length. I would later find out this is wrong… Next was the frame! Boy was this a doozy. I got this wrong a few times. I started at this scale. 800mm verticals and 300mm horizontals, fully 3060 extrusion. I then realized I was 130mm short. How was I 130mm off? Well, lets do the math. 200mm arms + 180mm z height = 380mm needed travel. Double that to 760mm since it’s a double delta. Round up to 800 and that gives me space for idlers in the middle and whatnot. Easy peasy. Except, I forgot to take into account the height of the horizontal extrusions - 60mm plus 60mm, or 120mm total. Add 10mm as a buffer/to get to a nice imperial number, since the seller I am buying frame extrusions from sells in imperial and 930mm is a yard and 5/8 of an inch, which is a nice and easy number. Wait, I forgot to take into account linear rail carriages! That’s 45mm each. So… over a meter now… I somehow ended up at 1120mm. This was a weird number, but I was convinced it was right. Oh right, 1120mm because that lets me use 1 meter rails instead of cutting to 930mm. Easy. It was at this point I realized something felt off. And I was right! I was waaay bigger than I needed to be. How did I manage to get so far off? ’Cause the final frame ended up at 620.725mm (24.438 inches, the closest imperial size they sold to 620mm). Well. I was sizing for 180mm of travel PER SIDE. I only need 90 per side. So yeah, I was almost double what I needed to be. Catching this mistake let me cut down the arms to 100mm and the frame height to the aforementioned 620mm ish. Makes things sooo much nicer and way more rigid than the floppy meter long nonsense. When I tell you this took me 2.5 hours of back and forth math, I am not exaggerating. I went through so many different sizes. I started accounting for rails around the meter mark too, so I had more to adjust than the extrusion length and bleh. Wanted to stick to standard sizes. The final math ended up being: 100mm arm length plus 90 mm z travel plus 45mm carriage is 235mm. Doubled (double delta) is 470mm needed travel. Rounding to 500mm gives me space in the middle for idlers and some overtravel. Add 120 for the frame horizontal heights and you get 620mm. 620mm lets me use 500mm rails! Which are signficantly easier to find and cheaper than meter long rails. Anywho, that’s the final frame, with linear rails added. Now I can finally get to work on the corner joints that actually join the horizontal extrusions to the vertical ones, which will hopefully incorporate some CNC machined parts! Unless it costs too much of course.
Frame! So, when I left off, we just had extrusions and linear rails. First order of business: connecting those extrusions together! I started with a very simple shape that extends over the horizontal for mounting, and interfaces with the vertical for mounting. After that, I add mounting holes. I am using M5 screws for pretty much all the frame stuff as it consolidates parts and makes assembly easier - I just buy a big bag of M5x10 socket head screws and send it. These corner brackets will be printed out of some sort of fiber filled high performance polymer, like abs-gf. I actually tried a simpler CNC version, but it would’ve been $600 (before tariffs) to get all 12 of the brackets made, so that was a no. Printed it is! I can compensate by sandwiching with lasercut steel. I will show that soon. I then add the 11 remaining brackets via a circular pattern and some copy pasting. My one complaint about copy pasting components, or moving components between parent components, in fusion 360 is that it absolutely nukes your timeline. But I guess if I didn’t use a hybrid design approach it wouldn’t be an issue. Alas, I do hybrid rather than top down (components completely seperate). Meh. Bam, add screws. 6 screws per bracket, 12 brackets… that’s 72 bolts!! Wow. This is gonna be fun to build! Next was working on those aforementioned plate sandwiches. I started out with 1/4 inch steel but ultimately ended up reducing it to 0.12” (practically 1/8”) steel due to pricing. Gotta save money! Anywho, the panels have holes for bolting to the horizontal extrusions with M5 screws as well as bolting into the ends of the vertical extrusions with M8 screws. I also added two more holes to each corner for bolting into the plastic. I am not super worried about this since I am bolting to the aluminum so rigidly, but it does need a bit. I orginally had 4, aka 2 per bracket, but I went down to 1 because of a feature I will be adding later (steel cable eyebolts). Screws!! Keep in mind the bottom is currently identical to this top, so double everything. See! Now let’s do some screw counting again. 30 screws per side, double for top and bottom, that’s 60 more screws, 48 of which are M5. So the count now is 132 screws, 120 of which are M5x10. Surely it won’t get much higher? So, remember how I said this is a steel sandwich? Right now, we only have the outermost panel of the two sandwiches (top/bottom assemblies). We gotta add the second panel of each sandwich! 4 panels total, 2 per top/bottom assembly. The motor modules will be bolting to these panels, so they are pretty important. They also help a lot with rigidity and weight. Making weight go up that is. Heavier is better for frame. These panels are quite similar to the outer panels so I am not gonna show the full process. Just know they have cutouts for the belts to pass through, cutouts for the vertical extrusions, and one big cutout in the middle. I am not totally sure if that middle cutout will be staying but for now it is useful to let me see where I am working. And honestly, the more open the better, as that means I can mess with motors and stuff without dissasembling the frame! More screws!!! These ones are all M5x10. 24 per side, thats 48 total. Add that to the 132 and we now have 180 screws! 168 of which are M5x10. Phew. This is rough. This is what I mean by nuking timelines, ugh. All the copy and paste icons are from organizing the screws in my CAD. Sorting them with their components etc. Absolutely ruins timelines. Last, but certainly not least, I add the eyebolts. These bad boys are for attaching tensioned steel cable diagonals to prevent frame twist. There are 4 of these per side, and this time I mean side of the triangle that is the frame, not top/bottom. So, there is 12 total. You can kinda see the nuts at the bottom - they bolt through the e [Entry truncated]
Carriages! Okay, these had me stumped for a while. I spent hours (that I am not logging) staring at what others have done, staring at my own CAD, staring at previous designs I have worked with. And I came to a conclusion - I don’t like belt paths where the belt is perpendicular to the carriages. I just don’t. It is so annoying to work with. This is what I mean by perpendicular by the way, sketched over a basic flat carriage I had thrown together. This carriage is what I spent most of my time staring at. Because, somehow, I needed to add belt clamps to this. I hated it. There wasn’t a way I could think of to do it CNC, and that was something I really wanted to do for this project (cnc parts). So, I wanted the belt parallel to the carriages (aka rotated 90 degrees). This would be way easier to clamp the belts and allow for much lighter carriages. This is what I came up with. CNC machined unibody with a flat lasercut plate as a belt clamp. The plate is sandwiched between the carriage and linear rail carriage. So, I just crank down on the 4 mounting screws and it grabs the belt. The belt tooth geometry is based off of Ruiqimao’s Carveoff belt clamps, as those are proven working for 9mm tension. A friend - well actually three friends - then suggested one change, which makes the carriages look nicer and way stronger. Diamond carriages! I think this looks awesome. Now, I keep having people telling me to double shear the ball joints. I don’t think this is necessary. But, they didn’t believe me. So, I decided to try and run a fusion 360 static force sim! First, I calculated the max load on the carriages using a [tool from my friend Deadlock]. This gave me: A max of 30 ish newtons for 500k accel. Not bad. I will be simming with 50 newtons just to be special and over the top. After messing with the sim for a while, I got this result. Setting this up was weird and I have no idea if it is correct, but basically I just defined the screw connections as bolts into threaded holes, assigned materials, and it… worked? Oh I also put the middle of the carriage as stationary/locked in place so it would flex properly. Anywho, to explain the image. The numbers represent factor of safety. The lowest one on the joint is 35. This means that the strength of the part at that point is 35 times higher than the point it would noticeably deflect/fail. Meaning, this part is PLENTY strong. Unlesss I did the sim wrong of course, but I don’t think I did? the deflection is exaggerated just to show what mode of force it is testing. That’s carriages. I really like how these turned out - and most importantly, they only weigh 35 grams each! 35 grams!! Practically nothing.
Motor assemblies!! These motor assemblies are required to get horizontal belt pathing without moving the motors outside of the frame. You can see my preliminary sketch here. I will be using bearings and live shaft idlers to offset the motors about 72mm. Now, moving the motors out of the frame would be a 45mm offset. So, the difference is about an inch. That’s really not bad! I am willing to accept that. Anywho, I take that preliminary sketch and use fusion’s Derive tool, which I just discovered, to move this design into a seperate document. That way we can keep the timeline of this part and the overall printer a bit cleaner. A bit. I am using 605 bearings basically everywhere here since they are nice and beefy for high tension 9mm belts. You can see them on either end of the pulley on the right as well as standalone slightly to the upper left of that pulley as an idler on the back of the belt. This setup mimics having the motor aligned with the carriage path without it actually being, as otherwise the motor would hit the frame. I always like to start with doubleshear on the motor. No particular reason, that’s just where I start. From there it just gets extended. Then I add the 30mm shafts for the idlers and some countersinks for the motor screws! That way I don’t need super long motor screws. I actually then extended up one end. I figured I can use this part to help locate the linear rail! So this print extends to exactly the height the linear rail needs. Since there is one on both top and bottom, it will sandwich the rail and align it. From here, I decided to challenge myself a bit. I wanted this part to be organic! Not as blocky. So, I made this nice spline! This curve is pretty nice looking and is just defined by some random points and the idler bores. With a few fillets, you get a pretty nice result. Slight issue, however, is that this part is centered on the pulleys being centered. Which is fine, except that the pulleys have hubs. You can see those hubs here. So the actual belt is currently not centeed. This is a relatively easy fix! The one big constraint is that the end of this part, where the belt is coming out and the highest point of the part, needs to be 30mm wide. This is because my vertical extrusion is only 30mm wide. So, if it is wider, it will hit the horizontal extrusions of the frame. With a couple extrudes here and there, some press pulls, blah blah, we get this!! The part looks super organic with the recesses on the sides and whatnot. Those are mainly there to provide enough material for the bearing but still keep the part thin enough at the end to fit between the horizontal parts of the frame! And here they are in place in the frame. Currently they are mounted by 3 screws bolting up through the bottom plate and no other mounting. I may change that a bit though… Like, I could bolt to the extrusions, or I could bolt to the top plate of the frame sandwich, all for higher rigidity! For now, I am done though. I am pretty happy with this part as is.
Motor module 2 electric boogaloo?? Ok so, a friend told me to make some motor modules out of sheet metal. This is a good idea! Unfortunately I think it is out of budget… but it is nice to have around!! Anywho. Start with the same layout as before. Create a motor side plate. This plate is not thick enough for the bearing on its own - it will need stacked with another. That makes these motor modules 3 plates each. 3 times 6 is 18 plates total. Youch, my wallet. Extend it and create a matching idler side plate. This plate can be thick enough for the bearings on its own, so it won’t need stacked. This is good for budget. There’s that second stacked plate. Each thin plate is 0.1”. The thick plate is, you guessed it, 0.2”. From there I made these simple printed part structural spacers. These are designed to be minimal at the top so I can still hopefully route belts. I think it will be difficult to route belts in this design no matter what I do, but this could help. Last, I just add screws and nuts that go through the whole sandwich. This is the easiest and most rigid way I could think of assembling. And I think it turned out really nice! It’s just… these would add $200-$250 to my budget… I think I would rather bulk up the printed part. So that’s what I will do next entry - bulk up the printed version! It is such a small part that I think it is fine - end to end, this thing is like, 110mm. So it really shouldn’t matter much. Actually, one last thing. This cutout will help a ton with belt routing. Ok that’s all for real this time.
Bulking up the printed motor mounts because sheet metal is too expensive. Alright, so. Sheet metal adds about $250 to my costs, so I cannot do sheet metal for these motor assemblies. But that’s fine, I don’t need it. I started by going back to the blocky version. I extended out the tall bit so that there is more material over the bearing and idler shaft for strength. Then I actually started making the walls thicker for more material/bracing. Because the end of the part is constrained to 30mm, I need that little divot on the front right. I did the same to the opposite side and brought the curves back! These curves look pretty nice. They start out matching but then the front one diverges into its own thing. It was at this point I realized my walls were now thick enough to utilize the 4th screw hole on the motor. This will help a lot with making everything more rigid. On the initial version I wasn’t able to use this hole because I was optimizing for the entire part to be 30mm wide rather than just the end of it. This would have been fine, but this new bulkier appraoch is just better. Lastly, I added mounting. I added one M5 screw on the rear vertical wall that will actually use a T nut to bolt to the vertical extrusion, while I also added top holes (and unseen bottom holes) for M5 heat inserts for the top/bottom plates to bolt to. This forms a printed and metal sandwich, which is great for rigidity. Integrated into the assembly, it looks great! It kinda bothers me that the screw holes are off center but I might be able to fix that later. That’s motor assemblies done. Yay! I just need to do idlers/tensioners and the “core” of the printer will be done.
Oh. My. Gosh. I made the sheet metal motor mounts affordable!! I just had to switch all the lasercut parts from powdercoated steel to uncoated 5052 aluminum, and do some trickery to get the motor mounts down to 2 plates instead of 3. Badda bing badda boom, it’s somehow super affordable now!! Like, super affordable. Especially since I have a 50% coupon. This means I can use more lasercutting elsewhere! Like… an electrical panel!! Anywho, I decided to fully redesign the motor mounts. I kinda had to since to get them to fit as 2 plates instead of 3, I needed to move the motor back 5mm and out like 2.5mm ish. Which isn’t bad. Started the same as last time with a pile of hardware, just with slightly different spacing. Once again, I like to work from the motor mount. I really don’t know why I do this - I should be doing the entire plate in one sketch so that my timeline stays cleaner and they are easier to edit, but eh, old habits die hard. Turn it into a full plate by adding the bores for bearings and pins (which are currently oversized, oops). Then I double it for the second plate. Just a simply copy and paste. Now I fix the bores and widths on the plates. These are 0.188” thick 5052 aluminum. I need to double check how I should be tolerancing my bores so that they work as interference/light press fits. Right now they are just exactly matching the part OD for the bore ID, which I think might be fine because of laser kerf? Dunno. I will ask my brother what he did. I also shortened the plates by removing some from the side that is against the vertical extrusion. Or, correction, WAS against the vertical extrusion. Because of how far off center these plates are, I needed to just have it not go up against the vertical otherwise it would hit the horizontals. Shifting it to be centered would take a lot more offseting of the motor, which is something I really want to avoid. Next we get a big printed spacer. This serves as the buffer between the two plates and is also how the modules will mount, with heat inserts in top/bottom (m5 of course). Because of that part, we also need these cutouts in the sides of the plates. These make it so that I can actually still manage to route the belts despite them being somewhat encased in material - this un-encases them. Hopefully it is enough to be able to route the belts. I think it’s gonna be a bit tight, expecially once installed in the frame, but it should be possible. Hopefully not too painful. We will find out! You can also see I added mounting holes in that operation. Same cutting op, just added a bunch of M3 holes. These either thread into the motor or thread into the back plate. Since the plates aren’t getting powder coated, I am willing to deal with tapping them now. Add some screws in the sides and screw holes on top/bottom and we are done with the new motor modules! The mounting holes on top are identical to those on bottom. They are off center so that they are centered with the belt path and thus the rest of the printer. Helps things look nicer from the outside. And here they are integrated into the machine! Gosh, this looks awesome, and will be incredibly rigid! In fact, this means that the only part of my motion system that isn’t metal (or, at least, structurally metal) will be the idlers/tensioners! And even then, I might be able to do something about that… Maybe. Gonna mess around with lasercut designs, CNC designs, and even SLM designs. We will see how this goes! I love how these turned out and I love even more that I managed to fit it in my budget. This is so exciting!!
Idlers! I started out with a simple sketch that shows part of the extrusion profile and the linear rail profile, then used that to align my idler hardware (two bearings, a pulley, and a shaft). From there, I made a sketch for the mounting block. This would wrap around to the other side aswell, bolting onto both sides of the vertical extrusion and holding out the tensioner. I guess I should talk about my tensioning method. Basically, I am going to have two idlers “floating” in the middle of the frame vertically. One for the top belt, one for the bottom. These then get pulled towards eachother by bolts and nuts, pulling tension on both top and bottom at once. I think it will work? The only issue is any differences in assembly or belt length will render this useless. Once tension is pulled, the side bolts get clamped down hard onto the vertical extrusion. Easy peasy. So anyways, the body gets doubled to the other side and connected at the middle. I then added nut recesses so that I don’t need to hold the nut while I pull tension, and flattened one side of the roundover on the end. This would be the mating surface of the two idlers, so it makes sense to be flat. This gets mirrored to the other side along with the hardware. Boom, now we have two idlers that meet at the middle. A couple fillets here and there, assigning materials, and adding bolts gets us to this result. I think this turned out really nice! I actually initiallly had some issues with where my mounting holes were and how long the idler was. Turns out I added 8mm somewhere I shouldn’t have. Took a minute to figure out where the discrepancy was but it was an easy fix. And with that, we can install it in the cad! Looks great! Okay, spoiler. I immediately hated it. I don’t trust that I can build both sides identically and I don’t think I can easily get enough travel on the tensioner. Plus, the amount of tension directly correlates to how far my effectors can move instead of that being a fixed value. That is so stupid. Ugh. Back to the drawing board. Literally, let’s make a sketch. So this is my idea. Some sort of mechanism to pull up on the upper span of belt so that I can have stationary idlers. I think I can pull something off. It would integrate with the motor module well I think and lets me make the tensioner and idlers out of sheet metal - so, the entire belt path is sheet metal. The whole thing! That is so freakin cool. This time I actually started with making a sketch of one of the side sheets. The assembly would overall be similar to the old one, except there wouldn’t be anything bridging the gap between the two sides besides the idlers. The side pieces would also be further apart to accomodate for the size of the aluminum extrusions. This just meant I would need a longer shaft. That’s fine. This gets extruded to create the sheet. These are 3/16” thick aluminum sheets that will be lasercut by Oshcut (not sponsored, just cheap). Then I literally just duplicate it and assemble everything. 4 bearings, 2 pulleys, 2 35mm long 5mm dowels, 2 9mm spacers, 2 4mm spacers (both printed), 4 m5x10 bolts, and 2 sheets. All assembled into the double idler! Oh there will also be 4 T nuts for mounting but I am not cadding those as my PC already doesn’t like how many components are in this assembly and I would have to align each and every one by hand. Integrated into the cad, they look awesome! Gosh this printer looks good. Anywho, we have one thing left - the motor side tensioner. This is relatively straight forward. I started by just getting the tensioner hardware into place. Then, I added side plates that would make up the tensioner body. These are super simple and will just be held together with 2x M3 bolts and a printed part. Of course, the motor module side plate needs a cutout for the idler! This cutout is not only for clearance, but th [Entry truncated]
I spent 2 entire hours putting the full printer cad together. It looks so good! Parker, how could adding just the gantries take 2 hours, you ask? Well well well. Basically, each ball joint had to be defined as a ball joint in fusion with proper motion limits and whatnot. And fusion does NOT like this. Fusion crashed 3 times. It errored out unrelated things for no reason more times than I rememeber. It took multiple MINUTES to load each ball joint at times. It was pure torture. But I got it done! It’s pretty cool, I defined all the linear rails as sliders and stuff and so I can literally drag around the effectors and they move like a delta should. One note, the bed has been lowered to 160mm instead of 180mm. This is because of some future plans and also because it just feels better in terms of proportions. It looks so nice now! Oh, and I had to make the printer taller. We are now using 600mm rails instead of 500mm as my arm length was incorrect. Turns out, you can’t just optimize for a 90mm gantry, because the quantum delta side needs way more travel than that. It was actually pretty funny when I first put the cad together with the short arms. Squatted delta. I think it’s funny. Anywho, I got it all done eventually and got fusion to stop crying about it (mostly). It does take noticeably longer to open the document now and timeline changes take a significant amount of time to fully propagate through all the joints. But, because I had to increase the arm lengths, I suddenly didn’t have enough travel for the carriages. Hence why the frame is bigger now....
|
1793203031.0227256
|
1793807831.0227256
|
|
19147
|
Nebula OS by @shubworks | Stardance
|
shubworks
|
1
|
47.39
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-06T13:52:06Z", "hours": 19.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Nebula OS started as a simple space-themed web desktop with space-themed apps, including a calculator inspired by planets spinning in orbit. But somewhere along the way, I realized it didn’t actually feel like an operating system. So I redesigned the entire UI with a neo-brutalist style, rebuilt the window system, reworked the apps, added persistent widgets, cleaned up the codebase, and even hid a few surprises like a wormhole that can swallow the desktop. The hardest part was rebuilding everything without breaking something else. Every time I fixed one thing, another bug decided it wanted attention too. I spent a lot of time tracking down weird issues, refactoring code, and making sure all the apps worked together instead of fighting each other. The wormhole effect was probably the most frustrating feature to get working the way I wanted. The thing I’m most proud of is that Nebula OS finally feels like one complete experience instead of a bunch of separate mini projects. If you’re trying it out, don’t just open one app and leave. Open multiple windows, drag them around, try the Terminal (help is a good start), load your own music, draw something in Paint, play Snake, and maybe explore the dock carefully… there might be something hidden waiting there. 👀 This is easily the biggest project I’ve built so far, and I’m really happy with how it turned out.", "repo": "https://github.com/NikhilKshub/Nebula-OS", "demo": "https://nikhilkshub.github.io/Nebula-OS/"}]...
|
[{"post_id": 64621, "ts": "202 [{"post_id": 64621, "ts": "2026-09-09T04:58:13Z", "hours": 1.5403, "text": "In the hydration tracker widget the previous error was showing a line of code inside the hydration tracker widget so I thought it was a html code error so I tried writing it properly and now instead of the tracker getting an error my dock system went to the tracker to ask him how he is (╥ ᴗ ╥) , guess what the problem was i actually didnt close the ‘<‘div id=“widgets”> using </div’>’ (about the apostrophe on div that you are thinking is also a problem , its not becuase in devlog it wont allow me to write the function properly thats why i wrote it in apostrophe ) Because HTML is hierarchical, the browser interprets that as: #widgets ├── todo widget ├── notes widget ├── hydration widget └── #dock ← OOPS, dock is now inside widgets Another problem is that the hydration widget is still not working the buttons are not working and it was because function saveHydrationState(State){ lsSet(‘nebula_hydration’,JSON.stringify(state));}The savehydrationstate has S as capital instead of small and because of that it wasnt working and and about the feature you can even drink more than 8 cups and another feature is that the widget resets for every day"}, {"post_id": 63625, "ts": "2026-09-07T15:31:37Z", "hours": 0.3686, "text": "lmao , tried adding another widget which was hydration tracker widget and tried implementing it and i got a crazy error haha my hydration tracker is showing code instead of tracker and also all the widgets size changed bymistake"}, {"post_id": 63602, "ts": "2026-09-07T15:06:04Z", "hours": 1.5978, "text": "added a Todo task widget , main problem came in when writing code inside the DOMContentLoaded listener it was not taking code because of errors like not proper closing of the code and also while writing code in CSS like messing up with the alignment(format) and other and one time the todo task didnt even take any input ,it was because of a syntax error but it was solved"}, {"post_id": 62028, "ts": "2026-09-05T07:40:17Z", "hours": 2.1067, "text": "I changed the original boot screen into a proper login screen because I wanted Nebula OS to feel more like an actual desktop environment when someone first opens it. The new screen has the date, a sign-in button, a quote, and a small build label before entering the desktop. I changed the topbar from a solid background to a translucent glass-style design. This makes it blend more naturally with the wallpaper instead of looking like a separate bar placed on top of the desktop. I also changed the dock to match the translucent style of the topbar. The desktop previously used a plain color as its background, so I added a default wallpaper image instead. This gives new users something more visually interesting when they first open Nebula OS, while still letting them replace the wallpaper with their own image."}, {"post_id": 61713, "ts": "2026-09-04T19:08:33Z", "hours": 1.075, "text": "fixed few errors like the animation of the wormhole was working the first time but if user tries to use it again it was not working as expected so fixed it and also fixed few typo errors"}, {"post_id": 60374, "ts": "2026-09-02T17:47:30Z", "hours": 4.2303, "text": "There were so many errors like the animation was getting stuck , the reboot feature not working inside the terminal it just stays stuck , booting animation was getting stuck because of some mismatch between the codes in the files , the layout of the custom timer in pomodoro app was not right i corrected it and then there was problem in the paint app it was not allowing any other color to be used then there was problem with the confirm window buttons for singularity effect it was not working/clickable. somehow i managed to solve them and make them work and finally my project is done after so many typo fixes , debugs and code lines missing."}, {"post_id": 57488, "ts": "2026-08-29T17:26:05Z", "hours": 10.7014, "text": "things i fixed Boot screen was not showing boot status like those ‘Establishing reality anchors…’, ‘Calibrating wormhole trajectory…’, ‘Loading Explorer profile…’, ‘Reality Integrity: 100%’, Because i forgot to write boot status css code though i managed to write it and now its working Windows functions buttons are not working like close , maximize , minimize buttons it was because i wrote a code of line as “.window-activer{z-index:600; box-shadow:8px 8px 0 var(–black);}”Instead of “.window.active{z-index:600; box-shadow:8px 8px 0 var(–black);}”Still the button maximize one is still not working and there are more errors like Paint app not showing any page to draw , focus timer not having any windows function buttons and the game app is working abnormal like if i click on the maximize button the screen of the game keeps getting smaller and smaller Now about the fixing of the window button i couldnt solve the problem because i was trying to solve it but it was again and again getting wrong so i asked chatgpt for help and it pointed out the problem and i got the solution and then i understand it and it also suggested me something like my code allows a app to get into maximum size also hiding the dock of the desktop so it told me to solve that also so the desktop will look better. I somehow fixed it using chatgpt help the problem and its solution was creating more problems so somehow i was able to solve it now i also noticed that the app labels are not proper and again it was because i didnt write those css codes for it. And you can also see that the the paint app icon is coming half and paint app is not showing the visible drawing white page and though i fixed the icon problem with help of chatgpt but about the drawing page not showing up guess what was the error !! , it was just a spelling mistake i wrote defualt instead of default in html code and because of that it was not taking the height of the page and i was here messing with the css and Js codes thinking i missed lines or something and i mostly rewrote the whole css code trying to get everything done in minimal amount of code and somehow i made it possible and also took help from ai for solving various problems"}, {"post_id": 25864, "ts": "2026-07-10T10:51:10Z", "hours": 1.0806, "text": "Did few fixes the wormhole feature was completely reloading the browser making all thr progress go away so i asked ai for help and it suggested me to use a fake reboot system for wormhole and it will also keep the progress of the webos saved so now the wormhole uses fake reboot system to perform its task or like what its meant to do , another fix i also did was that the after removing the background i set the background as black so i changed it into something beige color type which kinda looks good compared to black background , users can also changed the background/wallpaper and put their desired ones and also removed dead codes and things from the code"}, {"post_id": 25432, "ts": "2026-07-09T18:16:50Z", "hours": 0.6064, "text": "Fixed the CSS issue from earlier. Splitting the main CSS file into smaller chunks and linking those to the HTML was causing errors, likely from a code mistake somewhere in the process. Instead of chasing that down, I merged everything back into one CSS file, which connected cleanly and got the webOS working again. Also changed a few colors — like the boot screen and a couple other elements — into violet."}, {"post_id": 25382, "ts": "2026-07-09T17:17:24Z", "hours": 4.0139, "text": "Added a Pomodoro Timer that uses a default 25-minute focus timer with breaks, and also added a custom timer option for focus and break sessions. Removed the previous desktop background, which had rings, ripples, animations, and other effects, and replaced it with a simple wallpaper. Also added a wallpaper-replace feature so users can set their own wallpaper on the OS. Removed the two widgets — Nebula Broadcast and Reality Monitor. They were good at first but didn’t give that “proper feeling” of actually using them, and got boring over time, so I replaced both with a simple Quick Notes widget. Tried reworking the CSS files to reduce the number of lines and make things more minimal. My idea was to split all the sections of the webOS from one big CSS file into smaller files, but along the way I missed some code or had syntax errors. After fixing those, I got the CSS split into small chunks, but connecting them properly to the HTML became a problem — in the end, when I ran the webOS, no UI or CSS was applying at all, which left the whole thing broken."}, {"post_id": 24668, "ts": "2026-07-08T12:27:25Z", "hours": 1.0722, "text": "The Stardance reviewers shared feedback on the project and highlighted a few areas that could be improved. So i think i am going to try to rework on my project and fix those areas they highlighted and maybe try to improve my project also"}, {"post_id": 23425, "ts": "2026-07-06T11:36:06Z", "hours": 11.0856, "text": "This was probably the biggest update I’ve made to the project so far.I ended up rebuilding almost the entire operating system. The older version worked, but after using it for a while it felt more like a collection of space-themed apps than a real desktop. The glassmorphism style looked nice, but it didn’t have much personality or consistency.So I decided to redesign everything from scratch around a neo-brutalist style and renamed the project Nebula.The biggest goal wasn’t just changing colors or making a prettier UI. I wanted the whole OS to feel like it belonged to one universe.I also built an Explorer system that rewards curiosity while using Nebula. Hidden discoveries, explorer ranks, and little easter eggs are now spread throughout the OS. Instead of throwing achievements at the user, the desktop quietly encourages exploration, which makes finding them much more satisfying.The desktop itself changed a lot too. I replaced the empty static background with subtle ambient effects and layered elements that make the workspace feel more alive without distracting from the apps. Small interactions like notifications, broadcasts, and system telemetry now react to what you’re actually doing instead of showing random placeholder information.A huge amount of time also went into polishing everything behind the scenes. I fixed duplicated event listeners, notification spam, calculator edge cases, wormhole state issues, persistence bugs, and cleaned up dead code that had built up while experimenting with different ideas.One feature I was excited about was the wormhole sequence. It started as a fun visual effect, but I kept expanding it until it became part of Nebula’s identity and tied into the system’s discoveries and world building.Looking back at the first version of MyOS compared to Nebula now, it almost feels like two completely different projects. The old one was mainly focused on the space aesthetic, while this version is focused on creating a complete operating system with its own personality, interactions, and world.At this point I’m mostly polishing the experience instead of adding new features. Nebula finally feels like a complete product rather than just another web desktop. Also i added few new apps like Paint , Snake Game , Notes. and redesigned the old apps like the Terminal , Music player , Calculator. I also added a Wormhole feature that pulls the entire desktop into a black hole before restarting the system. It started as a fun visual effect but ended up becoming one of Nebula’s signature interactions."}, {"post_id": 11876, "ts": "2026-06-19T10:48:11Z", "hours": 2.7317, "text": "Started with an ambitious orbital ring calculator idea where numbers spin around a glowing sun in the center. Looked cool in theory, but in practice it was a mess — the spinning made me dizzy, numbers were scattered everywhere instead of in order, and clicking buttons felt like a game of whack-a-mole. Tried fixing it a few times but it just wasn’t working. So I scrapped the whole ring concept and went back to a normal calculator layout, but kept the space vibe with glowing planet buttons and a holographic display. Way more usable. The equals and clear buttons weren’t responding at first because the code wasn’t picking them up properly. Once that was sorted, everything clicked into place. Now it actually works like a real calculator — shows the full equation, smooth animations, and doesn’t spin around like a broken merry-go-round."}, {"post_id": 11415, "ts": "2026-06-18T17:56:15Z", "hours": 1.8242, "text": "finally solved all the errors and replaced the generic falling starfield with a premium interactive solar system centerpiece. The canvas now renders a living solar system with 8 planets in their approximate real colors — Mercury through Neptune — each with subtle float animations and glow effects. Hovering any planet reveals its name. The starfield was redesigned to work around the solar system rather than compete with it. Took help from AI in imagining and designing the visual layout, planet styling, and interaction patterns. The solar system now serves as the desktop’s identity piece instead of random background noise."}, {"post_id": 11211, "ts": "2026-06-18T11:00:17Z", "hours": 0.6206, "text": "messed up , i was thinking of adding cursor animations and a background but i did something in code that messed the situation 😭"}, {"post_id": 11184, "ts": "2026-06-18T09:12:59Z", "hours": 2.99, "text": "I got to know about Hack Club through a friend, and when I found out you can build projects and actually get cool rewards for it, I thought why not give it a shot! So here’s my first project on Stardance. I picked the WebOS mission - basically building my own little web-based operating system from scratch. The idea is to make something that looks and feels like a real desktop OS but runs in the browser, with my own twist on the design. I started by building the desktop itself with a custom dark blue-purple theme, a top bar, and a live clock powered by JavaScript. Later I expanded it into a multi-window system where apps can be opened, closed, and moved around the screen just like a real operating system. So far, MyOS includes draggable windows, desktop icons, a functional dock, an About app, a Terminal app, and a Clock app that displays a large live clock and date. I also implemented window focus management so active windows move to the front, making the desktop feel much more realistic. One of the biggest additions was a custom right-click context menu. Users can right-click anywhere on the desktop to quickly open apps or refresh the desktop, similar to traditional operating systems. I also updated the top bar to display both the current date and time in real time. A surprising amount of development time went into debugging small JavaScript mistakes. Things like misspelled variable names, incorrect event listeners, and reserved keywords caused features to silently fail, forcing me to carefully trace through the code and learn how browser debugging works. Those issues ended up teaching me as much as the actual feature development."}]...
|
Title: Nebula OS by @shubworks | Stardance
Devlog Title: Nebula OS by @shubworks | Stardance
Devlogs:
I got to know about Hack Club through a friend, and when I found out you can build projects and actually get cool rewards for it, I thought why not give it a shot! So here’s my first project on Stardance. I picked the WebOS mission - basically building my own little web-based operating system from scratch. The idea is to make something that looks and feels like a real desktop OS but runs in the browser, with my own twist on the design. I started by building the desktop itself with a custom dark blue-purple theme, a top bar, and a live clock powered by JavaScript. Later I expanded it into a multi-window system where apps can be opened, closed, and moved around the screen just like a real operating system. So far, MyOS includes draggable windows, desktop icons, a functional dock, an About app, a Terminal app, and a Clock app that displays a large live clock and date. I also implemented window focus management so active windows move to the front, making the desktop feel much more realistic. One of the biggest additions was a custom right-click context menu. Users can right-click anywhere on the desktop to quickly open apps or refresh the desktop, similar to traditional operating systems. I also updated the top bar to display both the current date and time in real time. A surprising amount of development time went into debugging small JavaScript mistakes. Things like misspelled variable names, incorrect event listeners, and reserved keywords caused features to silently fail, forcing me to carefully trace through the code and learn how browser debugging works. Those issues ended up teaching me as much as the actual feature development.
messed up , i was thinking of adding cursor animations and a background but i did something in code that messed the situation 😭
finally solved all the errors and replaced the generic falling starfield with a premium interactive solar system centerpiece. The canvas now renders a living solar system with 8 planets in their approximate real colors — Mercury through Neptune — each with subtle float animations and glow effects. Hovering any planet reveals its name. The starfield was redesigned to work around the solar system rather than compete with it. Took help from AI in imagining and designing the visual layout, planet styling, and interaction patterns. The solar system now serves as the desktop’s identity piece instead of random background noise.
Started with an ambitious orbital ring calculator idea where numbers spin around a glowing sun in the center. Looked cool in theory, but in practice it was a mess — the spinning made me dizzy, numbers were scattered everywhere instead of in order, and clicking buttons felt like a game of whack-a-mole. Tried fixing it a few times but it just wasn’t working. So I scrapped the whole ring concept and went back to a normal calculator layout, but kept the space vibe with glowing planet buttons and a holographic display. Way more usable. The equals and clear buttons weren’t responding at first because the code wasn’t picking them up properly. Once that was sorted, everything clicked into place. Now it actually works like a real calculator — shows the full equation, smooth animations, and doesn’t spin around like a broken merry-go-round.
This was probably the biggest update I’ve made to the project so far.I ended up rebuilding almost the entire operating system. The older version worked, but after using it for a while it felt more like a collection of space-themed apps than a real desktop. The glassmorphism style looked nice, but it didn’t have much personality or consistency.So I decided to redesign everything from scratch around a neo-brutalist style and renamed the project Nebula.The biggest goal wasn’t just changing colors or making a prettier UI. I wanted the whole OS to feel like it belonged to one universe.I also built an Explorer system that rewards curiosity while using Nebula. Hidden discoveries, explorer ranks, and little easter eggs are now spread throughout the OS. Instead of throwing achievements at the user, the desktop quietly encourages exploration, which makes finding them much more satisfying.The desktop itself changed a lot too. I replaced the empty static background with subtle ambient effects and layered elements that make the workspace feel more alive without distracting from the apps. Small interactions like notifications, broadcasts, and system telemetry now react to what you’re actually doing instead of showing random placeholder information.A huge amount of time also went into polishing everything behind the scenes. I fixed duplicated event listeners, notification spam, calculator edge cases, wormhole state issues, persistence bugs, and cleaned up dead code that had built up while experimenting with different ideas.One feature I was excited about was the wormhole sequence. It started as a fun visual effect, but I kept expanding it until it became part of Nebula’s identity and tied into the system’s discoveries and world building.Looking back at the first version of MyOS compared to Nebula now, it almost feels like two completely different projects. The old one was mainly focused on the space aesthetic, while this version is focused on creating a complete operating system with its own personality, interactions, and world.At this point I’m mostly polishing the experience instead of adding new features. Nebula finally feels like a complete product rather than just another web desktop. Also i added few new apps like Paint , Snake Game , Notes. and redesigned the old apps like the Terminal , Music player , Calculator. I also added a Wormhole feature that pulls the entire desktop into a black hole before restarting the system. It started as a fun visual effect but ended up becoming one of Nebula’s signature interactions.
The Stardance reviewers shared feedback on the project and highlighted a few areas that could be improved. So i think i am going to try to rework on my project and fix those areas they highlighted and maybe try to improve my project also
Added a Pomodoro Timer that uses a default 25-minute focus timer with breaks, and also added a custom timer option for focus and break sessions. Removed the previous desktop background, which had rings, ripples, animations, and other effects, and replaced it with a simple wallpaper. Also added a wallpaper-replace feature so users can set their own wallpaper on the OS. Removed the two widgets — Nebula Broadcast and Reality Monitor. They were good at first but didn’t give that “proper feeling” of actually using them, and got boring over time, so I replaced both with a simple Quick Notes widget. Tried reworking the CSS files to reduce the number of lines and make things more minimal. My idea was to split all the sections of the webOS from one big CSS file into smaller files, but along the way I missed some code or had syntax errors. After fixing those, I got the CSS split into small chunks, but connecting them properly to the HTML became a problem — in the end, when I ran the webOS, no UI or CSS was applying at all, which left the whole thing broken.
Fixed the CSS issue from earlier. Splitting the main CSS file into smaller chunks and linking those to the HTML was causing errors, likely from a code mistake somewhere in the process. Instead of chasing that down, I merged everything back into one CSS file, which connected cleanly and got the webOS working again. Also changed a few colors — like the boot screen and a couple other elements — into violet.
Did few fixes the wormhole feature was completely reloading the browser making all thr progress go away so i asked ai for help and it suggested me to use a fake reboot system for wormhole and it will also keep the progress of the webos saved so now the wormhole uses fake reboot system to perform its task or like what its meant to do , another fix i also did was that the after removing the background i set the background as black so i changed it into something beige color type which kinda looks good compared to black background , users can also changed the background/wallpaper and put their desired ones and also removed dead codes and things from the code
things i fixed Boot screen was not showing boot status like those ‘Establishing reality anchors…’, ‘Calibrating wormhole trajectory…’, ‘Loading Explorer profile…’, ‘Reality Integrity: 100%’, Because i forgot to write boot status css code though i managed to write it and now its working Windows functions buttons are not working like close , maximize , minimize buttons it was because i wrote a code of line as “.window-activer{z-index:600; box-shadow:8px 8px 0 var(–black);}”Instead of “.window.active{z-index:600; box-shadow:8px 8px 0 var(–black);}”Still the button maximize one is still not working and there are more errors like Paint app not showing any page to draw , focus timer not having any windows function buttons and the game app is working abnormal like if i click on the maximize button the screen of the game keeps getting smaller and smaller Now about the fixing of the window button i couldnt solve the problem because i was trying to solve it but it was again and again getting wrong so i asked chatgpt for help and it pointed out the problem and i got the solution and then i understand it and it also suggested me something like my code allows a app to get into maximum size also hiding the dock of the desktop so it told me to solve that also so the desktop will look better. I somehow fixed it using chatgpt help the problem and its solution was creating more problems so somehow i was able to solve it now i also noticed that the app labels are not proper and again it was because i didnt write those css codes for it. And you can also see that the the paint app icon is coming half and paint app is not showing the visible drawing white page and though i fixed the icon problem with help of chatgpt but about the drawing page not showing up guess what was the error !! , it was just a spelling mistake i wrote defualt instead of default in html code and because of that it was not taking the height of the page and i was here messing with the css and Js codes thinking i missed lines or something and i mostly rewrote the whole css code trying to get everything done in minimal amount of code and somehow i made it possible and also took help from ai for solving various problems
There were so many errors like the animation was getting stuck , the reboot feature not working inside the terminal it just stays stuck , booting animation was getting stuck because of some mismatch between the codes in the files , the layout of the custom timer in pomodoro app was not right i corrected it and then there was problem in the paint app it was not allowing any other color to be used then there was problem with the confirm window buttons for singularity effect it was not working/clickable. somehow i managed to solve them and make them work and finally my project is done after so many typo fixes , debugs and code lines missing.
fixed few errors like the animation of the wormhole was working the first time but if user tries to use it again it was not working as expected so fixed it and also fixed few typo errors
I changed the original boot screen into a proper login screen because I wanted Nebula OS to feel more like an actual desktop environment when someone first opens it. The new screen has the date, a sign-in button, a quote, and a small build label before entering the desktop. I changed the topbar from a solid background to a translucent glass-style design. This makes it blend more naturally with the wallpaper instead of looking like a separate bar placed on top of the desktop. I also changed the dock to match the translucent style of the topbar. The desktop previously used a plain color as its background, so I added a default wallpaper image instead. This gives new users something more visually interesting when they first open Nebula OS, while still letting them replace the wallpaper with their own image.
added a Todo task widget , main problem came in when writing code inside the DOMContentLoaded listener it was not taking code because of errors like not proper closing of the code and also while writing code in CSS like messing up with the alignment(format) and other and one time the todo task didnt even take any input ,it was because of a syntax error but it was solved
lmao , tried adding another widget which was hydration tracker widget and tried implementing it and i got a crazy error haha my hydration tracker is showing code instead of tracker and also all the widgets size changed bymistake
In the hydration tracker widget the previous error was showing a line of code inside the hydration tracker widget so I thought it was a html code error so I tried writing it properly and now instead of the tracker getting an error my dock system went to the tracker to ask him how he is (╥ ᴗ ╥) , guess what the problem was i actually didnt close the ‘<‘div id=“widgets”> using </div’>’ (about the apostrophe on div that you are thinking is also a problem , its not becuase in devlog it wont allow me to write the function properly thats why i wrote it in apostrophe ) Because HTML is hierarchical, the browser interprets that as: #widgets ├── todo widget ├── notes widget ├── hydration widget └── #dock ← OOPS, dock is now inside widgets Another problem is that the hydration widget is still not working the buttons are not working and it was because function saveHydrationState(State){ lsSet(‘nebula_hydration’,JSON.stringify(state));}The savehydrationstate has S as capital instead of small and because of that it wasnt working and and about the feature you can even drink more than 8 cups and another feature is that the widget resets for every day
Ships:
Nebula OS started as a simple space-themed web desktop with space-themed apps, including a calculator inspired by planets spinning in orbit. But somewhere along the way, I realized it didn’t actually feel like an operating system. So I redesigned the entire UI with a neo-brutalist style, rebuilt the window system, reworked the apps, added persistent widgets, cleaned up the codebase, and even hid a few surprises like a wormhole that can swallow the desktop. The hardest part was rebuilding everything without breaking something else. Every time I fixed one thing, another bug decided it wanted attention too. I spent a lot of time tracking down weird issues, refactoring code, and making sure all the apps worked together instead of fighting each other. The wormhole effect was probably the most frustrating feature to get working the way I wanted. The thing I’m most proud of is that Nebula OS finally feels like one complete experience instead of a bunch of separate mini projects. If you’re trying it out, don’t just open one app and leave. Open multiple windows, drag them around, try the Terminal (help is a good start), load your own music, draw something in Paint, play Snake, and maybe explore the dock carefully… there might be something hidden waiting there. 👀 This is easily the biggest project I’ve built so far, and I’m really happy with how it turned out....
|
1792878693.6254983
|
1793742693.6254983
|
|
23624
|
Spaceship Game by @joebracken | Stardance
|
joebracken
|
0
|
47.35
|
0
|
[]
|
[{"post_id": 75389, "ts": "202 [{"post_id": 75389, "ts": "2026-09-29T22:11:22Z", "hours": 3.3747, "text": "It sure has been a while and I dont know when this thing even ends so I want to ship soon. All I have done was fix a minor bug that I have had since the game could work and make the UIs for the menu and level selection screens look better."}, {"post_id": 56826, "ts": "2026-08-28T19:18:23Z", "hours": 7.9139, "text": "I have done a lot since my last log. Most of my time was spent adding cracks to the asteroids depending on their health, this part was unreasonably hard. You would think it is as simple as adding lines from random points on the circumference to the centre, no. I had to have three different kinds of lines, create segments of each full crack using 2 or 3 kinds of lines, then only draw them depending on the health. Ok it does not sound as hard as it was, it took ages to get a good enough look. I then changed the ship movement so there is now a thrust and brake upgrade in ship upgrades. I also just added a pause feature while playing to exit back to the menu or just pause it I guess. Thats it for now gotta think of more ideas to add"}, {"post_id": 49849, "ts": "2026-08-18T19:59:52Z", "hours": 4.8997, "text": "I hate AI. I had decided to draw a background using polygons and lines, (very bad idea). I got a general layout done with about 100 lines of code and most of which was just variables of coordinates. Its get very confusing very quick. So I decided why not just give el gpt all of these coordinates and lines and get it to join them into one big polygon to simplify the code. AI sucks, I think I spent about 5 hours just typing prompts to get it to understand (it never did). So I decided to make the polygon myself and just get it to calculate coordinates, it could do them one at a time very easily, but any more and it would make points up. Desmos came to the rescue for intersection points. Other than those polygons I made the stars look better, added turn speed upgrade, made asteroids slower. I still need to finish the home screen and do the others."}, {"post_id": 46020, "ts": "2026-08-12T22:08:34Z", "hours": 3.6975, "text": "I have not been very consistant with coding recently so not much has been done. I started drawing the buttons in the level select screen with a for loop instead of individually. Got a new colour palette ready and some new fonts but have not yet decided on what I should use each colour and font on so the UI look terrible right now. What I spent most of the time on was make stars in the background. I spawn 200 stars randomly across the screen with a random depth as well(makes it look cool), I then calculate the speed using the depth as well and in the future I will make the stars twinkle so size and brightness will depend on depth. The stars look 3d when they move and I also make them move in the opposite direction to the ship when playing to make the ship look like its actually moving. I might change how the ship moves in the future. Sorry for typing so much I wasn’t bothered to think about what I was writing beforehand."}, {"post_id": 42947, "ts": "2026-08-07T22:42:55Z", "hours": 1.535, "text": "I haven’t coded in like a week so I dont remember what changed but I know I made the buy buttons in garage no longer all say max once I max one out."}, {"post_id": 37877, "ts": "2026-07-30T21:16:19Z", "hours": 1.0642, "text": "I changed how the asteroids spawn on the screen. It used to be they just spawn in a random place with a random angle and random speed (all with relevant parameters). Now they spawn at a set x but still the same random y, speed and angle and they spawn one at a time with intervals that change depending on the level. This did make the levels easier so I will be adding harder ones in the future"}, {"post_id": 37717, "ts": "2026-07-30T17:00:18Z", "hours": 3.0053, "text": "Well something happened with my last devlog and it just didn’t post it seems so this one covers me fixing the UI in garage and adding a new upgrade; fireRate. I change the way you shoot lasers. It is no longer click to shoot, you have to hold space and there is an interval between laser shots that gets reduced when you shoot. I was right though with the garage, I made zero changes to garage to make the new upgrade. Also finally added a way to get infinite money to make it easier for me to test."}, {"post_id": 35397, "ts": "2026-07-26T19:28:01Z", "hours": 4.1206, "text": "Ok I was wrong the rest has not been “more relaxing”. I knew I would have to optimise the code in garage but I didn’t know it would take so much effort. I combined the three upgrade states into one function that uses the screen name as the key to each section of the library to get the needed information. I also spent ages on a for loop to make blocks for each upgrade so adding them should be easier. The event handle function also works for every upgrade no more piles of if statements. Now I will be focusing on fixing the UI and adding upgrades."}, {"post_id": 33777, "ts": "2026-07-23T23:16:30Z", "hours": 1.7628, "text": "Upgrades finally work now so the rest should be more relaxing. I had to change all my vars into dictionaries so I could use them in the garage file without any circles. I then just added them into the handle events in a load of if statements which may not be the most optimal but I am lazy. Finally beat level 3 with max upgrades. Getting harder to test now so I might have to do something about that."}, {"post_id": 32533, "ts": "2026-07-21T19:28:27Z", "hours": 2.7306, "text": "Spent absolutely forever making the garage look better and made it capable to be updated with more upgrades. As of now I have the code sorted in garage and I like the design but it needs a lot of work still."}, {"post_id": 30706, "ts": "2026-07-18T14:34:46Z", "hours": 1.6528, "text": "Made buttons look cooler by fixing the colouring and making them slightly smaller when mouse is hovering over. Added a coins system that adds either 100, 200 or 500 for beating level 1, 2 or 3 and a fifth for losing. Still need to add some upgrades and make the game just look better"}, {"post_id": 29689, "ts": "2026-07-16T19:17:54Z", "hours": 2.0786, "text": "Ok I did what I said I was too lazy to do, I put each screen into its own file in a different folder inside the main one. Basically just copied the new functions I made over and I changed the way a new state is called slightly. now main looks very clean I got rid of a lot of functions just to write them again because I got confused. Turns out I didn’t need a whole function. Game finally works again now and hopefully I can just start adding features now."}, {"post_id": 28928, "ts": "2026-07-15T15:16:31Z", "hours": 1.4344, "text": "I have finally fixed all the functions and the layout of the code, game more or less works, need to finalise levels, update screens, and add more to the garage(upgrades). But I am now thinking cause the game is getting much bigger I could have different files for each screen, I probably should do that but I am too lazy."}, {"post_id": 28021, "ts": "2026-07-14T00:44:25Z", "hours": 2.7317, "text": "Fixed collision with the laser and asteroid so it detects the full laser polygon. I then realised I need to completely change the layout of my game again. So I deleted the whole running loop and put in what the layout should be. Now I am in the process of getting all the functions right which will take a while."}, {"post_id": 24901, "ts": "2026-07-08T19:08:45Z", "hours": 1.1375, "text": "the asteroids movement is better now I think, they move left to right with an allowance of 40 degrees up or down. Asteroids can now be shot by laser but only if the back coordinates intersect with the circles of the asteroids. Text displays the level, health and number of asteroids left now."}, {"post_id": 24753, "ts": "2026-07-08T15:10:21Z", "hours": 4.2119, "text": "Ok so I have been very busy with stardance problems so I was just coding when I could. I didn’t want to make a devlog till I had the general game started. I will be working on this game for quite some time and will keep improving the game. So far I have made a spaceship class and a spaceship that can fly and speeds up to a maximum speed and bounces of the walls. I have another asteroid class, there is an x amount of asteroids that fly around the screen from left to right and take 10 health away from the players 100 until they die. I am working on the asteroids getting destroyed now. I made the ship shoot lasers when you press space yesterday, this part probably took the longest cause I’m stupid."}]...
|
Title: Spaceship Game by @joebracken | Stardance
Title: Spaceship Game by @joebracken | Stardance
Devlogs:
Ok so I have been very busy with stardance problems so I was just coding when I could. I didn’t want to make a devlog till I had the general game started. I will be working on this game for quite some time and will keep improving the game. So far I have made a spaceship class and a spaceship that can fly and speeds up to a maximum speed and bounces of the walls. I have another asteroid class, there is an x amount of asteroids that fly around the screen from left to right and take 10 health away from the players 100 until they die. I am working on the asteroids getting destroyed now. I made the ship shoot lasers when you press space yesterday, this part probably took the longest cause I’m stupid.
the asteroids movement is better now I think, they move left to right with an allowance of 40 degrees up or down. Asteroids can now be shot by laser but only if the back coordinates intersect with the circles of the asteroids. Text displays the level, health and number of asteroids left now.
Fixed collision with the laser and asteroid so it detects the full laser polygon. I then realised I need to completely change the layout of my game again. So I deleted the whole running loop and put in what the layout should be. Now I am in the process of getting all the functions right which will take a while.
I have finally fixed all the functions and the layout of the code, game more or less works, need to finalise levels, update screens, and add more to the garage(upgrades). But I am now thinking cause the game is getting much bigger I could have different files for each screen, I probably should do that but I am too lazy.
Ok I did what I said I was too lazy to do, I put each screen into its own file in a different folder inside the main one. Basically just copied the new functions I made over and I changed the way a new state is called slightly. now main looks very clean I got rid of a lot of functions just to write them again because I got confused. Turns out I didn’t need a whole function. Game finally works again now and hopefully I can just start adding features now.
Made buttons look cooler by fixing the colouring and making them slightly smaller when mouse is hovering over. Added a coins system that adds either 100, 200 or 500 for beating level 1, 2 or 3 and a fifth for losing. Still need to add some upgrades and make the game just look better
Spent absolutely forever making the garage look better and made it capable to be updated with more upgrades. As of now I have the code sorted in garage and I like the design but it needs a lot of work still.
Upgrades finally work now so the rest should be more relaxing. I had to change all my vars into dictionaries so I could use them in the garage file without any circles. I then just added them into the handle events in a load of if statements which may not be the most optimal but I am lazy. Finally beat level 3 with max upgrades. Getting harder to test now so I might have to do something about that.
Ok I was wrong the rest has not been “more relaxing”. I knew I would have to optimise the code in garage but I didn’t know it would take so much effort. I combined the three upgrade states into one function that uses the screen name as the key to each section of the library to get the needed information. I also spent ages on a for loop to make blocks for each upgrade so adding them should be easier. The event handle function also works for every upgrade no more piles of if statements. Now I will be focusing on fixing the UI and adding upgrades.
Well something happened with my last devlog and it just didn’t post it seems so this one covers me fixing the UI in garage and adding a new upgrade; fireRate. I change the way you shoot lasers. It is no longer click to shoot, you have to hold space and there is an interval between laser shots that gets reduced when you shoot. I was right though with the garage, I made zero changes to garage to make the new upgrade. Also finally added a way to get infinite money to make it easier for me to test.
I changed how the asteroids spawn on the screen. It used to be they just spawn in a random place with a random angle and random speed (all with relevant parameters). Now they spawn at a set x but still the same random y, speed and angle and they spawn one at a time with intervals that change depending on the level. This did make the levels easier so I will be adding harder ones in the future
I haven’t coded in like a week so I dont remember what changed but I know I made the buy buttons in garage no longer all say max once I max one out.
I have not been very consistant with coding recently so not much has been done. I started drawing the buttons in the level select screen with a for loop instead of individually. Got a new colour palette ready and some new fonts but have not yet decided on what I should use each colour and font on so the UI look terrible right now. What I spent most of the time on was make stars in the background. I spawn 200 stars randomly across the screen with a random depth as well(makes it look cool), I then calculate the speed using the depth as well and in the future I will make the stars twinkle so size and brightness will depend on depth. The stars look 3d when they move and I also make them move in the opposite direction to the ship when playing to make the ship look like its actually moving. I might change how the ship moves in the future. Sorry for typing so much I wasn’t bothered to think about what I was writing beforehand.
I hate AI. I had decided to draw a background using polygons and lines, (very bad idea). I got a general layout done with about 100 lines of code and most of which was just variables of coordinates. Its get very confusing very quick. So I decided why not just give el gpt all of these coordinates and lines and get it to join them into one big polygon to simplify the code. AI sucks, I think I spent about 5 hours just typing prompts to get it to understand (it never did). So I decided to make the polygon myself and just get it to calculate coordinates, it could do them one at a time very easily, but any more and it would make points up. Desmos came to the rescue for intersection points. Other than those polygons I made the stars look better, added turn speed upgrade, made asteroids slower. I still need to finish the home screen and do the others.
I have done a lot since my last log. Most of my time was spent adding cracks to the asteroids depending on their health, this part was unreasonably hard. You would think it is as simple as adding lines from random points on the circumference to the centre, no. I had to have three different kinds of lines, create segments of each full crack using 2 or 3 kinds of lines, then only draw them depending on the health. Ok it does not sound as hard as it was, it took ages to get a good enough look. I then changed the ship movement so there is now a thrust and brake upgrade in ship upgrades. I also just added a pause feature while playing to exit back to the menu or just pause it I guess. Thats it for now gotta think of more ideas to add
It sure has been a while and I dont know when this thing even ends so I want to ship soon. All I have done was fix a minor bug that I have had since the game could work and make the UIs for the menu and level selection screens look better....
|
1792727437.9712765
|
1793332237.9712765
|
|
29089
|
Cool incremental game by @SeasonedRiceFarmer | Sta Cool incremental game by @SeasonedRiceFarmer | Stardance...
|
SeasonedRiceFarmer
|
0
|
47.34
|
0
|
[]
|
[{"post_id": 52025, "ts": "202 [{"post_id": 52025, "ts": "2026-08-22T01:57:13Z", "hours": 9.0222, "text": "UI Updates Part 1: UI Settings actually work now, supports sliders and switches Made this cool inventory UI (Went through a few iterations) Bottom left shows status effects (Active potions, friend bonuses, whatnot) Ascension Tracker on top! Now you do not need to travel to the board just to see your progress Bottom GUI circles (To open things like inventory, looks kind of bad right now, I’m gonna fix soon) Part 2: Onboarding (WIP) Motivation: When a player joins the game, the first experience is the most important, since it decides whether the player is retained OR leaves within the first 5 minutes. In my first game, the tutorial was merely a giant piece of text… and the results of that is reflected.. (see the image of the graph) Lesson learned! This onboarding system features a spotlight masking, which was weird to implement since Roblox does not have a native feature to punch a shape-shaped hole out of a UI overlay (no CSG/boolean cutout support), so the spotlight had to be faked using a UICorner-and-oversized-UIStroke trick. For 3D objects, I projected the 3D target’s screen-space bounding box into 2D so the spotlight could track a world-space object using the same screen-space hole-masking system as the UI targets. Part 3: Upgrade Tree Wired to the server, right now we are using a bunch of toy upgrades. Next time, we will actually implement content. Going more technical, the upgrade tree works as a giant tree (kind of a DAG but not really) We do a level-order (BFS) traversal to produce the cool closing effect. Node revealing uses a lazy DFS-like frontier expansion at runtime (revealing a node spawns only its immediate children as a locked preview ring; deeper nodes don’t exist client-side until their parent is actually leveled. So the client never materializes the whole tree at once) Part 4: Refactors 💀💀 Yeah. The front-end code was a bit messy so had to refactor a bit. I decided on eliminating pseudo-OOP and just using static declaration since it’s more simple and maintainable.. well I hope.. Part 5: Convention reinforcement Wrote a quick shell script that runs a sequence of checks across the codebase to enforce conventions, like variable naming, stylua, and selene. This will be ran every pre-commit and github ci/cd. At this point I might as well add PMD. Part 6: I have no idea lol If you want to discuss or talk about this project, don’t hesitate to post a comment or add my discord: SeasonedRiceFarmer (Watermark to prevent work stealing; yeah it happened before.. multiple times.. not in hack club though, y’all are mad cool…)"}, {"post_id": 43520, "ts": "2026-08-08T20:47:52Z", "hours": 19.7511, "text": "UI, Backend Revamp, Basic gameplay, Automation!! Part 1: UI So I made a bunch of UI (took really long, and was kind of painful tbh) We have the side menu, with a shop button, an emerald button, an settings (keep in mind everything currently in the setting menu is a placeholder) We also have ascension. Kind of regret not using a reactive UI framework, but might switch to one (like vide, roact) Also, cool notifications thing I guess Part 2: Backend Backend is pretty mature right now, most of it is written and all I really need to do is just to expand upon the reusable structure.. and just.. reuse? Since I have a modular design, it is very easy to scale the architecture in the future and iterate fast for update after game release. I specifically avoided heavy-OOP like inheritance chains, polymorphism, etc.. because lua is terrible for OOP… In fact, classes aren’t even a thing and you’re forced to use something called metatables to replicate class-behavior. But after the backend, I plan to add VFX, SFX, and music to make the game actually feel alive, since it feels boring and dull right now.. I mean it’s literally just a bunch of backend so… Part 3: Gameplay So the main loop is literally just.. eat stuff the chef cooks for you and get “plates.” You can use plates to buy upgrades in the surface GUI.. There’s also a separate upgrade tree that uses emeralds, but the currency has not been implemented. Players can ascend, rebirth (also unimplemented) and.. yeah it’s just an incremental. Part 4: Long term goals There’s really no content in the game right now, just scaffolding… Planning to dopamine-max and retention-max so I can keep a hopefully steady few thousand CCU when it’s released. Because of roblox’s questionable updates lately as a response to all the lawsuits I’ll probably have pay the 100k robux fee to accelerate age-restriction reviews to quickly push to younger audiences. But RIP ad credit funding lol… Part 5: Bugs Ran into scaling issues (see screenshot), had to refactor the backend a few times.. not really a bug but it made it better (I guess?) also, ascension is supposed to reset.. E V E R Y T H I N G.. but I forgot to add it in the hashmap so the video doesn’t show resetting… Part 6: I have no idea lol If you want to discuss or talk about this project, don’t hesitate to post a comment or add my discord: SeasonedRiceFarmer"}, {"post_id": 23825, "ts": "2026-07-06T23:59:54Z", "hours": 18.5642, "text": "Some progress on a cool incremental game about food so for the past few days, me and two other people have been working on a cool incremental, right now we are getting used to new tooling (rojo, blink networker, reactive UI frameworks, and ci/cd) we made huge progress on the backend and we really only have to do frontend things and then keep developing it to finish the mvp but yeah im excited to see how this will turn out, we are actually pretty far from the most challenging parts!! also the map isn’t built yet 😔😔 we also took on a challenge (no claude code) for this game since we are pretty rusty and want to gain our programming skills back (also check out the cool skill tree thing we have)"}]...
|
Title: Cool incremental game by @SeasonedRiceFarme Title: Cool incremental game by @SeasonedRiceFarmer | Stardance
Devlogs:
Some progress on a cool incremental game about food so for the past few days, me and two other people have been working on a cool incremental, right now we are getting used to new tooling (rojo, blink networker, reactive UI frameworks, and ci/cd) we made huge progress on the backend and we really only have to do frontend things and then keep developing it to finish the mvp but yeah im excited to see how this will turn out, we are actually pretty far from the most challenging parts!! also the map isn’t built yet 😔😔 we also took on a challenge (no claude code) for this game since we are pretty rusty and want to gain our programming skills back (also check out the cool skill tree thing we have)
UI, Backend Revamp, Basic gameplay, Automation!! Part 1: UI So I made a bunch of UI (took really long, and was kind of painful tbh) We have the side menu, with a shop button, an emerald button, an settings (keep in mind everything currently in the setting menu is a placeholder) We also have ascension. Kind of regret not using a reactive UI framework, but might switch to one (like vide, roact) Also, cool notifications thing I guess Part 2: Backend Backend is pretty mature right now, most of it is written and all I really need to do is just to expand upon the reusable structure.. and just.. reuse? Since I have a modular design, it is very easy to scale the architecture in the future and iterate fast for update after game release. I specifically avoided heavy-OOP like inheritance chains, polymorphism, etc.. because lua is terrible for OOP… In fact, classes aren’t even a thing and you’re forced to use something called metatables to replicate class-behavior. But after the backend, I plan to add VFX, SFX, and music to make the game actually feel alive, since it feels boring and dull right now.. I mean it’s literally just a bunch of backend so… Part 3: Gameplay So the main loop is literally just.. eat stuff the chef cooks for you and get “plates.” You can use plates to buy upgrades in the surface GUI.. There’s also a separate upgrade tree that uses emeralds, but the currency has not been implemented. Players can ascend, rebirth (also unimplemented) and.. yeah it’s just an incremental. Part 4: Long term goals There’s really no content in the game right now, just scaffolding… Planning to dopamine-max and retention-max so I can keep a hopefully steady few thousand CCU when it’s released. Because of roblox’s questionable updates lately as a response to all the lawsuits I’ll probably have pay the 100k robux fee to accelerate age-restriction reviews to quickly push to younger audiences. But RIP ad credit funding lol… Part 5: Bugs Ran into scaling issues (see screenshot), had to refactor the backend a few times.. not really a bug but it made it better (I guess?) also, ascension is supposed to reset.. E V E R Y T H I N G.. but I forgot to add it in the hashmap so the video doesn’t show resetting… Part 6: I have no idea lol If you want to discuss or talk about this project, don’t hesitate to post a comment or add my discord: SeasonedRiceFarmer
UI Updates Part 1: UI Settings actually work now, supports sliders and switches Made this cool inventory UI (Went through a few iterations) Bottom left shows status effects (Active potions, friend bonuses, whatnot) Ascension Tracker on top! Now you do not need to travel to the board just to see your progress Bottom GUI circles (To open things like inventory, looks kind of bad right now, I’m gonna fix soon) Part 2: Onboarding (WIP) Motivation: When a player joins the game, the first experience is the most important, since it decides whether the player is retained OR leaves within the first 5 minutes. In my first game, the tutorial was merely a giant piece of text… and the results of that is reflected.. (see the image of the graph) Lesson learned! This onboarding system features a spotlight masking, which was weird to implement since Roblox does not have a native feature to punch a shape-shaped hole out of a UI overlay (no CSG/boolean cutout support), so the spotlight had to be faked using a UICorner-and-oversized-UIStroke trick. For 3D objects, I projected the 3D target’s screen-space bounding box into 2D so the spotlight could track a world-space object using the same screen-space hole-masking system as the UI targets. Part 3: Upgrade Tree Wired to the server, right now we are using a bunch of toy upgrades. Next time, we will actually implement content. Going more technical, the upgrade tree works as a giant tree (kind of a DAG but not really) We do a level-order (BFS) traversal to produce the cool closing effect. Node revealing uses a lazy DFS-like frontier expansion at runtime (revealing a node spawns only its immediate children as a locked preview ring; deeper nodes don’t exist client-side until their parent is actually leveled. So the client never materializes the whole tree at once) Part 4: Refactors 💀💀 Yeah. The front-end code was a bit messy so had to refactor a bit. I decided on eliminating pseudo-OOP and just using static declaration since it’s more simple and maintainable.. well I hope.. Part 5: Convention reinforcement Wrote a quick shell script that runs a sequence of checks across the codebase to enforce conventions, like variable naming, stylua, and selene. This will be ran every pre-commit and github ci/cd. At this point I might as well add PMD. Part 6: I have no idea lol If you want to discuss or talk about this project, don’t hesitate to post a comment or add my discord: SeasonedRiceFarmer (Watermark to prevent work stealing; yeah it happened before.. multiple times.. not in hack club though, y’all are mad cool…)...
|
1792572503.7246578
|
1793177303.7246578
|
|
61382
|
Tectonic by @Thepigcat | Stardance
|
Thepigcat
|
0
|
47.24
|
0
|
[]
|
[{"post_id": 82610, "ts": "202 [{"post_id": 82610, "ts": "2026-10-25T12:43:07Z", "hours": 6.7342, "text": "2D-Game-Engine Declog #7 MULTIPLAYER! Since the last devlog i mainly worked on actually implementing a working multiplayer demo and fixing all the issue i ran into along the way! Entities and their components are being synced, the server is responsible for creating players… However, the server is currently not in control of movement, crate placement and collisions which is why those things can’t be synced at the moment. So that’s probably gonna be the last few things I’m gonna work on before shipping :3"}, {"post_id": 80225, "ts": "2026-10-16T19:49:27Z", "hours": 6.0731, "text": "#2D-Game-Engine Devlog #6 Finishing networking Most of the time on this devlog was spent working on finishing networking. I was mainly fixing the packet system which had some issues due to the way the packet header and packet queue were implemented. But as you can see, now people are able to join the server! Next, I’m gonna finally finish the ui and then work on the main remaining features, mostly relating to assets and textures in particular."}, {"post_id": 79305, "ts": "2026-10-13T13:15:21Z", "hours": 6.3128, "text": "2D-Game-Engine Devlog #5 Cameras 📷 Added the ability to use different cameras for specific render operations. Cameras can be applied and un-applied using regular render commands, making them very usable. Render-Layers ⛰️ Added render layers, so objects get rendered before/behind the player. Still has issues with the x coordinate lol. UI Added some rudimentary ui elements like labels and buttons. The ui is direct mode so its pretty much just drop in lol. I also added nine-slice scaling so ui elements can be scaled nicely. Next, I’m gonna implement collisions and some more ui functionality."}, {"post_id": 78132, "ts": "2026-10-09T17:53:18Z", "hours": 5.1611, "text": "2D-Game-Engine Devlog #4 This is another boring internal devlog without flashy things lol. This time I implemented better file paths as well as data saving/loading . Better Filepaths Added a function to tectonic underlying library to resolve file paths. This should help with providing file paths. Also improved the memory situation for asset manager data. Data Saving and Loading The most exciting part of this devlog is probably the api for loading and saving data that uses a json-like object format. The format supports integers, strings, lists and compound objects (as im writing this im realizing, that i should probably also add support for floats lol). Yea all in all, not that exciting even tho it took a ridiculous amount of time to get everything to work. Next, I’m gonna work on a small ui abstraction and then probably start polishing the engine to build a simple game with it and ship it."}, {"post_id": 75879, "ts": "2026-10-01T13:38:39Z", "hours": 5.3967, "text": "2D-Engine Devlog #3 Toml Resource Files 💾 I spent most of the last 5 hours getting the c toml library i’ve been using to work in my engine. This involved extending the library to support printing toml files, so they can be generated in code ^_^ This is particularly useful for replacing corrupt files and auto-generating files like settings and keybinds… Recursive parsing for nested toml tables 🔁 Since seperating keys in toml with dots means creating a table (this feature is awesome and annoying at the same time 😭 ), i had to find a way to parse nested tables. I did this using recursion and have used it in both the language file loader and the keybinds loader so far! I also had to figure out a way to parse tables that are part of a nested table for some cases. I did that with a check that looks ahead at the next table’s values and ensures that they are also tables. More asset loading 🖼️ Finally got around to implementing more of the Asset Loader . It now supports shaders (which were a bit tricky due to consisting of fragment and vertex shaders). I also added loading for sounds 🎶"}, {"post_id": 74443, "ts": "2026-09-27T11:57:48Z", "hours": 5.3139, "text": "Devlog #2 - Implementing more core systems Finished packet sending and receiving This should hopefully be the last piece of packet infrastructure required for the engine. It was mainly about encoding and decoding the packets properly, managing the sub processes and handling the shared resources. Implemented text rendering Next, I implemented the render command for drawing text to the screen. Like all rendering actions, the text drawing is stored as a command in an array that keeps the order and then applied at the end of the current game loop iteration. It supports custom font sizes and colors, but I still have to add support for custom fonts in the future. Implemented keyboard and mouse input and keymaps After text rendering i added events for keyboard and mouse input. This only handles the keys/mouse buttons being pressed and released. For checking if the key or button is held down, one can simply use a function. On top of that i also added keymaps that allow for easy keybinds with default keys, selecting keys or mouse buttons for an action, reseting and saving to a toml file. Started working on a Language Manager While adding names to the keymap, I realised that a proper engine should also supply a system for easily translating text. So I started adding a very basic translation manager that allows you to set a default locale and then load language files, change the current language… However both the translation manager and the keymap can not be saved to a config/resource file at the moment. That’s why I am probably gonna have to extend the toml library I used in a previous project to support all those things. Alr, see you next time :3"}, {"post_id": 72811, "ts": "2026-09-23T19:36:20Z", "hours": 3.4864, "text": "Devlog #1 - Multithreading shenanigans Reworking the packets Since the initial system for network packets was quite unintuitive and not very portable due to relying heavily on macros, I decided to try and simplify this system. I started by moving packet decoding to the main thread. This means that the packet receiver thread now pushes the raw bytebuf to the packet (data) queue and the main thread decodes then packet right before the user handles it. This way, we can avoid enforcing thread safety for decode context data. Improving thread handling Next up, I rewrote the client thread system to be state-driven, just like the server. That way i can easily handle connecting to a server, disconnecting and stopping the client. Also had to fix a bug where the thread handler wouldn’t pass the engine as an argument to the thread. Next up Tomorrow im gonna implement more of the actual packet encoding/decoding/handling, so i can actually make my example game playable Oh btw, i made this little player dude for my example game lol. I should probably implement input, so that he can move around and isn’t just stuck in one place."}, {"post_id": 72289, "ts": "2026-09-22T16:21:48Z", "hours": 8.7617, "text": "Initial Devlog - Setting up basic infrastructure I started this project off, by writing a lot of the api and basic stuff like a backend system and implementation in raylib along with some basic assets and events. The premise I wanted to create an engine that is extremely simple to use and that allows you to create multiplayer games in a systems language like C without you having to touch stuff like threads and socket libraries. Since its supposed to be a full on game engine, it should also be able to handle things like assets, events and rendering cleanly, out of the box. The networking approach While making the game multiplayer is optional, it is recommended to implement the game with separate client and server processes, to cleanly handle game logic and support future multiplayer. The client and server process use separate engine data but do share a backend (In the future, the backend might be subject to splitting or at least ifdef guarding so you dont have to compile libraries like raylib on the server). The main game logic, depending on your implementation can be shared obviously. Communication between sides happens using packets. When creating a packet one can either automatically serialize the packet struct by describing its layout or provide custom functions for encoding and decoding the data. Implementing the game The actual game logic is mostly up to the user, whether you use an ECS, a more traditional entity approach or something completely different does not matter. To interact between the described processes, the user has to implement handling for packets in their game loop on both the server and the client. Next up Im probably gonna start working on actually being able to start and connect to servers. This will probably also involve major changes to my sockets library. After that I want to focus on more game engine related things like assets and texture tiling, music, sound and a bunch more."}]...
|
Title: Tectonic by @Thepigcat | Stardance
Devlogs Title: Tectonic by @Thepigcat | Stardance
Devlogs:
Initial Devlog - Setting up basic infrastructure I started this project off, by writing a lot of the api and basic stuff like a backend system and implementation in raylib along with some basic assets and events. The premise I wanted to create an engine that is extremely simple to use and that allows you to create multiplayer games in a systems language like C without you having to touch stuff like threads and socket libraries. Since its supposed to be a full on game engine, it should also be able to handle things like assets, events and rendering cleanly, out of the box. The networking approach While making the game multiplayer is optional, it is recommended to implement the game with separate client and server processes, to cleanly handle game logic and support future multiplayer. The client and server process use separate engine data but do share a backend (In the future, the backend might be subject to splitting or at least ifdef guarding so you dont have to compile libraries like raylib on the server). The main game logic, depending on your implementation can be shared obviously. Communication between sides happens using packets. When creating a packet one can either automatically serialize the packet struct by describing its layout or provide custom functions for encoding and decoding the data. Implementing the game The actual game logic is mostly up to the user, whether you use an ECS, a more traditional entity approach or something completely different does not matter. To interact between the described processes, the user has to implement handling for packets in their game loop on both the server and the client. Next up Im probably gonna start working on actually being able to start and connect to servers. This will probably also involve major changes to my sockets library. After that I want to focus on more game engine related things like assets and texture tiling, music, sound and a bunch more.
Devlog #1 - Multithreading shenanigans Reworking the packets Since the initial system for network packets was quite unintuitive and not very portable due to relying heavily on macros, I decided to try and simplify this system. I started by moving packet decoding to the main thread. This means that the packet receiver thread now pushes the raw bytebuf to the packet (data) queue and the main thread decodes then packet right before the user handles it. This way, we can avoid enforcing thread safety for decode context data. Improving thread handling Next up, I rewrote the client thread system to be state-driven, just like the server. That way i can easily handle connecting to a server, disconnecting and stopping the client. Also had to fix a bug where the thread handler wouldn’t pass the engine as an argument to the thread. Next up Tomorrow im gonna implement more of the actual packet encoding/decoding/handling, so i can actually make my example game playable Oh btw, i made this little player dude for my example game lol. I should probably implement input, so that he can move around and isn’t just stuck in one place.
Devlog #2 - Implementing more core systems Finished packet sending and receiving This should hopefully be the last piece of packet infrastructure required for the engine. It was mainly about encoding and decoding the packets properly, managing the sub processes and handling the shared resources. Implemented text rendering Next, I implemented the render command for drawing text to the screen. Like all rendering actions, the text drawing is stored as a command in an array that keeps the order and then applied at the end of the current game loop iteration. It supports custom font sizes and colors, but I still have to add support for custom fonts in the future. Implemented keyboard and mouse input and keymaps After text rendering i added events for keyboard and mouse input. This only handles the keys/mouse buttons being pressed and released. For checking if the key or button is held down, one can simply use a function. On top of that i also added keymaps that allow for easy keybinds with default keys, selecting keys or mouse buttons for an action, reseting and saving to a toml file. Started working on a Language Manager While adding names to the keymap, I realised that a proper engine should also supply a system for easily translating text. So I started adding a very basic translation manager that allows you to set a default locale and then load language files, change the current language… However both the translation manager and the keymap can not be saved to a config/resource file at the moment. That’s why I am probably gonna have to extend the toml library I used in a previous project to support all those things. Alr, see you next time :3
2D-Engine Devlog #3 Toml Resource Files 💾 I spent most of the last 5 hours getting the c toml library i’ve been using to work in my engine. This involved extending the library to support printing toml files, so they can be generated in code ^_^ This is particularly useful for replacing corrupt files and auto-generating files like settings and keybinds… Recursive parsing for nested toml tables 🔁 Since seperating keys in toml with dots means creating a table (this feature is awesome and annoying at the same time 😭 ), i had to find a way to parse nested tables. I did this using recursion and have used it in both the language file loader and the keybinds loader so far! I also had to figure out a way to parse tables that are part of a nested table for some cases. I did that with a check that looks ahead at the next table’s values and ensures that they are also tables. More asset loading 🖼️ Finally got around to implementing more of the Asset Loader . It now supports shaders (which were a bit tricky due to consisting of fragment and vertex shaders). I also added loading for sounds 🎶
2D-Game-Engine Devlog #4 This is another boring internal devlog without flashy things lol. This time I implemented better file paths as well as data saving/loading . Better Filepaths Added a function to tectonic underlying library to resolve file paths. This should help with providing file paths. Also improved the memory situation for asset manager data. Data Saving and Loading The most exciting part of this devlog is probably the api for loading and saving data that uses a json-like object format. The format supports integers, strings, lists and compound objects (as im writing this im realizing, that i should probably also add support for floats lol). Yea all in all, not that exciting even tho it took a ridiculous amount of time to get everything to work. Next, I’m gonna work on a small ui abstraction and then probably start polishing the engine to build a simple game with it and ship it.
2D-Game-Engine Devlog #5 Cameras 📷 Added the ability to use different cameras for specific render operations. Cameras can be applied and un-applied using regular render commands, making them very usable. Render-Layers ⛰️ Added render layers, so objects get rendered before/behind the player. Still has issues with the x coordinate lol. UI Added some rudimentary ui elements like labels and buttons. The ui is direct mode so its pretty much just drop in lol. I also added nine-slice scaling so ui elements can be scaled nicely. Next, I’m gonna implement collisions and some more ui functionality.
#2D-Game-Engine Devlog #6 Finishing networking Most of the time on this devlog was spent working on finishing networking. I was mainly fixing the packet system which had some issues due to the way the packet header and packet queue were implemented. But as you can see, now people are able to join the server! Next, I’m gonna finally finish the ui and then work on the main remaining features, mostly relating to assets and textures in particular.
2D-Game-Engine Declog #7 MULTIPLAYER! Since the last devlog i mainly worked on actually implementing a working multiplayer demo and fixing all the issue i ran into along the way! Entities and their components are being synced, the server is responsible for creating players… However, the server is currently not in control of movement, crate placement and collisions which is why those things can’t be synced at the moment. So that’s probably gonna be the last few things I’m gonna work on before shipping :3...
|
1793040577.988014
|
1793645377.988014
|
|
33660
|
PartSourcer by @yaasshh | Stardance
|
yaasshh
|
1
|
47.23
|
515
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-20T14:26:23Z", "hours": 37.0, "multiplier": 18.84, "payout": 515, "blessing": "neutral", "text": "PartSourcer Find the cheapest in-stock part for your PCB in one search. Live at “part-sourcer.vercel.app” Search any electronic component and get its stock, price, footprint and datasheet in one place. Every number is stamped with the moment it was read, so you always know how new it is. The useful bit: for a part you searched, it looks for one cheaper drop-in that is actually in stock, and tells you why it counts as a match. Same package, matching specs, real stock, and both prices re-read the same way before any saving gets claimed. If it cannot find a genuine match, it elaborates so. Right now that works for resistors and capacitors. Everything else gets an “no match found”. (Perhaps later implementation) Rules it sticks to: No made-up stock or prices. If the data is stale, you get an error, not a number pretending to be fresh. A part with no published price says “no price”, never $0.00. A zero would read as free and win every comparison. Missing fields are left out rather than filled with a placeholder. Built with FastAPI and React, both on Vercel, with Postgres behind the price history. Part data comes from Mouser in real time, plus an open snapshot of the LCSC catalogue that refreshes about once a day. There is a DigiKey adapter too, and it switches on once credentials are set. Free, open source, no login, no paywall. MIT licensed.", "repo": "https://github.com/yaasshh09/PartSourcer", "demo": "https://part-sourcer.vercel.app"}]...
|
[{"post_id": 82642, "ts": "202 [{"post_id": 82642, "ts": "2026-10-25T14:22:03Z", "hours": 4.1617, "text": "Devlog 6 Since the last devlog I’ve been working through my list of 60 ideas. Part pages got a lot more useful. Each one now has a price history chart, a hint about when a sold-out part might come back, and whether the part is still being made or is on its way out. Sometimes it also suggests a part with better specs for the same money, and now it can show up to three cheaper swaps instead of just one. Search results also get small badges when a price or stock level changes. I added a currency picker, a watchlist for parts you care about, and RSS feeds that tell you when a part’s price or stock moves. For BOMs, you can now see whether buying everything from one store beats splitting the order between stores. I also made tools for people who don’t want to use the website. There’s a developer page for the API, a command line tool that prices a BOM, a GitHub Action that posts your BOM cost on pull requests, and a KiCad plugin. I tested the plugin on real KiCad boards and found it was missing some part number fields, so I fixed that. Other fixes: the BOM page works better on phones, the colors are easier to read, dark mode looks right, and downloaded BOMs can’t carry sneaky spreadsheet formulas anymore. The free data source I use still has broken search, so I’ve started applying for the official LCSC API. Fingers crossed it gets approved!"}, {"post_id": 79259, "ts": "2026-10-13T07:30:24Z", "hours": 6.0697, "text": "#Devlog 5 After the security pass, I mostly worked on new features. I added a Browse section, so you can look through six part categories without knowing a part number. Then I built a compare tray. You pin up to four parts from anywhere on the site and see them side by side. I moved the site to Vercel with a database in Singapore. A small job now runs every night and records prices, so later I can show how a part’s price changes over time. Search had some problems. The free data source I use started returning broken results, so I wrote up what was going wrong and reported it to the people who run it. I also stopped showing results that had nothing to do with what you searched, and I made the “part not found” message more clear. Now it says when a distributor just didn’t answer, instead of saying the part doesn’t exist. You can also sort results by price now. The biggest new thing is BOM check. You paste in your whole parts list, or load a spreadsheet, and it prices every line at the quantity you need. It tells you which lines it skipped and why, and you can share the checked list as a link. Part pages now show each distributor’s bulk pricing. There’s also a quantity box, so you see what you’d actually pay for 250 parts and not just one. If you click a part from your BOM, that box already has your quantity in it. Next, I made a list of 60 more ideas and started building them."}, {"post_id": 51003, "ts": "2026-08-20T14:21:47Z", "hours": 1.0139, "text": "Dev log #5?? Ran a 20-item polish checklist over the site. Ten things were already fine: links all work, buttons all do something, the 404 page is real, errors show up properly. Six items from the checklist were missing, so I built them. Fixed the page titles. Every page was showing the same title because nothing reloads in a single-page app. Now a part page names the part, a search names what you searched. Put a year in the footer, read live so it never goes stale. Dropped the “404 demo” link, that was a leftover dev thing sitting next to real links. Then two actual bugs I only found by measuring in a browser at phone size. The home page really was scrolling sideways: a card grid was asking for 400px inside a 319px space. About had the same thing at 340px. Fixed both. The header was the other one. It needed 390px of room for the logo and five links on a 375px phone. It had been wrapping onto three rows and leaving Contact stranded alone. Now the links tuck behind a menu button below 640px. Header went from 281px tall to 69px. Last thing: the pages were too narrow and floated in empty space. Widened them a lot, 1600px for the main shell and 1400px for the text pages. Width alone would’ve just made long ugly lines, so the card grids reshaped too. FAQ goes two across, the three how-it-works steps share a row, the four-card grids go four across and step down cleanly. Plus a few more minor changes, The project is built enough to be shipped!"}, {"post_id": 50904, "ts": "2026-08-20T11:35:02Z", "hours": 7.1633, "text": "Dev log #3 or #4?? After the site went multi-distributor, I kept going. I added a contact page with my email, Instagram and GitHub, dropped GitHub out of the header, gave the footer real columns with links that work, moved the data source note over to the About page and wrote more there. The front page got more to read too, and the About cards now sit in a clean 2x2 grid. Then I did a proper security pass. I added a middleware that stamps security headers on every API response, including CSP, frame options and HSTS. Wrote a rate limiter that reads the client IP from headers the platform actually writes, never the one a caller can fake, and capped its key table so the limiter itself cannot be turned into the attack. Added input caps: query at 200 characters, page at 50, part key at 128, all refused early so nobody can burn my distributor quota. Added a body size ceiling and tightened CORS. The static site got its own CSP through vercel.json, checked against the real built bundle. I also wrote guard tests: they fail if a stray .env gets committed, if a credential literal shows up in source, if SQL starts joining values instead of using placeholders, or if a Set-Cookie ever appears. Then I documented the whole posture in the backend README, including what I deliberately left out and why."}, {"post_id": 48452, "ts": "2026-08-16T20:03:22Z", "hours": 13.2792, "text": "PartSourcer devlog #2 Started with a simple annoyance: finding a part that is actually in stock means opening six distributor tabs per line of a BOM. Wrote a throwaway script to poke at the free jlcsearch API and see what the data really looked like. Turned out it has no brand and no datasheet. Decided early to show that as blank rather than show wrong results. Also built the backend. FastAPI, a swappable data source so the real LCSC API can drop in later. Also tweaked the frontend a bit. React, inline styles, a loud yellow-and-black look. Then deploy configs, and the site went live on Render. Implemented a price history recorder, so the data is there later even if nothing reads it yet. The big addition. The site finally became multi-distributor: Mouser and DigiKey alongside LCSC. Every part now carries a list of offers, one per distributor, and a per-source status so a partial failure shows as a partial answer rather than an error."}, {"post_id": 27780, "ts": "2026-07-13T17:10:53Z", "hours": 15.7958, "text": "I’ve been working on a personal project called PartSourcer. Essentially, it’s a database, a bit beautified, but a database nevertheless, that scours the internet for major electronic component distributors in bulk, such as Mouser, DigiKey, JLCPCB, and LCSC. It goes through all of these major component databases, fetching real-time data from API keys I generated myself, and outputs the components and their prices. So far, I have the frontend and most of the backend done. The next step is to actually implement the Mouser and DigiKey API keys. I have the Mouser one ready; DigiKey is a bit more confusing to get, but I will get it. I already have the LCSC and JLCPCB integration working for each component, showing real-time stock and unit prices per item. I’m going to keep a very early version of the project open source under the MIT license. Later on, I plan to remove the MIT license and host it on the internet for free, but it won’t remain open source. Only that very early version will stay under the MIT license. Moving forward, my roadmap for the project includes: Completing the actual API implementations. Implementing a side-by-side comparison tool. Adding a large-scale, bulk BOM (bill of materials) upload feature. Creating a price history chart. Implementing a “browse by category” feature. Adding a “biggest savings this week” section to show people where the best deals are and what they can save money on."}]...
|
Title: PartSourcer by @yaasshh | Stardance
Devlog Title: PartSourcer by @yaasshh | Stardance
Devlogs:
I’ve been working on a personal project called PartSourcer. Essentially, it’s a database, a bit beautified, but a database nevertheless, that scours the internet for major electronic component distributors in bulk, such as Mouser, DigiKey, JLCPCB, and LCSC. It goes through all of these major component databases, fetching real-time data from API keys I generated myself, and outputs the components and their prices. So far, I have the frontend and most of the backend done. The next step is to actually implement the Mouser and DigiKey API keys. I have the Mouser one ready; DigiKey is a bit more confusing to get, but I will get it. I already have the LCSC and JLCPCB integration working for each component, showing real-time stock and unit prices per item. I’m going to keep a very early version of the project open source under the MIT license. Later on, I plan to remove the MIT license and host it on the internet for free, but it won’t remain open source. Only that very early version will stay under the MIT license. Moving forward, my roadmap for the project includes: Completing the actual API implementations. Implementing a side-by-side comparison tool. Adding a large-scale, bulk BOM (bill of materials) upload feature. Creating a price history chart. Implementing a “browse by category” feature. Adding a “biggest savings this week” section to show people where the best deals are and what they can save money on.
PartSourcer devlog #2 Started with a simple annoyance: finding a part that is actually in stock means opening six distributor tabs per line of a BOM. Wrote a throwaway script to poke at the free jlcsearch API and see what the data really looked like. Turned out it has no brand and no datasheet. Decided early to show that as blank rather than show wrong results. Also built the backend. FastAPI, a swappable data source so the real LCSC API can drop in later. Also tweaked the frontend a bit. React, inline styles, a loud yellow-and-black look. Then deploy configs, and the site went live on Render. Implemented a price history recorder, so the data is there later even if nothing reads it yet. The big addition. The site finally became multi-distributor: Mouser and DigiKey alongside LCSC. Every part now carries a list of offers, one per distributor, and a per-source status so a partial failure shows as a partial answer rather than an error.
Dev log #3 or #4?? After the site went multi-distributor, I kept going. I added a contact page with my email, Instagram and GitHub, dropped GitHub out of the header, gave the footer real columns with links that work, moved the data source note over to the About page and wrote more there. The front page got more to read too, and the About cards now sit in a clean 2x2 grid. Then I did a proper security pass. I added a middleware that stamps security headers on every API response, including CSP, frame options and HSTS. Wrote a rate limiter that reads the client IP from headers the platform actually writes, never the one a caller can fake, and capped its key table so the limiter itself cannot be turned into the attack. Added input caps: query at 200 characters, page at 50, part key at 128, all refused early so nobody can burn my distributor quota. Added a body size ceiling and tightened CORS. The static site got its own CSP through vercel.json, checked against the real built bundle. I also wrote guard tests: they fail if a stray .env gets committed, if a credential literal shows up in source, if SQL starts joining values instead of using placeholders, or if a Set-Cookie ever appears. Then I documented the whole posture in the backend README, including what I deliberately left out and why.
Dev log #5?? Ran a 20-item polish checklist over the site. Ten things were already fine: links all work, buttons all do something, the 404 page is real, errors show up properly. Six items from the checklist were missing, so I built them. Fixed the page titles. Every page was showing the same title because nothing reloads in a single-page app. Now a part page names the part, a search names what you searched. Put a year in the footer, read live so it never goes stale. Dropped the “404 demo” link, that was a leftover dev thing sitting next to real links. Then two actual bugs I only found by measuring in a browser at phone size. The home page really was scrolling sideways: a card grid was asking for 400px inside a 319px space. About had the same thing at 340px. Fixed both. The header was the other one. It needed 390px of room for the logo and five links on a 375px phone. It had been wrapping onto three rows and leaving Contact stranded alone. Now the links tuck behind a menu button below 640px. Header went from 281px tall to 69px. Last thing: the pages were too narrow and floated in empty space. Widened them a lot, 1600px for the main shell and 1400px for the text pages. Width alone would’ve just made long ugly lines, so the card grids reshaped too. FAQ goes two across, the three how-it-works steps share a row, the four-card grids go four across and step down cleanly. Plus a few more minor changes, The project is built enough to be shipped!
#Devlog 5 After the security pass, I mostly worked on new features. I added a Browse section, so you can look through six part categories without knowing a part number. Then I built a compare tray. You pin up to four parts from anywhere on the site and see them side by side. I moved the site to Vercel with a database in Singapore. A small job now runs every night and records prices, so later I can show how a part’s price changes over time. Search had some problems. The free data source I use started returning broken results, so I wrote up what was going wrong and reported it to the people who run it. I also stopped showing results that had nothing to do with what you searched, and I made the “part not found” message more clear. Now it says when a distributor just didn’t answer, instead of saying the part doesn’t exist. You can also sort results by price now. The biggest new thing is BOM check. You paste in your whole parts list, or load a spreadsheet, and it prices every line at the quantity you need. It tells you which lines it skipped and why, and you can share the checked list as a link. Part pages now show each distributor’s bulk pricing. There’s also a quantity box, so you see what you’d actually pay for 250 parts and not just one. If you click a part from your BOM, that box already has your quantity in it. Next, I made a list of 60 more ideas and started building them.
Devlog 6 Since the last devlog I’ve been working through my list of 60 ideas. Part pages got a lot more useful. Each one now has a price history chart, a hint about when a sold-out part might come back, and whether the part is still being made or is on its way out. Sometimes it also suggests a part with better specs for the same money, and now it can show up to three cheaper swaps instead of just one. Search results also get small badges when a price or stock level changes. I added a currency picker, a watchlist for parts you care about, and RSS feeds that tell you when a part’s price or stock moves. For BOMs, you can now see whether buying everything from one store beats splitting the order between stores. I also made tools for people who don’t want to use the website. There’s a developer page for the API, a command line tool that prices a BOM, a GitHub Action that posts your BOM cost on pull requests, and a KiCad plugin. I tested the plugin on real KiCad boards and found it was missing some part number fields, so I fixed that. Other fixes: the BOM page works better on phones, the colors are easier to read, dark mode looks right, and downloaded BOMs can’t carry sneaky spreadsheet formulas anymore. The free data source I use still has broken search, so I’ve started applying for the official LCSC API. Fingers crossed it gets approved!
Ships:
PartSourcer Find the cheapest in-stock part for your PCB in one search. Live at “part-sourcer.vercel.app” Search any electronic component and get its stock, price, footprint and datasheet in one place. Every number is stamped with the moment it was read, so you always know how new it is. The useful bit: for a part you searched, it looks for one cheaper drop-in that is actually in stock, and tells you why it counts as a match. Same package, matching specs, real stock, and both prices re-read the same way before any saving gets claimed. If it cannot find a genuine match, it elaborates so. Right now that works for resistors and capacitors. Everything else gets an “no match found”. (Perhaps later implementation) Rules it sticks to: No made-up stock or prices. If the data is stale, you get an error, not a number pretending to be fresh. A part with no published price says “no price”, never $0.00. A zero would read as free and win every comparison. Missing fields are left out rather than filled with a placeholder. Built with FastAPI and React, both on Vercel, with Postgres behind the price history. Part data comes from Mouser in real time, plus an open snapshot of the LCSC catalogue that refreshes about once a day. There is a DigiKey adapter too, and it switches on once credentials are set. Free, open source, no login, no paywall. MIT licensed....
|
1793138277.9877877
|
1793224677.9877877
|
|
46230
|
Tabletop game by @kennator | Stardance
|
kennator
|
0
|
47.17
|
0
|
[]
|
[{"post_id": 65209, "ts": "202 [{"post_id": 65209, "ts": "2026-09-10T05:40:48Z", "hours": 2.2011, "text": "Devlog 8 So this is know the game … Thing? idk what u call this shape. Specs: uses 2 buttons and a rotary encoder for inputs LCD I2C Arduino Nano for microcontroler to save size and bcs i have one Pls check out my other devlogs if u have no idea what is going on"}, {"post_id": 63329, "ts": "2026-09-07T02:58:50Z", "hours": 3.8681, "text": "Devlog 7 The Physical game elements section has been completed, all units have been sliced and slots made to help 3D printing. The next step is to make the game cube. Im probs gonna use a arduino nano and a LCD I2C for the display since it does not need to be complex. p.s Anyone have any idea what the game cube( or whatever shape) should look like?"}, {"post_id": 58030, "ts": "2026-08-30T11:37:36Z", "hours": 5.5667, "text": "Devlog 6 Resizing some minis that had sections that where too small and also cut them up with connection points to help optimize printing."}, {"post_id": 53657, "ts": "2026-08-24T09:54:59Z", "hours": 14.2997, "text": "Devlog 5 So now all the minis are compete :D The next step is to prepare them for 3D printing"}, {"post_id": 48726, "ts": "2026-08-17T07:55:58Z", "hours": 8.4706, "text": "Devlog 4 Mostly finished with smaller Minis and this is a Boss. Basicly i can have a game cube act as a Ai for the Boss so PvE game mode."}, {"post_id": 46858, "ts": "2026-08-14T12:11:20Z", "hours": 2.7683, "text": "Devlog 3 Made some Little mech boi minis"}, {"post_id": 46586, "ts": "2026-08-13T22:28:16Z", "hours": 3.9714, "text": "Devlog 2 Finished off the structures"}, {"post_id": 45428, "ts": "2026-08-11T21:18:47Z", "hours": 6.0272, "text": "Hello there, ths is my first devlog. My project is to make my own Tabletop Game :D To bring this project to life I will primarily use onshape(Bcs my potato of a computer may be durable but not very fast) to create models and 3D print them. I also intend to make a game cube to handle all the maths like dice and other game mechanics to make the gameplay smooth.(Unlike warhammer which i spent like 3hrs figuring out how movement works -_-). Additionaly i wish to make them more optimized for bed slinger3D printing bcs most people don’t have resin printers or like $3000-5000 FDM printers. and bed slingers are probs what most people have."}]...
|
Title: Tabletop game by @kennator | Stardance
Dev Title: Tabletop game by @kennator | Stardance
Devlogs:
Hello there, ths is my first devlog. My project is to make my own Tabletop Game :D To bring this project to life I will primarily use onshape(Bcs my potato of a computer may be durable but not very fast) to create models and 3D print them. I also intend to make a game cube to handle all the maths like dice and other game mechanics to make the gameplay smooth.(Unlike warhammer which i spent like 3hrs figuring out how movement works -_-). Additionaly i wish to make them more optimized for bed slinger3D printing bcs most people don’t have resin printers or like $3000-5000 FDM printers. and bed slingers are probs what most people have.
Devlog 2 Finished off the structures
Devlog 3 Made some Little mech boi minis
Devlog 4 Mostly finished with smaller Minis and this is a Boss. Basicly i can have a game cube act as a Ai for the Boss so PvE game mode.
Devlog 5 So now all the minis are compete :D The next step is to prepare them for 3D printing
Devlog 6 Resizing some minis that had sections that where too small and also cut them up with connection points to help optimize printing.
Devlog 7 The Physical game elements section has been completed, all units have been sliced and slots made to help 3D printing. The next step is to make the game cube. Im probs gonna use a arduino nano and a LCD I2C for the display since it does not need to be complex. p.s Anyone have any idea what the game cube( or whatever shape) should look like?
Devlog 8 So this is know the game … Thing? idk what u call this shape. Specs: uses 2 buttons and a rotary encoder for inputs LCD I2C Arduino Nano for microcontroler to save size and bcs i have one Pls check out my other devlogs if u have no idea what is going on...
|
1792655532.492293
|
1793519532.492293
|
|
10438
|
MushCollect by @emily_zh6ng | Stardance
|
emily_zh6ng
|
0
|
47.13
|
0
|
[]
|
[{"post_id": 32855, "ts": "202 [{"post_id": 32855, "ts": "2026-07-22T09:00:13Z", "hours": 47.1289, "text": "First update! I made the terrain, basic movement, and UI :P"}]...
|
Title: MushCollect by @emily_zh6ng | Stardance
De Title: MushCollect by @emily_zh6ng | Stardance
Devlogs:
First update! I made the terrain, basic movement, and UI :P...
|
1792637560.0558345
|
1793242360.0558345
|
|
52156
|
Sentinel by @L0stsky | Stardance
|
L0stsky
|
0
|
47.05
|
0
|
[]
|
[{"post_id": 72692, "ts": "202 [{"post_id": 72692, "ts": "2026-09-23T14:55:23Z", "hours": 5.1983, "text": "BEHOLD THE HOLY NUMBER 0.00321 Ye ik ik the title is kindda lame but heres the thing: I Spent the last 2-3 hours working on Evaluating the model and Trying to Find a Good System to Find the Anamolies threshold so no anomalies are missed but we dont have alarms blaring all the time. So I (ngl it was from help with gemini) came up with an algo to find the threshold . So i have Got the whole Thing planned out, I have my Main Model with the Threshold I have set and the model is fed the data, it tries to recontruct it and then It Calculates the Error the Model Made. If this Error is more than the Threshold , then Tier 2 is engaged and its another model which predicts whether its Real or False. Also If anyone’s wondering like we have climate change, population change and all in the real world, then won’t the Model just be unusable after some time?? So heres the thing, the Model is Not static, it will be continuously retrained on the Data collected over time , this Makes it More Precise and adaptable. Now Im DONE with the Model and Just working on the GUI for the person to interact with the Model in real time Simulated City."}, {"post_id": 70698, "ts": "2026-09-19T16:37:03Z", "hours": 14.75, "text": "**MODEL is TRAINEDDD!!!!! So this is a MASSIVE devlog cuz i forgot TO check my time and wasted like 5 hours …… but heres wat I did: Completed the Model training Made a Basic Website Tho I still wanna make the website even better by using a Scroll Animation Completed the Problem Video Tested the Model and its AWESOME. Did some Work on a GUI to showcase the Model, Im thinking like I make a Section in the website where theres a simulated City and the user can mess around with the Sim Parameters to test the Model and all. SO below you can see the Model Tested on two Test Datasets -> The Entire Anomalous Dataset and the Hourly Anomaly injection Dataset where i just took the Clean Dataset and injected some fake anomaly hours. Also the Only change in the Simulation was a single number change by .15 and the Model was still able to Class it as an anomaly!"}, {"post_id": 64797, "ts": "2026-09-09T13:43:09Z", "hours": 5.8156, "text": "Data Simulation Complete!!! So I finally Completed one of the Harder parts of the Project which was getting the frickin data to Train a Model On. So Heres wat I did : I First Extracted some data from the IMD - Indian Weather website using Chatgpt to Compile it into usable Python Data Types. Now these were in the form of Parameters for the Simulation like the Rainfall Chances, Types, Human Consumption (hourly) etc. Then Came the Actual Environment Making Which is now Done!!! So Now Wat i wanna Do is Extract Features from the data Cuz the Model Can’t be trained on Raw Time Series Data. Then Train the Actual Model. Also Btw Wait for a Awesome Full Intro Vid for the Project!!"}, {"post_id": 62143, "ts": "2026-09-05T12:14:21Z", "hours": 7.5147, "text": "So I Spent like 2 Hours Getting a basic Simulation to work, then I Binged like 2-3 YT vids about Anamoly detection models and made a Pretty small one to train. After like 3-4 Hours of training, the Model didnt Make any progress its still a Baseline random Model. Now Since this was a very small model which had to somehow find anamolies in a Time Series Data that too in Multiple variables I just figured its way too small. So Heres my Plan: Complete the Entire Simulation code. Binge more Videos Build and train a Better Model. Also in the Future Make a Gui to see the Simulation Interactively. I Don’t have much to show rn except some cool lil pic I Took of the rain."}, {"post_id": 53190, "ts": "2026-08-23T17:04:28Z", "hours": 1.9181, "text": "Virtual ENV Data Extraction Stage Complete So I Spent 2 Hours Collecting Data Regarding the Indian Climate from the IMD website and Used AI to Compile it Into a Useable Form. So Basically In a Nutshell here’s what Im Planning : 1) I collect the Data regarding the Rain, and Human Water Usage W.R.T to India (Could have been any country but I thought India Would Be easier to verify cuz I live in India). –> This is Done. 2) I use this Data To Make a Virtual Env which Simulate the Water Entering the Drainage Pipes. Basically the Data Collected is Used to Realistically Generate a Day and How Much chances that Rain can occur and how much rain and How much water Used by Humans etc. in that day 3) Since the activity of the Env Is based on The same Background Info, the Anomaly Detection Model learns How the Water Level in the Drain Pipe Works in the env. Then I introduce a Blockage in Pipes, Then Use this to Test the Model. Also, If you have read this far, thank you 😉"}, {"post_id": 51743, "ts": "2026-08-21T15:59:28Z", "hours": 11.8492, "text": "Y’all Ready for This?? So here is what Sentinel is about : So basically as you know we have drainage pipes which with time develop blockages due to various reasons. These blockages right now have NO way of being detected until they cause waterlogging and cause infrastructural damage and are costly to repair. But these blockages are actually NOT UNDETECTABLE . So here is the thing -> when the blockages start forming, the water level in the drains acts abnormally. These abnormalities can be detected by using an Anomaly Detection Model .So my entire project is based on this idea. Here is a 3D animation I spent way too much time on."}]...
|
Title: Sentinel by @L0stsky | Stardance
Devlogs:
Title: Sentinel by @L0stsky | Stardance
Devlogs:
Y’all Ready for This?? So here is what Sentinel is about : So basically as you know we have drainage pipes which with time develop blockages due to various reasons. These blockages right now have NO way of being detected until they cause waterlogging and cause infrastructural damage and are costly to repair. But these blockages are actually NOT UNDETECTABLE . So here is the thing -> when the blockages start forming, the water level in the drains acts abnormally. These abnormalities can be detected by using an Anomaly Detection Model .So my entire project is based on this idea. Here is a 3D animation I spent way too much time on.
Virtual ENV Data Extraction Stage Complete So I Spent 2 Hours Collecting Data Regarding the Indian Climate from the IMD website and Used AI to Compile it Into a Useable Form. So Basically In a Nutshell here’s what Im Planning : 1) I collect the Data regarding the Rain, and Human Water Usage W.R.T to India (Could have been any country but I thought India Would Be easier to verify cuz I live in India). –> This is Done. 2) I use this Data To Make a Virtual Env which Simulate the Water Entering the Drainage Pipes. Basically the Data Collected is Used to Realistically Generate a Day and How Much chances that Rain can occur and how much rain and How much water Used by Humans etc. in that day 3) Since the activity of the Env Is based on The same Background Info, the Anomaly Detection Model learns How the Water Level in the Drain Pipe Works in the env. Then I introduce a Blockage in Pipes, Then Use this to Test the Model. Also, If you have read this far, thank you 😉
So I Spent like 2 Hours Getting a basic Simulation to work, then I Binged like 2-3 YT vids about Anamoly detection models and made a Pretty small one to train. After like 3-4 Hours of training, the Model didnt Make any progress its still a Baseline random Model. Now Since this was a very small model which had to somehow find anamolies in a Time Series Data that too in Multiple variables I just figured its way too small. So Heres my Plan: Complete the Entire Simulation code. Binge more Videos Build and train a Better Model. Also in the Future Make a Gui to see the Simulation Interactively. I Don’t have much to show rn except some cool lil pic I Took of the rain.
Data Simulation Complete!!! So I finally Completed one of the Harder parts of the Project which was getting the frickin data to Train a Model On. So Heres wat I did : I First Extracted some data from the IMD - Indian Weather website using Chatgpt to Compile it into usable Python Data Types. Now these were in the form of Parameters for the Simulation like the Rainfall Chances, Types, Human Consumption (hourly) etc. Then Came the Actual Environment Making Which is now Done!!! So Now Wat i wanna Do is Extract Features from the data Cuz the Model Can’t be trained on Raw Time Series Data. Then Train the Actual Model. Also Btw Wait for a Awesome Full Intro Vid for the Project!!
**MODEL is TRAINEDDD!!!!! So this is a MASSIVE devlog cuz i forgot TO check my time and wasted like 5 hours …… but heres wat I did: Completed the Model training Made a Basic Website Tho I still wanna make the website even better by using a Scroll Animation Completed the Problem Video Tested the Model and its AWESOME. Did some Work on a GUI to showcase the Model, Im thinking like I make a Section in the website where theres a simulated City and the user can mess around with the Sim Parameters to test the Model and all. SO below you can see the Model Tested on two Test Datasets -> The Entire Anomalous Dataset and the Hourly Anomaly injection Dataset where i just took the Clean Dataset and injected some fake anomaly hours. Also the Only change in the Simulation was a single number change by .15 and the Model was still able to Class it as an anomaly!
BEHOLD THE HOLY NUMBER 0.00321 Ye ik ik the title is kindda lame but heres the thing: I Spent the last 2-3 hours working on Evaluating the model and Trying to Find a Good System to Find the Anamolies threshold so no anomalies are missed but we dont have alarms blaring all the time. So I (ngl it was from help with gemini) came up with an algo to find the threshold . So i have Got the whole Thing planned out, I have my Main Model with the Threshold I have set and the model is fed the data, it tries to recontruct it and then It Calculates the Error the Model Made. If this Error is more than the Threshold , then Tier 2 is engaged and its another model which predicts whether its Real or False. Also If anyone’s wondering like we have climate change, population change and all in the real world, then won’t the Model just be unusable after some time?? So heres the thing, the Model is Not static, it will be continuously retrained on the Data collected over time , this Makes it More Precise and adaptable. Now Im DONE with the Model and Just working on the GUI for the person to interact with the Model in real time Simulated City....
|
1792698682.0040178
|
1793303482.0040178
|
|
6822
|
Buffet Patron Simulator by @ylu | Stardance
|
ylu
|
1
|
47.0
|
625
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-29T18:37:52Z", "hours": 47.0, "multiplier": 14.51, "payout": 625, "blessing": "neutral", "text": "I made a simulation game where you are at a buffet. You can put food on your plate and watch it realistically deform based on what’s underneath it. You can pour yourself a drink at the soda fountain and even mix drinks. This is technically my third Unity game, but it is the greatest in terms of originality and scope. I had little to no experience programming in C# for Unity before this. I’m proud of realizing some of my more technically challenging visions such as the food deformation and drink mixing. I’m also proud of learning how to model and paint foods and such in Blender. My project is fully playable on the web. The demo points to the itch.io page. A Windows executable is also available to download there.", "repo": "https://github.com/Why-Am/Buffet-Patron-Simulator", "demo": "https://yhlu.itch.io/buffet-patron-simulator"}]...
|
[{"post_id": 18467, "ts": "202 [{"post_id": 18467, "ts": "2026-06-29T17:06:12Z", "hours": 5.7625, "text": "New in Buffet Patron Simulator: Final Tweaks, a Video Trailer, and Ship Preparations In-Game Changes White UI text now has an outline for visibility New food item: chocolate cake slice ( watch me make it ) Changed the directional light from a realtime light to a mixed light (realtime + baked) so shadows would be higher quality on web Trailer I made a trailer for my game: https://youtu.be/KIWuaLkeX5Q ( watch me make it ) Updated README and Itch.io Page Finally, I updated my project’s README and Itch.io page for polish. Attached: frame from the trailer"}, {"post_id": 16030, "ts": "2026-06-26T01:06:25Z", "hours": 1.5383, "text": "Added some posters to my game"}, {"post_id": 15301, "ts": "2026-06-24T21:03:17Z", "hours": 3.9775, "text": "New in Buffet Patron Simulator: Realistic Sounds, Inspecting Drink Dispensers Adding sounds to the drink dispensers got me to rework the hold interactions. Now it uses the more sane method of checking key presses and releases (previously it just sent interact calls every frame a key was held). Anyways, with that alongside a new “liquid pouring” effect (which is just a moving cylinder), the dispensers are now more satisfying to use. Placing Food Placing food also gets a sound. So that not all foods sounded the same, I added a “weight” field to each food that determined the volume at which the sound would be played. Inspecting Your Food and Drink I added an inspect scene that’s basically just a copy-and-paste of the food placing scene but stripped down and with the glass present. It’s accessed by pressing i . Ship Soon? Next, I will focus on final optimizations and promotional materials (videos, images) to prepare to ship within a few days."}, {"post_id": 14012, "ts": "2026-06-23T00:03:49Z", "hours": 5.9614, "text": "New in Buffet Patron Simulator: Drinks You can mix drinks and the color of the glass’s contents changes accordingly. I also added the game’s first sounds - you should be able to hear them in the video - as well as 3 more foods: crab rangoon, General Tso’s chicken, and coconut shrimp. It was a challenge to get the glass to fill at a consistent rate, but I figured it out using a coroutine that restricts the rate of calls to add liquid (which occur every frame the E key is held). Next up is figuring out how to play a sound while it fills…"}, {"post_id": 11533, "ts": "2026-06-18T20:38:49Z", "hours": 2.7747, "text": "Added some scenery and lighting to my buffet game There are some tough tradeoffs to be made in terms of graphics, given that I want the game to look good but also be lean for the web. Skybox There aren’t actually any 3D buildings outside of the windows, it’s just a skybox I got from Polyhaven (a large repository of public domain 3D assets I found). I settled for a lower resolution version since it would have less impact on loading times. Lights The lights on the ceiling are baked area lights. The upside of that is a lower runtime cost. The downside is that it ignores moving objects like the player. Floor Then, thinking the room looked a little dull, I made a purple and yellow (green?) tile material for the floor. The texture is nice and small at only 128x128 px/156 bytes. I’ve been increasingly mindful of texture sizes as my game grows."}, {"post_id": 10238, "ts": "2026-06-16T21:22:18Z", "hours": 2.5369, "text": "Added eggs, baked beans, and green beans. I also made some other refinements, including making the displays easier to interact with by making their colliders bigger. Watch me model the foods: https://lapse.hackclub.com/timelapse/0VTNwczx4ETd"}, {"post_id": 9514, "ts": "2026-06-15T21:39:32Z", "hours": 6.2758, "text": "Since last devlog, I added burger ingredients and a settings menu. Here’s a time lapse of me making the models: https://lapse.hackclub.com/timelapse/OWkasEGkBTYV It’s also now playable enough that I decided to publish a web demo: https://yhlu.itch.io/buffet-patron-simulator"}, {"post_id": 7228, "ts": "2026-06-12T02:00:44Z", "hours": 6.4814, "text": "Since last devlog, there is now: a preliminary buffet scene with a first person movable character and interactive food displays new 3D models for the plate and the rice, made in Blender"}, {"post_id": 6013, "ts": "2026-06-10T02:35:20Z", "hours": 3.1494, "text": "Steak Added Also made some improvements to placing food. Modeling Issues It turns out that colorful textures on voxel models mess up when remeshing. The rice doesn’t have this problem because it’s grayscale. So I ended up trying sculpting and texture painting in Blender, and it was actually very intuitive. The steak in the video is made completely in Blender."}, {"post_id": 5307, "ts": "2026-06-09T01:18:55Z", "hours": 3.3122, "text": "A Pile of Rice New scene for placing food on a plate. Currently only rice available. It’s only now starting to dawn on me that this doesn’t really look like rice."}, {"post_id": 4497, "ts": "2026-06-07T20:35:00Z", "hours": 4.8922, "text": "I am working on making food pile up realistically using mesh deformation. The structural integrity is adjustable for different foods. Structural integrity is achieved in two ways: Only the bottom vertices are directly mapped onto the surface below; the rest are then moved relative to the bottom vertices. The amount a vertex moves is inversely related to its height. It could be tuned in terms of realism and optimization, but I’m currently happy with the result."}]...
|
Title: Buffet Patron Simulator by @ylu | Stardance Title: Buffet Patron Simulator by @ylu | Stardance
Devlogs:
I am working on making food pile up realistically using mesh deformation. The structural integrity is adjustable for different foods. Structural integrity is achieved in two ways: Only the bottom vertices are directly mapped onto the surface below; the rest are then moved relative to the bottom vertices. The amount a vertex moves is inversely related to its height. It could be tuned in terms of realism and optimization, but I’m currently happy with the result.
A Pile of Rice New scene for placing food on a plate. Currently only rice available. It’s only now starting to dawn on me that this doesn’t really look like rice.
Steak Added Also made some improvements to placing food. Modeling Issues It turns out that colorful textures on voxel models mess up when remeshing. The rice doesn’t have this problem because it’s grayscale. So I ended up trying sculpting and texture painting in Blender, and it was actually very intuitive. The steak in the video is made completely in Blender.
Since last devlog, there is now: a preliminary buffet scene with a first person movable character and interactive food displays new 3D models for the plate and the rice, made in Blender
Since last devlog, I added burger ingredients and a settings menu. Here’s a time lapse of me making the models: https://lapse.hackclub.com/timelapse/OWkasEGkBTYV It’s also now playable enough that I decided to publish a web demo: https://yhlu.itch.io/buffet-patron-simulator
Added eggs, baked beans, and green beans. I also made some other refinements, including making the displays easier to interact with by making their colliders bigger. Watch me model the foods: https://lapse.hackclub.com/timelapse/0VTNwczx4ETd
Added some scenery and lighting to my buffet game There are some tough tradeoffs to be made in terms of graphics, given that I want the game to look good but also be lean for the web. Skybox There aren’t actually any 3D buildings outside of the windows, it’s just a skybox I got from Polyhaven (a large repository of public domain 3D assets I found). I settled for a lower resolution version since it would have less impact on loading times. Lights The lights on the ceiling are baked area lights. The upside of that is a lower runtime cost. The downside is that it ignores moving objects like the player. Floor Then, thinking the room looked a little dull, I made a purple and yellow (green?) tile material for the floor. The texture is nice and small at only 128x128 px/156 bytes. I’ve been increasingly mindful of texture sizes as my game grows.
New in Buffet Patron Simulator: Drinks You can mix drinks and the color of the glass’s contents changes accordingly. I also added the game’s first sounds - you should be able to hear them in the video - as well as 3 more foods: crab rangoon, General Tso’s chicken, and coconut shrimp. It was a challenge to get the glass to fill at a consistent rate, but I figured it out using a coroutine that restricts the rate of calls to add liquid (which occur every frame the E key is held). Next up is figuring out how to play a sound while it fills…
New in Buffet Patron Simulator: Realistic Sounds, Inspecting Drink Dispensers Adding sounds to the drink dispensers got me to rework the hold interactions. Now it uses the more sane method of checking key presses and releases (previously it just sent interact calls every frame a key was held). Anyways, with that alongside a new “liquid pouring” effect (which is just a moving cylinder), the dispensers are now more satisfying to use. Placing Food Placing food also gets a sound. So that not all foods sounded the same, I added a “weight” field to each food that determined the volume at which the sound would be played. Inspecting Your Food and Drink I added an inspect scene that’s basically just a copy-and-paste of the food placing scene but stripped down and with the glass present. It’s accessed by pressing i . Ship Soon? Next, I will focus on final optimizations and promotional materials (videos, images) to prepare to ship within a few days.
Added some posters to my game
New in Buffet Patron Simulator: Final Tweaks, a Video Trailer, and Ship Preparations In-Game Changes White UI text now has an outline for visibility New food item: chocolate cake slice ( watch me make it ) Changed the directional light from a realtime light to a mixed light (realtime + baked) so shadows would be higher quality on web Trailer I made a trailer for my game: https://youtu.be/KIWuaLkeX5Q ( watch me make it ) Updated README and Itch.io Page Finally, I updated my project’s README and Itch.io page for polish. Attached: frame from the trailer
Ships:
I made a simulation game where you are at a buffet. You can put food on your plate and watch it realistically deform based on what’s underneath it. You can pour yourself a drink at the soda fountain and even mix drinks. This is technically my third Unity game, but it is the greatest in terms of originality and scope. I had little to no experience programming in C# for Unity before this. I’m proud of realizing some of my more technically challenging visions such as the food deformation and drink mixing. I’m also proud of learning how to model and paint foods and such in Blender. My project is fully playable on the web. The demo points to the itch.io page. A Windows executable is also available to download there....
|
1793090914.6144903
|
1793177314.6144903
|
|
7118
|
Starboard! by @world | Stardance
|
world
|
1
|
47.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-16T01:43:23Z", "hours": 47.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Starboard! I made this macro keyboard from scratch. This was my first time using KiCad and Fusion for a project! (And it took forever…) But it was a really fun project. Checkout the demo website using Three.js! I really can’t wait to see my keyboard irl", "repo": "https://github.com/deveworld/starboard", "demo": ""}]...
|
[{"post_id": 8138, "ts": "2026 [{"post_id": 8138, "ts": "2026-06-13T16:09:32Z", "hours": 10.5117, "text": "Starboard! Starboard is a compact 63×63 mm Hackpad macropad built entirely from kit parts with QMK firmware and a fully 3D-printed sandwich case. I designed the 2-layer PCB in KiCad and wrote a custom-matrix QMK keymap (six keys plus encoder press, encoder volume control, OLED status readout, and RGB underglow), then cross-checked the firmware pin map against the board netlist from three independent sources. Along the way I caught and fixed a stale prebuilt UF2 (a leftover 10 ms vs 30 ms bootmagic delay) by rebuilding deterministically from source, and confirmed every checklist dimension. Finally I packaged the repo to the required structure and pushed it public!"}, {"post_id": 5702, "ts": "2026-06-09T16:26:54Z", "hours": 5.8964, "text": "Full 3D Modeling It was way harder than my first thought… Many PCB correction… etc."}, {"post_id": 5509, "ts": "2026-06-09T09:49:13Z", "hours": 12.2217, "text": "I’m working on Fusion! But I think I need to fix some collision and clearance a bit. Does it look good?"}, {"post_id": 3420, "ts": "2026-06-06T11:04:16Z", "hours": 3.4808, "text": "PCB also done!!!"}, {"post_id": 3353, "ts": "2026-06-06T07:34:15Z", "hours": 14.6039, "text": "Schematic Done!"}]...
|
Title: Starboard! by @world | Stardance
Devlogs:
Title: Starboard! by @world | Stardance
Devlogs:
Schematic Done!
PCB also done!!!
I’m working on Fusion! But I think I need to fix some collision and clearance a bit. Does it look good?
Full 3D Modeling It was way harder than my first thought… Many PCB correction… etc.
Starboard! Starboard is a compact 63×63 mm Hackpad macropad built entirely from kit parts with QMK firmware and a fully 3D-printed sandwich case. I designed the 2-layer PCB in KiCad and wrote a custom-matrix QMK keymap (six keys plus encoder press, encoder volume control, OLED status readout, and RGB underglow), then cross-checked the firmware pin map against the board netlist from three independent sources. Along the way I caught and fixed a stale prebuilt UF2 (a leftover 10 ms vs 30 ms bootmagic delay) by rebuilding deterministically from source, and confirmed every checklist dimension. Finally I packaged the repo to the required structure and pushed it public!
Ships:
Starboard! I made this macro keyboard from scratch. This was my first time using KiCad and Fusion for a project! (And it took forever…) But it was a really fun project. Checkout the demo website using Three.js! I really can’t wait to see my keyboard irl...
|
1793134333.1538208
|
1793220733.1538208
|
|
19400
|
FocusBuddy by @SaiD | Stardance
|
SaiD
|
2
|
47.0
|
276
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-19T03:40:46Z", "hours": 12.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "A all in one AI-powered productivity system.", "repo": "https://github.com/Sai271-cloud/FocusBuddy", "demo": "https://focus-buddy-li7e.vercel.app/index.html?demo=night-owl"}, {"ship_num": 2, "ts": "2026-07-01T05:31:22Z", "hours": 35.0, "multiplier": 17.61, "payout": 276, "blessing": "neutral", "text": "I made a focusCoach that uses your webcam along with aboutme context + taskName + taskDescription + tab extension to figure out if you are focused or not. The tab extension won’t be available for you guys because it requires me to sign up for google developer account, but besides that the project should still work well. The project has multiple features like a plan feature, AI session debriefs, weekly and daily unwinds, and much more. It is pretty intuitive so try out the project for yourself!!. Also be aware that I am on the free trial of google studio so if the prediction doesn’t work for you that could just mean I have hit my rate limit. Anyway have fun!!!", "repo": "https://github.com/Sai271-cloud/FocusBuddy", "demo": "https://focus-buddy-li7e.vercel.app/index.html?demo=night-owl"}]...
|
[{"post_id": 30697, "ts": "202 [{"post_id": 30697, "ts": "2026-07-18T14:17:20Z", "hours": 4.0931, "text": "Devlog #4 I added a goal feature that allows you to make goals and uses the AI to track the goals and see how well you are doing for the goals"}, {"post_id": 28678, "ts": "2026-07-15T02:25:04Z", "hours": 7.4514, "text": "devlog #3 I have added leagues into the app. I have different leagues based on how many focused hours you have done. I am hoping this will motivate more people into spending more time on this app and in turn being more productive in their life!"}, {"post_id": 19780, "ts": "2026-07-01T05:11:30Z", "hours": 29.7242, "text": "Devlog #2. FocusBuddy V1 is complete. Here is the overview Tracker Focus Buddy is a productivity tool that helps students start focus sessions and understand how focused they were during that time. During a session, Focus Buddy classifies the user’s time into four states: focused, distracted, uncertain, and away. It does this by using webcam frames together with the task the user is working on. For example, if the task is “read a biology chapter,” the AI uses both the webcam frame and the task name/description to decide whether the user appears to be on task. I also built a browser extension that can optionally give Focus Buddy more context from the active tab. For example, if the task is “write an essay,” the extension can share the active website title and URL. This helps the AI make a more accurate prediction because it can compare what the user said they wanted to do with what they are actually doing. Session Debrief, Daily Unwind, and Weekly Unwind For the session debrief, Focus Buddy saves the session data and then generates an AI debrief. This debrief explains what happened during the session and gives practical feedback for next time. It points to specific moments from the session instead of giving generic advice. The daily unwind uses information from all the sessions recorded that day to give a general overview of what happened. During each session, the model records important changes in the user’s state. For example, if a user shifts from working on an essay to watching YouTube, the model can note that change. These state changes are then used as context for the daily unwind. The daily unwind also compares the user’s focus level for that day with their recent average. For example, if the user’s average focus level over the past seven days was 80%, but they recorded 62% today, the model can give encouraging advice while still pointing out the main distractions or struggles from the day. | The weekly unwind works similarly, but it looks at a longer period of time. I also implemented a pattern document that stores general patterns about the user. These patterns can be affirmed or updated by the model after each session. The weekly unwind uses this information to give a recap of the week, including average focus levels, the user’s most focused days, and insights into their focus habits. Plan Feature The next feature I built is the plan feature. This allows the user to plan out their day before starting their work. They can pick tasks, schedule them for specific times, estimate how difficult each task will be, and estimate how long each task will take. Based on this information, the AI can suggest the best times to work on certain tasks using patterns it has learned from the user. This step is completely optional, especially because this feature is still being optimized to provide better suggestions."}, {"post_id": 9651, "ts": "2026-06-16T01:51:48Z", "hours": 5.7564, "text": "Started working on a productivity tool called focus buddy. I currently have a basic landing page with the ability to create tasks and a calendar for session review. When you go into a session the project takes information from the webcam and then it using the Gemini 3.5 flash model along with with the context of the task description and task name assigns one of 4 labels: focused, away, unfocused, and uncertain. Also added a analytics page where you can see your previous sessions + dark mode."}]...
|
Title: FocusBuddy by @SaiD | Stardance
Devlogs:
S Title: FocusBuddy by @SaiD | Stardance
Devlogs:
Started working on a productivity tool called focus buddy. I currently have a basic landing page with the ability to create tasks and a calendar for session review. When you go into a session the project takes information from the webcam and then it using the Gemini 3.5 flash model along with with the context of the task description and task name assigns one of 4 labels: focused, away, unfocused, and uncertain. Also added a analytics page where you can see your previous sessions + dark mode.
Devlog #2. FocusBuddy V1 is complete. Here is the overview Tracker Focus Buddy is a productivity tool that helps students start focus sessions and understand how focused they were during that time. During a session, Focus Buddy classifies the user’s time into four states: focused, distracted, uncertain, and away. It does this by using webcam frames together with the task the user is working on. For example, if the task is “read a biology chapter,” the AI uses both the webcam frame and the task name/description to decide whether the user appears to be on task. I also built a browser extension that can optionally give Focus Buddy more context from the active tab. For example, if the task is “write an essay,” the extension can share the active website title and URL. This helps the AI make a more accurate prediction because it can compare what the user said they wanted to do with what they are actually doing. Session Debrief, Daily Unwind, and Weekly Unwind For the session debrief, Focus Buddy saves the session data and then generates an AI debrief. This debrief explains what happened during the session and gives practical feedback for next time. It points to specific moments from the session instead of giving generic advice. The daily unwind uses information from all the sessions recorded that day to give a general overview of what happened. During each session, the model records important changes in the user’s state. For example, if a user shifts from working on an essay to watching YouTube, the model can note that change. These state changes are then used as context for the daily unwind. The daily unwind also compares the user’s focus level for that day with their recent average. For example, if the user’s average focus level over the past seven days was 80%, but they recorded 62% today, the model can give encouraging advice while still pointing out the main distractions or struggles from the day. | The weekly unwind works similarly, but it looks at a longer period of time. I also implemented a pattern document that stores general patterns about the user. These patterns can be affirmed or updated by the model after each session. The weekly unwind uses this information to give a recap of the week, including average focus levels, the user’s most focused days, and insights into their focus habits. Plan Feature The next feature I built is the plan feature. This allows the user to plan out their day before starting their work. They can pick tasks, schedule them for specific times, estimate how difficult each task will be, and estimate how long each task will take. Based on this information, the AI can suggest the best times to work on certain tasks using patterns it has learned from the user. This step is completely optional, especially because this feature is still being optimized to provide better suggestions.
devlog #3 I have added leagues into the app. I have different leagues based on how many focused hours you have done. I am hoping this will motivate more people into spending more time on this app and in turn being more productive in their life!
Devlog #4 I added a goal feature that allows you to make goals and uses the AI to track the goals and see how well you are doing for the goals
Ships:
I made a focusCoach that uses your webcam along with aboutme context + taskName + taskDescription + tab extension to figure out if you are focused or not. The tab extension won’t be available for you guys because it requires me to sign up for google developer account, but besides that the project should still work well. The project has multiple features like a plan feature, AI session debriefs, weekly and daily unwinds, and much more. It is pretty intuitive so try out the project for yourself!!. Also be aware that I am on the free trial of google studio so if the prediction doesn’t work for you that could just mean I have hit my rate limit. Anyway have fun!!!
A all in one AI-powered productivity system....
|
1793126946.03301
|
1793213346.03301
|
|
27389
|
Fpv Mini Rc Car by @Kiril | Stardance
|
Kiril
|
1
|
47.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-18T06:25:26Z", "hours": 47.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I spent almost the whole summer building this mini FPV RC car. It took a massive amount of time with 3d modeling, testing, and finding the right electronic modules. This is really one of my hardest projects I have ever made, but I am happy that I realized my childhood dream of creating it.", "repo": "https://github.com/kirilDen/Mini_FPV_RC_CAR_WiFi", "demo": ""}]...
|
[{"post_id": 68423, "ts": "202 [{"post_id": 68423, "ts": "2026-09-15T02:59:08Z", "hours": 1.1667, "text": "After adding support braces, I finally finished the body of the car. After 3d printing I will paint and submit the project."}, {"post_id": 67869, "ts": "2026-09-14T04:48:31Z", "hours": 1.7, "text": "I improved the body’s mounting points so it could be attached firmly to the chassis."}, {"post_id": 65115, "ts": "2026-09-10T00:53:17Z", "hours": 1.5, "text": "Today I was working on the body for the Rc Car."}, {"post_id": 64033, "ts": "2026-09-08T04:48:21Z", "hours": 3.3, "text": "Hello, I started remodeling the body for the car."}, {"post_id": 56373, "ts": "2026-08-28T03:43:29Z", "hours": 3.0167, "text": "Today I kept working on the body of the Rc Car."}, {"post_id": 56264, "ts": "2026-08-27T23:22:14Z", "hours": 2.8169, "text": "I started working on the body of the car"}, {"post_id": 55355, "ts": "2026-08-27T04:18:20Z", "hours": 0.2833, "text": "I added a place for FPV camera. Now the car is fully functional and can be controlled using computer or phone with live view video. Next step is to make enclosure."}, {"post_id": 55308, "ts": "2026-08-27T01:42:26Z", "hours": 0.6833, "text": "I assembled the chassis and the car works perfect. The next step which I started is to design an FPV camera holder."}, {"post_id": 55247, "ts": "2026-08-26T22:10:32Z", "hours": 2.8503, "text": "I kept working on chassis and finding the best size of the wheels and axle."}, {"post_id": 47908, "ts": "2026-08-16T05:45:04Z", "hours": 4.6419, "text": "I spend most of the time assembling the chassis and also modeling the wheels."}, {"post_id": 46558, "ts": "2026-08-13T21:36:07Z", "hours": 2.7003, "text": "Today I finished making the electronic mounts. I designed them specifically so the electronics would sit still and require no glue."}, {"post_id": 45539, "ts": "2026-08-12T03:02:19Z", "hours": 2.3836, "text": "I finally finished working on the steering system and started connecting the whole chassis. Also trying to make a good battery holder."}, {"post_id": 44938, "ts": "2026-08-11T01:08:07Z", "hours": 1.8833, "text": "I kept improving the steering system to find the best option."}, {"post_id": 43038, "ts": "2026-08-08T02:51:25Z", "hours": 2.1922, "text": "Today I started rebuilding the steering system for better steering."}, {"post_id": 33356, "ts": "2026-07-23T06:24:28Z", "hours": 0.8472, "text": "Today I was soldering the electronics and putting everything together. Code is working well and the next step is to design wheels."}, {"post_id": 33238, "ts": "2026-07-22T23:37:37Z", "hours": 4.7169, "text": "I started assembling the RC car and also designed a cover for electronics."}, {"post_id": 31634, "ts": "2026-07-20T06:06:52Z", "hours": 0.765, "text": "I just finished modeling placeholders for electronics."}, {"post_id": 31605, "ts": "2026-07-20T04:25:11Z", "hours": 1.1833, "text": "I didn’t save my files last time, so today I had to remake everything I did last time."}, {"post_id": 28722, "ts": "2026-07-15T04:57:07Z", "hours": 1.1833, "text": "I almost finished working on the chassis for my RC car. The next step is to make mounts for the rest of the electronics."}, {"post_id": 26361, "ts": "2026-07-11T03:24:06Z", "hours": 1.5336, "text": "Hello! Today I finished designing and printing the gears for both the motor and the axle. I also tested different gear ratios and found the best balance between speed and torque."}, {"post_id": 25710, "ts": "2026-07-10T04:27:04Z", "hours": 0.9, "text": "I made the RC car wider to fit the electronics, so I widened the front chassis and improved servo mount."}, {"post_id": 25152, "ts": "2026-07-09T05:41:50Z", "hours": 1.2172, "text": "I almost finished the steering system for the RC car. The only thing left to make is the placing for servo motor."}, {"post_id": 24508, "ts": "2026-07-08T03:08:51Z", "hours": 0.9333, "text": "Today I was still working on the steering system of my car, and I hope I will finish next time."}, {"post_id": 23946, "ts": "2026-07-07T04:57:28Z", "hours": 0.9167, "text": "Today I started working on steering system of my car. I had to design the spindles for the steering system."}, {"post_id": 23247, "ts": "2026-07-06T02:31:35Z", "hours": 1.4003, "text": "Started the RC car rear chassis today! It doesn’t look like much yet, but I made space for the motor and shaft. Next time, I will add gears and finish the back hopefully."}]...
|
Title: Fpv Mini Rc Car by @Kiril | Stardance
Devl Title: Fpv Mini Rc Car by @Kiril | Stardance
Devlogs:
Started the RC car rear chassis today! It doesn’t look like much yet, but I made space for the motor and shaft. Next time, I will add gears and finish the back hopefully.
Today I started working on steering system of my car. I had to design the spindles for the steering system.
Today I was still working on the steering system of my car, and I hope I will finish next time.
I almost finished the steering system for the RC car. The only thing left to make is the placing for servo motor.
I made the RC car wider to fit the electronics, so I widened the front chassis and improved servo mount.
Hello! Today I finished designing and printing the gears for both the motor and the axle. I also tested different gear ratios and found the best balance between speed and torque.
I almost finished working on the chassis for my RC car. The next step is to make mounts for the rest of the electronics.
I didn’t save my files last time, so today I had to remake everything I did last time.
I just finished modeling placeholders for electronics.
I started assembling the RC car and also designed a cover for electronics.
Today I was soldering the electronics and putting everything together. Code is working well and the next step is to design wheels.
Today I started rebuilding the steering system for better steering.
I kept improving the steering system to find the best option.
I finally finished working on the steering system and started connecting the whole chassis. Also trying to make a good battery holder.
Today I finished making the electronic mounts. I designed them specifically so the electronics would sit still and require no glue.
I spend most of the time assembling the chassis and also modeling the wheels.
I kept working on chassis and finding the best size of the wheels and axle.
I assembled the chassis and the car works perfect. The next step which I started is to design an FPV camera holder.
I added a place for FPV camera. Now the car is fully functional and can be controlled using computer or phone with live view video. Next step is to make enclosure.
I started working on the body of the car
Today I kept working on the body of the Rc Car.
Hello, I started remodeling the body for the car.
Today I was working on the body for the Rc Car.
I improved the body’s mounting points so it could be attached firmly to the chassis.
After adding support braces, I finally finished the body of the car. After 3d printing I will paint and submit the project.
Ships:
I spent almost the whole summer building this mini FPV RC car. It took a massive amount of time with 3d modeling, testing, and finding the right electronic modules. This is really one of my hardest projects I have ever made, but I am happy that I realized my childhood dream of creating it....
|
1793152621.33404
|
1793239021.33404
|
|
35525
|
FuntionAI by @GamerBolt03 | Stardance
|
GamerBolt03
|
0
|
47.0
|
0
|
[]
|
[{"post_id": 31731, "ts": "202 [{"post_id": 31731, "ts": "2026-07-20T11:25:13Z", "hours": 16.0, "text": "FunctionAI Devlog #4 Currently still working on improving the architecture and making it fast enough to learn object detection in at least under 30 mins. Also thinking of working on the UI in the mean time since the project is almost complete"}, {"post_id": 31032, "ts": "2026-07-19T02:56:47Z", "hours": 13.0, "text": "FunctionAI Devlog #3 After completely re-coding the entire project from scratch the new model is able to reach an accuracy of 30% as of now with 15mins of training on 1080p data and run at a framerate of 1000fps, which is not bad for having re-coded the entire project but I need to make it much better. Also, I created a simple logo, although I couldn’t really get a good idea on what I should make Re-Programed everything from scratch Tested the new architecture Developing more architectural improvements Creating custom CUDA kernel for faster training Create Banner and Github repo"}, {"post_id": 30028, "ts": "2026-07-17T08:47:19Z", "hours": 13.0, "text": "FunctionAI Devlog #2 Well after a lot of tests and coding (approx. 13 hours) I decided to switch to a neural based AI instead of function based using my custom CTF architecture. Ive been training the model on the COCO dataset with 80 classes for object detection. Currently in under 5 mins of training on an RTX5090 the model reaches 71% accuracy with estimated 1000 FPS on the Core Ultra 9 255k CPU which is insanely fast compared to mobile net and other datasets. I believe with an increase time limit the model can reach around 95% accuracy however I would like to keep the training time as is at 5 mins just to prove the architecture works insanely well too. Although might have to change the name due to switching to CTF. (I really like sushi, dogs and video games)"}, {"post_id": 28850, "ts": "2026-07-15T12:10:54Z", "hours": 5.0, "text": "FunctionAI Devlog #1 This is a project I started creating to support AEVA which is another project based around a new AI architecture however I decided that this deserved its own project since after all it may have no use in AEVA Currently I attempted to only use function approximation along with grounding using linear regression however it only managed to achieve an accuracy of 10% which has led me to think of new ideas using a transformer replacement I developed for AEVA known as CTF as the star choice. However, I would still like to work further on the neuron less architecture a little further."}]...
|
Title: FuntionAI by @GamerBolt03 | Stardance
Devl Title: FuntionAI by @GamerBolt03 | Stardance
Devlogs:
FunctionAI Devlog #1 This is a project I started creating to support AEVA which is another project based around a new AI architecture however I decided that this deserved its own project since after all it may have no use in AEVA Currently I attempted to only use function approximation along with grounding using linear regression however it only managed to achieve an accuracy of 10% which has led me to think of new ideas using a transformer replacement I developed for AEVA known as CTF as the star choice. However, I would still like to work further on the neuron less architecture a little further.
FunctionAI Devlog #2 Well after a lot of tests and coding (approx. 13 hours) I decided to switch to a neural based AI instead of function based using my custom CTF architecture. Ive been training the model on the COCO dataset with 80 classes for object detection. Currently in under 5 mins of training on an RTX5090 the model reaches 71% accuracy with estimated 1000 FPS on the Core Ultra 9 255k CPU which is insanely fast compared to mobile net and other datasets. I believe with an increase time limit the model can reach around 95% accuracy however I would like to keep the training time as is at 5 mins just to prove the architecture works insanely well too. Although might have to change the name due to switching to CTF. (I really like sushi, dogs and video games)
FunctionAI Devlog #3 After completely re-coding the entire project from scratch the new model is able to reach an accuracy of 30% as of now with 15mins of training on 1080p data and run at a framerate of 1000fps, which is not bad for having re-coded the entire project but I need to make it much better. Also, I created a simple logo, although I couldn’t really get a good idea on what I should make Re-Programed everything from scratch Tested the new architecture Developing more architectural improvements Creating custom CUDA kernel for faster training Create Banner and Github repo
FunctionAI Devlog #4 Currently still working on improving the architecture and making it fast enough to learn object detection in at least under 30 mins. Also thinking of working on the UI in the mean time since the project is almost complete...
|
1792954162.695976
|
1793818162.695976
|
|
43598
|
MadMiffy by @OhKay404 | Stardance
|
OhKay404
|
2
|
47.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-26T01:40:55Z", "hours": 30.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "MadMiffy - Ship #2 Ი ᰍ ⋆˚꩜。 This is the second ship for MadMiffy, a Miffy-themed WarioWare-style game that requires you to play minigames to win! 𓆝 𓆟 𓆞 𓆝 𓆟 How to Play Your goal is to complete four minigames before you lose all five of your lives. In minigame 1, your goal is to collect all the hearts in time. Use the left/right arrow keys or A/D keys to move left and right. Use the spacebar , W key , or up arrow key to jump. In minigame 2, click all hearts using the cursor before the timer runs out. In minigame 3, click on Miffy’s correct bakery orders using the cursor before the timer runs out. In minigame 4, whack five Miffies using your cursor before the timer runs out. If you run out of time before completing a minigame, you lose one life. The minigame will then repeat until you pass or run out of lives. Challenges Learning how to create tweens was definitely really challenging! It took me a while to understand, but Christophe on itch.io’s tutorial helped me tremendously when learning, and adding tweens to MadMiffy was so worth it in the end! Figuring out the sound system was also super difficult, as I’ve never really messed with audio stuff in Godot before. Tons of YouTube tutorials and google searching later, I now have a (mostly) working music system! Thank you to chajamakesmusic on itch.io for the amazing music ! What I’m Proud Of I can’t believe I actually finished MadMiffy! There are definitely bugs that need to be fixed, but I simply cannot put into words how proud I am to have even started developing this game into something that I imagined in my head. I’m so happy about the way minigame 3 turned out! Prior to creating minigame 3, I was in a bit of a block, unsure if I could even finish this ambitious project. Coding the minigame was super though, but I am glad I pulled through! I also taught myself how to create tweens, which really brought MadMiffy to life! 𓆝 𓆟 𓆞 𓆝 𓆟 I can’t believe this is my second ship! Thank you to everyone who has supported me on this crazy journey!! (˶˃ ᵕ ˂˶)", "repo": "https://github.com/OhKay404/warioware", "demo": "https://ohkay404.itch.io/madmiffy"}, {"ship_num": 2, "ts": "2026-08-24T21:46:56Z", "hours": 17.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "MadMiffy Ი ᰍ ⋆˚꩜。 𓆝 𓆟 𓆞 𓆝 𓆟 Introducing, MadMiffy , Miffy-themed WarioWare-style game that requires you to play minigames to win! How to Play Your goal is to complete two minigames before you lose all five of your lives! In minigame 1, your goal is to collect all the hearts in time. Use the left/right arrow keys to move left and right, and the spacebar to jump. In minigame 2, click all hearts using the cursor before the timer runs out. If you run out of time before completing a minigame, you lose one life. The minigame will then repeat until you pass or run out of lives. Challenges Finding the perfect assets for everything was definitely a challenge for me! I spent a LOT of time scouring Pinterest for THE pictures Learning how to do animations was difficult because I’ve had very little experience in the past. Youtube tutorials really helped me! What I’m Proud Of This game was an amazing learning opportunity for me! I am so proud of the animations I did, specifically the ones in the winner and death screens! I still can’t believe I brought my Canva animations to life haha I’m also super proud of the buttons that I stylized using StyleBoxFlats! They turned out almost identical to the ones I designed on Canva! 𓆝 𓆟 𓆞 𓆝 𓆟 I can’t believe this will be my very first ship! There is more to come, however, so stay tuned for more of MadMiffy!! (˶˃ ᵕ ˂˶)", "repo": "https://github.com/OhKay404/warioware", "demo": "https://ohkay404.itch.io/madmiffy"}]...
|
[{"post_id": 82415, "ts": "202 [{"post_id": 82415, "ts": "2026-10-24T19:02:24Z", "hours": 0.5656, "text": "MadMiffy - Updated! •.°♪*:` Hello everyone! (˶˃ ᵕ ˂˶) MadMiffy is now updated on Itch.io!!! (wooooo!!) 𓆝 𓆟 𓆞 𓆝 𓆟 Changes I did not do much this week since I was super busy, but I did update the script of the timer screen so that the music plays before the timer starts! There aren’t any weird delays in the music anymore!! 𓆝 𓆟 𓆞 𓆝 𓆟 That’s it! Thank you for reading along till the end! I still cannot believe how far MadMiffy has come! 。°(°¯᷄◠¯᷅°)°。"}, {"post_id": 80544, "ts": "2026-10-18T04:02:44Z", "hours": 2.7128, "text": "MadMiffy - 14th Devlog ᶻ 𝗓 𐰁 ໒꒱⋆.˚ Hi everyone!! If you’re new here, MadMiffy is my spinoff version of the WarioWare game!! 𓆝 𓆟 𓆞 𓆝 𓆟 What’s New Added animations to the hearts in the timer screen + minigame 2 (they now float up and down!!) (∩˃ᴗ˂∩)✧ Added tween animations to the heart buttons in minigame 2 and the miffies in minigame 4! They are now alive when you hover/click them hahaha (˵ •̀ᴗ•́˵)و I added music to minigame 4! The game is starting to look and sound more and more cohesive!! Challenges Audio issue is still not fixed… I will get to it!! Every fix I try doesn’t work .·°՞(っ-ᯅ-ς)՞°·. (I will not give up though!!) 𓆝 𓆟 𓆞 𓆝 𓆟 That’s it! Thank you for reading along till the end! Stay tuned for more!! ദ്ദി(。•̀ ,<)~"}, {"post_id": 79195, "ts": "2026-10-12T23:45:54Z", "hours": 2.0153, "text": "MadMiffy - 13th Devlog ⋆.ೃ࿔*:・ Hello everyone, I’m back after just ONE day!! If you’re new here, MadMiffy is my spinoff version of the WarioWare game!! 𓆝 𓆟 𓆞 𓆝 𓆟 What’s New I locked in and conjured up a whole new minigame! This will be the final minigame of MadMiffy, and it’s called Whack-A-Miffy! ٩>ᴗ<)و To win this game, the player must whack 5 Miffies before the timer runs out! Click on the Miffy that pops up to “whack” it ヽ(°〇°)ノ I didn’t expect to actually get this far today, so I unfortunately don’t have any footage from when Whack-A-Miffy was still a WIP (。•́︿•̀。) A demo video is attached tho!! Challenges I’m still trying to figure out how to debug the issue with the audio system! I will do my best over the next few days to fix it ( ̄^ ̄ )ゞ 𓆝 𓆟 𓆞 𓆝 𓆟 That’s it! Thank you for reading along till the end! MadMiffy is really coming together now!! (⸝⸝> ᴗ•⸝⸝)"}, {"post_id": 78939, "ts": "2026-10-12T03:06:29Z", "hours": 4.8261, "text": "MadMiffy - 12th Devlog ഒ·˚ Hello everyone, I’m back! (๑ᵔ⤙ᵔ๑) If you’re new here, MadMiffy is my spinoff version of the WarioWare game!! 𓆝 𓆟 𓆞 𓆝 𓆟 What’s New Minigame 3 now has instructions so the player knows how to play the game ( ദ്ദി ˙ᗜ˙ ) I also added a global sound system to MadMiffy!! My laptop can’t record internal audio, so I included a full playthrough of MadMiffy instead!! I still can’t believe how far I’ve come from the starting line (°〇°) Challenges Figuring out the sound system was a big challenge! I had to create a whole other system for it, and it’s still a WIP right now, since I still need to figure out the music toggling, but I’ve come a long way! (ᵕ⸝⸝• ᴗ •) 𓆝 𓆟 𓆞 𓆝 𓆟 Anddddd that’s it! This devlog was pretty short, but thank you for reading along till the end! Look forward to more updates! (˶˃𐃷˂˶)"}, {"post_id": 74070, "ts": "2026-09-26T16:51:40Z", "hours": 4.4128, "text": "MadMiffy - 11th Devlog ˚. ᵎᵎ Hello everyone, I’m back! If you’re new here, MadMiffy is my spinoff version of the WarioWare game!! 𓆝 𓆟 𓆞 𓆝 𓆟 What’s New Minigame 3 is finally looking polished! I re-coded the logic of minigame 3 so that there isn’t a loading screen that pops up every time a new food item pops up on the speech bubble (took me a long time, but was so worth it!! (˶˃𐃷˂˶)) I also added assets to the minigame! The food looks so adorable and at some point I started feeling hungry every time I worked on this minigame (っ˘ڡ˘ς) ˗ˏˋ 🍰 ˎˊ˗ There’s also a counter that keeps track of how much food you’ve served! Challenges Re-coding the minigame was definitely the hardest part! I had to preserve the game’s function while also removing that super annoying loading screen that came up when a new button was clicked, so I’m super proud of my work! ദ്ദി( ˘̀ ֊ ˘́) 𓆝 𓆟 𓆞 𓆝 𓆟 Anddddd that’s it! Thank you for reading along till the end! Look forward to more updates! ৻( •̀ ᗜ •́ ৻)"}, {"post_id": 69435, "ts": "2026-09-17T01:40:46Z", "hours": 3.8522, "text": "MadMiffy - 10th Devlog .✦ ݁˖ Hello! (๑’ᵕ’๑)⸝* If you’re new here, MadMiffy is my spinoff version of the WarioWare game!! 𓆝 𓆟 𓆞 𓆝 𓆟 What’s New Stylized the popup menu of the dropdowns in the settings page!! Miffy in both the title and timer screen now moves! Created a WHOLE NEW MINIGAME!! (woohoo!!! *ੈ✩‧₊˚ ٩(ˊᗜˋ )و) The player is meant to select the correct food item to give to Miffy; if the player selects incorrectly, they will lose a life!! If you can’t tell already, I still need assets for this minigame haha Challenges To be honest, I feel like coming up with the idea of the minigame itself was the hardest part. I wanted to create someone that was both cute and simple, and I hope I accomplished both of those goals! 𖡼.𖤣𖥧𖡼.𖤣𖥧 𓆝 𓆟 𓆞 𓆝 𓆟 That’s it! Thank you for reading along till the end! See you! (❀❛ ֊ ❛„)♡"}, {"post_id": 62619, "ts": "2026-09-06T02:49:22Z", "hours": 2.7214, "text": "MadMiffy - 9th Devlog 𝜗ৎ˚. Hi, I’m back! ヾ(^ ∇ ^) If you’re new here, MadMiffy is my spinoff version of the WarioWare game!! 𓆝 𓆟 𓆞 𓆝 𓆟 What’s New Added hover/clicked states using tweens for the “Main Menu” buttons in both the winner and death screens I FINALLY got the OptionButton dropdown menus to work! ٩(^ᗜ^ )و ´- It took a while to figure out, but google saved me once again!! I am now in the process of decorating them to match my Canva design Specified data types of all variables in every script I initialized a new minigame!! (more is coming! (˵ •̀ ᴗ - ˵ )) Challenges Coding the OptionButtons !! That was pretty time-consuming and I was really close to giving up, but I decided to try once more and it finally worked! 𓆝 𓆟 𓆞 𓆝 𓆟 And that’s it! This devlog was on the shorter side, but thank you for reading along till the end! See you! ( ദ്ദി ˙ᗜ˙ )"}, {"post_id": 60887, "ts": "2026-09-03T15:07:15Z", "hours": 5.8206, "text": "MadMiffy - 8th Devlog .☘︎ ݁˖ Hello! (๑>•̀๑) I’ve once again made a few changes to MadMiffy ! If you’re new here, MadMiffy is my spinoff version of the WarioWare game!! 𓆝 𓆟 𓆞 𓆝 𓆟 What’s New Added button to toggle on/off the musicAdded dropdown menu to toggle between jump keys (still working on that (╥﹏╥)) Added the rest of the text, (discovered what BBCode text was, and used it to underline the “Controls” and “Music” text!! Added a home button! I don’t know how, but I completely forgot to add a home button when I was planning the settings screen on Canva haha I also messed around with tweens and used this website to help me learn! It took a while to understand, but after trying it myself for a couple of buttons, I think I’m starting to get the hang of it! ᕙ( •̀ ᗜ •́ )ᕗ I used tweens for the buttons in the title screen and the button in the settings screen to give them a floating hover state and bouncy animation when a button gets clicked Challenges Definitely figuring out how to properly code the OptionButton ! I am still struggling with it, so hopefully I will find a solution soon! Figuring out how to script tweens was very hard! I was so grateful to the tutorial website I found, and I was able to use its code to understand tweens. For the longest time, I was struggling with the title screen buttons, but I was able to figure out through some googling that the issue had to do with the VBoxContainer interfering with the tweening logic! I was able to create a quick fix by wrapping the buttons with Control nodes! ⸜(。˃ ᵕ ˂ )⸝♡ 𓆝 𓆟 𓆞 𓆝 𓆟 That’s it! Thank you for reading along till the end! Excited to work more on MadMiffy ! ദ്ദി(˵ •̀ ᴗ - ˵ ) ✧"}, {"post_id": 56659, "ts": "2026-08-28T14:44:08Z", "hours": 3.5372, "text": "MadMiffy - 7th Devlog ⋆˚✿˖° Hi! (˶˃𐃷˂˶) I’ve made a few small changes to MadMiffy ! If you’re new here, MadMiffy is my spinoff version of the WarioWare game!! 𓆝 𓆟 𓆞 𓆝 𓆟 What’s New I added trackers to both minigame 1 and minigame 2 to track the number of hearts collected/clicked! They stay on the screen as well! (i realized when testing that making them appear only after the directions disappear is not a very good look) Planned settings screen on Canva Started the settings screen! I added a background and title so far, also added a miffy icon to the bottom right corner, and it has animations!! Added and styled a volume adjuster ( HSlider ) along with placeholder audio to test the adjuster out! Challenges Styling the HSlider was difficult because I’ve never learned how to, but the Godot dev forums and Youtube really helped! ᕙ( •̀ ᗜ •́ )ᕗ 𓆝 𓆟 𓆞 𓆝 𓆟 And that’s it! Thank you for reading along till the end! Can’t wait to do more with MadMiffy ! (๑ᵔ⤙ᵔ๑)"}, {"post_id": 53505, "ts": "2026-08-24T02:33:43Z", "hours": 3.9436, "text": "˚.⋆꒰১ MadMiffy - 6th Devlog ໒꒱⋆.˚ Hi! (๑’ᵕ’๑)⸝* I’m back with changes to MadMiffy ! If you’re new here, MadMiffy is my spinoff version of the WarioWare game!! 𓆝 𓆟 𓆞 𓆝 𓆟 What’s New I uploaded MadMiffy as a draft on itch.io! I also customized the colors of the page to match the game’s color scheme (˶ᵔ ᵕ ᵔ˶) Added directions to minigame 1 and minigame 2 to make it easier to understand how to play! ^ The directions also have animations (❀❛ ֊ ❛„) Shifted the positions of the hearts in minigame 2 to fit the directions text I now have a README.md file! I used Stardance’s tutorial to help me with it! My Challenges I had trouble exporting my files into itch.io since this was my first time uploading a game (っ- ‸ - ς) but after some deep analysis of the WarioWare tutorial, I finally figured it out! I initially had no idea how to write a README file (can you tell I’ve never made one before (ᵕ—ᴗ—)), so figuring it out was pretty tough! The Stardance tutorial was very helpful! 𓆝 𓆟 𓆞 𓆝 𓆟 That’s it! Thank you for reading if you read along till the end! Stay tuned for more! ᕙ( •̀ ᗜ •́ )ᕗ Update : ** MadMiffy** is now public! Play it on itch.io !!"}, {"post_id": 50060, "ts": "2026-08-19T03:03:40Z", "hours": 2.0272, "text": "MadMiffy - Fifth Devlog ⋆˚࿔ Hello!! (˶ᵔᗜᵔ˶)ノ゙ I’ve once again made a couple of changes! I can’t believe how far MadMiffy has come! If you’re new here, MadMiffy is my spinoff version of the WarioWare game!! 𓆝 𓆟 𓆞 𓆝 𓆟 What’s New I added a death screen!! Since it’s pretty similar to the winner screen, I was able to duplicate the winner screen and make whatever changes I needed, which saved me a LOT of time! The Miffys from both the death AND winner screens now have flying animations! yay ! ٩(^ᗜ^ )و ´ Commented out the settings button’s functionality because the settings feature has not been implemented yet Made it so that the level in the timer screen actually displayed the correct level Added wall barriers to minigame 1 so that the miffy sprite can’t fall off the screen The minigames_done variable now only decrements if its value is already above zero (this fixes a bug that occurred where the minigames_done variable became negative because the script didn’t check if its value was greater than zero) My Challenges Scripting the death screen so that it actually appears was a challenge for me (⇀‸↼‶) I kept running into a null error for a while but a couple of google searches helped me immensely (thank you reddit (∩˃o˂∩)♡) 𓆝 𓆟 𓆞 𓆝 𓆟 Anddd that’s it! Thank you for reading if you read along till the end! Stay tuned for the final touches! ദ്ദി( ˘̀ ֊ ˘́)"}, {"post_id": 49335, "ts": "2026-08-18T03:06:40Z", "hours": 2.2947, "text": "MadMiffy - Fourth Devlog ⋆✴︎˚。⋆ Hello!! (˶ˆᗜˆ˵) A couple of changes have been made! Let’s get right into it ( ◡̀_◡́)ᕤ!! If you’re new here, MadMiffy is my spinoff version of the WarioWare game!! 𓆝 𓆟 𓆞 𓆝 𓆟 What’s New I created a working winner screen! It has a few animations, and it is so far looking pretty close to what I designed on Canva, so I am super ecstatic! Not only can miffy now flip horizontally, she now has walking AND idle animations now!! ·˚ ༘ ৻( •̀ ᗜ •́ ৻) The quality of the Miffy picture from the title and timer screens is much higher now! I used ibisPaint X to create a clearer image My Challenges Animating the walking and idle animations for the Miffy sprite was TOUGH! (っ- ‸ - ς) Shoutout to DevWorm’s Youtube tutorial on Godot animations for teaching me more about animations (ᴗ_ ᴗ。) 𓆝 𓆟 𓆞 𓆝 𓆟 Anddd that’s it! Thank you for reading if you read along till the end! I continue working hard as per usual, bye!! („• ֊ •„)੭"}, {"post_id": 47807, "ts": "2026-08-16T00:41:59Z", "hours": 2.2919, "text": "MadMiffy - Third Devlog ⊹ ࣪ ˖ ໒꒱ I’m back!! ◝(ᵔᗜᵔ)◜ I’ve made a few changes to MadMiffy since the last devlog!! I will try to do these devlogs more often (they’re actually pretty fun to make!) If you’re new here, MadMiffy is my spinoff version of the WarioWare game!! 𓆝 𓆟 𓆞 𓆝 𓆟 What’s New I finally stylized the buttons in the title screen!! Specifically, I used StyleBoxFlats to stylize the normal and hover states of the Play , Settings, and Quit buttons! They turned out the exact way I wanted them to turn out and I am so grateful for that!! (˶ˆᗜˆ˵) Since I couldn’t upload a picture of the title screen from the last devlog, I attached a VIDEO of the title screen this time!! ( woooooo!! ) I adjusted the code to the Miffy sprite from minigame 1 (the platformer game) so that Miffy can now flip horizontally when the right arrow key is pressed! (Hurray for Miffy!! She doesn’t have to walk backwards anymore ٩(ˊᗜˋ*)و ) I attached a video to demonstrate this new feature! 𓆝 𓆟 𓆞 𓆝 𓆟 Anddd that’s it! This devlog was on shorter side, but thank you for reading if you read along till the end! I will make sure to continue working hard on this game ᕙ( •̀ ᗜ •́ )ᕗ byeee!!!"}, {"post_id": 46594, "ts": "2026-08-13T22:47:53Z", "hours": 5.4247, "text": "MadMiffy - Second Devlog ˖ ݁♬⋆.˚𝄞 Hello!! (˶ᵔᗜᵔ˶)ノ゙ Very long overdue, but nonetheless, here’s the second devlog for MadMiffy ! Lots of changes have been made since the first devlog!! If you’re new here, MadMiffy is my spinoff version of the WarioWare game!! 𓆝 𓆟 𓆞 𓆝 𓆟 What I Did Minigame 1, Platformer : Control Miffy using the L/R arrow keys and space bar to collect hearts on the platforms (same hearts from the timer screen!) Minigame 2, Clicker : Use your mouse to click on the hearts on your screen before the timer ends Animation to the “MadMiffy” title in the title screen Used Canva to move the Miffy in title screen background from the left to the right side of the screen (and horizontally flipped it over) Used Canva to design winner/death scenes!! My Challenges It took me FOREVER to find the right Miffy on pinterest for the winner/death scenes, and I also spent way too long on ibisPaint X editing the Miffy to be exactly the way I wanted it to be haha (it turned out so good in the end though!! I wish I could log that as hours, but I attached a timelapse instead haha) I am still thinking of ideas for minigame #3… I will have to get back to you guys on this!! 𓆝 𓆟 𓆞 𓆝 𓆟 Anddd that’s it! Thank you for reading if you read along till the end, and I will continue working hard to get this game into good shape ᕙ( •̀ ᗜ •́ )ᕗ Edit : I tried adding a screenshot of the new title screen background but I couldn’t get it to upload, so bear with me (っ- ‸ - ς)"}, {"post_id": 41101, "ts": "2026-08-05T02:54:25Z", "hours": 1.3108, "text": "MadMiffy - First Devlog ⋆˚꩜。 Hi Everyone! This marks the first devlog for my new WarioWare-style game, MadMiffy ! Initial Ideas When coming up with ways to differentiate my WarioWare game from the tutorial, I thought of Miffy, a cute character that matches the whimsical vibe I wanted. I immediately created a Pinterest board to gather ideas, and went on Canva to craft the background image shown in the title and level scenes. Buttons When I got to the part of the tutorial where it made me create the “Start Game,” “Settings,” and “Quit” buttons, I initially wanted to create customized buttons through TextureRects. I tried coming up with different ideas on Canva, but none of them really stuck out with me… I will try again soon! If it doesn’t end well, I will at least be changing the colors of the buttons, because they totally don’t fit with the color scheme right now. Stay tuned!! Garlic and Fonts Aside from the background, I also scoured Pinterest to find the perfect “garlic” icon, where I decided on the heart-shaped button that fit perfectly with the background. For the text, I used a font called Jersey15. I had used it previously in a separate project, and I felt that the pixel font would pair well with the rest of the game. That’s it for now! I am very excited to see where MadMiffy will go ^^"}]...
|
Title: MadMiffy by @OhKay404 | Stardance
Devlogs: Title: MadMiffy by @OhKay404 | Stardance
Devlogs:
MadMiffy - First Devlog ⋆˚꩜。 Hi Everyone! This marks the first devlog for my new WarioWare-style game, MadMiffy ! Initial Ideas When coming up with ways to differentiate my WarioWare game from the tutorial, I thought of Miffy, a cute character that matches the whimsical vibe I wanted. I immediately created a Pinterest board to gather ideas, and went on Canva to craft the background image shown in the title and level scenes. Buttons When I got to the part of the tutorial where it made me create the “Start Game,” “Settings,” and “Quit” buttons, I initially wanted to create customized buttons through TextureRects. I tried coming up with different ideas on Canva, but none of them really stuck out with me… I will try again soon! If it doesn’t end well, I will at least be changing the colors of the buttons, because they totally don’t fit with the color scheme right now. Stay tuned!! Garlic and Fonts Aside from the background, I also scoured Pinterest to find the perfect “garlic” icon, where I decided on the heart-shaped button that fit perfectly with the background. For the text, I used a font called Jersey15. I had used it previously in a separate project, and I felt that the pixel font would pair well with the rest of the game. That’s it for now! I am very excited to see where MadMiffy will go ^^
MadMiffy - Second Devlog ˖ ݁♬⋆.˚𝄞 Hello!! (˶ᵔᗜᵔ˶)ノ゙ Very long overdue, but nonetheless, here’s the second devlog for MadMiffy ! Lots of changes have been made since the first devlog!! If you’re new here, MadMiffy is my spinoff version of the WarioWare game!! 𓆝 𓆟 𓆞 𓆝 𓆟 What I Did Minigame 1, Platformer : Control Miffy using the L/R arrow keys and space bar to collect hearts on the platforms (same hearts from the timer screen!) Minigame 2, Clicker : Use your mouse to click on the hearts on your screen before the timer ends Animation to the “MadMiffy” title in the title screen Used Canva to move the Miffy in title screen background from the left to the right side of the screen (and horizontally flipped it over) Used Canva to design winner/death scenes!! My Challenges It took me FOREVER to find the right Miffy on pinterest for the winner/death scenes, and I also spent way too long on ibisPaint X editing the Miffy to be exactly the way I wanted it to be haha (it turned out so good in the end though!! I wish I could log that as hours, but I attached a timelapse instead haha) I am still thinking of ideas for minigame #3… I will have to get back to you guys on this!! 𓆝 𓆟 𓆞 𓆝 𓆟 Anddd that’s it! Thank you for reading if you read along till the end, and I will continue working hard to get this game into good shape ᕙ( •̀ ᗜ •́ )ᕗ Edit : I tried adding a screenshot of the new title screen background but I couldn’t get it to upload, so bear with me (っ- ‸ - ς)
MadMiffy - Third Devlog ⊹ ࣪ ˖ ໒꒱ I’m back!! ◝(ᵔᗜᵔ)◜ I’ve made a few changes to MadMiffy since the last devlog!! I will try to do these devlogs more often (they’re actually pretty fun to make!) If you’re new here, MadMiffy is my spinoff version of the WarioWare game!! 𓆝 𓆟 𓆞 𓆝 𓆟 What’s New I finally stylized the buttons in the title screen!! Specifically, I used StyleBoxFlats to stylize the normal and hover states of the Play , Settings, and Quit buttons! They turned out the exact way I wanted them to turn out and I am so grateful for that!! (˶ˆᗜˆ˵) Since I couldn’t upload a picture of the title screen from the last devlog, I attached a VIDEO of the title screen this time!! ( woooooo!! ) I adjusted the code to the Miffy sprite from minigame 1 (the platformer game) so that Miffy can now flip horizontally when the right arrow key is pressed! (Hurray for Miffy!! She doesn’t have to walk backwards anymore ٩(ˊᗜˋ*)و ) I attached a video to demonstrate this new feature! 𓆝 𓆟 𓆞 𓆝 𓆟 Anddd that’s it! This devlog was on shorter side, but thank you for reading if you read along till the end! I will make sure to continue working hard on this game ᕙ( •̀ ᗜ •́ )ᕗ byeee!!!
MadMiffy - Fourth Devlog ⋆✴︎˚。⋆ Hello!! (˶ˆᗜˆ˵) A couple of changes have been made! Let’s get right into it ( ◡̀_◡́)ᕤ!! If you’re new here, MadMiffy is my spinoff version of the WarioWare game!! 𓆝 𓆟 𓆞 𓆝 𓆟 What’s New I created a working winner screen! It has a few animations, and it is so far looking pretty close to what I designed on Canva, so I am super ecstatic! Not only can miffy now flip horizontally, she now has walking AND idle animations now!! ·˚ ༘ ৻( •̀ ᗜ •́ ৻) The quality of the Miffy picture from the title and timer screens is much higher now! I used ibisPaint X to create a clearer image My Challenges Animating the walking and idle animations for the Miffy sprite was TOUGH! (っ- ‸ - ς) Shoutout to DevWorm’s Youtube tutorial on Godot animations for teaching me more about animations (ᴗ_ ᴗ。) 𓆝 𓆟 𓆞 𓆝 𓆟 Anddd that’s it! Thank you for reading if you read along till the end! I continue working hard as per usual, bye!! („• ֊ •„)੭
MadMiffy - Fifth Devlog ⋆˚࿔ Hello!! (˶ᵔᗜᵔ˶)ノ゙ I’ve once again made a couple of changes! I can’t believe how far MadMiffy has come! If you’re new here, MadMiffy is my spinoff version of the WarioWare game!! 𓆝 𓆟 𓆞 𓆝 𓆟 What’s New I added a death screen!! Since it’s pretty similar to the winner screen, I was able to duplicate the winner screen and make whatever changes I needed, which saved me a LOT of time! The Miffys from both the death AND winner screens now have flying animations! yay ! ٩(^ᗜ^ )و ´ Commented out the settings button’s functionality because the settings feature has not been implemented yet Made it so that the level in the timer screen actually displayed the correct level Added wall barriers to minigame 1 so that the miffy sprite can’t fall off the screen The minigames_done variable now only decrements if its value is already above zero (this fixes a bug that occurred where the minigames_done variable became negative because the script didn’t check if its value was greater than zero) My Challenges Scripting the death screen so that it actually appears was a challenge for me (⇀‸↼‶) I kept running into a null error for a while but a couple of google searches helped me immensely (thank you reddit (∩˃o˂∩)♡) 𓆝 𓆟 𓆞 𓆝 𓆟 Anddd that’s it! Thank you for reading if you read along till the end! Stay tuned for the final touches! ദ്ദി( ˘̀ ֊ ˘́)
˚.⋆꒰১ MadMiffy - 6th Devlog ໒꒱⋆.˚ Hi! (๑’ᵕ’๑)⸝* I’m back with changes to MadMiffy ! If you’re new here, MadMiffy is my spinoff version of the WarioWare game!! 𓆝 𓆟 𓆞 𓆝 𓆟 What’s New I uploaded MadMiffy as a draft on itch.io! I also customized the colors of the page to match the game’s color scheme (˶ᵔ ᵕ ᵔ˶) Added directions to minigame 1 and minigame 2 to make it easier to understand how to play! ^ The directions also have animations (❀❛ ֊ ❛„) Shifted the positions of the hearts in minigame 2 to fit the directions text I now have a README.md file! I used Stardance’s tutorial to help me with it! My Challenges I had trouble exporting my files into itch.io since this was my first time uploading a game (っ- ‸ - ς) but after some deep analysis of the WarioWare tutorial, I finally figured it out! I initially had no idea how to write a README file (can you tell I’ve never made one before (ᵕ—ᴗ—)), so figuring it out was pretty tough! The Stardance tutorial was very helpful! 𓆝 𓆟 𓆞 𓆝 𓆟 That’s it! Thank you for reading if you read along till the end! Stay tuned for more! ᕙ( •̀ ᗜ •́ )ᕗ Update : ** MadMiffy** is now public! Play it on itch.io !!
MadMiffy - 7th Devlog ⋆˚✿˖° Hi! (˶˃𐃷˂˶) I’ve made a few small changes to MadMiffy ! If you’re new here, MadMiffy is my spinoff version of the WarioWare game!! 𓆝 𓆟 𓆞 𓆝 𓆟 What’s New I added trackers to both minigame 1 and minigame 2 to track the number of hearts collected/clicked! They stay on the screen as well! (i realized when testing that making them appear only after the directions disappear is not a very good look) Planned settings screen on Canva Started the settings screen! I added a background and title so far, also added a miffy icon to the bottom right corner, and it has animations!! Added and styled a volume adjuster ( HSlider ) along with placeholder audio to test the adjuster out! Challenges Styling the HSlider was difficult because I’ve never learned how to, but the Godot dev forums and Youtube really helped! ᕙ( •̀ ᗜ •́ )ᕗ 𓆝 𓆟 𓆞 𓆝 𓆟 And that’s it! Thank you for reading along till the end! Can’t wait to do more with MadMiffy ! (๑ᵔ⤙ᵔ๑)
MadMiffy - 8th Devlog .☘︎ ݁˖ Hello! (๑>•̀๑) I’ve once again made a few changes to MadMiffy ! If you’re new here, MadMiffy is my spinoff version of the WarioWare game!! 𓆝 𓆟 𓆞 𓆝 𓆟 What’s New Added button to toggle on/off the musicAdded dropdown menu to toggle between jump keys (still working on that (╥﹏╥)) Added the rest of the text, (discovered what BBCode text was, and used it to underline the “Controls” and “Music” text!! Added a home button! I don’t know how, but I completely forgot to add a home button when I was planning the settings screen on Canva haha I also messed around with tweens and used this website to help me learn! It took a while to understand, but after trying it myself for a couple of buttons, I think I’m starting to get the hang of it! ᕙ( •̀ ᗜ •́ )ᕗ I used tweens for the buttons in the title screen and the button in the settings screen to give them a floating hover state and bouncy animation when a button gets clicked Challenges Definitely figuring out how to properly code the OptionButton ! I am still struggling with it, so hopefully I will find a solution soon! Figuring out how to script tweens was very hard! I was so grateful to the tutorial website I found, and I was able to use its code to understand tweens. For the longest time, I was struggling with the title screen buttons, but I was able to figure out through some googling that the issue had to do with the VBoxContainer interfering with the tweening logic! I was able to create a quick fix by wrapping the buttons with Control nodes! ⸜(。˃ ᵕ ˂ )⸝♡ 𓆝 𓆟 𓆞 𓆝 𓆟 That’s it! Thank you for reading along till the end! Excited to work more on MadMiffy ! ദ്ദി(˵ •̀ ᴗ - ˵ ) ✧
MadMiffy - 9th Devlog 𝜗ৎ˚. Hi, I’m back! ヾ(^ ∇ ^) If you’re new here, MadMiffy is my spinoff version of the WarioWare game!! 𓆝 𓆟 𓆞 𓆝 𓆟 What’s New Added hover/clicked states using tweens for the “Main Menu” buttons in both the winner and death screens I FINALLY got the OptionButton dropdown menus to work! ٩(^ᗜ^ )و ´- It took a while to figure out, but google saved me once again!! I am now in the process of decorating them to match my Canva design Specified data types of all variables in every script I initialized a new minigame!! (more is coming! (˵ •̀ ᴗ - ˵ )) Challenges Coding the OptionButtons !! That was pretty time-consuming and I was really close to giving up, but I decided to try once more and it finally worked! 𓆝 𓆟 𓆞 𓆝 𓆟 And that’s it! This devlog was on the shorter side, but thank you for reading along till the end! See you! ( ദ്ദി ˙ᗜ˙ )
MadMiffy - 10th Devlog .✦ ݁˖ Hello! (๑’ᵕ’๑)⸝* If you’re new here, MadMiffy is my spinoff version of the WarioWare game!! 𓆝 𓆟 𓆞 𓆝 𓆟 What’s New Stylized the popup menu of the dropdowns in the settings page!! Miffy in both the title and timer screen now moves! Created a WHOLE NEW MINIGAME!! (woohoo!!! *ੈ✩‧₊˚ ٩(ˊᗜˋ )و) The player is meant to select the correct food item to give to Miffy; if the player selects incorrectly, they will lose a life!! If you can’t tell already, I still need assets for this minigame haha Challenges To be honest, I feel like coming up with the idea of the minigame itself was the hardest part. I wanted to create someone that was both cute and simple, and I hope I accomplished both of those goals! 𖡼.𖤣𖥧𖡼.𖤣𖥧 𓆝 𓆟 𓆞 𓆝 𓆟 That’s it! Thank you for reading along till the end! See you! (❀❛ ֊ ❛„)♡
MadMiffy - 11th Devlog ˚. ᵎᵎ Hello everyone, I’m back! If you’re new here, MadMiffy is my spinoff version of the WarioWare game!! 𓆝 𓆟 𓆞 𓆝 𓆟 What’s New Minigame 3 is finally looking polished! I re-coded the logic of minigame 3 so that there isn’t a loading screen that pops up every time a new food item pops up on the speech bubble (took me a long time, but was so worth it!! (˶˃𐃷˂˶)) I also added assets to the minigame! The food looks so adorable and at some point I started feeling hungry every time I worked on this minigame (っ˘ڡ˘ς) ˗ˏˋ 🍰 ˎˊ˗ There’s also a counter that keeps track of how much food you’ve served! Challenges Re-coding the minigame was definitely the hardest part! I had to preserve the game’s function while also removing that super annoying loading screen that came up when a new button was clicked, so I’m super proud of my work! ദ്ദി( ˘̀ ֊ ˘́) 𓆝 𓆟 𓆞 𓆝 𓆟 Anddddd that’s it! Thank you for reading along till the end! Look forward to more updates! ৻( •̀ ᗜ •́ ৻)
MadMiffy - 12th Devlog ഒ·˚ Hello everyone, I’m back! (๑ᵔ⤙ᵔ๑) If you’re new here, MadMiffy is my spinoff version of the WarioWare game!! 𓆝 𓆟 𓆞 𓆝 𓆟 What’s New Minigame 3 now has instructions so the player knows how to play the game ( ദ്ദി ˙ᗜ˙ ) I also added a global sound system to MadMiffy!! My laptop can’t record internal audio, so I included a full playthrough of MadMiffy instead!! I still can’t believe how far I’ve come from the starting line (°〇°) Challenges Figuring out the sound system was a big challenge! I had to create a whole other system for it, and it’s still a WIP right now, since I still need to figure out the music toggling, but I’ve come a long way! (ᵕ⸝⸝• ᴗ •) 𓆝 𓆟 𓆞 𓆝 𓆟 Anddddd that’s it! This devlog was pretty short, but thank you for reading along till the end! Look forward to more updates! (˶˃𐃷˂˶)
MadMiffy - 13th Devlog ⋆.ೃ࿔*:・ Hello everyone, I’m back after just ONE day!! If you’re new here, MadMiffy is my spinoff version of the WarioWare game!! 𓆝 𓆟 𓆞 𓆝 𓆟 What’s New I locked in and conjured up a whole new minigame! This will be the final minigame of MadMiffy, and it’s called Whack-A-Miffy! ٩>ᴗ<)و To win this game, the player must whack 5 Miffies before the timer runs out! Click on the Miffy that pops up to “whack” it ヽ(°〇°)ノ I didn’t expect to actually get this far today, so I unfortunately don’t have any footage from when Whack-A-Miffy was still a WIP (。•́︿•̀。) A demo video is attached tho!! Challenges I’m still trying to figure out how to debug the issue with the audio system! I will do my best over the next few days to fix it ( ̄^ ̄ )ゞ 𓆝 𓆟 𓆞 𓆝 𓆟 That’s it! Thank you for reading along till the end! MadMiffy is really coming together now!! (⸝⸝> ᴗ•⸝⸝)
MadMiffy - 14th Devlog ᶻ 𝗓 𐰁 ໒꒱⋆.˚ Hi everyone!! If you’re new here, MadMiffy is my spinoff version of the WarioWare game!! 𓆝 𓆟 𓆞 𓆝 𓆟 What’s New Added animations to the hearts in the timer screen + minigame 2 (they now float up and down!!) (∩˃ᴗ˂∩)✧ Added tween animations to the heart buttons in minigame 2 and the miffies in minigame 4! They are now alive when you hover/click them hahaha (˵ •̀ᴗ•́˵)و I added music to minigame 4! The game is starting to look and sound more and more cohesive!! Challenges Audio issue is still not fixed… I will get to it!! Every fix I try doesn’t work .·°՞(っ-ᯅ-ς)՞°·. (I will not give up though!!) 𓆝 𓆟 𓆞 𓆝 𓆟 That’s it! Thank you for reading along till the end! Stay tuned for more!! ദ്ദി(。•̀ ,<)~
MadMiffy - Updated! •.°♪*:` Hello everyone! (˶˃ ᵕ ˂˶) MadMiffy is now updated on Itch.io!!! (wooooo!!) 𓆝 𓆟 𓆞 𓆝 𓆟 Changes I did not do much this week since I was super busy, but I did update the script of the timer screen so that the music plays before the timer starts! There aren’t any weird delays in the music anymore!! 𓆝 𓆟 𓆞 𓆝 𓆟 That’s it! Thank you for reading along till the end! I still cannot believe how far MadMiffy has come! 。°(°¯᷄◠¯᷅°)°。
Ships:
MadMiffy Ი ᰍ ⋆˚꩜。 𓆝 𓆟 𓆞 𓆝 𓆟 Introducing, MadMiffy , Miffy-themed WarioWare-style game that requires you to play minigames to win! How to Play Your goal is to complete two minigames before you lose all five of your lives! In minigame 1, your goal is to collect all the hearts in time. Use the left/right arrow keys to move left and right, and the spacebar to jump. In minigame 2, click all hearts using the cursor before the timer runs out. If you run out of time before completing a minigame, you lose one life. The minigame will then repeat until you pass or run out of lives. Challenges Finding the perfect assets for everything was definitely a challenge for me! I spent a LOT of time scouring Pinterest for THE pictures Learning how to do animations was difficult because I’ve had very little experience in the past. Youtube tutorials really helped me! What I’m Proud Of This game was an amazing learning opportunity for me! I am so proud of the animations I did, specifically the ones in the winner and death screens! I still can’t believe I brought my Canva animations to life haha I’m also super proud of the buttons that I stylized using StyleBoxFlats! They turned out almost identical to the ones I designed on Canva! 𓆝 𓆟 𓆞 𓆝 𓆟 I can’t believe this will be my very first ship! There is more to come, however, so stay tuned for more of MadMiffy!! (˶˃ ᵕ ˂˶)
MadMiffy - Ship #2 Ი ᰍ ⋆˚꩜。 This is the second ship for MadMiffy, a Miffy-themed WarioWare-style game that requires you to play minigames to win! 𓆝 𓆟 𓆞 𓆝 𓆟 How to Play Your goal is to complete four minigames before you lose all five of your lives. In minigame 1, your goal is to collect all the hearts in time. Use the left/right arrow keys or A/D keys to move left and right. Use the spacebar , W key , or up arrow key to jump. In minigame 2, click all hearts using the cursor before the timer runs out. In minigame 3, click on Miffy’s correct bakery orders using the cursor before the timer runs out. In minigame 4, whack five Miffies using your cursor before the timer runs out. If you run out of time before completing a minigame, you lose one life. The minigame will then repeat until you pass or run out of lives. Challenges Learning how to create tweens was definitely really challenging! It took me a while to understand, but Christophe on itch.io’s tutorial helped me tremendously when learning, and adding tweens to MadMiffy was so worth it in the end! Figuring out the sound system was also super difficult, as I’ve never really messed with audio stuff in Godot before. Tons of YouTube tutorials and google searching later, I now have a (mostly) working music system! Thank you to chajamakesmusic on itch.io for the amazing music ! What I’m Proud Of I can’t believe I actually finished MadMiffy! There are definitely bugs that need to be fixed, but I simply cannot put into words how proud I am to have even started developing this game into something that I imagined in my head. I’m so happy about the way minigame 3 turned out! Prior to creating minigame 3, I was in a bit of a block, unsure if I could even finish this ambitious project. Coding the minigame was super though, but I am glad I pulled through! I also taught myself how to create tweens, which really brought MadMiffy to life! 𓆝 𓆟 𓆞 𓆝 𓆟 I can’t believe this is my second ship! Thank you to everyone who has supported me on this crazy journey!! (˶˃ ᵕ ˂˶)...
|
1793116507.0959544
|
1793202907.0959544
|
|
44092
|
Physics Simulator by @jayeshsinghal | Stardance
|
jayeshsinghal
|
1
|
47.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-19T05:48:47Z", "hours": 47.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a physics simulator; it was challenging to make because a lot of the concepts necessary were new to me, especially implementing the math. But I learned a lot from building it, and I hope it’s enjoyed or useful!", "repo": "https://github.com/jsplaystore/physics-simulator", "demo": "https://frontend-iota-puce-93.vercel.app/"}]...
|
[{"post_id": 50110, "ts": "202 [{"post_id": 50110, "ts": "2026-08-19T05:35:04Z", "hours": 5.3539, "text": "OKAY – LAST DEVLOG… THIS ONE WAS A TRICKY ONE AND I’M excited to share what i’ve done! What I did was add a restitution index to the balls so they bounce more, and so you can compare weight of the balls to the bounciness of the balls combined with the gravity of different planets. Fun, right? What I also added was a little bit of an air resistance simulator which you can change for the whole environment (non-exclusive, the change above is exclusive) Some issues I encountered while building was that I accidentally broke the gravity while trying to do the restitution index and so I had to do some major debugging in that department, and I also messed up my dropdowns, which was an easier fix. I’m excited to ship this project! i hope you’ve enjoyed following along, and next project will be made soon!"}, {"post_id": 49297, "ts": "2026-08-18T01:11:49Z", "hours": 7.9428, "text": "Okay – Back from vacation… put a pretty hefty chunk of time in today! Forgot to do a halfway devlog again today, but I’ll make up for it later or tomorrow! I added a live physics readout And added the labels while making the gravity exclusive (like I said I would :D) ctx.font = \"11px sans-serif\"; ctx.fillStyle = \"#ffffff\"; ctx.textAlign = \"center\"; const label = `${ball.speed.toFixed(1)} m/s | ${ball.kinetic_energy.toFixed(1)} J`; ctx.fillText(label, ball.x, ball.y - ball.radius - 6); const line1 = `${ball.mass.toFixed(1)}kg @ ${ball.gravity.toFixed(1)}m/s²`; const line2 = `${ball.speed.toFixed(1)} m/s | ${ball.kinetic_energy.toFixed(1)} J`; ctx.fillText(line1, ball.x, ball.y - ball.radius - 18); ctx.fillText(line2, ball.x, ball.y - ball.radius - 6); } if (dragStart && dragCurrent) { some sample code for your liking.. no one commented on my last devlog, so if you have any ideas comment on this one. I have a couple QoL upgrades i’m going to make but then ship. Often feedback on my projects says that it doesn’t take the reviewer as long as it took me to code, and I completely understand that take, but personally, I am pretty new at coding, so I do take a lot of time debugging and understanding what I am coding, so just a little behind-the-scenes! Oh yeah, also a sweet little speed indicator!"}, {"post_id": 47774, "ts": "2026-08-15T22:52:19Z", "hours": 6.0628, "text": "Okay – I added a little fun feature where you can build walls and have the balls bounce off of it! It’s late, so expect a more detailed devlog and more on-track stuff after I get back from vacation! See ya!"}, {"post_id": 47588, "ts": "2026-08-15T15:53:01Z", "hours": 8.5336, "text": "Okay – 8 and half hours of work done… (I forgot to post a devlog between when I stopped and restarted working, whoops) I had fun with this one haha What i added: Slider to change the gravity (total, changes for all current objects) Slider to change the ball weight/size/mass (local and exclusive) Back on track. This was fun because I’ve never done anything of the sort, so here’s a bit of what I wrote: PX_PER_M = 100 # scale factor from real-world m/s^2 to our pixel-space gravityEARTH_GRAVITY = 9.8 * PX_PER_MPLANET_GRAVITY_MS2 = { “mercury”: 3.7, “venus”: 8.87, “earth”: 9.8, “moon”: 1.62, “mars”: 3.71, “jupiter”: 24.79, “saturn”: 10.44, “uranus”: 8.69, “neptune”: 11.15, “pluto”: 0.62,}RESTITUTION = 0.8 # energy kept on bounceMAX_BALLS = 8BASE_RADIUS = 15RADIUS_PER_MASS = 5 (i’ll add screenshots so the text is clearer) class Ball: def init (self, x, y, vx=0.0, vy=0.0, mass=1.0): self.x = x self.y = y self.vx = vx self.vy = vy self.mass = mass self.radius = BASE_RADIUS + RADIUS_PER_MASS * mass def state(self): return {\"x\": self.x, \"y\": self.y, \"radius\": self.radius, \"mass\": self.mass} class World: def init (self, width, height, gravity=EARTH_GRAVITY): self.width = width self.height = height self.gravity = gravity self.balls = [Ball(x=width / 2, y=height / 4)] def set_gravity(self, gravity): self.gravity = gravity def launch(self, x, y, vx, vy, mass=1.0): if len(self.balls) >= MAX_BALLS: self.balls.pop(0) self.balls.append(Ball(x=x, y=y, vx=vx, vy=vy, mass=mass)) def step(self, dt): for ball in self.balls: ball.vy += self.gravity * dt ball.x += ball.vx * dt ball.y += ball.vy * dt floor = self.height - ball.radius ceiling = ball.radius if ball.y > floor: ball.y = floor ball.vy = -ball.vy * RESTITUTION elif ball.y < ceiling: ball.y = ceiling ball.vy = -ball.vy * RESTITUTION left = ball.radius right = self.width - ball.radius if ball.x < left: ball.x = left ball.vx = -ball.vx * RESTITUTION elif ball.x > right: ball.x = right ball.vx = -ball.vx * RESTITUTION self.resolve_collisions() What I plan to do: Add different shapes (not really important tho) add backgrounds add labels for the details of each ball whcih will bleed into making the gravitas exclusive as well. Let me know if you have any ideas!"}, {"post_id": 47212, "ts": "2026-08-14T23:43:30Z", "hours": 6.1786, "text": "Okay Devlog #3 i think… Anyway, I’ve been on vacation (and still am) but started doign some work. Here’s what i’ve done: I’ve added a small little fun pool type feature where you can add different balls and have them bounce off of each other (a little off track, yes, but I found it fun to implement and use)! Its great! Short devlog because its late, but heres what I plan to implement: Customizable gravity Maybe different shapes and weights Sliders"}, {"post_id": 42448, "ts": "2026-08-07T05:19:34Z", "hours": 7.8814, "text": "Okay Devlog #2: I’ve taken a little bit of a different fork, and I’ve implemented a feature where you can launch the ball around the screen so you can feel the physics for yourself. This took quite a while to get right because it isn’t binary like the first version. I added 360 deg collisions and a line drawing tool to adjust strength and direction, sort of like a pool game. Going to work on customization in the future. It’s late, so this isn’t as detailed as I’d like but screenshots are attached below. Not sure if I can upload screen recordings, but I would for the next time."}, {"post_id": 41678, "ts": "2026-08-06T01:35:57Z", "hours": 4.8661, "text": "Uhh Devlog #1 FOR THIS NEW PROJECT1 Spent some good time on hit heres what I have so far. Firstly, I got FAST API working. just ofr a little backend I also got a simple bouncing ball working drawn using JavaScript. Added SS below. Next I want to work on being able to change the gravity parameters of the ball, then adding different envs and items."}]...
|
Title: Physics Simulator by @jayeshsinghal | Stard Title: Physics Simulator by @jayeshsinghal | Stardance
Devlogs:
Uhh Devlog #1 FOR THIS NEW PROJECT1 Spent some good time on hit heres what I have so far. Firstly, I got FAST API working. just ofr a little backend I also got a simple bouncing ball working drawn using JavaScript. Added SS below. Next I want to work on being able to change the gravity parameters of the ball, then adding different envs and items.
Okay Devlog #2: I’ve taken a little bit of a different fork, and I’ve implemented a feature where you can launch the ball around the screen so you can feel the physics for yourself. This took quite a while to get right because it isn’t binary like the first version. I added 360 deg collisions and a line drawing tool to adjust strength and direction, sort of like a pool game. Going to work on customization in the future. It’s late, so this isn’t as detailed as I’d like but screenshots are attached below. Not sure if I can upload screen recordings, but I would for the next time.
Okay Devlog #3 i think… Anyway, I’ve been on vacation (and still am) but started doign some work. Here’s what i’ve done: I’ve added a small little fun pool type feature where you can add different balls and have them bounce off of each other (a little off track, yes, but I found it fun to implement and use)! Its great! Short devlog because its late, but heres what I plan to implement: Customizable gravity Maybe different shapes and weights Sliders
Okay – 8 and half hours of work done… (I forgot to post a devlog between when I stopped and restarted working, whoops) I had fun with this one haha What i added: Slider to change the gravity (total, changes for all current objects) Slider to change the ball weight/size/mass (local and exclusive) Back on track. This was fun because I’ve never done anything of the sort, so here’s a bit of what I wrote: PX_PER_M = 100 # scale factor from real-world m/s^2 to our pixel-space gravityEARTH_GRAVITY = 9.8 * PX_PER_MPLANET_GRAVITY_MS2 = { “mercury”: 3.7, “venus”: 8.87, “earth”: 9.8, “moon”: 1.62, “mars”: 3.71, “jupiter”: 24.79, “saturn”: 10.44, “uranus”: 8.69, “neptune”: 11.15, “pluto”: 0.62,}RESTITUTION = 0.8 # energy kept on bounceMAX_BALLS = 8BASE_RADIUS = 15RADIUS_PER_MASS = 5 (i’ll add screenshots so the text is clearer) class Ball: def init (self, x, y, vx=0.0, vy=0.0, mass=1.0): self.x = x self.y = y self.vx = vx self.vy = vy self.mass = mass self.radius = BASE_RADIUS + RADIUS_PER_MASS * mass def state(self): return {"x": self.x, "y": self.y, "radius": self.radius, "mass": self.mass} class World: def init (self, width, height, gravity=EARTH_GRAVITY): self.width = width self.height = height self.gravity = gravity self.balls = [Ball(x=width / 2, y=height / 4)] def set_gravity(self, gravity): self.gravity = gravity def launch(self, x, y, vx, vy, mass=1.0): if len(self.balls) >= MAX_BALLS: self.balls.pop(0) self.balls.append(Ball(x=x, y=y, vx=vx, vy=vy, mass=mass)) def step(self, dt): for ball in self.balls: ball.vy += self.gravity * dt ball.x += ball.vx * dt ball.y += ball.vy * dt floor = self.height - ball.radius ceiling = ball.radius if ball.y > floor: ball.y = floor ball.vy = -ball.vy * RESTITUTION elif ball.y < ceiling: ball.y = ceiling ball.vy = -ball.vy * RESTITUTION left = ball.radius right = self.width - ball.radius if ball.x < left: ball.x = left ball.vx = -ball.vx * RESTITUTION elif ball.x > right: ball.x = right ball.vx = -ball.vx * RESTITUTION self.resolve_collisions() What I plan to do: Add different shapes (not really important tho) add backgrounds add labels for the details of each ball whcih will bleed into making the gravitas exclusive as well. Let me know if you have any ideas!
Okay – I added a little fun feature where you can build walls and have the balls bounce off of it! It’s late, so expect a more detailed devlog and more on-track stuff after I get back from vacation! See ya!
Okay – Back from vacation… put a pretty hefty chunk of time in today! Forgot to do a halfway devlog again today, but I’ll make up for it later or tomorrow! I added a live physics readout And added the labels while making the gravity exclusive (like I said I would :D) ctx.font = "11px sans-serif"; ctx.fillStyle = "#ffffff"; ctx.textAlign = "center"; const label = `${ball.speed.toFixed(1)} m/s | ${ball.kinetic_energy.toFixed(1)} J`; ctx.fillText(label, ball.x, ball.y - ball.radius - 6); const line1 = `${ball.mass.toFixed(1)}kg @ ${ball.gravity.toFixed(1)}m/s²`; const line2 = `${ball.speed.toFixed(1)} m/s | ${ball.kinetic_energy.toFixed(1)} J`; ctx.fillText(line1, ball.x, ball.y - ball.radius - 18); ctx.fillText(line2, ball.x, ball.y - ball.radius - 6); } if (dragStart && dragCurrent) { some sample code for your liking.. no one commented on my last devlog, so if you have any ideas comment on this one. I have a couple QoL upgrades i’m going to make but then ship. Often feedback on my projects says that it doesn’t take the reviewer as long as it took me to code, and I completely understand that take, but personally, I am pretty new at coding, so I do take a lot of time debugging and understanding what I am coding, so just a little behind-the-scenes! Oh yeah, also a sweet little speed indicator!
OKAY – LAST DEVLOG… THIS ONE WAS A TRICKY ONE AND I’M excited to share what i’ve done! What I did was add a restitution index to the balls so they bounce more, and so you can compare weight of the balls to the bounciness of the balls combined with the gravity of different planets. Fun, right? What I also added was a little bit of an air resistance simulator which you can change for the whole environment (non-exclusive, the change above is exclusive) Some issues I encountered while building was that I accidentally broke the gravity while trying to do the restitution index and so I had to do some major debugging in that department, and I also messed up my dropdowns, which was an easier fix. I’m excited to ship this project! i hope you’ve enjoyed following along, and next project will be made soon!
Ships:
I made a physics simulator; it was challenging to make because a lot of the concepts necessary were new to me, especially implementing the math. But I learned a lot from building it, and I hope it’s enjoyed or useful!...
|
1792878769.85204
|
1793742769.85204
|
|
44815
|
Differential Swerve by @precon | Stardance
|
precon
|
1
|
47.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-20T17:53:54Z", "hours": 47.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a differential swerve that is FTC legal, mainly out of 3D printed parts. The most challenging part was getting tolerances right, getting all the math correct, and getting the pod to fit in the build limit. I’m proud that it actually works. I have a working product right now and you should know that although the tuning can be a bit hard, the build is actually very easy. You can just download the files, print it out, get the parts, and build it in around a day or two", "repo": "https://github.com/Vixator/Phoenix-Force-10100-Differential-Swerve", "demo": ""}]...
|
[{"post_id": 71347, "ts": "202 [{"post_id": 71347, "ts": "2026-09-20T17:51:30Z", "hours": 4.35, "text": "Final design and print, need a bit more money for stronger filament/manufacturing, so will ship and then finish the project."}, {"post_id": 70478, "ts": "2026-09-19T08:16:24Z", "hours": 8.1925, "text": "Finished the full build and got everything assembled. It was very rough but it worked. Found a lot of problems and then started and almost finished redesigning it. I hope to print this out in a stronger material and try again to maybe have a more successful design."}, {"post_id": 70303, "ts": "2026-09-18T22:02:48Z", "hours": 14.9586, "text": "OMGGGG got first build done"}, {"post_id": 64029, "ts": "2026-09-08T04:39:06Z", "hours": 7.7411, "text": "It has been a long time working to fix all the previous issues. I think I have one of the most final versions of the model. I’ve only made very tiny tolerance revisions after the final version rebuild so I think I’m mostly stable for the CAD. I’ve been printing out everything to finally build both pods at once. I’ve compiled changes that I’ve done only on one pod or changes that should have plenty of clearance to work. Right now the final shell is printing. I’ll probably work on getting both pods disassembled tomorrow and reassembling them with brand new parts and it should all be coming together quickly. I also worked a lot on the code. I made the robot field-centric and also started using odometry to help out with the accuracy. I haven’t done anything with auto yet but I hope to do something with Pedro pathing to have an auto pathing system for my swerve. I’m pretty excited, to build the final version of my project and have a final product so this can come to a close."}, {"post_id": 63288, "ts": "2026-09-07T01:07:01Z", "hours": 12.1331, "text": "I finished doing the remodel with new parts. A lot of it was updating existing parts to fix what I noticed went wrong in the test build, which made V3. A lot of it was improving the clearances and tolerances between parts to reduce friction and increase efficiency. I also made a lot of changes to the software, which is currently uploaded to GitHub. My plans for the future are:Finish making the wheel grippier and make sure the tread doesn’t fall off.Make auto pathing software.Get a full drivetrain ready."}, {"post_id": 44981, "ts": "2026-08-11T03:18:09Z", "hours": 8.9275, "text": "After finding out about the previous issues in the last version, I finally finished version 2. This one uses different gears that avoid clipping and I changed a lot of the other tolerances. I also found a major thing that I got wrong in my design. Apparently somewhere along the line I dragged a component, which was messing up all the spacings and everything was out of line. I had to go back and fix all of that. I added a lot of convenience features for me to build this easier and made the pod shorter by a good 3 mm so I could actually add some aluminum protection on the ends to avoid the pod being damaged while driving. Overall I think there are a lot of improvements. Once I ship the mod and get the parts, I can finish building this pod and another pod to create a drive base. Hopefully I can finish programming it and hook it up soon so it works."}, {"post_id": 43735, "ts": "2026-08-09T04:35:17Z", "hours": 2.95, "text": "Just posted a devlog but forgot to publish my most recent timelapse and just wanted to give a couple updates. A lot of the tolerances for parts are highly dependent. When I’m inserting a bearing into a 3D printed part, I usually do 13.9 for a 14 mm bearing and 14.9 for the flange. Because some parts print really weirdly in a weird configuration or print vertically where the layers will collapse on each other, I had to make the outer race 15.2 mm and the inner race 14.2 mm, so 0.2 mm oversize instead of undersized. This gives proper tolerance.I also had a lot of weird print issues. I’ve been having a lot of stringing and I accidentally added supports on one of the parts so I’ve been losing a lot of material but it’s honestly taught me a lot as well.I attached a couple of pictures just to show you a difference from my last post. It’s been five minutes but it’s a slight difference. It’s just to show:- what I’ve gotten done- what I’ve assembled so far- what I’ve thrown away- what I’ve missed- okay this is an update after the 2-hour time lapse of me building an entire pod. There’s a lot of things but the biggest thing I noticed was that one of the bevel gears actually clips with the main drive ring gear, which ruins the entire model. This is the biggest issue I have to fix. Other issues I noticed were that assembling was very hard because a lot of the holes were too big and things would fall out when they were flipped over. I also didn’t have the right size screws often, which led me to have weird spacings. Mostly issues can be ironed out through CAD and now that I’ve built it once I can remember what went wrong. For the second version after I fix all these major and minor issues, I hope it’ll go much better and I can get a working pod that’s in size pretty soon for version two."}, {"post_id": 43078, "ts": "2026-08-08T04:46:01Z", "hours": 7.8169, "text": "I started recording and documenting this project halfway through the first revision. The first time lapse was me implementing the final preliminary designs, getting the encoder mounted, getting all the fittings correct, getting the bearing stacks right, and mounting everything in a way that it would technically fit in CAD. The second and third time lapses are mostly printing, getting tolerances right, and getting fits right. My first 3D build will be complete as soon as possible and I can get started on making revisions and iterations to improve the design. I think I focused a lot on trying to incorporate everything I saw. I looked at some designs online and reviewed everything that we needed to implement before hand. I think I’ve done a pretty good job of finding space for everything and putting everything in a nice compact fashion. I think after I get all the tolerances correct and finish assembling, this will be a great first iteration to improve upon. I hope this project can continue and I will get funding for my future prospects, which are getting this machined and getting higher quality parts."}]...
|
Title: Differential Swerve by @precon | Stardance
Title: Differential Swerve by @precon | Stardance
Devlogs:
I started recording and documenting this project halfway through the first revision. The first time lapse was me implementing the final preliminary designs, getting the encoder mounted, getting all the fittings correct, getting the bearing stacks right, and mounting everything in a way that it would technically fit in CAD. The second and third time lapses are mostly printing, getting tolerances right, and getting fits right. My first 3D build will be complete as soon as possible and I can get started on making revisions and iterations to improve the design. I think I focused a lot on trying to incorporate everything I saw. I looked at some designs online and reviewed everything that we needed to implement before hand. I think I’ve done a pretty good job of finding space for everything and putting everything in a nice compact fashion. I think after I get all the tolerances correct and finish assembling, this will be a great first iteration to improve upon. I hope this project can continue and I will get funding for my future prospects, which are getting this machined and getting higher quality parts.
Just posted a devlog but forgot to publish my most recent timelapse and just wanted to give a couple updates. A lot of the tolerances for parts are highly dependent. When I’m inserting a bearing into a 3D printed part, I usually do 13.9 for a 14 mm bearing and 14.9 for the flange. Because some parts print really weirdly in a weird configuration or print vertically where the layers will collapse on each other, I had to make the outer race 15.2 mm and the inner race 14.2 mm, so 0.2 mm oversize instead of undersized. This gives proper tolerance.I also had a lot of weird print issues. I’ve been having a lot of stringing and I accidentally added supports on one of the parts so I’ve been losing a lot of material but it’s honestly taught me a lot as well.I attached a couple of pictures just to show you a difference from my last post. It’s been five minutes but it’s a slight difference. It’s just to show:- what I’ve gotten done- what I’ve assembled so far- what I’ve thrown away- what I’ve missed- okay this is an update after the 2-hour time lapse of me building an entire pod. There’s a lot of things but the biggest thing I noticed was that one of the bevel gears actually clips with the main drive ring gear, which ruins the entire model. This is the biggest issue I have to fix. Other issues I noticed were that assembling was very hard because a lot of the holes were too big and things would fall out when they were flipped over. I also didn’t have the right size screws often, which led me to have weird spacings. Mostly issues can be ironed out through CAD and now that I’ve built it once I can remember what went wrong. For the second version after I fix all these major and minor issues, I hope it’ll go much better and I can get a working pod that’s in size pretty soon for version two.
After finding out about the previous issues in the last version, I finally finished version 2. This one uses different gears that avoid clipping and I changed a lot of the other tolerances. I also found a major thing that I got wrong in my design. Apparently somewhere along the line I dragged a component, which was messing up all the spacings and everything was out of line. I had to go back and fix all of that. I added a lot of convenience features for me to build this easier and made the pod shorter by a good 3 mm so I could actually add some aluminum protection on the ends to avoid the pod being damaged while driving. Overall I think there are a lot of improvements. Once I ship the mod and get the parts, I can finish building this pod and another pod to create a drive base. Hopefully I can finish programming it and hook it up soon so it works.
I finished doing the remodel with new parts. A lot of it was updating existing parts to fix what I noticed went wrong in the test build, which made V3. A lot of it was improving the clearances and tolerances between parts to reduce friction and increase efficiency. I also made a lot of changes to the software, which is currently uploaded to GitHub. My plans for the future are:Finish making the wheel grippier and make sure the tread doesn’t fall off.Make auto pathing software.Get a full drivetrain ready.
It has been a long time working to fix all the previous issues. I think I have one of the most final versions of the model. I’ve only made very tiny tolerance revisions after the final version rebuild so I think I’m mostly stable for the CAD. I’ve been printing out everything to finally build both pods at once. I’ve compiled changes that I’ve done only on one pod or changes that should have plenty of clearance to work. Right now the final shell is printing. I’ll probably work on getting both pods disassembled tomorrow and reassembling them with brand new parts and it should all be coming together quickly. I also worked a lot on the code. I made the robot field-centric and also started using odometry to help out with the accuracy. I haven’t done anything with auto yet but I hope to do something with Pedro pathing to have an auto pathing system for my swerve. I’m pretty excited, to build the final version of my project and have a final product so this can come to a close.
OMGGGG got first build done
Finished the full build and got everything assembled. It was very rough but it worked. Found a lot of problems and then started and almost finished redesigning it. I hope to print this out in a stronger material and try again to maybe have a more successful design.
Final design and print, need a bit more money for stronger filament/manufacturing, so will ship and then finish the project.
Ships:
I made a differential swerve that is FTC legal, mainly out of 3D printed parts. The most challenging part was getting tolerances right, getting all the math correct, and getting the pod to fit in the build limit. I’m proud that it actually works. I have a working product right now and you should know that although the tuning can be a bit hard, the build is actually very easy. You can just download the files, print it out, get the parts, and build it in around a day or two...
|
1793148711.8858166
|
1793235111.8858166
|
|
66761
|
Openport by @xenoaitham | Stardance
|
xenoaitham
|
1
|
47.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-10T20:37:25Z", "hours": 47.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made OpenPorts, an attack surface monitor for small companies: you add a domain, prove you own it by publishing one TXT record at _openports.<yourdomain> , and a scanner that lives inside the web app itself sweeps the 100 most common TCP ports, has one short conversation with every open port, reads the TLS certificate on 443 and the mail ports, and checks SPF, DMARC, MX, HSTS, the http to https redirect and the server header. Every scan is diffed against the previous one, changes are held unconfirmed until a second scan agrees, and verified targets are rescanned every six hours without anyone pressing anything. The whole product is one process and one SQLite file: no redis, no docker, no queue service, two commands to run. The hardest bug was one I inflicted on myself. The scheduler’s due query used ORM column objects inside a raw SQL fragment, the ORM rendered them unqualified, and inside a correlated subquery a bare id resolved to the wrong table, so the query compared every scan against itself and concluded the target was due on every two second tick. The worker scanned the demo host seventeen times in three minutes before I noticed. The fix was hand qualifying the table names and pinning the generated SQL in tests, so the next person who makes that mistake fails a test instead of discovering it from a host’s point of view. The second hard part was honesty under a flapping network: the demo host’s port 80 gives different answers to different conversations seconds apart, so a naive monitor would cry wolf on every run. Changes now announce immediately, tagged unconfirmed, and only confirm when two of the last three scans agree. I am proud that nothing on screen is faked. Findings are never staged; every number in the report came off the wire, including the disagreements, which the report prints instead of hiding. And I am proud of the gate: nothing is ever scanned until ownership is proven, the worker rechecks verification before touching the network, and the single exception is scanme.nmap.org, which the Nmap project runs for exactly this purpose. To test: open https://emotions-finger-earthquake-hints.trycloudflare.com in a browser, nothing to install. Click run scan again on the target and watch a real scan finish in about four seconds, then expand raw scan output to see what actually came off the wire. Or run it locally: npm install, npm run dev, then open http://localhost:4310.", "repo": "https://github.com/xenoaitham/openports", "demo": "https://openports-live-xenoaitham.web.app/"}]...
|
[{"post_id": 78451, "ts": "202 [{"post_id": 78451, "ts": "2026-10-10T20:30:44Z", "hours": 3.3769, "text": "022: v1.0 stamped, the gap priced a fourteenth time One headline: stamp v1.0. Not new scope, just a clean stamp on what already works, so a stranger can clone, install, run, add a domain, publish one TXT record, and get real reports every six hours. The owner added one rule above everything else: commit nothing and push nothing until they say the word, so every git step is prepared and held. The box rebooted again, the fifth pickup like it, and both handoff processes died with it. Restoring them took one command each. The database wasn’t empty this time, since the owner had seeded two scans, and that led to the best surprise: the seed had made the target six hours stale, so on boot the scheduler enqueued a scan by itself. First scheduled rescan on the real clock since the cadence was proven, no rewind, no hand-inserted row, no request in the log before it. Four independent sightings of the due branch now. The scratch got cleared: four places, thirteen lines, all dead comments, a duplicate export and an unused constant, with the test count at 56 before and after. The README got read as a stranger would read it, every claim checked against the code, and none lied. One omission fixed: a single line naming the Node version. The domain question got priced again, and the baseline held on every corner. The cloud CLI lists thirteen projects, and every one answered that the DNS API is disabled. Enabling it and creating a zone is a billable action nobody takes on their own behalf, so two targets on one cadence and two scans at once stay pinned by a race test instead of watched live. A fresh set of twelve screenshots came out clean, though the browser cache was gone again and had to be refetched. The changes feed still has never shown a populated state on live data: seven done scans, every diff empty, nothing staged to force one. The release steps are queued in order, waiting for the word: scratch commit, README commit, version stamp, tag, push, release."}, {"post_id": 78295, "ts": "2026-10-10T10:14:48Z", "hours": 7.8275, "text": "007: the cadence on the real clock, and the gap that stands The oldest open question in the project closed: the six hour cadence fired on the real clock, no rewind, nothing inserted by hand. The scheduled scan appeared about a second after the mark, got claimed seven milliseconds later, finished in under four seconds, and stored the same empty diff as the one before it. Both feeds stayed honestly quiet. Every process watching it had died and the machine had been rebuilt around them, which didn’t matter, since the clock reads the database, not any process. One small decision along the way: the politeness check stays on one stored address per target. Matching every address would need an address history table inside the claim, real machinery for round-robin hosts a small company rarely has, and politeness is a courtesy, not a correctness property. Two lessons for the watching kit. Wiping the database with rm deafens any watcher, since it keeps polling the deleted file and the log just stops with no error, so restart it after every wipe, and after the migrate. And the production server doesn’t migrate, only dev does. The gap that stands: two owned targets sharing the cadence, and two scans running at once, still pinned by a race test instead of watched live. Two more runs checked, and the second went deeper. No DNS credentials anywhere, then a cloud CLI turned up with two accounts, one with a dead token and one that sees ten projects with the DNS service disabled on every one. There’s a difference between no panel and a panel one billable step away, and enabling it is a purchase on someone’s account, not something to do unprompted. Meanwhile the loop held every time: add the public test target, scan it, same four findings, port 80 splitting its personality between a 200 on the banner grab and a refused connection on the redirect check. It never flapped, so the populated changes feed has still never been seen on live data, and nothing was staged to force it."}, {"post_id": 78014, "ts": "2026-10-09T06:27:59Z", "hours": 6.2281, "text": "006: the pool, the bound, and the storm that never got to happen Three jobs landed: a small worker pool with an atomic claim, retention finally observed deleting past its bound on a real run, and a decision about targets that never succeed. Still no second owned domain, so two scans running at once is pinned by a race test instead of watched live. The pool is three workers, one plain constant. The whole design is the claim: one SQL statement picks a queued row and flips it to running in the same breath, so two workers can never take the same row. A test runs two real processes over one database file with twelve queued rows, and together they claimed all twelve, no duplicates. A politeness rule rides on top: a queued scan waits while any scan of the same target, or any target at the same address, is running, so one host never gets swept by two workers at once. Watched it live: a burst of four scans on one host ran strictly one at a time, each starting within a millisecond of the previous finish. Boot recovery marked several stranded running rows failed at once, and a real kill mid-sweep recovered cleanly, the next queued scan picking up seconds later. Retention had never deleted anything, since the real bound is a hundred. Lowered it to five for a soak, then restored it. The prune deleted exactly the five oldest done rows in the same instant, findings and diffs went with them through the cascade, failed rows were untouched, and neither feed noticed. The never-succeeded decision: a target whose scans always fail used to be requeued every two seconds, forever, hammering a host that’s already failing. Now any finished scan resets the cadence, so a failing target is retried once per cadence like a healthy one. Cost, written down: a failed manual scan delays the next scheduled one. One tooling incident: leftover watchers went deaf partway through, and my cleanup matched its own command line and killed a mix of shells and watchers. Watchers get a pidfile now."}, {"post_id": 77487, "ts": "2026-10-07T06:06:47Z", "hours": 9.1194, "text": "005: the window armed, and the run that went dark Planned three things: catch the scheduler firing against a real clock, get a photo of a populated changes feed, and if there was room, add a retention limit to the scans table. The retention part landed clean. The clock-watching part did not, since the whole attempt crashed unexpectedly partway through and came back much later with only a partial trail left behind. Retention is simple and real: keep the last hundred completed scans per target, prune right after a scan finishes, never let a failed cleanup corrupt a scan that actually succeeded. Deleting an old scan correctly drags its stored history with it, since nothing on screen ever looks back further than the limit already allows anyway. The near miss is worth writing down. A log line looked exactly like proof the real scheduler behavior had finally been caught live. It was not, a different unrelated row fired for an unrelated reason, and it nearly got written up as the real finding before a second look caught it. Worse, the machine’s own clock had been wrong for the entire stretch, quietly off by a meaningful margin, so no timing claim from that window can be trusted. Every timing tool now stamps both the wall clock and a separate monotonic clock side by side, so drift shows up honestly instead of lying silently. Someone else picked up the real observation properly, on a trustworthy clock, the same day. One real bug got caught and fixed regardless: a visual check of the live pages turned up literal broken source text rendering in production on every page, leftover from unrelated commits, plus a stray constant pasted into the middle of an unrelated import. Both fixed and disclosed rather than skipped past. The actual lesson: the product held up fine through all of it. The environment around it, crashes, clock errors, lost caches, was what actually failed this time."}, {"post_id": 77153, "ts": "2026-10-05T20:04:08Z", "hours": 5.2897, "text": "004: the feed and the clock Two real jobs this time, since a monitor that rescans itself is useless if nobody can see what changed without opening every target by hand. Gave the changes feed a real home across all targets at once, and then verified the scheduler against an actual running clock instead of just faking the passage of time. The feed now lives on the dashboard as one shared section instead of being buried per target. The part that actually matters: both the per-target view and the new dashboard view call the exact same underlying function with the same inputs, so there’s no way for them to ever quietly disagree, a test pins that guarantee directly. Then watched the scheduler live instead of trusting it on paper. Queued three scans back to back and watched a live monitor poll the database every tenth of a second: each one started within a millisecond of the previous finishing, strictly one at a time, exactly as claimed. Let the scheduler run untouched for a few minutes after and it correctly saw nothing was due yet, zero extra scans fired. Then did a real crash test, killed the server mid-scan for real, and on restart the interrupted scan correctly recorded itself as failed with an honest reason and a real timestamp, while the next queued scan picked up normally right after. Nothing stalled, nothing doubled up. Also added a small “last changed” column to the main table, reading how long ago a target last actually recorded a real change, falling back to an honest dash instead of a false zero when there’s simply no history to look back through. Honest gaps left standing: the scheduler’s actual auto-triggered scan path still hasn’t fired against a real clock, since nothing happened to go stale during this run, and the fully populated version of the new feed has never actually been seen live, since the test target just didn’t flap this time."}, {"post_id": 75862, "ts": "2026-10-01T11:37:09Z", "hours": 5.3144, "text": "003: the monitor runs on its own Three things landed, and one caught a real bug in the tool itself. Targets now get rescanned automatically on a fixed cadence instead of only when someone manually triggers one, with guards so a slow scan never piles another behind it and a crash-interrupted scan gets marked failed on restart instead of stalling the cadence forever. The bug lived in that scheduler. A raw SQL fragment had a column reference that wasn’t properly scoped, so inside a nested subquery it silently matched against the wrong table entirely, meaning every tick thought every target was already stale and due again. The worker rescanned the test target seventeen times in about three minutes before anyone noticed. Killed it, fixed the query by hand, and pinned the actual generated SQL in a test so the same mistake fails loudly next time instead of quietly hammering a shared target. That accidental storm also proved the flap-detection design works for real: the scheduled runs watched the flaky test port close three times, catch it opening once with exactly the single expected unconfirmed alert, then stay quiet through seven more scans that all agreed. One honest announcement, then silence, no crying wolf. Extended certificate checking from just the main port to the mail ports too, and testing it against a real mail server caught another real bug, the handshake was sending the resolved IP address as the server name instead of the actual domain, so every check failed with a false hostname mismatch on a certificate that was actually fine. Fixed to match what a real browser does, and the same server that falsely failed a minute earlier came back clean. Also did another full visual pass and caught a few smaller things left over: red still marking a normal state, a decorative pulsing dot next to text that already said the same thing, inconsistent spacing across tables, and a rare timing mismatch between server-rendered and client-rendered relative timestamps."}, {"post_id": 75721, "ts": "2026-09-30T21:06:20Z", "hours": 4.35, "text": "002: the ui rework The scanner works and the loop is honest, but the frontend read like it came off an assembly line. Screenshotted every page with real data and judged each one as a skeptical stranger: does one person’s point of view show here, or does it pattern-match a template. Verdict: every shot patterned. Terminal-cosplay monospace headline, a numbered marketing-style “how it works” section, prose before any real output, tinted pill badges doing what a plain word could do, a green accent spent purely on decoration. That same review caught two real bugs, not the code review. Findings rendered worst-last instead of worst-first, so the most important result sat at the bottom. And a completely expected, normal state rendered in alarm red, exactly the thing that trains people to ignore red. Rebuilt around one stance: paper, not a dashboard. Off-white background, no rounded corners, no shadows, no gradients. Tables are the interface. Monospace only for actual data, ports, tokens, timestamps. Color appears exactly once, for severity, nothing else. The landing page now shows a real report pulled live from the database instead of marketing copy. Shipped port banner grabbing too, so an open port says what’s listening instead of a bare number. One real security call won along the way: a first draft quietly disabled certificate validation to read self-signed certs, and that got reverted, since a self-signed cert is exactly what a monitoring tool should flag, not quietly read through. Also added a real diff feed between scans. A flaky test target’s port flips open and closed between runs, so announcing every change instantly would be worthless noise. Settled on showing a change immediately but marked unconfirmed until two of the last three scans agree, resolving a one-scan flap back to its real state too. Still missing: scheduled rescans, so the feed only moves when someone manually triggers a scan, and mail TLS ports are identified but not checked for certificate expiry yet."}, {"post_id": 75473, "ts": "2026-09-30T05:53:13Z", "hours": 5.0386, "text": "001: the first loop works OpenPorts watches a domain from the outside and reports what it exposes: open ports, TLS certificates on their way out, mail records that let anyone spoof you, headers that give away the stack. The first full loop went end to end: add a domain, publish one TXT record to prove you own it, then the scanner runs. No record, no scan, one exception for the public test target Nmap itself runs for scanner builders. The scanner stays deliberately modest: one connect sweep over the hundred most likely ports, a TLS handshake to read the certificate, a few DNS lookups for spoofing protection, and three small HTTP checks. Nothing sends a payload, nothing probes services. A full scan takes under three seconds. Two real bugs worth writing down. First, the hand-assembled port list was just wrong, missing port 3389 entirely, so the single highest-severity finding in the whole catalog could never actually fire. A boring test that just checks a list of numbers felt like pure ceremony right up until it caught exactly that. Second, the test target’s port 80 turned out flaky in the worst way for a monitoring product: sometimes it answers fully, sometimes the connection opens but the request just hangs until timeout, and reported findings silently change between runs though nothing on the customer’s end did anything. Now recording exactly what the network said instead of pretending every check came back clean; confirming a change twice before reporting it is next. Architecture choices so far: a simple embedded database instead of a separate one to babysit, and one plain interval-based worker in the main process instead of real job infrastructure, the least moving parts that still survives a restart without double-scanning. What doesn’t work yet: no service identification on open ports, TLS only checked when the main web port answers, and only one scan at a time. Next: naming what’s running on each open port, scheduled rescans, and diffing between scans, since “this port showed up since yesterday” is the real product."}]...
|
Title: Openport by @xenoaitham | Stardance
Devlog Title: Openport by @xenoaitham | Stardance
Devlogs:
001: the first loop works OpenPorts watches a domain from the outside and reports what it exposes: open ports, TLS certificates on their way out, mail records that let anyone spoof you, headers that give away the stack. The first full loop went end to end: add a domain, publish one TXT record to prove you own it, then the scanner runs. No record, no scan, one exception for the public test target Nmap itself runs for scanner builders. The scanner stays deliberately modest: one connect sweep over the hundred most likely ports, a TLS handshake to read the certificate, a few DNS lookups for spoofing protection, and three small HTTP checks. Nothing sends a payload, nothing probes services. A full scan takes under three seconds. Two real bugs worth writing down. First, the hand-assembled port list was just wrong, missing port 3389 entirely, so the single highest-severity finding in the whole catalog could never actually fire. A boring test that just checks a list of numbers felt like pure ceremony right up until it caught exactly that. Second, the test target’s port 80 turned out flaky in the worst way for a monitoring product: sometimes it answers fully, sometimes the connection opens but the request just hangs until timeout, and reported findings silently change between runs though nothing on the customer’s end did anything. Now recording exactly what the network said instead of pretending every check came back clean; confirming a change twice before reporting it is next. Architecture choices so far: a simple embedded database instead of a separate one to babysit, and one plain interval-based worker in the main process instead of real job infrastructure, the least moving parts that still survives a restart without double-scanning. What doesn’t work yet: no service identification on open ports, TLS only checked when the main web port answers, and only one scan at a time. Next: naming what’s running on each open port, scheduled rescans, and diffing between scans, since “this port showed up since yesterday” is the real product.
002: the ui rework The scanner works and the loop is honest, but the frontend read like it came off an assembly line. Screenshotted every page with real data and judged each one as a skeptical stranger: does one person’s point of view show here, or does it pattern-match a template. Verdict: every shot patterned. Terminal-cosplay monospace headline, a numbered marketing-style “how it works” section, prose before any real output, tinted pill badges doing what a plain word could do, a green accent spent purely on decoration. That same review caught two real bugs, not the code review. Findings rendered worst-last instead of worst-first, so the most important result sat at the bottom. And a completely expected, normal state rendered in alarm red, exactly the thing that trains people to ignore red. Rebuilt around one stance: paper, not a dashboard. Off-white background, no rounded corners, no shadows, no gradients. Tables are the interface. Monospace only for actual data, ports, tokens, timestamps. Color appears exactly once, for severity, nothing else. The landing page now shows a real report pulled live from the database instead of marketing copy. Shipped port banner grabbing too, so an open port says what’s listening instead of a bare number. One real security call won along the way: a first draft quietly disabled certificate validation to read self-signed certs, and that got reverted, since a self-signed cert is exactly what a monitoring tool should flag, not quietly read through. Also added a real diff feed between scans. A flaky test target’s port flips open and closed between runs, so announcing every change instantly would be worthless noise. Settled on showing a change immediately but marked unconfirmed until two of the last three scans agree, resolving a one-scan flap back to its real state too. Still missing: scheduled rescans, so the feed only moves when someone manually triggers a scan, and mail TLS ports are identified but not checked for certificate expiry yet.
003: the monitor runs on its own Three things landed, and one caught a real bug in the tool itself. Targets now get rescanned automatically on a fixed cadence instead of only when someone manually triggers one, with guards so a slow scan never piles another behind it and a crash-interrupted scan gets marked failed on restart instead of stalling the cadence forever. The bug lived in that scheduler. A raw SQL fragment had a column reference that wasn’t properly scoped, so inside a nested subquery it silently matched against the wrong table entirely, meaning every tick thought every target was already stale and due again. The worker rescanned the test target seventeen times in about three minutes before anyone noticed. Killed it, fixed the query by hand, and pinned the actual generated SQL in a test so the same mistake fails loudly next time instead of quietly hammering a shared target. That accidental storm also proved the flap-detection design works for real: the scheduled runs watched the flaky test port close three times, catch it opening once with exactly the single expected unconfirmed alert, then stay quiet through seven more scans that all agreed. One honest announcement, then silence, no crying wolf. Extended certificate checking from just the main port to the mail ports too, and testing it against a real mail server caught another real bug, the handshake was sending the resolved IP address as the server name instead of the actual domain, so every check failed with a false hostname mismatch on a certificate that was actually fine. Fixed to match what a real browser does, and the same server that falsely failed a minute earlier came back clean. Also did another full visual pass and caught a few smaller things left over: red still marking a normal state, a decorative pulsing dot next to text that already said the same thing, inconsistent spacing across tables, and a rare timing mismatch between server-rendered and client-rendered relative timestamps.
004: the feed and the clock Two real jobs this time, since a monitor that rescans itself is useless if nobody can see what changed without opening every target by hand. Gave the changes feed a real home across all targets at once, and then verified the scheduler against an actual running clock instead of just faking the passage of time. The feed now lives on the dashboard as one shared section instead of being buried per target. The part that actually matters: both the per-target view and the new dashboard view call the exact same underlying function with the same inputs, so there’s no way for them to ever quietly disagree, a test pins that guarantee directly. Then watched the scheduler live instead of trusting it on paper. Queued three scans back to back and watched a live monitor poll the database every tenth of a second: each one started within a millisecond of the previous finishing, strictly one at a time, exactly as claimed. Let the scheduler run untouched for a few minutes after and it correctly saw nothing was due yet, zero extra scans fired. Then did a real crash test, killed the server mid-scan for real, and on restart the interrupted scan correctly recorded itself as failed with an honest reason and a real timestamp, while the next queued scan picked up normally right after. Nothing stalled, nothing doubled up. Also added a small “last changed” column to the main table, reading how long ago a target last actually recorded a real change, falling back to an honest dash instead of a false zero when there’s simply no history to look back through. Honest gaps left standing: the scheduler’s actual auto-triggered scan path still hasn’t fired against a real clock, since nothing happened to go stale during this run, and the fully populated version of the new feed has never actually been seen live, since the test target just didn’t flap this time.
005: the window armed, and the run that went dark Planned three things: catch the scheduler firing against a real clock, get a photo of a populated changes feed, and if there was room, add a retention limit to the scans table. The retention part landed clean. The clock-watching part did not, since the whole attempt crashed unexpectedly partway through and came back much later with only a partial trail left behind. Retention is simple and real: keep the last hundred completed scans per target, prune right after a scan finishes, never let a failed cleanup corrupt a scan that actually succeeded. Deleting an old scan correctly drags its stored history with it, since nothing on screen ever looks back further than the limit already allows anyway. The near miss is worth writing down. A log line looked exactly like proof the real scheduler behavior had finally been caught live. It was not, a different unrelated row fired for an unrelated reason, and it nearly got written up as the real finding before a second look caught it. Worse, the machine’s own clock had been wrong for the entire stretch, quietly off by a meaningful margin, so no timing claim from that window can be trusted. Every timing tool now stamps both the wall clock and a separate monotonic clock side by side, so drift shows up honestly instead of lying silently. Someone else picked up the real observation properly, on a trustworthy clock, the same day. One real bug got caught and fixed regardless: a visual check of the live pages turned up literal broken source text rendering in production on every page, leftover from unrelated commits, plus a stray constant pasted into the middle of an unrelated import. Both fixed and disclosed rather than skipped past. The actual lesson: the product held up fine through all of it. The environment around it, crashes, clock errors, lost caches, was what actually failed this time.
006: the pool, the bound, and the storm that never got to happen Three jobs landed: a small worker pool with an atomic claim, retention finally observed deleting past its bound on a real run, and a decision about targets that never succeed. Still no second owned domain, so two scans running at once is pinned by a race test instead of watched live. The pool is three workers, one plain constant. The whole design is the claim: one SQL statement picks a queued row and flips it to running in the same breath, so two workers can never take the same row. A test runs two real processes over one database file with twelve queued rows, and together they claimed all twelve, no duplicates. A politeness rule rides on top: a queued scan waits while any scan of the same target, or any target at the same address, is running, so one host never gets swept by two workers at once. Watched it live: a burst of four scans on one host ran strictly one at a time, each starting within a millisecond of the previous finish. Boot recovery marked several stranded running rows failed at once, and a real kill mid-sweep recovered cleanly, the next queued scan picking up seconds later. Retention had never deleted anything, since the real bound is a hundred. Lowered it to five for a soak, then restored it. The prune deleted exactly the five oldest done rows in the same instant, findings and diffs went with them through the cascade, failed rows were untouched, and neither feed noticed. The never-succeeded decision: a target whose scans always fail used to be requeued every two seconds, forever, hammering a host that’s already failing. Now any finished scan resets the cadence, so a failing target is retried once per cadence like a healthy one. Cost, written down: a failed manual scan delays the next scheduled one. One tooling incident: leftover watchers went deaf partway through, and my cleanup matched its own command line and killed a mix of shells and watchers. Watchers get a pidfile now.
007: the cadence on the real clock, and the gap that stands The oldest open question in the project closed: the six hour cadence fired on the real clock, no rewind, nothing inserted by hand. The scheduled scan appeared about a second after the mark, got claimed seven milliseconds later, finished in under four seconds, and stored the same empty diff as the one before it. Both feeds stayed honestly quiet. Every process watching it had died and the machine had been rebuilt around them, which didn’t matter, since the clock reads the database, not any process. One small decision along the way: the politeness check stays on one stored address per target. Matching every address would need an address history table inside the claim, real machinery for round-robin hosts a small company rarely has, and politeness is a courtesy, not a correctness property. Two lessons for the watching kit. Wiping the database with rm deafens any watcher, since it keeps polling the deleted file and the log just stops with no error, so restart it after every wipe, and after the migrate. And the production server doesn’t migrate, only dev does. The gap that stands: two owned targets sharing the cadence, and two scans running at once, still pinned by a race test instead of watched live. Two more runs checked, and the second went deeper. No DNS credentials anywhere, then a cloud CLI turned up with two accounts, one with a dead token and one that sees ten projects with the DNS service disabled on every one. There’s a difference between no panel and a panel one billable step away, and enabling it is a purchase on someone’s account, not something to do unprompted. Meanwhile the loop held every time: add the public test target, scan it, same four findings, port 80 splitting its personality between a 200 on the banner grab and a refused connection on the redirect check. It never flapped, so the populated changes feed has still never been seen on live data, and nothing was staged to force it.
022: v1.0 stamped, the gap priced a fourteenth time One headline: stamp v1.0. Not new scope, just a clean stamp on what already works, so a stranger can clone, install, run, add a domain, publish one TXT record, and get real reports every six hours. The owner added one rule above everything else: commit nothing and push nothing until they say the word, so every git step is prepared and held. The box rebooted again, the fifth pickup like it, and both handoff processes died with it. Restoring them took one command each. The database wasn’t empty this time, since the owner had seeded two scans, and that led to the best surprise: the seed had made the target six hours stale, so on boot the scheduler enqueued a scan by itself. First scheduled rescan on the real clock since the cadence was proven, no rewind, no hand-inserted row, no request in the log before it. Four independent sightings of the due branch now. The scratch got cleared: four places, thirteen lines, all dead comments, a duplicate export and an unused constant, with the test count at 56 before and after. The README got read as a stranger would read it, every claim checked against the code, and none lied. One omission fixed: a single line naming the Node version. The domain question got priced again, and the baseline held on every corner. The cloud CLI lists thirteen projects, and every one answered that the DNS API is disabled. Enabling it and creating a zone is a billable action nobody takes on their own behalf, so two targets on one cadence and two scans at once stay pinned by a race test instead of watched live. A fresh set of twelve screenshots came out clean, though the browser cache was gone again and had to be refetched. The changes feed still has never shown a populated state on live data: seven done scans, every diff empty, nothing staged to force one. The release steps are queued in order, waiting for the word: scratch commit, README commit, version stamp, tag, push, release.
Ships:
I made OpenPorts, an attack surface monitor for small companies: you add a domain, prove you own it by publishing one TXT record at _openports.<yourdomain> , and a scanner that lives inside the web app itself sweeps the 100 most common TCP ports, has one short conversation with every open port, reads the TLS certificate on 443 and the mail ports, and checks SPF, DMARC, MX, HSTS, the http to https redirect and the server header. Every scan is diffed against the previous one, changes are held unconfirmed until a second scan agrees, and verified targets are rescanned every six hours without anyone pressing anything. The whole product is one process and one SQLite file: no redis, no docker, no queue service, two commands to run. The hardest bug was one I inflicted on myself. The scheduler’s due query used ORM column objects inside a raw SQL fragment, the ORM rendered them unqualified, and inside a correlated subquery a bare id resolved to the wrong table, so the query compared every scan against itself and concluded the target was due on every two second tick. The worker scanned the demo host seventeen times in three minutes before I noticed. The fix was hand qualifying the table names and pinning the generated SQL in tests, so the next person who makes that mistake fails a test instead of discovering it from a host’s point of view. The second hard part was honesty under a flapping network: the demo host’s port 80 gives different answers to different conversations seconds apart, so a naive monitor would cry wolf on every run. Changes now announce immediately, tagged unconfirmed, and only confirm when two of the last three scans agree. I am proud that nothing on screen is faked. Findings are never staged; every number in the report came off the wire, including the disagreements, which the report prints instead of hiding. And I am proud of the gate: nothing is ever scanned until ownership is proven, the worker rechecks verification before touching the network, and the single exception is scanme.nmap.org, which the Nmap project runs for exactly this purpose. To test: open https://emotions-finger-earthquake-hints.trycloudflare.com in a browser, nothing to install. Click run scan again on the target and watch a real scan finish in about four seconds, then expand raw scan output to see what actually came off the wire. Or run it locally: npm install, npm run dev, then open http://localhost:4310....
|
1793008387.6056929
|
1793872387.6056929
|
|
34137
|
GMTK game jam 2026 by @ducki | Stardance
|
ducki
|
0
|
46.91
|
0
|
[]
|
[{"post_id": 81474, "ts": "202 [{"post_id": 81474, "ts": "2026-10-21T12:25:57Z", "hours": 3.6486, "text": "A public leaderboard I have not ever tried to add a public leaderboard to a game , but it was more pleasant than I expected. I took some of my old code to quickly make a js node application, using sequelize to handle the backend. Then set up everything to a Render web service and postgress database. Then connected godot to the web service and it works! When loosing in the endless mode you will be prompted if you wish to submit your score to the database, and if you are top 10, you will show up on the main menu. A small intro. The jam version had a very long intro, I remade it to have a way shorter one, so when trying the game over and over, it is not a hastle to wait through the tutorial."}, {"post_id": 81411, "ts": "2026-10-21T05:33:54Z", "hours": 4.0214, "text": "Bobs shop is officially open Buy upgrade cards after rounds to be able to beat even harder rounds. The goal is going to be to make it to the furthest level possible. And then flex on others with a level leaderboard. Main features I managed to make A very nice upgrade card system, which lets me make new cards insanely easily. (I love dictionaries) I can make each upgrade store its own function, then make custom new functions at will. Card buying and then displaying on 2D. As well as popping up when their special function is met Reroll buttons The game is starting to come togheter . Today I have woken up sick. because of it I probably won’t be able to finish in my own set time limit, but that is normal in game development, to plan less time than it would actually take. Video is a bit laggy"}, {"post_id": 81224, "ts": "2026-10-20T11:06:26Z", "hours": 2.4675, "text": "Welcome to Bobs shop I have made the shop cards, only have the buying left to add and make a bunch of custom card functions. Obviously made the cards stretch and pop around. gameplay loop The gameplay loop is almost done already. I added the button to start next round, which now means the player can go on forever, as long as they get enough score each round There is a fun “feature” of text and cards becoming huge, that I will showcase in the next devlog"}, {"post_id": 81195, "ts": "2026-10-20T07:58:02Z", "hours": 3.5203, "text": "Enviornment changes I realised the previous deep fog was a bit too much. So I gave bob a new skybox, so he does not have to live in darkness. Also a bunch more visual improvements. More buttons squatch and stretch. Optimized some code, where for some reason I was running the same code in 3 different spots, combined all that into just 1 function. Next I will start working on the shop, originally started a 2d shop, but realised I want to keep the 3d cards, so instead I am a 3d shop."}, {"post_id": 81020, "ts": "2026-10-19T16:24:43Z", "hours": 4.1611, "text": "I love polish The most important part of an incremental game is polish. So in the video, you can a load of the basics. Particles, Rotation, scaling. Numbers. I will have to improve this system further, but currently I already like how it feels. Cash calculating Currently I only have amount and multiplier. It is a bit inspired by balatro, I want to differenetiate a bit by trying to make it be more the players choice of possible combos. Instead of having some multiplier based on poker hands, each card shall do something. and each upgrade, either buffs a specific card, or lets the player themselves make combinations, for example, if your card sum is 10, get 3x the cash. more additions Added card selecting/unselecting added hand playing"}, {"post_id": 80928, "ts": "2026-10-19T08:28:55Z", "hours": 3.8089, "text": "Got a load of feedback about the game Bob is back! After getting a lot of feedback, I have realised what could be improved in the game, so I have decided to improve the game a bit, and try implement some stuff that I did not get to in the short GMTK game jam time frame but what is the fun if there is no challenge? So I have decided to attempt to finish all the game improvements in 50 hours of real world time (2 days) Current changes From the feedback, the 3d world buttons sometimes were hard to spot, so I moved them to be 2d. Also I have started to clean up some of the spaghetti code that was made when speedrunning this game in such a short time frame Made the cards order themselves based on values Idea that I want to implement I want to make the game be more like and incremental, and have a lot of customization. The idea is every card does something else, and between levels you get to buy upgrades, that change what each specific card does."}, {"post_id": 35656, "ts": "2026-07-27T07:28:11Z", "hours": 7.2297, "text": "Bob is succesfully a part of the gmtk game jam After having to rush the game, too big files and multiple game breaking bugs we managed to fix everything in time! The problems: Couple hours before submission I wanted to add a arrow to guide the player that they do not get lost. Now I tried for an entire hour to do some complex vector math, after giving up my teammate just found that there is the godot look_at() function o_o. Fun waste of an important hour. Game breaking bugs -> Scenes crashing, money doesnt reset when you restart the game (You would be stuck at 0 all the time), items dont get used up Now luckly they were all quite easy to fix, but then also, since this was a game jam we decided to use some premade assets. We ended up having a lot that we did not use in the directory, and then we found out itch allows only 200mb files for web games , we were almost double that. Well swing swing half the files deleted The game contents A small story scene in the beginning and end of game Playing cards against Bob ( Do anything you must to win) mainmenu, settings, ending screen tutorial, which hopefully explains the gameplay good enough overall We have stuff to work on, spaghetti code is something that can always improve, our modeling skills. Try not to rush everything in the end, but I am proud of our progress in this game jam, even more with the fact this was our first 3d game jam. I think this game needs a little bit more polish before being worthy of a stardance ship, so its gameplay shall be perfected after the suggestions from the jam voters. try out the jam version at https://duc-k.itch.io/cashless-drive If you also made a gmtk game jam game, drop a link to it in the comments for me to try out"}, {"post_id": 34911, "ts": "2026-07-26T00:33:33Z", "hours": 8.5508, "text": "Bob now plays cards with you on a moving car! In the past few hours in my gmtk game jam game I have succesfully polished the main blackjack game. meanwhile my teammate has been working on shops, between scenes. This doesnt mean there was no struggle I have banged my head a couple of times on my desk trying to figure out how to order every signal and event in the correct order. Bob was being a bit quiet So i let him be able to talk, well kind of ragebait the player This dialogue system is definetly one of the more favorite ones I have made, mainly because of how fast I was able to make it. Instead of making the next text function replace the entire current text that is displayed, I instead use a string Array to keep all the requested dialogues, where if there are no dialogues when adding to the array, I create a while loop untill I run out of dialogue strings, letting me handle multiple messags from different components all at the same time without even a chance of anything going wrong. I had given the game to a friend to playtest Understood that it is very hard to know what you are supposed to do (they got stuck not knowing what to do), that is why my main priority is going to be a polished tutorial, so people do not get stuck in the first 3 minutes. There are only around 22 hours left in the jam Will it be possible for this games team of 2 to finish in time, yes, but very rough, so this game will have to be polished a bit after submission to the jam. Comment your gmtk game jam games so I can check them out"}, {"post_id": 34343, "ts": "2026-07-24T23:15:08Z", "hours": 9.5028, "text": "Say hi to BOB This year I am participating in a gamejam in the GMTK game jam. Now the theme is kind of not my favorite (trauma from making timed games) You might be asking who is Bob, well he is the green alien in the picture, idk I think it makes sense. Game idea: So this year to keep it simple, taking inspiration from balatro and gamble with your friends, you get stuck in the desert and you are missing 5$ for a bus ticket but Bob here decides here is going to give you a lift, but you must pay him for every km you drive, you dont have money but you can get it by playing blackjack against him. Who said it was gonna be fair? Appart from the regular blackjack implementation, I have added cheating and items both to increase your chances of surviving. (Yes surviving, dont run out of cash) Sometimes Bob gets a bit distracted, during those moments you have the chance to cheat…. Or if you are fancy, use your items to do a load of powerful effects. Progress Progress is a bit slow, since gmtk game jam ends in like 2 days, but I think this is possible, godot signals have become my best friend to keep everything ordered correctly in all the scripts. This is definetly my best code for a game jam yet. If any of you is working on the GMTK game jam, comment your projects!"}]...
|
Title: GMTK game jam 2026 by @ducki | Stardance
D Title: GMTK game jam 2026 by @ducki | Stardance
Devlogs:
Say hi to BOB This year I am participating in a gamejam in the GMTK game jam. Now the theme is kind of not my favorite (trauma from making timed games) You might be asking who is Bob, well he is the green alien in the picture, idk I think it makes sense. Game idea: So this year to keep it simple, taking inspiration from balatro and gamble with your friends, you get stuck in the desert and you are missing 5$ for a bus ticket but Bob here decides here is going to give you a lift, but you must pay him for every km you drive, you dont have money but you can get it by playing blackjack against him. Who said it was gonna be fair? Appart from the regular blackjack implementation, I have added cheating and items both to increase your chances of surviving. (Yes surviving, dont run out of cash) Sometimes Bob gets a bit distracted, during those moments you have the chance to cheat…. Or if you are fancy, use your items to do a load of powerful effects. Progress Progress is a bit slow, since gmtk game jam ends in like 2 days, but I think this is possible, godot signals have become my best friend to keep everything ordered correctly in all the scripts. This is definetly my best code for a game jam yet. If any of you is working on the GMTK game jam, comment your projects!
Bob now plays cards with you on a moving car! In the past few hours in my gmtk game jam game I have succesfully polished the main blackjack game. meanwhile my teammate has been working on shops, between scenes. This doesnt mean there was no struggle I have banged my head a couple of times on my desk trying to figure out how to order every signal and event in the correct order. Bob was being a bit quiet So i let him be able to talk, well kind of ragebait the player This dialogue system is definetly one of the more favorite ones I have made, mainly because of how fast I was able to make it. Instead of making the next text function replace the entire current text that is displayed, I instead use a string Array to keep all the requested dialogues, where if there are no dialogues when adding to the array, I create a while loop untill I run out of dialogue strings, letting me handle multiple messags from different components all at the same time without even a chance of anything going wrong. I had given the game to a friend to playtest Understood that it is very hard to know what you are supposed to do (they got stuck not knowing what to do), that is why my main priority is going to be a polished tutorial, so people do not get stuck in the first 3 minutes. There are only around 22 hours left in the jam Will it be possible for this games team of 2 to finish in time, yes, but very rough, so this game will have to be polished a bit after submission to the jam. Comment your gmtk game jam games so I can check them out
Bob is succesfully a part of the gmtk game jam After having to rush the game, too big files and multiple game breaking bugs we managed to fix everything in time! The problems: Couple hours before submission I wanted to add a arrow to guide the player that they do not get lost. Now I tried for an entire hour to do some complex vector math, after giving up my teammate just found that there is the godot look_at() function o_o. Fun waste of an important hour. Game breaking bugs -> Scenes crashing, money doesnt reset when you restart the game (You would be stuck at 0 all the time), items dont get used up Now luckly they were all quite easy to fix, but then also, since this was a game jam we decided to use some premade assets. We ended up having a lot that we did not use in the directory, and then we found out itch allows only 200mb files for web games , we were almost double that. Well swing swing half the files deleted The game contents A small story scene in the beginning and end of game Playing cards against Bob ( Do anything you must to win) mainmenu, settings, ending screen tutorial, which hopefully explains the gameplay good enough overall We have stuff to work on, spaghetti code is something that can always improve, our modeling skills. Try not to rush everything in the end, but I am proud of our progress in this game jam, even more with the fact this was our first 3d game jam. I think this game needs a little bit more polish before being worthy of a stardance ship, so its gameplay shall be perfected after the suggestions from the jam voters. try out the jam version at https://duc-k.itch.io/cashless-drive If you also made a gmtk game jam game, drop a link to it in the comments for me to try out
Got a load of feedback about the game Bob is back! After getting a lot of feedback, I have realised what could be improved in the game, so I have decided to improve the game a bit, and try implement some stuff that I did not get to in the short GMTK game jam time frame but what is the fun if there is no challenge? So I have decided to attempt to finish all the game improvements in 50 hours of real world time (2 days) Current changes From the feedback, the 3d world buttons sometimes were hard to spot, so I moved them to be 2d. Also I have started to clean up some of the spaghetti code that was made when speedrunning this game in such a short time frame Made the cards order themselves based on values Idea that I want to implement I want to make the game be more like and incremental, and have a lot of customization. The idea is every card does something else, and between levels you get to buy upgrades, that change what each specific card does.
I love polish The most important part of an incremental game is polish. So in the video, you can a load of the basics. Particles, Rotation, scaling. Numbers. I will have to improve this system further, but currently I already like how it feels. Cash calculating Currently I only have amount and multiplier. It is a bit inspired by balatro, I want to differenetiate a bit by trying to make it be more the players choice of possible combos. Instead of having some multiplier based on poker hands, each card shall do something. and each upgrade, either buffs a specific card, or lets the player themselves make combinations, for example, if your card sum is 10, get 3x the cash. more additions Added card selecting/unselecting added hand playing
Enviornment changes I realised the previous deep fog was a bit too much. So I gave bob a new skybox, so he does not have to live in darkness. Also a bunch more visual improvements. More buttons squatch and stretch. Optimized some code, where for some reason I was running the same code in 3 different spots, combined all that into just 1 function. Next I will start working on the shop, originally started a 2d shop, but realised I want to keep the 3d cards, so instead I am a 3d shop.
Welcome to Bobs shop I have made the shop cards, only have the buying left to add and make a bunch of custom card functions. Obviously made the cards stretch and pop around. gameplay loop The gameplay loop is almost done already. I added the button to start next round, which now means the player can go on forever, as long as they get enough score each round There is a fun “feature” of text and cards becoming huge, that I will showcase in the next devlog
Bobs shop is officially open Buy upgrade cards after rounds to be able to beat even harder rounds. The goal is going to be to make it to the furthest level possible. And then flex on others with a level leaderboard. Main features I managed to make A very nice upgrade card system, which lets me make new cards insanely easily. (I love dictionaries) I can make each upgrade store its own function, then make custom new functions at will. Card buying and then displaying on 2D. As well as popping up when their special function is met Reroll buttons The game is starting to come togheter . Today I have woken up sick. because of it I probably won’t be able to finish in my own set time limit, but that is normal in game development, to plan less time than it would actually take. Video is a bit laggy
A public leaderboard I have not ever tried to add a public leaderboard to a game , but it was more pleasant than I expected. I took some of my old code to quickly make a js node application, using sequelize to handle the backend. Then set up everything to a Render web service and postgress database. Then connected godot to the web service and it works! When loosing in the endless mode you will be prompted if you wish to submit your score to the database, and if you are top 10, you will show up on the main menu. A small intro. The jam version had a very long intro, I remade it to have a way shorter one, so when trying the game over and over, it is not a hastle to wait through the tutorial....
|
1792641251.2250888
|
1793246051.2250888
|