|
45237
|
Guitar Game by @Nele | Stardance
|
Nele
|
1
|
121.59
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-26T20:54:19Z", "hours": 121.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Hellooo, I finally finished!!!! This is my ship! It’s a 2D jump and run game you play using Guitar. Because I know not everyone has a guitar or can play it (I’m also not that skilled) I also implemented arrow control, so you can play on your pc or laptop or wherever you have a keyboard. It also works on phone but there is no keyboard so you can only use guitar. Before you start to play you have to choose how you want to play (guitar or keyboard(arrows)), I’ve added a note so you get remembered when you first play the game. The main problem I had to fight was of course the note detection. It was very difficult to filter out the right notes, but it works!! Nah not perfectly, but if you play loud enough in a quiet room it will work! I worked a lot at note detection and changed very much so it looks like a mess. I’m already very sorry… A next problem was or still is the animation. My howl game is running on frontend, which means directly on your device, which could slow the process. For example I tested the game on my phone and the loading screen lasted way longer. So if the game loads long, please don’t give up. I used a loading screen because I noticed that, the images were loading while playing and that was really annoing. Okay, so the problem with the animation is, that it sticks with longer levels. It still sticks now a bit but before it was even worse, so I changed how the animation is calculated and rendered only the visible obstacles. That made it way bette, but it’s still not perfekt of course. So if you play the game, you will notice some levels are locked and you can unlock them by finishing the previous ones. Somethimes there is also a little note in the corner of the startscreen. There you can see chords you need to play in the level. Yeahh, before I let you go, I want to say that some levels are very difficult, and even I have not finished them, because as I already mentiond I’m not a great guitar player, but I hope there is someone out there, who would enyoy playing and could help me improving my game. And for everyone else (including me) I’ve implemented the keyboard control Thank you, if you read all this (: Best regards Nele", "repo": "https://github.com/nelebohn07012010-ship-it/Guitar-Run-Game", "demo": "https://nelebohn07012010-ship-it.github.io/Guitar-Run-Game/"}]...
|
[{"post_id": 84379, "ts": "202 [{"post_id": 84379, "ts": "2026-10-29T15:58:07Z", "hours": 0.5892, "text": "Hellooo, I shiped my project on Monday and then went on a youth trip. I got a review and they reminded me to make a own readme, because mine was still AI written. But the problem was my laptop is still at home and I will return home after deathline. A very very good friend of mine saved me: I wrote the readme in my notice app and sened it to him and he copied it on my laptop and in my projects readme. I called him so he can add all the tags I wanted, where I wanted them. I really love him! He sended my this screenshot as a part of the new readme I wrote myself:"}, {"post_id": 83081, "ts": "2026-10-26T20:28:13Z", "hours": 1.4794, "text": "Heyyy, I added coins to all levels and created a difficulty ranking to each level. I also changed to note catalog style on phone. I think I’m finished now and I will do my ship yayyyyy (:"}, {"post_id": 83060, "ts": "2026-10-26T18:34:45Z", "hours": 2.5767, "text": "Heyoooo, I finished snow level 2 and 5 (: But now my eyes really hurt, because of these many little numbers"}, {"post_id": 82799, "ts": "2026-10-25T21:01:14Z", "hours": 3.1669, "text": "Heyy I finished snow levels 1,2,4 and still have to do 3 and 4 tomorrow anddd I have to add coins the my levels. But in general I would say I’m nearly finished. Good Night, I have to sleep now (:"}, {"post_id": 82596, "ts": "2026-10-25T11:00:41Z", "hours": 4.2206, "text": "Helloooo, I finished the first snow level with all necesarry notes you need and created a falling snow animation. I also locked some levels you have to unlock by finishing the previous ones"}, {"post_id": 81992, "ts": "2026-10-23T11:13:13Z", "hours": 1.8436, "text": "I finished the country road levels yayyyyy!! Next I want to do the Snow riff, but I’m already sure my game can not handle the speed. But I can not handle the speed too so i don’t think it would be a problem if it’s a bit slower. Here is the last country road level on the preview screen:"}, {"post_id": 81965, "ts": "2026-10-23T07:22:50Z", "hours": 1.9692, "text": "Heyyy I created a chord catalog where you can see the chords you need in each level. I drew the chords myselfs but it looks poorly so I’m doing it more professional"}, {"post_id": 80477, "ts": "2026-10-17T19:43:21Z", "hours": 2.3531, "text": "I finished level 1 to 3 with the 7 Nation Army riff and of course redisined level 1 to 3 so that the obstacles match the rithm of seven Nation Army. I also started with a level with chrods, but first I want to make a chord catalog where you can look how to play each chord you need for the level or, respectively the song. Here is one of the levels preview (it’s level 3) :"}, {"post_id": 79988, "ts": "2026-10-15T19:17:55Z", "hours": 2.3706, "text": "Heyooo, as I promised or said I created three levels for a riff to a real song. It’s the well known seven nation army riff (: The first level has just the notes you need for the riff, already in the correct order, but you have muchhh time to play them, so you get familar to where they are on your guitar. I have already plans to desing level two and three, but I have to sleep. So I will do it tomorrow or another day. I am very exited to do this and later show it to you! Here is the array with the obstacles for level one, you can see which frets and strings I used for the riff:"}, {"post_id": 79635, "ts": "2026-10-14T19:28:10Z", "hours": 0.8972, "text": "Hello I changed the size so it is more playable on phone and made a preview to every level which is personal designed for each level… or it will be. I also testet a lot and made preview screenshots. Then I had the idea to use popular guitar riffs for my levels, so that you can actually play a song in the end, which I think would be muchhhh cooler than just some notes. I hope this will work!!!!! I don’t know what to show so here is one of the preview screenshots"}, {"post_id": 79398, "ts": "2026-10-13T20:07:34Z", "hours": 2.5567, "text": "I worked on the desert theme an nearly finished it, but I wantet to change how the game displays the notes and did it. But at first I ran into many issues. I desided to show one here. I first completely destroyed my layout and had to figure out what hapend and how to fix it. In the end I did it and also designed level 4! So here my broken layout…"}, {"post_id": 79132, "ts": "2026-10-12T19:40:18Z", "hours": 1.6378, "text": "I got the design showing up and it looks okay for now. Tomorrow I will try to get cleaner animations. I also aranged level 2 and 3. And did a looottt of testing"}, {"post_id": 78830, "ts": "2026-10-11T18:23:50Z", "hours": 1.2314, "text": "I’m designing my levels at the moment and rearanged level 1. Then I wanted to add different themes… I started with a desert theme. I implemented it just like my arcade theme but it did not really work and I can’t tell why… But I guess I will figure it out"}, {"post_id": 78278, "ts": "2026-10-10T08:18:20Z", "hours": 3.1233, "text": "I finished the chord detection!!! But I’m not satisfied because it does not work as good as I want it. You have to play the chords very clear and loud so you need to use an amplifier if you play on electric guitar. I wanted the detection also to detect quiet chords, but I just don’t get it so I added this information at the beginning. At least it does work :)"}, {"post_id": 77149, "ts": "2026-10-05T19:43:31Z", "hours": 1.2861, "text": "Began to implement a chord detection, to extend my existing note detection, but ran in tooo many problems so I will continue tomorrow. And I designed one level (level 11) that means I rearanged the obstacles."}, {"post_id": 76795, "ts": "2026-10-04T16:11:22Z", "hours": 4.2256, "text": "Stardance has extended, so I took the time to build some small features, like a loading screen, which is displayed when starting the game so thath the images can load before and not while playing. I also added a function which brings the game on full screen when starting and flips the screen if youre playing on phone (works with google on my phone). Annddd I added a note which only pops up, if you open the game for the first time (you can see it in the screenshot). I also cleaned the code, it’s the worst work and nobody really notices…"}, {"post_id": 75336, "ts": "2026-09-29T19:33:00Z", "hours": 9.4228, "text": "I made my game ready to ship. It is now fully playable!! I’ve added some basic funktions… You can take a look at the full game in this video!!! I will add some levels to round it up and then finally ship it"}, {"post_id": 74429, "ts": "2026-09-27T11:21:34Z", "hours": 8.7761, "text": "Hellooooo, I created a pause and a startscreen menu (: I also build the first level!"}, {"post_id": 73575, "ts": "2026-09-25T12:45:01Z", "hours": 9.9753, "text": "I tinkered a bit with th enote detection, but is hasn’t really improved much. The most visible result is probalby that I’ve improved - or at least changed - the design. I’m currently working on a pause menu and have laid the groundwork to create a tutorial soon. I definitely need to lock in over the next few days because I still have so many ideas - even though I have a math exam in four days and haven’t done a thing for it yet. But come on, it’s only math."}, {"post_id": 68754, "ts": "2026-09-15T17:54:56Z", "hours": 2.9547, "text": "I’ve tidied up my code a bit - adding comments and organizing it into logical sections. I still habe a lot of work ahead of me there, but once that’s done, I’ll ve albe to continue working effectively."}, {"post_id": 67615, "ts": "2026-09-13T19:20:56Z", "hours": 10.7439, "text": "Hey there! I’ve expanded the game in a few small ways and focused ont the basic design - adding a few animations here and there. And acuteally (to my surprise) everything is finally working so far. So, here is a video at last!"}, {"post_id": 61556, "ts": "2026-09-04T15:06:18Z", "hours": 10.1756, "text": "I’ve made the game largely responsive now and as you can see I experimented a bit with the backgrounds. I’ve added two more types of obstacles to provide more variety, but unfortunately, I still don’t habe a fully functional level ready - so, once again, just a screenshot:"}, {"post_id": 58729, "ts": "2026-08-31T08:45:12Z", "hours": 10.0539, "text": "I intergrated the note recognition with the game logic and my first test run was succesful: the player jumps when the right note is played at the right time and crashes into the obstacle if not. I also experimented with a few simple designs and had the idea of making the game responsive - I messed that up a bit, but I#m fixing it. Unfortunately, the game logic isn’t working quite right again yet, so here is just a screenshot"}, {"post_id": 55651, "ts": "2026-08-27T16:40:53Z", "hours": 16.0339, "text": "I’ve been working on pitch detection and ran into a few issues, but my program can now identify which string is being played based on its frequency. Unfortunately, it insn’t precise yet, because some strings share the same frequency as other strings at certain frets. Nevertheless, you can see it in my console here!"}, {"post_id": 51895, "ts": "2026-08-21T19:55:44Z", "hours": 8.3889, "text": "I created the fundamentals for my game and also a first very very basic animation"}]...
|
Title: Guitar Game by @Nele | Stardance
Devlogs:
Title: Guitar Game by @Nele | Stardance
Devlogs:
I created the fundamentals for my game and also a first very very basic animation
I’ve been working on pitch detection and ran into a few issues, but my program can now identify which string is being played based on its frequency. Unfortunately, it insn’t precise yet, because some strings share the same frequency as other strings at certain frets. Nevertheless, you can see it in my console here!
I intergrated the note recognition with the game logic and my first test run was succesful: the player jumps when the right note is played at the right time and crashes into the obstacle if not. I also experimented with a few simple designs and had the idea of making the game responsive - I messed that up a bit, but I#m fixing it. Unfortunately, the game logic isn’t working quite right again yet, so here is just a screenshot
I’ve made the game largely responsive now and as you can see I experimented a bit with the backgrounds. I’ve added two more types of obstacles to provide more variety, but unfortunately, I still don’t habe a fully functional level ready - so, once again, just a screenshot:
Hey there! I’ve expanded the game in a few small ways and focused ont the basic design - adding a few animations here and there. And acuteally (to my surprise) everything is finally working so far. So, here is a video at last!
I’ve tidied up my code a bit - adding comments and organizing it into logical sections. I still habe a lot of work ahead of me there, but once that’s done, I’ll ve albe to continue working effectively.
I tinkered a bit with th enote detection, but is hasn’t really improved much. The most visible result is probalby that I’ve improved - or at least changed - the design. I’m currently working on a pause menu and have laid the groundwork to create a tutorial soon. I definitely need to lock in over the next few days because I still have so many ideas - even though I have a math exam in four days and haven’t done a thing for it yet. But come on, it’s only math.
Hellooooo, I created a pause and a startscreen menu (: I also build the first level!
I made my game ready to ship. It is now fully playable!! I’ve added some basic funktions… You can take a look at the full game in this video!!! I will add some levels to round it up and then finally ship it
Stardance has extended, so I took the time to build some small features, like a loading screen, which is displayed when starting the game so thath the images can load before and not while playing. I also added a function which brings the game on full screen when starting and flips the screen if youre playing on phone (works with google on my phone). Annddd I added a note which only pops up, if you open the game for the first time (you can see it in the screenshot). I also cleaned the code, it’s the worst work and nobody really notices…
Began to implement a chord detection, to extend my existing note detection, but ran in tooo many problems so I will continue tomorrow. And I designed one level (level 11) that means I rearanged the obstacles.
I finished the chord detection!!! But I’m not satisfied because it does not work as good as I want it. You have to play the chords very clear and loud so you need to use an amplifier if you play on electric guitar. I wanted the detection also to detect quiet chords, but I just don’t get it so I added this information at the beginning. At least it does work :)
I’m designing my levels at the moment and rearanged level 1. Then I wanted to add different themes… I started with a desert theme. I implemented it just like my arcade theme but it did not really work and I can’t tell why… But I guess I will figure it out
I got the design showing up and it looks okay for now. Tomorrow I will try to get cleaner animations. I also aranged level 2 and 3. And did a looottt of testing
I worked on the desert theme an nearly finished it, but I wantet to change how the game displays the notes and did it. But at first I ran into many issues. I desided to show one here. I first completely destroyed my layout and had to figure out what hapend and how to fix it. In the end I did it and also designed level 4! So here my broken layout…
Hello I changed the size so it is more playable on phone and made a preview to every level which is personal designed for each level… or it will be. I also testet a lot and made preview screenshots. Then I had the idea to use popular guitar riffs for my levels, so that you can actually play a song in the end, which I think would be muchhhh cooler than just some notes. I hope this will work!!!!! I don’t know what to show so here is one of the preview screenshots
Heyooo, as I promised or said I created three levels for a riff to a real song. It’s the well known seven nation army riff (: The first level has just the notes you need for the riff, already in the correct order, but you have muchhh time to play them, so you get familar to where they are on your guitar. I have already plans to desing level two and three, but I have to sleep. So I will do it tomorrow or another day. I am very exited to do this and later show it to you! Here is the array with the obstacles for level one, you can see which frets and strings I used for the riff:
I finished level 1 to 3 with the 7 Nation Army riff and of course redisined level 1 to 3 so that the obstacles match the rithm of seven Nation Army. I also started with a level with chrods, but first I want to make a chord catalog where you can look how to play each chord you need for the level or, respectively the song. Here is one of the levels preview (it’s level 3) :
Heyyy I created a chord catalog where you can see the chords you need in each level. I drew the chords myselfs but it looks poorly so I’m doing it more professional
I finished the country road levels yayyyyy!! Next I want to do the Snow riff, but I’m already sure my game can not handle the speed. But I can not handle the speed too so i don’t think it would be a problem if it’s a bit slower. Here is the last country road level on the preview screen:
Helloooo, I finished the first snow level with all necesarry notes you need and created a falling snow animation. I also locked some levels you have to unlock by finishing the previous ones
Heyy I finished snow levels 1,2,4 and still have to do 3 and 4 tomorrow anddd I have to add coins the my levels. But in general I would say I’m nearly finished. Good Night, I have to sleep now (:
Heyoooo, I finished snow level 2 and 5 (: But now my eyes really hurt, because of these many little numbers
Heyyy, I added coins to all levels and created a difficulty ranking to each level. I also changed to note catalog style on phone. I think I’m finished now and I will do my ship yayyyyy (:
Hellooo, I shiped my project on Monday and then went on a youth trip. I got a review and they reminded me to make a own readme, because mine was still AI written. But the problem was my laptop is still at home and I will return home after deathline. A very very good friend of mine saved me: I wrote the readme in my notice app and sened it to him and he copied it on my laptop and in my projects readme. I called him so he can add all the tags I wanted, where I wanted them. I really love him! He sended my this screenshot as a part of the new readme I wrote myself:
Ships:
Hellooo, I finally finished!!!! This is my ship! It’s a 2D jump and run game you play using Guitar. Because I know not everyone has a guitar or can play it (I’m also not that skilled) I also implemented arrow control, so you can play on your pc or laptop or wherever you have a keyboard. It also works on phone but there is no keyboard so you can only use guitar. Before you start to play you have to choose how you want to play (guitar or keyboard(arrows)), I’ve added a note so you get remembered when you first play the game. The main problem I had to fight was of course the note detection. It was very difficult to filter out the right notes, but it works!! Nah not perfectly, but if you play loud enough in a quiet room it will work! I worked a lot at note detection and changed very much so it looks like a mess. I’m already very sorry… A next problem was or still is the animation. My howl game is running on frontend, which means directly on your device, which could slow the process. For example I tested the game on my phone and the loading screen lasted way longer. So if the game loads long, please don’t give up. I used a loading screen because I noticed that, the images were loading while playing and that was really annoing. Okay, so the problem with the animation is, that it sticks with longer levels. It still sticks now a bit but before it was even worse, so I changed how the animation is calculated and rendered only the visible obstacles. That made it way bette, but it’s still not perfekt of course. So if you play the game, you will notice some levels are locked and you can unlock them by finishing the previous ones. Somethimes there is also a little note in the corner of the startscreen. There you can see chords you need to play in the level. Yeahh, before I let you go, I want to say that some levels are very difficult, and even I have not finished them, because as I already mentiond I’m not a great guitar player, but I hope there is someone out there, who would enyoy playing and could help me improving my game. And for everyone else (including me) I’ve implemented the keyboard control Thank you, if you read all this (: Best regards Nele...
|
1793321484.1111217
|
1793407884.1111217
|
|
45242
|
My Personal Site by @NEBULA_X | Stardance
|
NEBULA_X
|
1
|
7.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-12T20:20:04Z", "hours": 7.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "This is a personalized experimentation site I created to mostly test out my web dev knowledge. The most challenging bits were getting the text beside image sections and the image scroll feature. I also struggled with position quite a bit too but I quickly found a fix for that. I proud of how I handled this project, learning without AI, taking time to try different things, and particularly about how I can now look at any site and be able to identify the basic elements of it. Its a basic site, so its pretty straightforward, just click and inspect, also, the images are SCROLLABLE!!!", "repo": "https://github.com/IsraelAdedeji/PERSONAL-WEBSITE", "demo": "https://israeladedeji.github.io/PERSONAL-WEBSITE/"}]...
|
[{"post_id": 45974, "ts": "202 [{"post_id": 45974, "ts": "2026-08-12T20:09:00Z", "hours": 7.0611, "text": "Alright, I kinda forgot to devlog the whole process and since I was kinda learning mid way too, but its all good. This is a personal website I made for the website mission. I probably spent a whole lot more time here than I needed to, but hey, atleast I learned more than a couple things. along the way. I did a alot of color mixing on it cause I thought making a uniform site would be way to boring, as such it may look kinda mehh but I like it that way. Building on the base tutorial, I added background images, borders, specially colored and sized text to the 3 initial sections. I gave them a sea, desert and space theme which I thought looked cool. I achieved that by creating unique ids containing the properties I wanted for them in the CSS style sheet as with other features. Getting the images beside the text in the second section was pretty problematic cause it either took up all the space or just jumped out of the container entirely until I learned about the flex style which quickly fixed the issue. For the third section, I used a combination of unordered lists to get everything where I wanted. Finally the image section, I implemented a scroll feature for this. At first I thought it may need javascript for this, but after a little digging, I found out I could do it with just CSS. Well thats pretty much it, enough talk, check it out for yourself!"}]...
|
Title: My Personal Site by @NEBULA_X | Stardance
Title: My Personal Site by @NEBULA_X | Stardance
Devlogs:
Alright, I kinda forgot to devlog the whole process and since I was kinda learning mid way too, but its all good. This is a personal website I made for the website mission. I probably spent a whole lot more time here than I needed to, but hey, atleast I learned more than a couple things. along the way. I did a alot of color mixing on it cause I thought making a uniform site would be way to boring, as such it may look kinda mehh but I like it that way. Building on the base tutorial, I added background images, borders, specially colored and sized text to the 3 initial sections. I gave them a sea, desert and space theme which I thought looked cool. I achieved that by creating unique ids containing the properties I wanted for them in the CSS style sheet as with other features. Getting the images beside the text in the second section was pretty problematic cause it either took up all the space or just jumped out of the container entirely until I learned about the flex style which quickly fixed the issue. For the third section, I used a combination of unordered lists to get everything where I wanted. Finally the image section, I implemented a scroll feature for this. At first I thought it may need javascript for this, but after a little digging, I found out I could do it with just CSS. Well thats pretty much it, enough talk, check it out for yourself!
Ships:
This is a personalized experimentation site I created to mostly test out my web dev knowledge. The most challenging bits were getting the text beside image sections and the image scroll feature. I also struggled with position quite a bit too but I quickly found a fix for that. I proud of how I handled this project, learning without AI, taking time to try different things, and particularly about how I can now look at any site and be able to identify the basic elements of it. Its a basic site, so its pretty straightforward, just click and inspect, also, the images are SCROLLABLE!!!...
|
1793526569.4037168
|
1793612969.4037168
|
|
45248
|
Aura by @elnix | Stardance
|
elnix
|
1
|
15.0
|
213
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-11T18:34:04Z", "hours": 15.0, "multiplier": 14.12, "payout": 213, "blessing": "neutral", "text": "I build an Android app, built to help protect your daily privacy, by helping you managing a bunch of akes identities, that you’ll give in all the different shops you go. For example, when tou go to a grocecy store and you want a loyalty card, you can create a brand new fake identity and give the infos to the vendor! THis way you’re not forced to expose private info, such as you name, adress or more, and you have the infos you gave stored to the app. The app is build by 🤎 for Android, and completely free and open-source, with my previous knowledge from Dragon-Launcher (which isn’t btw abandonned, just paused lol)", "repo": "https://github.com/Elnix90/Aura", "demo": "https://github.com/Elnix90/Aura/releases/latest"}]...
|
[{"post_id": 45329, "ts": "202 [{"post_id": 45329, "ts": "2026-08-11T18:29:34Z", "hours": 0.3169, "text": "Applied fixes from Android studio to reduce apk size and optimize. It all went to a dark commit I don’t want to know about 🤣"}, {"post_id": 45285, "ts": "2026-08-11T17:29:39Z", "hours": 0.5969, "text": "First version release! I did a clean job, the app is not perfect but its working, and I’ll ask my friends to test it out to give me a feedback!"}, {"post_id": 44494, "ts": "2026-08-10T09:21:03Z", "hours": 3.3739, "text": "Improved alot the edit screen and global hebavior. As this is another app I made, with lots of reused components, I’m thinking of making a lib with all my custom components so that I can share them across projects. Also, I think the app is ready for a first release, as it works, no thing more, nothing less. its not super pretty but it works, and I’m proud of it. I leanred the ROOM database system (which btw is super clean and cool, I think i’ll migrate my other app to that, at least partially)"}, {"post_id": 43866, "ts": "2026-08-09T09:49:44Z", "hours": 4.3003, "text": "Working on edit screen UI, I started by making all componants using standart blocks. Now, I’m fine tuning each of them to have a clean UI."}, {"post_id": 43324, "ts": "2026-08-08T14:55:19Z", "hours": 0.8969, "text": "feat: add very basic editor and a placeholer when no identities are selected. Actually I’m really proud of the hilarious arrows"}, {"post_id": 43285, "ts": "2026-08-08T13:50:11Z", "hours": 1.4633, "text": "fix: corrected multiple things across the project, the app compiles and displays stuff correctly"}, {"post_id": 42949, "ts": "2026-08-07T22:46:09Z", "hours": 1.6789, "text": "Finally the code compiles, the first version is close, I simply need to. well build the ui. Actually I only have the core building blocks for everything, I’ll need to make a identities editor etc.. but making editors is actually what I like the most so it will be cool to code!"}, {"post_id": 42882, "ts": "2026-08-07T20:44:26Z", "hours": 1.2656, "text": "Deleting old unused libraries before I can start to make the UI. Basically, since I copied my other app, I have to delete all the stuff I con’t need (the points and nests stuff, etc…)"}, {"post_id": 42828, "ts": "2026-08-07T19:22:26Z", "hours": 1.1553, "text": "First commit incomming! I am recycling Dragon-Launcher’s code to build the first version of Aura, my future app. I have all the ideas in mind and therefore will build fast ig"}]...
|
Title: Aura by @elnix | Stardance
Devlogs:
First Title: Aura by @elnix | Stardance
Devlogs:
First commit incomming! I am recycling Dragon-Launcher’s code to build the first version of Aura, my future app. I have all the ideas in mind and therefore will build fast ig
Deleting old unused libraries before I can start to make the UI. Basically, since I copied my other app, I have to delete all the stuff I con’t need (the points and nests stuff, etc…)
Finally the code compiles, the first version is close, I simply need to. well build the ui. Actually I only have the core building blocks for everything, I’ll need to make a identities editor etc.. but making editors is actually what I like the most so it will be cool to code!
fix: corrected multiple things across the project, the app compiles and displays stuff correctly
feat: add very basic editor and a placeholer when no identities are selected. Actually I’m really proud of the hilarious arrows
Working on edit screen UI, I started by making all componants using standart blocks. Now, I’m fine tuning each of them to have a clean UI.
Improved alot the edit screen and global hebavior. As this is another app I made, with lots of reused components, I’m thinking of making a lib with all my custom components so that I can share them across projects. Also, I think the app is ready for a first release, as it works, no thing more, nothing less. its not super pretty but it works, and I’m proud of it. I leanred the ROOM database system (which btw is super clean and cool, I think i’ll migrate my other app to that, at least partially)
First version release! I did a clean job, the app is not perfect but its working, and I’ll ask my friends to test it out to give me a feedback!
Applied fixes from Android studio to reduce apk size and optimize. It all went to a dark commit I don’t want to know about 🤣
Ships:
I build an Android app, built to help protect your daily privacy, by helping you managing a bunch of akes identities, that you’ll give in all the different shops you go. For example, when tou go to a grocecy store and you want a loyalty card, you can create a brand new fake identity and give the infos to the vendor! THis way you’re not forced to expose private info, such as you name, adress or more, and you have the infos you gave stored to the app. The app is build by 🤎 for Android, and completely free and open-source, with my previous knowledge from Dragon-Launcher (which isn’t btw abandonned, just paused lol)...
|
1793526574.146692
|
1793612974.146692
|
|
45258
|
SpacyTab by @body-35 | Stardance
|
body-35
|
1
|
0.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-13T15:47:31Z", "hours": 0.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a website it is just like a tab so u can use it instead of google and there is search bar u can google anything via this search bar so yeah have fun!! excited to see ur comments thx!!!", "repo": "https://github.com/Body-530/Wbsite-Tab-Pulse", "demo": "https://body-530.github.io/Wbsite-Tab-Pulse/"}]...
|
[{"post_id": 46385, "ts": "202 [{"post_id": 46385, "ts": "2026-08-13T15:43:18Z", "hours": 0.3375, "text": "I made a tab website and it works well so u can google it using my website enjoy!!"}]...
|
Title: SpacyTab by @body-35 | Stardance
Devlogs:
Title: SpacyTab by @body-35 | Stardance
Devlogs:
I made a tab website and it works well so u can google it using my website enjoy!!
Ships:
I made a website it is just like a tab so u can use it instead of google and there is search bar u can google anything via this search bar so yeah have fun!! excited to see ur comments thx!!!...
|
1793533993.733706
|
1793620393.733706
|
|
45261
|
jss/clips by @jss | Stardance
|
jss
|
1
|
28.99
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-10T21:50:20Z", "hours": 19.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a clipping software for gamers (or ppl who want to record their desktop or excel speedrunning, i dont judge!). I got tired of other clipping softwares not working or being full of ads and paywalls, so I made my own! Thanks to AI, all I need is an idea, patience to debug (using my mediocre coding skills) and a willing test subje- beta tester. Proud to actually do something a bit bigger and something I use EVERRYYYY DAY to capture the best moments while playing with friends (and the bloopers too ofc.) To test my app; UI Web demo -> https://clips.jss.fi/app/ (should work on any device) Download the latest stable -> https://clips.jss.fi/download/ Judge my code and complain about issues -> https://github.com/jssfi/clips Tested working on W11 both on NVIDIA and AMD GPU’s. (3080 Ti and 9060 XT) Humongus thanks to my friend who helped test the app (and then complain when i broke it)", "repo": "https://github.com/jssfi/clips", "demo": "https://clips.jss.fi/download/"}]...
|
[{"post_id": 49164, "ts": "202 [{"post_id": 49164, "ts": "2026-08-17T20:05:57Z", "hours": 9.9928, "text": "Stable 0.5 is out 🥳 ; since the last devlog there has been…a lot of…lets just say difficulties :D -from github being down today (not that severe) to my updater breaking (twice)..i guess thats what nightlies are for eh? These last 120 ish commits (github says 123 but about half are pure fixes/features etc, the rest are builds etc) have been the most fun ive had making things.. The most stand out features from this batch are; In game overlay engine health warnings for dropped frames, errors and gpu/encoder overoading Library overhaul with sorting and search Per game capture profiles Multi clip stitching for mini “montages” An opt-in instant replay for when the capture engine is stopped but a chosen executable is on, you can still save a 5 min clip (time can be changed) automatic detection for unconfigured games An experimental (but working) browser “mode” for the UI. Instead of a desktop app, the app is in the background and can be controlled through your browser. Screenshots below. And some bugfixes… Updater has been overhauled to be more secure, which led to windows doing windows thing and bricking the whole updater for a bit. This has been fixed and is now working (this is why i recommend stable releases LOL) AMD AMF hardware encoding is now detected properly and wont fallback to h264, like it did most of the time before (though there might be an issue where nvenc can do the same, this is being debugged..) fixed a bug where the microphone input wasnt recorded and the settings disappeared All the changelogs from the nightlies are available on the repo: https://github.com/jssfi/clips Stable v0.5: https://github.com/jssfi/clips/releases/tag/v0.5.0"}, {"post_id": 44848, "ts": "2026-08-10T21:41:49Z", "hours": 0.8294, "text": "Hackclub REAALLYY..doesnt want me to ship without squeeezing every last bit of logged time so okay. Now comply with every (hopefully) 3rd party library license Made audio selection easier to do by letting the user choose an open process from a list (photo below), rather than typing a .exe from the top of your head. shipping now for real haha."}, {"post_id": 44808, "ts": "2026-08-10T20:42:14Z", "hours": 0.8867, "text": "Now i REALLY did the finishing touches; Made the updater a bitttt more secure added a browser demo (For the UI, for now) at https://clips.jss.fi/app/ Made the repo public shippin’ now!"}, {"post_id": 44774, "ts": "2026-08-10T19:34:19Z", "hours": 3.8825, "text": "Some last minute polishing before shipping! Today has been a sum of; UX changes, UI bug fixes and QOL updates. Also a fix of HDR tomfoolery(again)…Added optional diagnostic tracking for errors (asked at install). Added noise removal on RTX GPU’s and a noise gate. Also fixed a bug where updating fails to update the engine underneath the electron UI…whoops!"}, {"post_id": 43419, "ts": "2026-08-08T17:28:11Z", "hours": 13.6761, "text": "This time I’m doubling down on a bit of a bigger project. And like earlier, there’s a problem and then there’s a solution, my solution. This time the problem is that every recording software for the games I play either A. don’t work, B. lag my PC or C. are full of ads. This is my solution, using the power of the tools available (AI) and my ability to debug questionable code to make a tolerable clipping software; jss/clips (jss from my name and then clips). No ads, the ability to configure anything either built-in or then forking and asking AI yourself :) Kinda forgot to keep track of these devlogs to know what ive been doing cause I was having so much fun so heres what I can remember from the top of my head and the app itself; the app can record footage in varying qualities (tested on nvidia and amd gpu’s on windows) using libobs, play them back in an embedded MPV player(or a fullscreen MPV player), trim the clips using FFMPEG, remove microphone noise using NVIDIA Audio Effects on supported systems, auto-update when needed and a LOT of other settings and QOL stuff :) Screenshots below! Started as a joke but grew into something I use everyday now and so does a friend of mine. All on GitHub (before I ship this at the latest…just got to fix some commit issues cause i committed too big of a file somewhere…)"}]...
|
Title: jss/clips by @jss | Stardance
Devlogs:
Thi Title: jss/clips by @jss | Stardance
Devlogs:
This time I’m doubling down on a bit of a bigger project. And like earlier, there’s a problem and then there’s a solution, my solution. This time the problem is that every recording software for the games I play either A. don’t work, B. lag my PC or C. are full of ads. This is my solution, using the power of the tools available (AI) and my ability to debug questionable code to make a tolerable clipping software; jss/clips (jss from my name and then clips). No ads, the ability to configure anything either built-in or then forking and asking AI yourself :) Kinda forgot to keep track of these devlogs to know what ive been doing cause I was having so much fun so heres what I can remember from the top of my head and the app itself; the app can record footage in varying qualities (tested on nvidia and amd gpu’s on windows) using libobs, play them back in an embedded MPV player(or a fullscreen MPV player), trim the clips using FFMPEG, remove microphone noise using NVIDIA Audio Effects on supported systems, auto-update when needed and a LOT of other settings and QOL stuff :) Screenshots below! Started as a joke but grew into something I use everyday now and so does a friend of mine. All on GitHub (before I ship this at the latest…just got to fix some commit issues cause i committed too big of a file somewhere…)
Some last minute polishing before shipping! Today has been a sum of; UX changes, UI bug fixes and QOL updates. Also a fix of HDR tomfoolery(again)…Added optional diagnostic tracking for errors (asked at install). Added noise removal on RTX GPU’s and a noise gate. Also fixed a bug where updating fails to update the engine underneath the electron UI…whoops!
Now i REALLY did the finishing touches; Made the updater a bitttt more secure added a browser demo (For the UI, for now) at https://clips.jss.fi/app/ Made the repo public shippin’ now!
Hackclub REAALLYY..doesnt want me to ship without squeeezing every last bit of logged time so okay. Now comply with every (hopefully) 3rd party library license Made audio selection easier to do by letting the user choose an open process from a list (photo below), rather than typing a .exe from the top of your head. shipping now for real haha.
Stable 0.5 is out 🥳 ; since the last devlog there has been…a lot of…lets just say difficulties :D -from github being down today (not that severe) to my updater breaking (twice)..i guess thats what nightlies are for eh? These last 120 ish commits (github says 123 but about half are pure fixes/features etc, the rest are builds etc) have been the most fun ive had making things.. The most stand out features from this batch are; In game overlay engine health warnings for dropped frames, errors and gpu/encoder overoading Library overhaul with sorting and search Per game capture profiles Multi clip stitching for mini “montages” An opt-in instant replay for when the capture engine is stopped but a chosen executable is on, you can still save a 5 min clip (time can be changed) automatic detection for unconfigured games An experimental (but working) browser “mode” for the UI. Instead of a desktop app, the app is in the background and can be controlled through your browser. Screenshots below. And some bugfixes… Updater has been overhauled to be more secure, which led to windows doing windows thing and bricking the whole updater for a bit. This has been fixed and is now working (this is why i recommend stable releases LOL) AMD AMF hardware encoding is now detected properly and wont fallback to h264, like it did most of the time before (though there might be an issue where nvenc can do the same, this is being debugged..) fixed a bug where the microphone input wasnt recorded and the settings disappeared All the changelogs from the nightlies are available on the repo: https://github.com/jssfi/clips Stable v0.5: https://github.com/jssfi/clips/releases/tag/v0.5.0
Ships:
I made a clipping software for gamers (or ppl who want to record their desktop or excel speedrunning, i dont judge!). I got tired of other clipping softwares not working or being full of ads and paywalls, so I made my own! Thanks to AI, all I need is an idea, patience to debug (using my mediocre coding skills) and a willing test subje- beta tester. Proud to actually do something a bit bigger and something I use EVERRYYYY DAY to capture the best moments while playing with friends (and the bloopers too ofc.) To test my app; UI Web demo -> https://clips.jss.fi/app/ (should work on any device) Download the latest stable -> https://clips.jss.fi/download/ Judge my code and complain about issues -> https://github.com/jssfi/clips Tested working on W11 both on NVIDIA and AMD GPU’s. (3080 Ti and 9060 XT) Humongus thanks to my friend who helped test the app (and then complain when i broke it)...
|
1793534007.0859175
|
1793620407.0859175
|
|
45273
|
Pirate game by @Martisos | Stardance
|
Martisos
|
1
|
32.3
|
437
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-21T16:06:09Z", "hours": 32.0, "multiplier": 13.56, "payout": 437, "blessing": "neutral", "text": "I made a survival, Vampire Survivors-like game! You control a ship that automatically shoots. I had so much fun creating this project—it’s only the second game I’ve ever created on a ‘professional’ level. For the art style, I wanted to try something interesting… imagine a kid drawing this game in their school notebook. I used just two main colors, and I hope the concept comes across clearly. I’m super proud of how it turned down, and I hope everyone has as much fun playing it as I did making it!", "repo": "https://github.com/Martisos/Pirate-rogue-like", "demo": "https://martisos.itch.io/piratink"}]...
|
[{"post_id": 71823, "ts": "202 [{"post_id": 71823, "ts": "2026-09-21T16:46:27Z", "hours": 0.3, "text": "Quick README UPDATE I rewrote the readme, so it’s more fitting to the resources -> “Writing a README that doesn’t suck”… Also added some screenshots to readme."}, {"post_id": 71797, "ts": "2026-09-21T15:58:23Z", "hours": 3.7986, "text": "I’M DONE The game is out! I named it PiratINK like I said in previous devlog. I added some stuff, here it is: Exp Loot So now there are 3 random sprites for exp. No more yellow rectangle! It’s random, also random scale and rotation so every loot looks unique. Cleaned project files and code There were a lot of trash files. I stored there every animation frame, even though i had spritesheet ready. Also code comments and prints. Cross Update No more green dot. Now I use special icon with shader! I think it looks good enough. README There is not much there, but small description, instructions and links are inside. IM SO EXCITED 30 hours is so much for me, I thought I will be working on this for 10? maybe 15 hours… That took a lot more time, but still I think i made really good job in quite small amount of time. Yesterday I was so excited i didn’t record 2 sprites I draw… Ooops. I made resprite for rare card and cross icon… I had so much fun… and sometimes hard time, but overall it was fantastic. Check out the game <3"}, {"post_id": 70823, "ts": "2026-09-19T20:33:26Z", "hours": 7.2333, "text": "(Probably) FINAL DEVLOG A lot happened, like always. There was a lot of work but I’m almost ready with the project. Here I come with 7 hours of coding and drawing assets. Major things that changed: THE NAME I think about… PiratINK….. Yup y’know. Pirating and INK. Something like that. Main Menu As you can see in the video there are small animations in it. The waves show in music beat (but for some reason OBS wasn’t recording the intro of music?), then Ship arrives. It floats on the water, synched with waves moving. I think it looks awesome :D Sounds There is music now in my game! I used sonatina - infinity-crystal (its on itch). I love how it sounds. This RPG music is doing well in my project and you can feel the battle on the sea. Large Enemy Last enemy i had to draw. I think it looks good enought. At first I wasn’t so sure about it, but now i think it’s okay. Cannonballs Now there are 6 unique sprites. Also size is random and rotation of each ball, so every feel unique. And more… A LOT of bug fixes, game feel etc etc. I hope you will like the game! I’m so close to release and I’m really really excited! Have a great day!"}, {"post_id": 67346, "ts": "2026-09-13T12:49:54Z", "hours": 5.8914, "text": "Another Updates! As always, i made a lot of changes, so I will summarise most of the major ones! Upgrade Cards got major update! Upgrade Cards Scene I’m now using a different scene for selecting upgrades. You can see 5 different card borders (dont look at the rare one, it was a placeholder and it looks terrible, so I will change it in the near future) Debuffs It now works perfectly fine! Last time enemies could run away from you instead of slowing down. Other really weird things kept happening… But now everything is under control 25 Unique Upgrade Cards I have 8 categories of upgrades, but you can get them in different rarities, so you can get a lot of power ups and debuffs to use on enemies! Main Menu Main menu has two sliding buttons, it will look cool when i’ll draw a big ship so the menu isn’t that empty. Options You can disable: camera shake, water; And you can enable player stats (i don’t think it will have any special styling, just plain text for nerds idk :D) Medium Enemy Added As always -> 3 frames for an enemy sprite. I wonder if the player should be able to upgrade their ship to this one… Maybe in some super-giga-epicly-legendary-1% upgrade. Cannonball Update Cannonball Range It’s not that big, but not only the ball disappears when it exit your screen, but also after +-3seconds. I had to make a small animation for it, because if you have a really big camera zoom you could see it just popping up in the middle of nothing. Particles It’s small a thing but i think it feels better now with it implemented That’s not all I made a lot in those 6h, but school started and sometimes i had to just write code for 5 minutes to get the streak… So I kinda don’t really remember the mini stuff i did lol. But it’s there! See ya on the sea or something <3"}, {"post_id": 61051, "ts": "2026-09-03T19:21:40Z", "hours": 4.2042, "text": "Pirate Game Updates! I (again) made a lot of stuff. The school started so… Nothing will change (i hope) and I will still be able to work on my small game :DDD. Major things are: Enemy Debuffs You can now draw upgrades cards that change enemy stats! I’m using global scripts to do that, I think the idea is cool and you will be able to combo it quite easily with player’s upgrades Mini Enemy I made two things for this enemy: Middle Cannon 3 frame sprite Middle cannon works differently from Left/Right cannon -> enemy DOES NOT rotate before shooting at you. I think now it looks more realistic? idk Sprite is kinda cool. I like the oars animation… It’s silly but i like it Upgrades Menu In Level Up Menu you can now see your upgrades! The style is only temporary (i know it looks awful but i will change it! Promise!). I had troubles making this one because menu in godot is just pain… Much more small details! I did a lot, even small changed matter to me so i’m happy i improved some other, smaller things"}, {"post_id": 57707, "ts": "2026-08-29T23:09:36Z", "hours": 2.0503, "text": "General Update I’ve added a lot of things! Most of them are really small changes that had to be done to upgrade the experience. Mainly: Upgrade Cards Rarities Now you have chance to get a card based on its rarity! # 0 - common; 1 - rare, 2 - epic, 3 - legendary const RARITY_WEIGHTS = { 0 : 40.0 , 1 : 30.0 , 2 : 20.0 , 3 : 10.0 } So it randomly chooses what cards are left and shuffles them! Player UI I mean it’s only two bars but they work perfectly fine. They have small animations and are connected to the player. Player now collects exp with magnet area Player has an area where you can collect the exp and it will go straight to you! It’s a small circle and if you catch exp in it, the exp will go into your ship I have ‘TODO’ list There are over 20 things i have to do… I know this devlog looks crappy, like i didn’t do that much but trust there are A LOT of small changes. I hope you like it!"}, {"post_id": 54117, "ts": "2026-08-24T22:48:57Z", "hours": 2.1286, "text": "Pirate Game - Testing & Updating I have much work to do… So i started with probably the major update in this devlog: Enemy pathfinding. It was simple at the beginning: Enemy just moved directly at you, and as you can imagine it wasn’t perfect. So I added Pathfinder (NavigatonAgent2D). Now enemies make space for each others… It still looks goofy and if there’s too many they just bump each other and still kill others… I have to manually change some properties and it will work more efficient (TRUST ME (maybe)) Some icons and cannonball I drew icons for almost all upgrades and, as you could see in the video, for the cannonball. Someone suggested that player’s and enemies bullets should be different -> yup, i agree i will probably add some shading/light on yours (like in isaac or something). Cannonball sprite looks a bit static so i wanna draw like 5 of those and change it mid-air. (IM NOT AN ARTIST SO PLEASE DON’T EXPECT ANYTHING CRAZY). Testing I did a lot of tests and minor changes, so i know what i should work on!"}, {"post_id": 52678, "ts": "2026-08-22T23:00:02Z", "hours": 2.4783, "text": "Pirate Game - Textures and Upgrade Cards I added 10+ upgrade cards (mostly for testing). You can see the stats in top-left corner. I really like the ship texture. Even if it’s simple, I think the 3 frame animation looks really good. I also added a shader for the water (also i made the water texture) but something isn’t quite right… I’ll be changing it later! I had to change water’s brightness… Even though i wanted the game to be only 2 colors, I think that’s impossible because you can’t see shi…p. It messes up with the player and i think darker version isn’t that bad (i think)."}, {"post_id": 51906, "ts": "2026-08-21T20:16:41Z", "hours": 1.3744, "text": "Pirate Rogue Like Game (late 2 day) I added upgrade cards system, so you can choose 3 (i made only 2, so there are no 3 on screen…) and then the stats will apply to the player! Next, I will make a lot of those cards and probably start drawing, because those color rects and godot icons don’t fit at all. That’s all for today, have a marvelous day (or night)"}, {"post_id": 51844, "ts": "2026-08-21T18:24:59Z", "hours": 3.0642, "text": "Pirate Rogue Like Game (day1+2) So i made basic systems: movement (click to move), enemies spawning and shooting. There are no textures yet but i want to try with some ink/paper design so it will look like a child is playing in his notebook or something."}]...
|
Title: Pirate game by @Martisos | Stardance
Devlo Title: Pirate game by @Martisos | Stardance
Devlogs:
Pirate Rogue Like Game (day1+2) So i made basic systems: movement (click to move), enemies spawning and shooting. There are no textures yet but i want to try with some ink/paper design so it will look like a child is playing in his notebook or something.
Pirate Rogue Like Game (late 2 day) I added upgrade cards system, so you can choose 3 (i made only 2, so there are no 3 on screen…) and then the stats will apply to the player! Next, I will make a lot of those cards and probably start drawing, because those color rects and godot icons don’t fit at all. That’s all for today, have a marvelous day (or night)
Pirate Game - Textures and Upgrade Cards I added 10+ upgrade cards (mostly for testing). You can see the stats in top-left corner. I really like the ship texture. Even if it’s simple, I think the 3 frame animation looks really good. I also added a shader for the water (also i made the water texture) but something isn’t quite right… I’ll be changing it later! I had to change water’s brightness… Even though i wanted the game to be only 2 colors, I think that’s impossible because you can’t see shi…p. It messes up with the player and i think darker version isn’t that bad (i think).
Pirate Game - Testing & Updating I have much work to do… So i started with probably the major update in this devlog: Enemy pathfinding. It was simple at the beginning: Enemy just moved directly at you, and as you can imagine it wasn’t perfect. So I added Pathfinder (NavigatonAgent2D). Now enemies make space for each others… It still looks goofy and if there’s too many they just bump each other and still kill others… I have to manually change some properties and it will work more efficient (TRUST ME (maybe)) Some icons and cannonball I drew icons for almost all upgrades and, as you could see in the video, for the cannonball. Someone suggested that player’s and enemies bullets should be different -> yup, i agree i will probably add some shading/light on yours (like in isaac or something). Cannonball sprite looks a bit static so i wanna draw like 5 of those and change it mid-air. (IM NOT AN ARTIST SO PLEASE DON’T EXPECT ANYTHING CRAZY). Testing I did a lot of tests and minor changes, so i know what i should work on!
General Update I’ve added a lot of things! Most of them are really small changes that had to be done to upgrade the experience. Mainly: Upgrade Cards Rarities Now you have chance to get a card based on its rarity! # 0 - common; 1 - rare, 2 - epic, 3 - legendary const RARITY_WEIGHTS = { 0 : 40.0 , 1 : 30.0 , 2 : 20.0 , 3 : 10.0 } So it randomly chooses what cards are left and shuffles them! Player UI I mean it’s only two bars but they work perfectly fine. They have small animations and are connected to the player. Player now collects exp with magnet area Player has an area where you can collect the exp and it will go straight to you! It’s a small circle and if you catch exp in it, the exp will go into your ship I have ‘TODO’ list There are over 20 things i have to do… I know this devlog looks crappy, like i didn’t do that much but trust there are A LOT of small changes. I hope you like it!
Pirate Game Updates! I (again) made a lot of stuff. The school started so… Nothing will change (i hope) and I will still be able to work on my small game :DDD. Major things are: Enemy Debuffs You can now draw upgrades cards that change enemy stats! I’m using global scripts to do that, I think the idea is cool and you will be able to combo it quite easily with player’s upgrades Mini Enemy I made two things for this enemy: Middle Cannon 3 frame sprite Middle cannon works differently from Left/Right cannon -> enemy DOES NOT rotate before shooting at you. I think now it looks more realistic? idk Sprite is kinda cool. I like the oars animation… It’s silly but i like it Upgrades Menu In Level Up Menu you can now see your upgrades! The style is only temporary (i know it looks awful but i will change it! Promise!). I had troubles making this one because menu in godot is just pain… Much more small details! I did a lot, even small changed matter to me so i’m happy i improved some other, smaller things
Another Updates! As always, i made a lot of changes, so I will summarise most of the major ones! Upgrade Cards got major update! Upgrade Cards Scene I’m now using a different scene for selecting upgrades. You can see 5 different card borders (dont look at the rare one, it was a placeholder and it looks terrible, so I will change it in the near future) Debuffs It now works perfectly fine! Last time enemies could run away from you instead of slowing down. Other really weird things kept happening… But now everything is under control 25 Unique Upgrade Cards I have 8 categories of upgrades, but you can get them in different rarities, so you can get a lot of power ups and debuffs to use on enemies! Main Menu Main menu has two sliding buttons, it will look cool when i’ll draw a big ship so the menu isn’t that empty. Options You can disable: camera shake, water; And you can enable player stats (i don’t think it will have any special styling, just plain text for nerds idk :D) Medium Enemy Added As always -> 3 frames for an enemy sprite. I wonder if the player should be able to upgrade their ship to this one… Maybe in some super-giga-epicly-legendary-1% upgrade. Cannonball Update Cannonball Range It’s not that big, but not only the ball disappears when it exit your screen, but also after +-3seconds. I had to make a small animation for it, because if you have a really big camera zoom you could see it just popping up in the middle of nothing. Particles It’s small a thing but i think it feels better now with it implemented That’s not all I made a lot in those 6h, but school started and sometimes i had to just write code for 5 minutes to get the streak… So I kinda don’t really remember the mini stuff i did lol. But it’s there! See ya on the sea or something <3
(Probably) FINAL DEVLOG A lot happened, like always. There was a lot of work but I’m almost ready with the project. Here I come with 7 hours of coding and drawing assets. Major things that changed: THE NAME I think about… PiratINK….. Yup y’know. Pirating and INK. Something like that. Main Menu As you can see in the video there are small animations in it. The waves show in music beat (but for some reason OBS wasn’t recording the intro of music?), then Ship arrives. It floats on the water, synched with waves moving. I think it looks awesome :D Sounds There is music now in my game! I used sonatina - infinity-crystal (its on itch). I love how it sounds. This RPG music is doing well in my project and you can feel the battle on the sea. Large Enemy Last enemy i had to draw. I think it looks good enought. At first I wasn’t so sure about it, but now i think it’s okay. Cannonballs Now there are 6 unique sprites. Also size is random and rotation of each ball, so every feel unique. And more… A LOT of bug fixes, game feel etc etc. I hope you will like the game! I’m so close to release and I’m really really excited! Have a great day!
I’M DONE The game is out! I named it PiratINK like I said in previous devlog. I added some stuff, here it is: Exp Loot So now there are 3 random sprites for exp. No more yellow rectangle! It’s random, also random scale and rotation so every loot looks unique. Cleaned project files and code There were a lot of trash files. I stored there every animation frame, even though i had spritesheet ready. Also code comments and prints. Cross Update No more green dot. Now I use special icon with shader! I think it looks good enough. README There is not much there, but small description, instructions and links are inside. IM SO EXCITED 30 hours is so much for me, I thought I will be working on this for 10? maybe 15 hours… That took a lot more time, but still I think i made really good job in quite small amount of time. Yesterday I was so excited i didn’t record 2 sprites I draw… Ooops. I made resprite for rare card and cross icon… I had so much fun… and sometimes hard time, but overall it was fantastic. Check out the game <3
Quick README UPDATE I rewrote the readme, so it’s more fitting to the resources -> “Writing a README that doesn’t suck”… Also added some screenshots to readme.
Ships:
I made a survival, Vampire Survivors-like game! You control a ship that automatically shoots. I had so much fun creating this project—it’s only the second game I’ve ever created on a ‘professional’ level. For the art style, I wanted to try something interesting… imagine a kid drawing this game in their school notebook. I used just two main colors, and I hope the concept comes across clearly. I’m super proud of how it turned down, and I hope everyone has as much fun playing it as I did making it!...
|
1793346481.0104148
|
1793432881.0104148
|
|
45280
|
Project EVE by @BarsMK | Stardance
|
BarsMK
|
1
|
18.0
|
89
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-23T01:08:43Z", "hours": 18.0, "multiplier": 5.0, "payout": 89, "blessing": "neutral", "text": "I made Project EVE, which is a ESP-32 based scanning system that uses an ultrasonic sensor and servo to scan from 30° to 150°, detect objects, track the closest target, and display the results on an OLED radar interface. I also added Wi-Fi connectivity and a live browser dashboard that shows EVE’s sensor and target data. The most challenging part for me was getting the scanning, target detection, radar visualization, target-lock system, and web dashboard to all work together reliably. It took a lot of debugging, but in the end I made it work. I’m proud that I built the system and kept adding different types of features as I learned more about how to program the ESP32, and wire the electronics and components correctly. To test EVE, connect the hardware, power on the ESP32, and open the IP address shown in the Serial Monitor on a device connected to the same Wi-Fi network. The OLED will show EVE’s Interface while the servo and ultrasonic sensor perform the scan.", "repo": "https://github.com/BarsMK/Project-EVE", "demo": ""}]...
|
[{"post_id": 52673, "ts": "202 [{"post_id": 52673, "ts": "2026-08-22T22:51:45Z", "hours": 1.1208, "text": "Day 12 - Project EVE I haven’t been working on any projects for a while, but today I finished Project EVE! I finished up the web dashboard and made it look way better and more organized. I first tested EVE’s /data endpoint to make sure the ESP32 was correctly sending the live distance, scan angle, target distance, and target angle. I then debugged the webpage and found a JavaScript error that was preventing the values from appearing and updating. After fixing the error, I tested it again and successfully got the sensor and target data updating in the browser. With the live dashboard working, I finished the final testing and got Project EVE ready to submit!"}, {"post_id": 49351, "ts": "2026-08-18T03:55:21Z", "hours": 0.68, "text": "Day 11 - Project EVE I can only work on Project EVE a very little amount this week; but today, I continued Project EVE’s Wi-Fi system by building out the browser dashboard and connecting it to the ESP32’s sensor data. I added a JSON data endpoint that sends EVE’s current distance, scan angle, target distance, and target angle to the webpage. The dashboard now displays this information in a cleaner interface, creating the foundation for EVE’s browser-based monitoring system. The next step is to finish the automatic live updates and complete the final testing and polish."}, {"post_id": 48648, "ts": "2026-08-17T04:00:14Z", "hours": 0.4425, "text": "Day 10 - Project EVE Today I added Wi-Fi connectivity to Project EVE and started building its web interface. EVE can now connect to my Wi-Fi network and host its own webpage, allowing me to view information from the ESP32 through a browser. The webpage currently displays the ultrasonic distance, servo angle, closest detected target, and target angle. I also started setting up a data endpoint for future live updates. Next, I’ll finish automatic webpage updates and turn the interface into a more complete EVE dashboard."}, {"post_id": 47919, "ts": "2026-08-16T05:58:29Z", "hours": 1.3775, "text": "Day 9 - Project EVE For the rest of the day, I continued improving Project EVE by making the wiring more organized and clear, because I got new wires! I replaced the original wires with flatter ones which improved the overall layout of the hardware. I also added a new dedicated rescan button that resets the data and allows EVE to start a new scan AFTER it locks on it’s target and goes on the target lock screen. After improving the target-lock system, I moved on to Wi-Fi and successfully accessed EVE through a browser. Next, I’ll build a future web dashboard that has live sensor data, target information, and a larger radar display."}, {"post_id": 47707, "ts": "2026-08-15T19:55:59Z", "hours": 1.0842, "text": "SOME of day 9 - Project EVE Today I added a target-lock system to Project EVE. After completing a scan, EVE saves the closest detected object’s distance and angle, and displays the locked information on the OLED. I also added a dedicated target-lock screen showing the target distance, angle, and lock status. This makes the radar system more interactive and gives EVE another step towards more advanced target tracking. Next, I plan to add a bit more to the target lock, add Wi-Fi connectivity, do final testing and polish, then prepare EVE for shipping."}, {"post_id": 47292, "ts": "2026-08-15T04:37:40Z", "hours": 0.4939, "text": "Day 8 - Project EVE I did a very little amount of work today, but i improved a bit of the target detection system. I tested the saved closest-target distance and angle and added a larger marker on the radar to make the closest detected target easier to see. I also tested the marker against the target information shown on the status screen. Next, I’ll work on the target lock and start adding Wi-Fi features to the ESP-32."}, {"post_id": 46718, "ts": "2026-08-14T05:06:53Z", "hours": 1.2503, "text": "Day 7 - Project EVE I couldn’t do as much as I wanted too today, but I was improving the status screen and making it more useful for the monitoring system. I added live ultrasonic sensor readings so EVE can display the current distance detected by the sonar, along with the servo’s current angle. I also added target information to the screen using the closest distance and angle saved during a scan. This gave the status window more purpose instead of only showing basic system information. I was testing the updated display for the status screen, debugged and worked through the layout and positioning issues with the distance, target, and angle values. Next, I’ll finish improving the target detection system and begin making EVE more reliable at identifying and tracking the objects that are detected."}, {"post_id": 46163, "ts": "2026-08-13T05:56:29Z", "hours": 2.3561, "text": "Day 6 - Project EVE Today I continued developing Project EVE’s radar system by improving the way the servo and ultrasonic sensor scan the environment. I changed the servo scan from 1° at a time from 30° to 150°, allowing EVE to collect much more detailed distance data across the scanning area. The radar was also able to move more smoothly, due to it not moving in 10° increments. I also increased the radar display size while keeping the scan focused on the first half of the OLED, adjusted the radar arc to match the servo’s scanning range, and changed the detection points to small pixels to reduce the blob-like appearance. At some parts of the radar, it still looks a bit like blobs but I’m gonna attempt to fix that tomorrow. I also added timestamps to the stored distance measurements so the older detections can fade from the radar instead of constantly staying on the screen. I fixed the scan-memory reset so each new scan starts with fresh new data. Next, I’ll improve the radar’s object detection so EVE can recognize separate objects instead of displaying a continues trail of points, then I’ll try to start working towards a target-lock system."}, {"post_id": 45590, "ts": "2026-08-12T05:45:00Z", "hours": 1.7425, "text": "Day 5 - Project EVE Today I continued developing Project EVE by turning the servo and ultrasonic sensor into a radar-style scanning system. I added angle tracking, distance mapping, a moving radar sweep, and detection points on the OLED. I worked on converting the ultrasonic distance and servo angle into X and Y coordinates so the detected objects appear in the correction location on the OLED. I also worked on changing detection sizes based on distance, making closer objects easier to identify on the radar. During testing, I noticed that detections near the edge of the radar blended into the circle, so i was adjusting the distance scaling and display. Next, I’ll continue improving the radar and work on a target-lock system for the closest detected object."}, {"post_id": 45291, "ts": "2026-08-11T17:33:59Z", "hours": 2.4953, "text": "Day 4 - Project EVE Today I continued working on Project EVE by developing the scanning system. I programmed the servo to scan from 30° to 150° in 10° increments while the ultrasonic sensor measures the distance at each angle, and I added a system that remembers the closest distance and the angle where it was detected. I also improved the OLED interface so it displays the current angle, distance, closest distance, and object status, along with a Scan complete screen that shows the final result. During testing, I found a timing issue where the servo angle would update before the distance measurement, which caused the scanning to be delayed. I added a timeout to the distance measurement, which fixed the delay and made the angle and distance updates stay synchronized. Now the ultrasonic sensor, OLED, and code are working together as one scanning system. in 10° increments while the ultrasonic sensor measures the distance at each angle, and I added a system that remembers the closest distance and the angle where it was detected. I also improved the OLED interface so it displays the current angle, distance, closest distance, and object status, along with a Scan complete screen that shows the final result. During testing, I found a timing issue where the servo angle would update before the distance measurement, which caused the scanning to be delayed. I added a timeout to the distance measurement, which fixed the delay and made the angle and distance updates stay synchronized. Now the ultrasonic sensor, OLED, and code are working together as one scanning system."}, {"post_id": 44416, "ts": "2026-08-10T04:49:59Z", "hours": 2.0217, "text": "Day 3 - Project EVE Today I couldn’t do much, but I worked on organizing the wiring for Project EVE and making it easier to work with. I put two breadboards side by side and wired in places which were convenient for me. I connected the ESP32, OLED, ultrasonic sensor, servo, and buttons, and got the buttons working with the menu and scan modes. I also worked on the code for scanning and started adding a bit of a memory system so EVE can remember the closest object it detects and the angle where it found it. I updated the OLED layout to eventually show the current angle and distance along with the closest distance and its angle. It was a shorter session today, but I feel like EVE is starting to come together."}, {"post_id": 43770, "ts": "2026-08-09T06:09:29Z", "hours": 0.8167, "text": "SOME of Day 3 - Project EVE For now, I only had about 25 minutes to work on EVE, but I still got some important stuff done. I made a DIY mount for the ultrasonic sensor and servo (because i don’t have any 3d printer), and after some messing around and adjusting it, they both worked consistently. I also improved the scan screen and added decision making too, so EVE can begin figuring out whether something is close enough to count as an object. I also learned more about millis() and lastScanTime and how if and else statements let EVE make decisions based on the data of the sensor. It wasn’t a long session, but the scanner is feeling more like an actual system instead of a bunch of seperate parts."}, {"post_id": 43602, "ts": "2026-08-08T23:19:52Z", "hours": 1.9172, "text": "Core Interface, Scanning & Navigation Today I worked on turning Project EVE from a bundle of individual hardware tests into an actual working system Part 1: Interface I built the main menu for the OLED and added two-button navigation. The MOVE button switches between: SCAN STATUS The Select button opens whichever option is highlighted with an arrow. I also made Select behave differently depending on EVE’s current mode. From SCAN or STATUS, pressing Select returns EVE to the main menu. This taught me how variables like mode and menuChoice can control the behavior of my embedded system. Part 2: Scanning The scanning system now uses an ESP32, servo, and ultrasonic sensor altogether. The servo sweeps between 30° and 150°, then reverses direction and sweeps back. At each position, the ultrasonic sensor measures the distance. The OLED displays the current servo angle and measured distance. I also changed the scanning system again to use milliseconds instead of blocking the program with long delays. Part 3: Status System I redesigned the STATUS screen to show basic info on the system: SYS: ONLINE SERVO: READY SONAR: READY It’s still a very simple screen but gives EVE a place to eventually display more useful info. Part 4: Problems & Learning One of the biggest problems I ran into was understanding how the buttons and menu variables worked together. I initially had the menu switching back immediately because my if statements were structured incorrectly. Fixing this taught me why else if matters and how changing a variable can affect the next condition. Part 5: What’s Next? The next goal is to make the scanner more intelligent on EVE. Right now, EVE can measure distances at different angles, but doesn’t understand the measurements yet. Next I want to work toward: Putting the ultrasonic sensor on the servo Organizing the wiring Storing scanner measurements Detecting nearby objects & indicating them on the OLED Improving the interface for the scanner Later on determining where an object is located based on their angle and distance After that, I’ll continue developing the hardware and physical design of EVE. This is still an early version of EVE, but the core system is starting to come together."}, {"post_id": 43066, "ts": "2026-08-08T04:00:00Z", "hours": 1.8825, "text": "Devlog #1 - Today I worked on adding servo scanning to Project EVE. I connected the servo and the ultrasonic sensor to the ESP 32. I got them working together so the sensor can measure distances at different angles, but today I could only get to making it work rather than mounting it on top of the servo. I also started learning how to use the millis() function instead of the delay() function and started switching to milliseconds so the scanner can stay responsive while running. I still need to fix the OLED screens and different modes and be able to switch between them with a button. After that, I want to mount the ultrasonic sensor onto the servo in some way, improve the OLED interface, and later on design a proper physical mounting system for the electronics in CAD."}]...
|
Title: Project EVE by @BarsMK | Stardance
Devlogs Title: Project EVE by @BarsMK | Stardance
Devlogs:
Devlog #1 - Today I worked on adding servo scanning to Project EVE. I connected the servo and the ultrasonic sensor to the ESP 32. I got them working together so the sensor can measure distances at different angles, but today I could only get to making it work rather than mounting it on top of the servo. I also started learning how to use the millis() function instead of the delay() function and started switching to milliseconds so the scanner can stay responsive while running. I still need to fix the OLED screens and different modes and be able to switch between them with a button. After that, I want to mount the ultrasonic sensor onto the servo in some way, improve the OLED interface, and later on design a proper physical mounting system for the electronics in CAD.
Core Interface, Scanning & Navigation Today I worked on turning Project EVE from a bundle of individual hardware tests into an actual working system Part 1: Interface I built the main menu for the OLED and added two-button navigation. The MOVE button switches between: SCAN STATUS The Select button opens whichever option is highlighted with an arrow. I also made Select behave differently depending on EVE’s current mode. From SCAN or STATUS, pressing Select returns EVE to the main menu. This taught me how variables like mode and menuChoice can control the behavior of my embedded system. Part 2: Scanning The scanning system now uses an ESP32, servo, and ultrasonic sensor altogether. The servo sweeps between 30° and 150°, then reverses direction and sweeps back. At each position, the ultrasonic sensor measures the distance. The OLED displays the current servo angle and measured distance. I also changed the scanning system again to use milliseconds instead of blocking the program with long delays. Part 3: Status System I redesigned the STATUS screen to show basic info on the system: SYS: ONLINE SERVO: READY SONAR: READY It’s still a very simple screen but gives EVE a place to eventually display more useful info. Part 4: Problems & Learning One of the biggest problems I ran into was understanding how the buttons and menu variables worked together. I initially had the menu switching back immediately because my if statements were structured incorrectly. Fixing this taught me why else if matters and how changing a variable can affect the next condition. Part 5: What’s Next? The next goal is to make the scanner more intelligent on EVE. Right now, EVE can measure distances at different angles, but doesn’t understand the measurements yet. Next I want to work toward: Putting the ultrasonic sensor on the servo Organizing the wiring Storing scanner measurements Detecting nearby objects & indicating them on the OLED Improving the interface for the scanner Later on determining where an object is located based on their angle and distance After that, I’ll continue developing the hardware and physical design of EVE. This is still an early version of EVE, but the core system is starting to come together.
SOME of Day 3 - Project EVE For now, I only had about 25 minutes to work on EVE, but I still got some important stuff done. I made a DIY mount for the ultrasonic sensor and servo (because i don’t have any 3d printer), and after some messing around and adjusting it, they both worked consistently. I also improved the scan screen and added decision making too, so EVE can begin figuring out whether something is close enough to count as an object. I also learned more about millis() and lastScanTime and how if and else statements let EVE make decisions based on the data of the sensor. It wasn’t a long session, but the scanner is feeling more like an actual system instead of a bunch of seperate parts.
Day 3 - Project EVE Today I couldn’t do much, but I worked on organizing the wiring for Project EVE and making it easier to work with. I put two breadboards side by side and wired in places which were convenient for me. I connected the ESP32, OLED, ultrasonic sensor, servo, and buttons, and got the buttons working with the menu and scan modes. I also worked on the code for scanning and started adding a bit of a memory system so EVE can remember the closest object it detects and the angle where it found it. I updated the OLED layout to eventually show the current angle and distance along with the closest distance and its angle. It was a shorter session today, but I feel like EVE is starting to come together.
Day 4 - Project EVE Today I continued working on Project EVE by developing the scanning system. I programmed the servo to scan from 30° to 150° in 10° increments while the ultrasonic sensor measures the distance at each angle, and I added a system that remembers the closest distance and the angle where it was detected. I also improved the OLED interface so it displays the current angle, distance, closest distance, and object status, along with a Scan complete screen that shows the final result. During testing, I found a timing issue where the servo angle would update before the distance measurement, which caused the scanning to be delayed. I added a timeout to the distance measurement, which fixed the delay and made the angle and distance updates stay synchronized. Now the ultrasonic sensor, OLED, and code are working together as one scanning system. in 10° increments while the ultrasonic sensor measures the distance at each angle, and I added a system that remembers the closest distance and the angle where it was detected. I also improved the OLED interface so it displays the current angle, distance, closest distance, and object status, along with a Scan complete screen that shows the final result. During testing, I found a timing issue where the servo angle would update before the distance measurement, which caused the scanning to be delayed. I added a timeout to the distance measurement, which fixed the delay and made the angle and distance updates stay synchronized. Now the ultrasonic sensor, OLED, and code are working together as one scanning system.
Day 5 - Project EVE Today I continued developing Project EVE by turning the servo and ultrasonic sensor into a radar-style scanning system. I added angle tracking, distance mapping, a moving radar sweep, and detection points on the OLED. I worked on converting the ultrasonic distance and servo angle into X and Y coordinates so the detected objects appear in the correction location on the OLED. I also worked on changing detection sizes based on distance, making closer objects easier to identify on the radar. During testing, I noticed that detections near the edge of the radar blended into the circle, so i was adjusting the distance scaling and display. Next, I’ll continue improving the radar and work on a target-lock system for the closest detected object.
Day 6 - Project EVE Today I continued developing Project EVE’s radar system by improving the way the servo and ultrasonic sensor scan the environment. I changed the servo scan from 1° at a time from 30° to 150°, allowing EVE to collect much more detailed distance data across the scanning area. The radar was also able to move more smoothly, due to it not moving in 10° increments. I also increased the radar display size while keeping the scan focused on the first half of the OLED, adjusted the radar arc to match the servo’s scanning range, and changed the detection points to small pixels to reduce the blob-like appearance. At some parts of the radar, it still looks a bit like blobs but I’m gonna attempt to fix that tomorrow. I also added timestamps to the stored distance measurements so the older detections can fade from the radar instead of constantly staying on the screen. I fixed the scan-memory reset so each new scan starts with fresh new data. Next, I’ll improve the radar’s object detection so EVE can recognize separate objects instead of displaying a continues trail of points, then I’ll try to start working towards a target-lock system.
Day 7 - Project EVE I couldn’t do as much as I wanted too today, but I was improving the status screen and making it more useful for the monitoring system. I added live ultrasonic sensor readings so EVE can display the current distance detected by the sonar, along with the servo’s current angle. I also added target information to the screen using the closest distance and angle saved during a scan. This gave the status window more purpose instead of only showing basic system information. I was testing the updated display for the status screen, debugged and worked through the layout and positioning issues with the distance, target, and angle values. Next, I’ll finish improving the target detection system and begin making EVE more reliable at identifying and tracking the objects that are detected.
Day 8 - Project EVE I did a very little amount of work today, but i improved a bit of the target detection system. I tested the saved closest-target distance and angle and added a larger marker on the radar to make the closest detected target easier to see. I also tested the marker against the target information shown on the status screen. Next, I’ll work on the target lock and start adding Wi-Fi features to the ESP-32.
SOME of day 9 - Project EVE Today I added a target-lock system to Project EVE. After completing a scan, EVE saves the closest detected object’s distance and angle, and displays the locked information on the OLED. I also added a dedicated target-lock screen showing the target distance, angle, and lock status. This makes the radar system more interactive and gives EVE another step towards more advanced target tracking. Next, I plan to add a bit more to the target lock, add Wi-Fi connectivity, do final testing and polish, then prepare EVE for shipping.
Day 9 - Project EVE For the rest of the day, I continued improving Project EVE by making the wiring more organized and clear, because I got new wires! I replaced the original wires with flatter ones which improved the overall layout of the hardware. I also added a new dedicated rescan button that resets the data and allows EVE to start a new scan AFTER it locks on it’s target and goes on the target lock screen. After improving the target-lock system, I moved on to Wi-Fi and successfully accessed EVE through a browser. Next, I’ll build a future web dashboard that has live sensor data, target information, and a larger radar display.
Day 10 - Project EVE Today I added Wi-Fi connectivity to Project EVE and started building its web interface. EVE can now connect to my Wi-Fi network and host its own webpage, allowing me to view information from the ESP32 through a browser. The webpage currently displays the ultrasonic distance, servo angle, closest detected target, and target angle. I also started setting up a data endpoint for future live updates. Next, I’ll finish automatic webpage updates and turn the interface into a more complete EVE dashboard.
Day 11 - Project EVE I can only work on Project EVE a very little amount this week; but today, I continued Project EVE’s Wi-Fi system by building out the browser dashboard and connecting it to the ESP32’s sensor data. I added a JSON data endpoint that sends EVE’s current distance, scan angle, target distance, and target angle to the webpage. The dashboard now displays this information in a cleaner interface, creating the foundation for EVE’s browser-based monitoring system. The next step is to finish the automatic live updates and complete the final testing and polish.
Day 12 - Project EVE I haven’t been working on any projects for a while, but today I finished Project EVE! I finished up the web dashboard and made it look way better and more organized. I first tested EVE’s /data endpoint to make sure the ESP32 was correctly sending the live distance, scan angle, target distance, and target angle. I then debugged the webpage and found a JavaScript error that was preventing the values from appearing and updating. After fixing the error, I tested it again and successfully got the sensor and target data updating in the browser. With the live dashboard working, I finished the final testing and got Project EVE ready to submit!
Ships:
I made Project EVE, which is a ESP-32 based scanning system that uses an ultrasonic sensor and servo to scan from 30° to 150°, detect objects, track the closest target, and display the results on an OLED radar interface. I also added Wi-Fi connectivity and a live browser dashboard that shows EVE’s sensor and target data. The most challenging part for me was getting the scanning, target detection, radar visualization, target-lock system, and web dashboard to all work together reliably. It took a lot of debugging, but in the end I made it work. I’m proud that I built the system and kept adding different types of features as I learned more about how to program the ESP32, and wire the electronics and components correctly. To test EVE, connect the hardware, power on the ESP32, and open the IP address shown in the Serial Monitor on a device connected to the same Wi-Fi network. The OLED will show EVE’s Interface while the servo and ultrasonic sensor perform the scan....
|
1793497691.6679206
|
1793584091.6679206
|
|
45298
|
City Defenders TD by @nautrw | Stardance
|
nautrw
|
1
|
133.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-28T22:43:13Z", "hours": 133.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made City Defenders TD (ironically named since there aren’t any cities). This is a medieval and fantasy-inspired tower defense game built entirely with Pygame-CE. I drew every single sprite manually using Aseprite and implemented my very own custom GUI system from scratch. There are several maps and several towers to unlock by progressing through the game. I hope you enjoy this project as much as I enjoyed making it.", "repo": "https://github.com/nautrw/city-defenders", "demo": "https://nautrw.itch.io/city-defenders"}]...
|
[{"post_id": 83941, "ts": "202 [{"post_id": 83941, "ts": "2026-10-28T22:40:28Z", "hours": 0.9178, "text": "As requested by some playtesters I quickly added an instructions page with the basic controls of the game. It’s not great but hopefully it works. I’ve also been fiddling a lot trying to get the installation commands working and trying the executables on several virtual machines. The game is done and I’m going to ship!"}, {"post_id": 83522, "ts": "2026-10-28T03:11:20Z", "hours": 4.3492, "text": "I added a credit scene, and now the project has got to be most definitely ready to ship I need them stardust 😭"}, {"post_id": 81918, "ts": "2026-10-23T01:55:23Z", "hours": 7.1764, "text": "Ok, so I actually lied when I said the game was done. I still have a lot of balancing to do, and with this have come some other major changes. Particle System : I added a particle system (unfortunately they go very fast and I wasn’t able to capture it). This was originally because the effect overlay colors looked really bad. Now, particles with rise up from the enemy with an effect and then fade out over time. I then figured out that I could actually make the overlay color draw correctly by using the RGBA multiplication blending method. It still looks way cooler now. Balancing : Many towers have been nerfed, especially the cannon. I am fortunate to have people that can playtest my game. It’s definitely gotten much harder. I’m still working on it, though. The point now is that the balancing of the towers and when the player unlocks them has lead me to the mechanic of unlocking one tower per map. Thus, I have created 3 more maps because there are 7 towers in total. I might have to make a final one for the flamethrower to be used. I’ve spent A LOT of time balancing since last devlog, and I think it shows lol."}, {"post_id": 81498, "ts": "2026-10-21T14:31:28Z", "hours": 6.4322, "text": "There’s been a lot of progress, I think. The game is pretty much done at this point. What’s left is just to balance the game. Renamed Ground Zero to Magic Forest : Magic Forest sounds like a much cooler name that fits the theme of the game, so I just renamed it. Data Saving : I finally got around to saving the data when closing. I just made a function that closed the game and then saved the data, and then any pathway that exits the game just calls that function. Save and quit : I added a save and quit feature to the pause menu. I am now tracking a state inside the pause menu GUI manager. There is first a save and quit option, and then that leads to a second menu that warns the player and asks them to confirm their choice. There is also an X button in the main menu that straight up quotes the game, too. Archipelago : I made a new map, the Archipelago. This follows a thin strip of land on which the enemies walk. I actually had to rework how the map system worked, adding an option to draw the ground on top or below the blocked layer. I also had to add an extra check on the logic for determining if a player can place a tower. Flamethrower : I added a new flamethrower tower. As of right now, it has the same stats as the cannon. I am going to be balancing the whole thing soon. This is going to be the final tower I think."}, {"post_id": 80831, "ts": "2026-10-18T22:49:30Z", "hours": 6.415, "text": "I’ve been kind of behind again, but I think I’ve made some cool stuff. Tower shop is now an official mechanic. I just remembered I need to set the default shards back to 0, but it’s fully working now. Main menu : I ended up setting the background of it to a stone wall, which to be honest is just taken from the tower shop background. I was wasting too much time on drawing. Map selector music : I finally got some music for the map selector. It’s some public domain guitar music like the tower shop, but different. I think it sounds pretty nice. Victory & defeat scene revamp : I revamped the victory and defeat scenes. Now, they show a banner in the center of the screen and the amount of shards the player receives. A defeat will get 1/2 of the shards reward, to allow them to actually improve. 3x speed setting : While waiting for the enemies to get to the end so I could test the defeated scene, I got tired and decided to add a new 3x speed button. I ended up refactoring the whole thing but now the code is much cleaner."}, {"post_id": 78524, "ts": "2026-10-11T03:01:21Z", "hours": 7.6825, "text": "I’ve been working on 2 major things that look small but are actually pretty big: Currency buttons : I’ve had to do some major revamps to several parts of the GUI system, but now I have buttons that show the currency. I am now using these for the upgrades, buy towers, and the new tower shop with the shards. I am now allowing for icon elements to be passed into the Button class. This allows for custom positioning, and thus this new way of buttons. Then I had to change the way that elements refreshed in the GUI managers. It took a while to figure out, but now they will be red if there isn’t enough currency. Main menu background : Art is incredibly time-consuming for me, and I keep scrapping designs but I think this one is the one and the one I’ll stick with for the finished thing."}, {"post_id": 77585, "ts": "2026-10-07T15:31:34Z", "hours": 6.0606, "text": "I’ve started work on a tower shop. I spent several hours drawing the background, but I think it came out looking really good. It only took so much time, which is why I’m making the log now. I also used a template human model for the merchant. I am going to show the different upgrades on the menu. I haven’t added the buy functionality yet, but that will probably be pretty easy. I got some chill guitar music from opengameart."}, {"post_id": 77288, "ts": "2026-10-06T13:27:04Z", "hours": 6.6089, "text": "A little bit faster progress now. Tower Shop : I have started work on a tower shop. I want it to be from the POV of the player looking into a medieval stall. As of right now, I’m still working on drawing it, and also it’s still hidden and non-functional. I edited all the towers to have a requirement of another tower, so as to make it a progression later on, Data Saving : I am going to start implementing a save system. For this, I just put some values into a data class and then implemented a way to save it to and load it from JSON. Molten Lands : There is a new map now, the molten lands. I also made a lava slime which is a bit stronger than the other enemies except for the bosses. It took a while to draw the sandy tiles for it, but I feel as though I’ve gotten much better at drawing than before. Logging : I added logging. This probably should’ve been added earlier, but this will help tremendously to fix any bugs in the code. For now, I am logging pretty much everything that doesn’t happen every frame, like when an enemy dies or the user clicks on a button."}, {"post_id": 76508, "ts": "2026-10-03T19:37:01Z", "hours": 7.5089, "text": "Progress has been (very) slow but there’s some more new content: Crabs & Bat : I added crab enemies. There is a normal crab that is like a slime and then an armored crab (not shown in video) that is bigger and meant to be a boss. There is also a bat enemy. Pause Menu : Theere is a pause menu now. It allows the user to retry the map or go back to the main menu. I am finally making use of the other features of the scene manager. It’s a different scene but it’s rendered on top of the main game scene. I had to modify the scene manager to draw each scene on top of the last one in the stack. Otherwise, this is just the same usage of my GUI system. Rebalances : I did some rebalancing of the game. Towers generally cost different amounts of coins now and do different amounts of damage. I’ll probably have to do it again by the end of the project but this will do for now. Music : I am in the process of adding music. I am getting them from https://opengameart.org and crediting all publishers. I have a system where it will queue music files from a playlist and play those in sequence. They are pretty long files, but just in case. I’m probably forgetting some stuff (last time I touched this was like a week ago), but those are the major things."}, {"post_id": 72935, "ts": "2026-09-24T02:19:28Z", "hours": 5.8756, "text": "I am very glad stardance got extended! This definitely eases the pressure A LOT . Bit of a shorter devlog so as to not accidentally pass the 10h deadline. Here are the updates: Venom shooter : The venom shooter is a plant that shoots venom. It will poison the enemy. I did this through another effect. The recording doesn’t show it’s full potential, because I kind of force pushed to the repository and now I lost the change, but I have it on another computer. Essentuially, the damage over time is going to increase with the update instead of staying static and linked to the effect. More tiles! : I added the stone path tiles. They still need a little bit of work, as some areas don’t fully connect. The nice thing about working with stone sprites is that the textures connect pretty well regardless, but it’s still something I need to fix. New Map : I added a new map, Frontier. This one is just a somewhat harder version of Ground Zero, mostly to test out if the map selector and the new tiles actually worked. The map selector just had to be tweaked to refresh the UI when a new button is clicked, which is only one line, but otherwise everything went smoothly. Ghost : I added a new enemy, the Ghost. The ghost looks like a tortured soul, and at the moment he hasn’t received proper stats, so he’s just a clone of the slime. I want to make it somewhere in between the slime and fast slime. It uses a lot more frames than the other enemies to make it somewhat smooth. Ok chat I think we got this in the bag im tryna get that bambu a1 3d printer frfr i think i can get it now that the deadline has been increased tysm stardance devs!!!!"}, {"post_id": 71575, "ts": "2026-09-21T02:32:58Z", "hours": 7.1853, "text": "Ok, so a lot of progress, though it has been slow because the school year has genuinely driven a train through my productivity: Upgrades : This is the most recent thing, but basically I added upgrades. This is handled by using a list of values instead of single values when creating a new subclass of a Tower class. I track an upgrade index and increase it to change the index and some other stuff. I made some icons and added it to the tower selected menu. I will show the coins cost of the upgrade next, because I forgot to do that. I also made new sprites for the upgrades, and a complete resprite for the cannon, which badly needed it. I also remade the tower base, which looks much better now. Speed setting : I added a speed setting. This was a matter of tracking a delta time multiplier, and then multiplying it with everything that uses delta time. Remember that delta time is the amount of time between frames. It lets the developer do things like move an enemy at a movement speed independent of the frame rate, because the movement is split between the delta time. Frostspire : I added a new Frostspire tower. This is a tower that shoots icicles at enemies and makes them slower. To do the slower part, I made an effect system that gets appended to an array in the enemy. Effects have an overlay color, and will have several attributes that are applied to the enemy if it has them. As of right now, there is just a movement speed multiplier. I want to add a final venom tower that damages enemies over time, and that should be pretty easy. Tank slime : I added a tank slime, which is supposed to be the final boss of the Ground Zero map. I’m not sure if I have the inspiration to make more enemies other than slimes, or the drawing skills. Essentially it’s just a much bigger slime (takes up the whole width of the path) and green, and slower, and has a lot of health. I have to take the time to balance everything though, because 2 of the basic crossbows can kill it as of right now."}, {"post_id": 68312, "ts": "2026-09-14T22:14:49Z", "hours": 6.0117, "text": "I did this devlog mostly because I wanted to get a screenshot of (hopefully) six seven hours , but there has been some progress, even if it’s slow because now I have other things to do . Map Selector : I implemented a map selector, which will come in useful later on when I add more maps. I also want to do a little thing where every map is its own globe that kind of shows the outline of the map. I think it’ll look cool. Wave Control : I changed the wave logic to make it be controlled by the player. I was inspired by Bloons TD 6, and I think this makes it much better. Now, the player has as much time as they need to prepare for the next wave, or if they are feeling good they can just call in multiple waves and get it over with. Game Icon : I made a game icon, a shield with a golden cross and ruby in the center. I made it be the icon for the window, and it will be the icon for the .exe file when it’s time to ship. Canon : I added a cannon turret. It’s still kind of buggy, but the idea is that it will leave an explosion and that will also be the AoE so it can shoot multiple enemies, kind of like for crowd control. Generally, I really need to spend some time balancing the game, but I think that will come at a later time."}, {"post_id": 65687, "ts": "2026-09-11T00:36:05Z", "hours": 7.2467, "text": "I’ve kind of gotten into a slump, mostly because of school, but I think I’m back on track to finish this by the 30th of this month. Though I gotta say, it’s genuinely been slog to work on this now. I think I’m burning out Anyway, for the updates: Turret anti-aliasing : To fix the issue of turrets looking terribly when rotating, I used a new function that zooms and rotates the sprite, but also applies anti-aliasing. I can set the zoom scale to 1 and it will rotate the sprite but also anti-alias it. The jaggedness seen in other demos was because the actual map is rended in very low resolution (360x240) and then scaled up. GUI Makeover : I have given another makeover to the GUI. Now, most of it in the main game is a sleek semi-transparent black surface. I did this mostly because I couldn’t settle on a particular theme, and I didn’t know how to go about drawing such large sprites while still looking good. Waves : I finally got around to adding waves. They are a little buggy, but I ended up making a dictionary structure for the maps and put them in one big dictionary. This way, I can define which enemies spawn in which order, the interval between waves, etc. Enemies and turrets are also in their own dictionaries. Health : I added the health mechanic! It will now check if the health is equal or below 0 and send the user to a game over screen. Those screens will eventually get improved. Menus : I added a main menu, mostly because I had people trying the game, and it had to happen at some point. As of right now I am working on a map selector that harnesses that maps dictionary from earlier. (I did the devlog now because I was afraid of getting to 10h ) More menus and turrets : I added a ballista tower, which is slower but has higher range. I still have to balance it some more, and make a bolt projectile, and also probably make the tower control the damage instead of the arrow. That way I can subtract health from the enemy directly, which would fix an annoying bug where the turret shoots but the bullet doesn’t collide with the enemy, so it just stays there until it collides with another enemy. There is also another slime (the red slime) which is faster. This is to force the player to have at least 2 turrets."}, {"post_id": 63381, "ts": "2026-09-07T05:26:00Z", "hours": 6.885, "text": "Quite a bit of progress! Pixel art revamp : The pixel art has generally improved massively. I actually took the time to get some inspiration from Google and worked on the tileset. It now includes a lake and also generally just looks better, with borders around the paths. It did take a lot of time, though. I also implemented animations for this, for the slime, and perhaps for the crossbow too. I also made a little card container for the top 2 stats. Waves : I added waves! It’s now technically a fully playable tower defense game, I guess. As of right now it’s going to crash as soon as it gets farther than Wave 3 because I don’t have anything to do after it, but soon I will add another scene for that."}, {"post_id": 61219, "ts": "2026-09-04T01:33:38Z", "hours": 7.2719, "text": "Lots of progress again! This one was slightly more in the background, as I started a little bit of housekeeping: Transition from Rects to FRects : FRects are the same thing as normal Rects, except that they allow for floats. This didn’t really have an impact on the game other than making it easier to work with vectors for positioning, as they also use floats. UI Changes : I changed the positioning aspect of the UI. I recreated the Rect placement system of pygame, where you can select a point (eg. top left, center, midbottom, etc.) to use to position the rect. This is very flexible, and I copied it. Now, I can do things like place text with much more ease. I also changed the colors of the UI to make it darker and overall nicer. I made it so that the user had to select a turret and then go to a menu to see the cost and other attributes of it, which will be better for the future. Coins : I added coins, which will be the temporary currency when inside the game. This will be used to buy towers and such. Outside the main game, I am planning to create another one that is used to buy skills and stuff, just to make it more realistic."}, {"post_id": 57916, "ts": "2026-08-30T07:51:39Z", "hours": 7.0772, "text": "It took a while, but there have been some pretty big improvements. Transition to 1440x960px : I eventually found that being limited to 360x240 was going to be very limiting, specially with text because at low resolutions it looked like a jumbled mess. Thus I embarked on a pretty hard journey (not hard in retrospect) to figure out how to change the resolution but also keep the pixelated style without having to draw sprites at 4 times the resolution. The solution I ended up finding was to store a scale factor of 4 (360x4=1440, 240x4=960), and then scaling a separate surface to that resolution. Now, a surface is created with the same dimensions as the map, and everything is drawn to that surface instead of the map (I used to draw enemies, turrets, bullets, etc. onto the map because they moved together), and then that surface gets scaled. This allows me to keep the pixelated graphics on the actual game, and have crisp text on the GUI. For the offsets, I just moved the function that translated the screen coordinates to map ones from the map to the scene, and then adjusted it to take in the scale factor. Everything else works pretty much the same, as its only the image and mouse clicks getting scaled instead of rectangles. I scaled the button sprites to 32x32 to make them easier to draw, and then I have it in the config to scale them to 64x64. I decided to do that mostly for ease, because most of the other sprites are around that resolution anyway. Turret placement : I added more buttons to the GUI and added turret placement. The GUI itself is always going to be kind of janky. I moved it into its own class so as to sort of clean up the code in the main scene, but now the GUI manager does weird things like self.scene.game.screen.width which isn’t very pretty. It’ll do, though. I track a variable storing the turret to be placed (None if it’s not in that state) and a variable that stores whether it can be placed. I check for collisions between the path tiles (I knew it would be useful!) and the sprite to check if it can be placed. I also modified the draw function of the turret to make it red or green depending on it. GUI : Generally, for the GUI, I keep a state from an Enum (basically a fancy way of storing a string for a state), and then change the UI according to that state. I designed it in a way where it only rebuilds it on command, so it won’t rebuild the whole thing every frame, in hopes to save some sort of performance. Overall, some very good progress, even if it’s not 100% visible!"}, {"post_id": 56469, "ts": "2026-08-28T07:48:03Z", "hours": 6.7975, "text": "I decided to just write the GUI from scratch. This is kind of uncharted territory for me. I tried using pygame_gui but it felt really restrictive and the use of a json file for customization is absurd to me. I made a basic element abstract class so that all elements must have an update and draw method. I then made a button class and a container class. All elements have an ID, and when a button is clicked it sends out a pygame event, which is a feature I did like from pygame_gui. I think I will end up eventually making an UI manager class, as handling the state within the scene is getting clunky and weird."}, {"post_id": 54261, "ts": "2026-08-25T04:49:22Z", "hours": 6.2936, "text": "I’ve probably progressed more in these ~6.25 hours than the rest of the project combined. Fixed the map dragging boundary checks. This was just a matter of separating the if statement into one for each axis. Now, even if the map won’t move on the y-axis, it can move on the x-axis, for example. I added an enemy. This was also pretty simple. They take in a path instead of a position, and their initial position is just the first index of the path (the path is a list of coordinates that they walk to). Vector math made this much easier, as I could just subtract the current position of the enemy from the target, and multiply it with movement speed to move it. The enemy is actually a parent class, and the specific slime in the video is a very simple subclass of it that just has some stats. Default enemy behavior is handled in that parent class. I made a customizable health bar class. The cool part about it is that it uses linear interpolation to change its color as the health changes relative to the maximum. I made a ballistic projectile parent class and an arrow subclass. It takes a position and a target, as well as other stats, and uses vector math to move to the target. When it hits an enemy it takes health from the enemy and then ceases to exist. There is a turret class and a crossbow. The turret takes a projectile class (the crossbow takes the arrow, for example). It will make a new instance of the projectile when shooting. It has a circle for a range of effect, and it will point to and shoot at enemies within the circle. The r key will toggle between drawing the areas and not. Quite a lot of progress!"}, {"post_id": 53480, "ts": "2026-08-24T01:35:31Z", "hours": 7.2239, "text": "I decided to give up on the isometry because I wasn’t really getting anything done. I have gone back to using a 2d map instead.| The map is made with the Tiled Map Editor ( https://thorbjorn.itch.io/tiled ) and saved as a JSON file. Tiled is good for visually building maps but a pain to work with. I’d much rather write a map editor from scratch, genuinely. I might do it at some point, honestly. The map is actually split up into 3 layers: the ground, where turrets can be placed; the path tiles, where enemies will walk; and the path polygon, which is a line that the enemies will follow. This allows me to have separate path and ground groups which will simplify turret-path collisions later. In theory, I will be able to make the enemies follow the polygon, too. I had to write a whole function just to parse the map JSON files. It organizes the layers into a dictionary of keys and 2-dimensional Numpy arrays. For the path polygon, it converts it from a list of dicts to tuples. It also removes any other inconsistencies with the original file and only keeps the important stuff. I made the map bigger than the screen itself so that it is draggable. The checks for boundaries are kind of buggy but it’ll do for now. This was just a matter of keeping a variable to track if the map is being dragged, keeping an offset, checking for boundaries, and checking for mouse movements. I know this was kind of a setback, but real progress can be made now!"}, {"post_id": 44368, "ts": "2026-08-10T02:37:52Z", "hours": 5.3789, "text": "Turns out, rendering isometric grids is pretty hard! I followed a tutorial by DaFluffyPotato on isometric rendering which let me understand the drawing part, but there are going to be some issues with the grid system in the future. I had an issue in which the grid wouldn’t draw half of itself, and it was because it was drawing everything to the right of the top tile outside it. I got it to work by multiplying the grid width by 2 and then adding an offset, but it’s kind of a band-aid and I want to research more into how to actually solve it. I did actually draw the sprites myself, though, and I have a grass block that looks really nice but that’ll be for later."}, {"post_id": 43389, "ts": "2026-08-08T16:28:30Z", "hours": 6.8456, "text": "I’ve been working for a while, mostly on backwards-facing stuff about the general project structure: A basic game class is used for the actual game instance, letting me manage variables and such and then pass them around. A scene manager class manages different screens in the game. Abstract methods are used to make sure scenes will always handle events, update, and render by making sure the methods are always implemented. Each scene is a class object with several methods. A config manager takes in a bunch of dataclasses and allows accessing the config like globals. Tests check to make sure that an error is raised if a wrong key is accessed, and other stuff. Player ships all inherit from one overall base ship class, and so do turret from their base turret class. Turrets have an attachment point and player ships have points to attach to. Both sprites are joined at the points so as to create a mounting system in which the same ship can use different turret configurations. The next thing to work on is to allow the turret to rotate as if it was on top of the ship, and to handle ship movement, having it rotate to face where it is moving. The following image is actually 2 different sprites: the turret (green) and the ship (below). It draws them by blitting the turret on top of the ship sprite. I have decided to change the theme of the project. The vast majority of the time in this devlog was the background, and luckily I didn’t have much progress on the actual game part. It will now be a tower defense game."}]...
|
Title: City Defenders TD by @nautrw | Stardance
D Title: City Defenders TD by @nautrw | Stardance
Devlogs:
I’ve been working for a while, mostly on backwards-facing stuff about the general project structure: A basic game class is used for the actual game instance, letting me manage variables and such and then pass them around. A scene manager class manages different screens in the game. Abstract methods are used to make sure scenes will always handle events, update, and render by making sure the methods are always implemented. Each scene is a class object with several methods. A config manager takes in a bunch of dataclasses and allows accessing the config like globals. Tests check to make sure that an error is raised if a wrong key is accessed, and other stuff. Player ships all inherit from one overall base ship class, and so do turret from their base turret class. Turrets have an attachment point and player ships have points to attach to. Both sprites are joined at the points so as to create a mounting system in which the same ship can use different turret configurations. The next thing to work on is to allow the turret to rotate as if it was on top of the ship, and to handle ship movement, having it rotate to face where it is moving. The following image is actually 2 different sprites: the turret (green) and the ship (below). It draws them by blitting the turret on top of the ship sprite. I have decided to change the theme of the project. The vast majority of the time in this devlog was the background, and luckily I didn’t have much progress on the actual game part. It will now be a tower defense game.
Turns out, rendering isometric grids is pretty hard! I followed a tutorial by DaFluffyPotato on isometric rendering which let me understand the drawing part, but there are going to be some issues with the grid system in the future. I had an issue in which the grid wouldn’t draw half of itself, and it was because it was drawing everything to the right of the top tile outside it. I got it to work by multiplying the grid width by 2 and then adding an offset, but it’s kind of a band-aid and I want to research more into how to actually solve it. I did actually draw the sprites myself, though, and I have a grass block that looks really nice but that’ll be for later.
I decided to give up on the isometry because I wasn’t really getting anything done. I have gone back to using a 2d map instead.| The map is made with the Tiled Map Editor ( https://thorbjorn.itch.io/tiled ) and saved as a JSON file. Tiled is good for visually building maps but a pain to work with. I’d much rather write a map editor from scratch, genuinely. I might do it at some point, honestly. The map is actually split up into 3 layers: the ground, where turrets can be placed; the path tiles, where enemies will walk; and the path polygon, which is a line that the enemies will follow. This allows me to have separate path and ground groups which will simplify turret-path collisions later. In theory, I will be able to make the enemies follow the polygon, too. I had to write a whole function just to parse the map JSON files. It organizes the layers into a dictionary of keys and 2-dimensional Numpy arrays. For the path polygon, it converts it from a list of dicts to tuples. It also removes any other inconsistencies with the original file and only keeps the important stuff. I made the map bigger than the screen itself so that it is draggable. The checks for boundaries are kind of buggy but it’ll do for now. This was just a matter of keeping a variable to track if the map is being dragged, keeping an offset, checking for boundaries, and checking for mouse movements. I know this was kind of a setback, but real progress can be made now!
I’ve probably progressed more in these ~6.25 hours than the rest of the project combined. Fixed the map dragging boundary checks. This was just a matter of separating the if statement into one for each axis. Now, even if the map won’t move on the y-axis, it can move on the x-axis, for example. I added an enemy. This was also pretty simple. They take in a path instead of a position, and their initial position is just the first index of the path (the path is a list of coordinates that they walk to). Vector math made this much easier, as I could just subtract the current position of the enemy from the target, and multiply it with movement speed to move it. The enemy is actually a parent class, and the specific slime in the video is a very simple subclass of it that just has some stats. Default enemy behavior is handled in that parent class. I made a customizable health bar class. The cool part about it is that it uses linear interpolation to change its color as the health changes relative to the maximum. I made a ballistic projectile parent class and an arrow subclass. It takes a position and a target, as well as other stats, and uses vector math to move to the target. When it hits an enemy it takes health from the enemy and then ceases to exist. There is a turret class and a crossbow. The turret takes a projectile class (the crossbow takes the arrow, for example). It will make a new instance of the projectile when shooting. It has a circle for a range of effect, and it will point to and shoot at enemies within the circle. The r key will toggle between drawing the areas and not. Quite a lot of progress!
I decided to just write the GUI from scratch. This is kind of uncharted territory for me. I tried using pygame_gui but it felt really restrictive and the use of a json file for customization is absurd to me. I made a basic element abstract class so that all elements must have an update and draw method. I then made a button class and a container class. All elements have an ID, and when a button is clicked it sends out a pygame event, which is a feature I did like from pygame_gui. I think I will end up eventually making an UI manager class, as handling the state within the scene is getting clunky and weird.
It took a while, but there have been some pretty big improvements. Transition to 1440x960px : I eventually found that being limited to 360x240 was going to be very limiting, specially with text because at low resolutions it looked like a jumbled mess. Thus I embarked on a pretty hard journey (not hard in retrospect) to figure out how to change the resolution but also keep the pixelated style without having to draw sprites at 4 times the resolution. The solution I ended up finding was to store a scale factor of 4 (360x4=1440, 240x4=960), and then scaling a separate surface to that resolution. Now, a surface is created with the same dimensions as the map, and everything is drawn to that surface instead of the map (I used to draw enemies, turrets, bullets, etc. onto the map because they moved together), and then that surface gets scaled. This allows me to keep the pixelated graphics on the actual game, and have crisp text on the GUI. For the offsets, I just moved the function that translated the screen coordinates to map ones from the map to the scene, and then adjusted it to take in the scale factor. Everything else works pretty much the same, as its only the image and mouse clicks getting scaled instead of rectangles. I scaled the button sprites to 32x32 to make them easier to draw, and then I have it in the config to scale them to 64x64. I decided to do that mostly for ease, because most of the other sprites are around that resolution anyway. Turret placement : I added more buttons to the GUI and added turret placement. The GUI itself is always going to be kind of janky. I moved it into its own class so as to sort of clean up the code in the main scene, but now the GUI manager does weird things like self.scene.game.screen.width which isn’t very pretty. It’ll do, though. I track a variable storing the turret to be placed (None if it’s not in that state) and a variable that stores whether it can be placed. I check for collisions between the path tiles (I knew it would be useful!) and the sprite to check if it can be placed. I also modified the draw function of the turret to make it red or green depending on it. GUI : Generally, for the GUI, I keep a state from an Enum (basically a fancy way of storing a string for a state), and then change the UI according to that state. I designed it in a way where it only rebuilds it on command, so it won’t rebuild the whole thing every frame, in hopes to save some sort of performance. Overall, some very good progress, even if it’s not 100% visible!
Lots of progress again! This one was slightly more in the background, as I started a little bit of housekeeping: Transition from Rects to FRects : FRects are the same thing as normal Rects, except that they allow for floats. This didn’t really have an impact on the game other than making it easier to work with vectors for positioning, as they also use floats. UI Changes : I changed the positioning aspect of the UI. I recreated the Rect placement system of pygame, where you can select a point (eg. top left, center, midbottom, etc.) to use to position the rect. This is very flexible, and I copied it. Now, I can do things like place text with much more ease. I also changed the colors of the UI to make it darker and overall nicer. I made it so that the user had to select a turret and then go to a menu to see the cost and other attributes of it, which will be better for the future. Coins : I added coins, which will be the temporary currency when inside the game. This will be used to buy towers and such. Outside the main game, I am planning to create another one that is used to buy skills and stuff, just to make it more realistic.
Quite a bit of progress! Pixel art revamp : The pixel art has generally improved massively. I actually took the time to get some inspiration from Google and worked on the tileset. It now includes a lake and also generally just looks better, with borders around the paths. It did take a lot of time, though. I also implemented animations for this, for the slime, and perhaps for the crossbow too. I also made a little card container for the top 2 stats. Waves : I added waves! It’s now technically a fully playable tower defense game, I guess. As of right now it’s going to crash as soon as it gets farther than Wave 3 because I don’t have anything to do after it, but soon I will add another scene for that.
I’ve kind of gotten into a slump, mostly because of school, but I think I’m back on track to finish this by the 30th of this month. Though I gotta say, it’s genuinely been slog to work on this now. I think I’m burning out Anyway, for the updates: Turret anti-aliasing : To fix the issue of turrets looking terribly when rotating, I used a new function that zooms and rotates the sprite, but also applies anti-aliasing. I can set the zoom scale to 1 and it will rotate the sprite but also anti-alias it. The jaggedness seen in other demos was because the actual map is rended in very low resolution (360x240) and then scaled up. GUI Makeover : I have given another makeover to the GUI. Now, most of it in the main game is a sleek semi-transparent black surface. I did this mostly because I couldn’t settle on a particular theme, and I didn’t know how to go about drawing such large sprites while still looking good. Waves : I finally got around to adding waves. They are a little buggy, but I ended up making a dictionary structure for the maps and put them in one big dictionary. This way, I can define which enemies spawn in which order, the interval between waves, etc. Enemies and turrets are also in their own dictionaries. Health : I added the health mechanic! It will now check if the health is equal or below 0 and send the user to a game over screen. Those screens will eventually get improved. Menus : I added a main menu, mostly because I had people trying the game, and it had to happen at some point. As of right now I am working on a map selector that harnesses that maps dictionary from earlier. (I did the devlog now because I was afraid of getting to 10h ) More menus and turrets : I added a ballista tower, which is slower but has higher range. I still have to balance it some more, and make a bolt projectile, and also probably make the tower control the damage instead of the arrow. That way I can subtract health from the enemy directly, which would fix an annoying bug where the turret shoots but the bullet doesn’t collide with the enemy, so it just stays there until it collides with another enemy. There is also another slime (the red slime) which is faster. This is to force the player to have at least 2 turrets.
I did this devlog mostly because I wanted to get a screenshot of (hopefully) six seven hours , but there has been some progress, even if it’s slow because now I have other things to do . Map Selector : I implemented a map selector, which will come in useful later on when I add more maps. I also want to do a little thing where every map is its own globe that kind of shows the outline of the map. I think it’ll look cool. Wave Control : I changed the wave logic to make it be controlled by the player. I was inspired by Bloons TD 6, and I think this makes it much better. Now, the player has as much time as they need to prepare for the next wave, or if they are feeling good they can just call in multiple waves and get it over with. Game Icon : I made a game icon, a shield with a golden cross and ruby in the center. I made it be the icon for the window, and it will be the icon for the .exe file when it’s time to ship. Canon : I added a cannon turret. It’s still kind of buggy, but the idea is that it will leave an explosion and that will also be the AoE so it can shoot multiple enemies, kind of like for crowd control. Generally, I really need to spend some time balancing the game, but I think that will come at a later time.
Ok, so a lot of progress, though it has been slow because the school year has genuinely driven a train through my productivity: Upgrades : This is the most recent thing, but basically I added upgrades. This is handled by using a list of values instead of single values when creating a new subclass of a Tower class. I track an upgrade index and increase it to change the index and some other stuff. I made some icons and added it to the tower selected menu. I will show the coins cost of the upgrade next, because I forgot to do that. I also made new sprites for the upgrades, and a complete resprite for the cannon, which badly needed it. I also remade the tower base, which looks much better now. Speed setting : I added a speed setting. This was a matter of tracking a delta time multiplier, and then multiplying it with everything that uses delta time. Remember that delta time is the amount of time between frames. It lets the developer do things like move an enemy at a movement speed independent of the frame rate, because the movement is split between the delta time. Frostspire : I added a new Frostspire tower. This is a tower that shoots icicles at enemies and makes them slower. To do the slower part, I made an effect system that gets appended to an array in the enemy. Effects have an overlay color, and will have several attributes that are applied to the enemy if it has them. As of right now, there is just a movement speed multiplier. I want to add a final venom tower that damages enemies over time, and that should be pretty easy. Tank slime : I added a tank slime, which is supposed to be the final boss of the Ground Zero map. I’m not sure if I have the inspiration to make more enemies other than slimes, or the drawing skills. Essentially it’s just a much bigger slime (takes up the whole width of the path) and green, and slower, and has a lot of health. I have to take the time to balance everything though, because 2 of the basic crossbows can kill it as of right now.
I am very glad stardance got extended! This definitely eases the pressure A LOT . Bit of a shorter devlog so as to not accidentally pass the 10h deadline. Here are the updates: Venom shooter : The venom shooter is a plant that shoots venom. It will poison the enemy. I did this through another effect. The recording doesn’t show it’s full potential, because I kind of force pushed to the repository and now I lost the change, but I have it on another computer. Essentuially, the damage over time is going to increase with the update instead of staying static and linked to the effect. More tiles! : I added the stone path tiles. They still need a little bit of work, as some areas don’t fully connect. The nice thing about working with stone sprites is that the textures connect pretty well regardless, but it’s still something I need to fix. New Map : I added a new map, Frontier. This one is just a somewhat harder version of Ground Zero, mostly to test out if the map selector and the new tiles actually worked. The map selector just had to be tweaked to refresh the UI when a new button is clicked, which is only one line, but otherwise everything went smoothly. Ghost : I added a new enemy, the Ghost. The ghost looks like a tortured soul, and at the moment he hasn’t received proper stats, so he’s just a clone of the slime. I want to make it somewhere in between the slime and fast slime. It uses a lot more frames than the other enemies to make it somewhat smooth. Ok chat I think we got this in the bag im tryna get that bambu a1 3d printer frfr i think i can get it now that the deadline has been increased tysm stardance devs!!!!
Progress has been (very) slow but there’s some more new content: Crabs & Bat : I added crab enemies. There is a normal crab that is like a slime and then an armored crab (not shown in video) that is bigger and meant to be a boss. There is also a bat enemy. Pause Menu : Theere is a pause menu now. It allows the user to retry the map or go back to the main menu. I am finally making use of the other features of the scene manager. It’s a different scene but it’s rendered on top of the main game scene. I had to modify the scene manager to draw each scene on top of the last one in the stack. Otherwise, this is just the same usage of my GUI system. Rebalances : I did some rebalancing of the game. Towers generally cost different amounts of coins now and do different amounts of damage. I’ll probably have to do it again by the end of the project but this will do for now. Music : I am in the process of adding music. I am getting them from https://opengameart.org and crediting all publishers. I have a system where it will queue music files from a playlist and play those in sequence. They are pretty long files, but just in case. I’m probably forgetting some stuff (last time I touched this was like a week ago), but those are the major things.
A little bit faster progress now. Tower Shop : I have started work on a tower shop. I want it to be from the POV of the player looking into a medieval stall. As of right now, I’m still working on drawing it, and also it’s still hidden and non-functional. I edited all the towers to have a requirement of another tower, so as to make it a progression later on, Data Saving : I am going to start implementing a save system. For this, I just put some values into a data class and then implemented a way to save it to and load it from JSON. Molten Lands : There is a new map now, the molten lands. I also made a lava slime which is a bit stronger than the other enemies except for the bosses. It took a while to draw the sandy tiles for it, but I feel as though I’ve gotten much better at drawing than before. Logging : I added logging. This probably should’ve been added earlier, but this will help tremendously to fix any bugs in the code. For now, I am logging pretty much everything that doesn’t happen every frame, like when an enemy dies or the user clicks on a button.
I’ve started work on a tower shop. I spent several hours drawing the background, but I think it came out looking really good. It only took so much time, which is why I’m making the log now. I also used a template human model for the merchant. I am going to show the different upgrades on the menu. I haven’t added the buy functionality yet, but that will probably be pretty easy. I got some chill guitar music from opengameart.
I’ve been working on 2 major things that look small but are actually pretty big: Currency buttons : I’ve had to do some major revamps to several parts of the GUI system, but now I have buttons that show the currency. I am now using these for the upgrades, buy towers, and the new tower shop with the shards. I am now allowing for icon elements to be passed into the Button class. This allows for custom positioning, and thus this new way of buttons. Then I had to change the way that elements refreshed in the GUI managers. It took a while to figure out, but now they will be red if there isn’t enough currency. Main menu background : Art is incredibly time-consuming for me, and I keep scrapping designs but I think this one is the one and the one I’ll stick with for the finished thing.
I’ve been kind of behind again, but I think I’ve made some cool stuff. Tower shop is now an official mechanic. I just remembered I need to set the default shards back to 0, but it’s fully working now. Main menu : I ended up setting the background of it to a stone wall, which to be honest is just taken from the tower shop background. I was wasting too much time on drawing. Map selector music : I finally got some music for the map selector. It’s some public domain guitar music like the tower shop, but different. I think it sounds pretty nice. Victory & defeat scene revamp : I revamped the victory and defeat scenes. Now, they show a banner in the center of the screen and the amount of shards the player receives. A defeat will get 1/2 of the shards reward, to allow them to actually improve. 3x speed setting : While waiting for the enemies to get to the end so I could test the defeated scene, I got tired and decided to add a new 3x speed button. I ended up refactoring the whole thing but now the code is much cleaner.
There’s been a lot of progress, I think. The game is pretty much done at this point. What’s left is just to balance the game. Renamed Ground Zero to Magic Forest : Magic Forest sounds like a much cooler name that fits the theme of the game, so I just renamed it. Data Saving : I finally got around to saving the data when closing. I just made a function that closed the game and then saved the data, and then any pathway that exits the game just calls that function. Save and quit : I added a save and quit feature to the pause menu. I am now tracking a state inside the pause menu GUI manager. There is first a save and quit option, and then that leads to a second menu that warns the player and asks them to confirm their choice. There is also an X button in the main menu that straight up quotes the game, too. Archipelago : I made a new map, the Archipelago. This follows a thin strip of land on which the enemies walk. I actually had to rework how the map system worked, adding an option to draw the ground on top or below the blocked layer. I also had to add an extra check on the logic for determining if a player can place a tower. Flamethrower : I added a new flamethrower tower. As of right now, it has the same stats as the cannon. I am going to be balancing the whole thing soon. This is going to be the final tower I think.
Ok, so I actually lied when I said the game was done. I still have a lot of balancing to do, and with this have come some other major changes. Particle System : I added a particle system (unfortunately they go very fast and I wasn’t able to capture it). This was originally because the effect overlay colors looked really bad. Now, particles with rise up from the enemy with an effect and then fade out over time. I then figured out that I could actually make the overlay color draw correctly by using the RGBA multiplication blending method. It still looks way cooler now. Balancing : Many towers have been nerfed, especially the cannon. I am fortunate to have people that can playtest my game. It’s definitely gotten much harder. I’m still working on it, though. The point now is that the balancing of the towers and when the player unlocks them has lead me to the mechanic of unlocking one tower per map. Thus, I have created 3 more maps because there are 7 towers in total. I might have to make a final one for the flamethrower to be used. I’ve spent A LOT of time balancing since last devlog, and I think it shows lol.
I added a credit scene, and now the project has got to be most definitely ready to ship I need them stardust 😭
As requested by some playtesters I quickly added an instructions page with the basic controls of the game. It’s not great but hopefully it works. I’ve also been fiddling a lot trying to get the installation commands working and trying the executables on several virtual machines. The game is done and I’m going to ship!
Ships:
I made City Defenders TD (ironically named since there aren’t any cities). This is a medieval and fantasy-inspired tower defense game built entirely with Pygame-CE. I drew every single sprite manually using Aseprite and implemented my very own custom GUI system from scratch. There are several maps and several towers to unlock by progressing through the game. I hope you enjoy this project as much as I enjoyed making it....
|
1793324959.1924465
|
1793411359.1924465
|
|
45338
|
ESP32 MP3 Player by @tanvu | Stardance
|
tanvu
|
1
|
62.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-14T23:20:39Z", "hours": 62.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made an ESP32 MP3 player on breadboard, complete with a file system and a multi-function playback controller. I went into this project essentially from zero - I had never used an ESP32 and had barely any experience with hobbyist electronics. I wasn’t even aware of the concept of debounce was until I naturally encountered button/encoder jitters in testing. What I’m most proud of is the journey from getting blinky on ESP32 just a few days before starting this project to having a complete embedded system.", "repo": "https://github.com/tanvu29/esp-mp3-player", "demo": ""}]...
|
[{"post_id": 57107, "ts": "202 [{"post_id": 57107, "ts": "2026-08-29T06:34:26Z", "hours": 4.5472, "text": "Final devlog! The main program came together pretty quick since I went through the gauntlet of writing classes for each major component. Quick summary of the MP3 player: Load up a microSD with songs/albums in MP3 format. Then navigate the file browser using the rotary encoder to scroll through and button to select. You can play/pause, skip to next song, and toggle between playback and browser mode at any time. I would love to continue improving this, like right now the ESP32 has trouble registering double button clicks if it’s also streaming audio at the same time. That’s why you see me pause songs before double clicking in the video LOL. Unfortunately with school starting soon I decided to wrap it up here. Still super proud of how far I’ve come considering I was only getting blinky on ESP32 one month ago. This is also meant to be a breadboard proof of concept for a larger PCB project I’ll be tackling, and I’m definitely glad I learned some lessons here and not while working on the PCB. I doubt finishing the PCB is in scope with a month left of stardance but stay tuned haha"}, {"post_id": 55329, "ts": "2026-08-27T02:18:26Z", "hours": 10.1339, "text": "File system stress tested When you start debugging you realize writing code was only half the battle"}, {"post_id": 54335, "ts": "2026-08-25T09:12:14Z", "hours": 3.8667, "text": "Day 9 - File system class written 700+ lines of code between the header and source files :o Once the final version of this class is tested, all classes will have been written and ready to be integrated into the final program. In the home stretch!"}, {"post_id": 54265, "ts": "2026-08-25T04:54:24Z", "hours": 10.0006, "text": "File system in progress Approaching 10 hrs so had to devlog lol Will be back once file system is finished"}, {"post_id": 52710, "ts": "2026-08-23T00:45:57Z", "hours": 11.8506, "text": "Day 8 - writing a proper class start to finish Display class for the LCD is now complete, ready to be integrated with rest of program. Learnings: Use C strings over String objects to avoid heap fragmentation Use structs when you want to store different kinds of information about a state Consider what the class needs to know about the program, but also what it doesn’t need to know"}, {"post_id": 51146, "ts": "2026-08-20T17:18:32Z", "hours": 4.4336, "text": "Day 7 - debugging, oop, state machines The only new functionality added today was updating my button state machine for double click and long press detection. Intended behavior: While a song is playing, double click to play the next song or long press to return to the file navigator / song selector. Demo test in video The more interesting part to me was getting experience with two real big potato things: debugging & oop in c++. I got a taste of debugging low-level errors using toolchains. In this case it was the Xtensa addr2line tool used to convert ESP32 memory address logs into the exact file and line number involved in the error. Shoutout RoboService on youtube with 10 subscribers for making a banger tutorial. I also kinda went headfirst into c++ classes. My main arduino ide sketch was getting long enough to the point where partitioning it into classes became the smart move. I got the hang of it faster than expected. The new part is learning c++ specific syntax, but the fundamental concepts are the same across all oop languages."}, {"post_id": 50137, "ts": "2026-08-19T07:22:05Z", "hours": 5.3003, "text": "Day 6 - song progress timer complete with the help of codex Didn’t realize how complicated calculating song duration from an MP3 would be. You would think duration is stored in metadata but you actually need to do some reverse engineering & check for a bunch of different compression formats yada yada Anyways now a basic timer is working. Also replaced the headphone jack with speakers like the engineers of the MAX98357 amp modules intended. Still lots more to implement like file navigation and song selection"}, {"post_id": 49358, "ts": "2026-08-18T04:15:32Z", "hours": 3.0836, "text": "Day 5 - hello world LCD display I2C protocol learnings: SDA and SCL lines are held HIGH by external pull-up resistors. Connecting to GPIO pins with internal pull-down resistors will interfere with the pull-ups and cause a serial error. I was stuck on that for a hot minute lol Looking forward, I’ll be implementing song title/artist, timer, progress bar, and hopefully file navigation functionality"}, {"post_id": 47356, "ts": "2026-08-15T07:45:24Z", "hours": 2.2667, "text": "Day 3 & 4 - Audio is now playing! Found a library called arduino-audio-tools that conveniently abstracts the MP3 -> PCM -> I2S pipeline, so no need to reinvent the wheel. This library provides functions like setVolume(), play(), and stop(). All I had to do was integrate these functions into my rotary encoder code from Day 1, and voila there’s volume control and pause/resume. The next session will likely be debugging the static & flicker coming out of the TRRS headphone jack"}, {"post_id": 46204, "ts": "2026-08-13T08:29:49Z", "hours": 3.2169, "text": "Day 2 - Researched SD card reading on the Arduino platform. This one took waayyyy too long - once I realized the native arduino SD library doesn’t support my >32GB exFAT microSD I spent the entire day looking into and testing various libraries.. turns out it was a hardware problem. I was using custom pins for SPI instead of the standard ESP32 VSPI pins and assumed it would work the same. Guess I chose a bad pin?"}, {"post_id": 45555, "ts": "2026-08-12T03:46:31Z", "hours": 3.0333, "text": "Day 1 - Prototyped volume control, scrolling, and button press on a KY-040 rotary encoder. Button press was done with a timer based debounce, but nailing down debounce logic for volume/scrolling was more tricky… The solution I landed on was making a state transition table, which maps changes in the encoder’s quadrature signal to a physical turn, CW or CCW. In the screenshot you can see debounce in action - button press is registered 3 times but the actual output only changes once!"}]...
|
Title: ESP32 MP3 Player by @tanvu | Stardance
Dev Title: ESP32 MP3 Player by @tanvu | Stardance
Devlogs:
Day 1 - Prototyped volume control, scrolling, and button press on a KY-040 rotary encoder. Button press was done with a timer based debounce, but nailing down debounce logic for volume/scrolling was more tricky… The solution I landed on was making a state transition table, which maps changes in the encoder’s quadrature signal to a physical turn, CW or CCW. In the screenshot you can see debounce in action - button press is registered 3 times but the actual output only changes once!
Day 2 - Researched SD card reading on the Arduino platform. This one took waayyyy too long - once I realized the native arduino SD library doesn’t support my >32GB exFAT microSD I spent the entire day looking into and testing various libraries.. turns out it was a hardware problem. I was using custom pins for SPI instead of the standard ESP32 VSPI pins and assumed it would work the same. Guess I chose a bad pin?
Day 3 & 4 - Audio is now playing! Found a library called arduino-audio-tools that conveniently abstracts the MP3 -> PCM -> I2S pipeline, so no need to reinvent the wheel. This library provides functions like setVolume(), play(), and stop(). All I had to do was integrate these functions into my rotary encoder code from Day 1, and voila there’s volume control and pause/resume. The next session will likely be debugging the static & flicker coming out of the TRRS headphone jack
Day 5 - hello world LCD display I2C protocol learnings: SDA and SCL lines are held HIGH by external pull-up resistors. Connecting to GPIO pins with internal pull-down resistors will interfere with the pull-ups and cause a serial error. I was stuck on that for a hot minute lol Looking forward, I’ll be implementing song title/artist, timer, progress bar, and hopefully file navigation functionality
Day 6 - song progress timer complete with the help of codex Didn’t realize how complicated calculating song duration from an MP3 would be. You would think duration is stored in metadata but you actually need to do some reverse engineering & check for a bunch of different compression formats yada yada Anyways now a basic timer is working. Also replaced the headphone jack with speakers like the engineers of the MAX98357 amp modules intended. Still lots more to implement like file navigation and song selection
Day 7 - debugging, oop, state machines The only new functionality added today was updating my button state machine for double click and long press detection. Intended behavior: While a song is playing, double click to play the next song or long press to return to the file navigator / song selector. Demo test in video The more interesting part to me was getting experience with two real big potato things: debugging & oop in c++. I got a taste of debugging low-level errors using toolchains. In this case it was the Xtensa addr2line tool used to convert ESP32 memory address logs into the exact file and line number involved in the error. Shoutout RoboService on youtube with 10 subscribers for making a banger tutorial. I also kinda went headfirst into c++ classes. My main arduino ide sketch was getting long enough to the point where partitioning it into classes became the smart move. I got the hang of it faster than expected. The new part is learning c++ specific syntax, but the fundamental concepts are the same across all oop languages.
Day 8 - writing a proper class start to finish Display class for the LCD is now complete, ready to be integrated with rest of program. Learnings: Use C strings over String objects to avoid heap fragmentation Use structs when you want to store different kinds of information about a state Consider what the class needs to know about the program, but also what it doesn’t need to know
File system in progress Approaching 10 hrs so had to devlog lol Will be back once file system is finished
Day 9 - File system class written 700+ lines of code between the header and source files :o Once the final version of this class is tested, all classes will have been written and ready to be integrated into the final program. In the home stretch!
File system stress tested When you start debugging you realize writing code was only half the battle
Final devlog! The main program came together pretty quick since I went through the gauntlet of writing classes for each major component. Quick summary of the MP3 player: Load up a microSD with songs/albums in MP3 format. Then navigate the file browser using the rotary encoder to scroll through and button to select. You can play/pause, skip to next song, and toggle between playback and browser mode at any time. I would love to continue improving this, like right now the ESP32 has trouble registering double button clicks if it’s also streaming audio at the same time. That’s why you see me pause songs before double clicking in the video LOL. Unfortunately with school starting soon I decided to wrap it up here. Still super proud of how far I’ve come considering I was only getting blinky on ESP32 one month ago. This is also meant to be a breadboard proof of concept for a larger PCB project I’ll be tackling, and I’m definitely glad I learned some lessons here and not while working on the PCB. I doubt finishing the PCB is in scope with a month left of stardance but stay tuned haha
Ships:
I made an ESP32 MP3 player on breadboard, complete with a file system and a multi-function playback controller. I went into this project essentially from zero - I had never used an ESP32 and had barely any experience with hobbyist electronics. I wasn’t even aware of the concept of debounce was until I naturally encountered button/encoder jitters in testing. What I’m most proud of is the journey from getting blinky on ESP32 just a few days before starting this project to having a complete embedded system....
|
1793346505.8925765
|
1793432905.8925765
|
|
45351
|
WarioWare Game by @elvincheung0321 | Stardance
|
elvincheung0321
|
1
|
6.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-10T05:43:58Z", "hours": 6.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made my first ever Godot game! I had a lot of fun learning Godot and rewriting to understand the pre-given scripts which was a really good learning experience to learn from given code", "repo": "https://github.com/elvincheung0321/WarioWareGame", "demo": "https://elvincheung.itch.io/wario-game"}]...
|
[{"post_id": 44422, "ts": "202 [{"post_id": 44422, "ts": "2026-08-10T05:29:20Z", "hours": 5.5064, "text": "Done with my first game!"}]...
|
Title: WarioWare Game by @elvincheung0321 | Starda Title: WarioWare Game by @elvincheung0321 | Stardance
Devlogs:
Done with my first game!
Ships:
I made my first ever Godot game! I had a lot of fun learning Godot and rewriting to understand the pre-given scripts which was a really good learning experience to learn from given code...
|
1792878633.5482326
|
1793742633.5482326
|
|
45366
|
Earth by @AkshatBansal | Stardance
|
|
1
|
2.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-09T03:32:00Z", "hours": 2.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "This website is just a simulation of moon and earth revolving around each other and the Sun.", "repo": "https://github.com/akshatbansaltech/Earth", "demo": "https://akshatbansaltech.github.io/Earth/"}]...
|
[{"post_id": 43703, "ts": "202 [{"post_id": 43703, "ts": "2026-08-09T03:30:38Z", "hours": 1.175, "text": "Finally its completed!"}, {"post_id": 43060, "ts": "2026-08-08T03:53:49Z", "hours": 0.4222, "text": "soo i m making this simulator of Earth revolving around the sun, first just deployed the website on GitHub Pages"}]...
|
Title: Earth by @AkshatBansal | Stardance
Devlogs Title: Earth by @AkshatBansal | Stardance
Devlogs:
soo i m making this simulator of Earth revolving around the sun, first just deployed the website on GitHub Pages
Finally its completed!
Ships:
This website is just a simulation of moon and earth revolving around each other and the Sun....
|
1793408192.446301
|
1793494592.446301
|
|
45370
|
Temperature-Tracker by @AwesomeFreshDay | Stardanc Temperature-Tracker by @AwesomeFreshDay | Stardance...
|
AwesomeFreshDay
|
1
|
14.0
|
146
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-29T05:17:43Z", "hours": 14.0, "multiplier": 10.23, "payout": 146, "blessing": "neutral", "text": "INSTALLATION WINDOWS SUPPORT ONLY Download the setup file on github release page, proceed through the setup and launch the program AS ADMISTRATOR After you finish the setup you see a checkbox to click launch after setup it will not work because the setup automatically runs the program with regular perms so you have to search for the program and run as admin. This is due to WinTMP requiring admistrator privilleges to read hall sensor temps. Hello everyone. This is my first python project that I made and spent a lot of time working on it especially since I had to research and google lots of guides and documentation. I made a temperature tracking app with 2 tabs one being the main and the other being the feature of tracking computer data over time. So for the main tab, shows pc stats such as data about CPU Usage, Ram usage, and the temperatures in Celcius of the CPU and GPU. I am proud of the 2 sliders which are temperature caps the user sets for the CPU and GPU Temps. When their own computer temps reaches the temp cap they put on the slider, a messagebox appears and notifies with a sound explaining that they have reached the temp of their desired cap and their temps when they went over the cap. This is to help inform people of their pc temperatures and to take notice whether or not they could be throttling and having reduced performance from high temps. It could inform people to put caps if they want to focus on being notified that oh no their temps are higher than what they wanted and that maybe it could be a sign to clean or change thermal paste of course every computer is different and we all have different expectations but yea. So the other thing I am proud of is the temperature tracker. User picks an amount of time to set so that their pc data is recorded over that set amount of time showing patterns and useful data towards their computer stats and that they would be informed of a lot of stuff they open on their computer is impacting the usage of their pc. Anyways this was my first python project and one that I put effort in so it was a nice jounry and I would probably miss doing this. I am planning to make one other project but still going to find out.", "repo": "https://github.com/AwesomeFreshDay/Temperature-Tracker", "demo": "https://github.com/AwesomeFreshDay/Temperature-Tracker/releases/tag/v1.0"}]...
|
[{"post_id": 57029, "ts": "202 [{"post_id": 57029, "ts": "2026-08-29T03:16:52Z", "hours": 3.3219, "text": "The final dev log before the first ship. I have finished creating the program now just need to turn it into an exe app. Since my last dev log, I have added a tabview to toggle between the main and this new feature. Temperature tracker. There is a combo box where the user selects a value and sets as the time until data from their pc stats are shown and for what time which can be used to show patterns in their hardware. A pause, reset, and unpause button has been added. This was a pretty fun first python project and the first one where I put effort in. Now I just need to watch a tutorial to make this an app."}, {"post_id": 55709, "ts": "2026-08-27T17:55:20Z", "hours": 4.7264, "text": "Since my last dev log, I have imported customtkinter library for better and a modern aesthetic compared to regular tkinter, added a toggle switch button for dark and light mode. The program now uses threading for the stats for optimization. Before it was lagging very bad where it was just barely usable. Right now its a lot less laggy like way smoother but still lags a little occasionally. Changed the entry box and submit button for temp cap to simple sliders that is inputted and outputted after 1 second of release. Added slider for gpu. Finally fixed the annoying messagebox spam after temp cap reached. What happened was the temperature cap messagebox would show up and when you exited it would keep showing up a milisecond later upon close. Now the program uses a boolean that is set tot rue whenever the messagebox appears so that you acn just exit the box once and it will not pop up again until you changed the desired tempearture. Now i will be adding the anticiapted feature i want and a tab."}, {"post_id": 45418, "ts": "2026-08-11T21:03:02Z", "hours": 3.49, "text": "Since my last dev log I have added 4 more labels. The CPU Temp, GPU Temp, ram usage, and the clock all these features update every second the program is running. I set a temp cap in celcius which is a little buggy right now sometimes it works and sometimes it doesnt I will have to figure that out but there is an entry box the user types in to cap their temperature and the warning box pops up when the cpu tempearture cap has exceeded to inform the user that their cpu temperature is exceeding what they want. The user puts their temp cap to their desired amount to safely monitor their desired temps."}, {"post_id": 43715, "ts": "2026-08-09T03:57:38Z", "hours": 1.6058, "text": "Found a guide to install tkinter in python created a button and label. Had so many issues with creating the data to automatically update in GUI so now the cpu usage ACTUALLY changes every second I can’t believe it finally worked I know my time logged doesnt reflect it but I searched for documentations and guides and was able to incorporate it into my project! The app does lag/freeze for a sec when the data changes but hopefully it can be optimized soon"}, {"post_id": 43092, "ts": "2026-08-08T05:27:43Z", "hours": 0.8147, "text": "Got the time and WinTMP Library installed and working ran into a huge issue while trying to install the WinTMP library. It is a library from last year and when I installed the library and tired using the commands. it would give some huge error about a .dll file failed to inialize. So I went to install LibreHardwareMonitor the trusted offical app for checking temps and the same dll it has so i put it in my folder but that didnt work because the verison is too new so we found out in the terminal its using verison llike 1.4.1 i think int he dll of course now its been udpated from last year and its newer so i found the install of the older dll put it into the folder and it worked thanks to AI for helping me because I was stuck on this for lik ean hour but anyways the dll that is being used is a year old but i hope the future of that problems dont arise"}, {"post_id": 43046, "ts": "2026-08-08T03:11:10Z", "hours": 0.3394, "text": "Got started in my project had trouble starting the project in vscode so had to use AI for help in importing/finding the library that checks CPU and Ram usage and how to even install the library so it helped me get started. Right now I was able to print the cpu and ram usage in the terminal and hopefully add csv file to track the usage overtime"}]...
|
Title: Temperature-Tracker by @AwesomeFreshDay | S Title: Temperature-Tracker by @AwesomeFreshDay | Stardance
Devlogs:
Got started in my project had trouble starting the project in vscode so had to use AI for help in importing/finding the library that checks CPU and Ram usage and how to even install the library so it helped me get started. Right now I was able to print the cpu and ram usage in the terminal and hopefully add csv file to track the usage overtime
Got the time and WinTMP Library installed and working ran into a huge issue while trying to install the WinTMP library. It is a library from last year and when I installed the library and tired using the commands. it would give some huge error about a .dll file failed to inialize. So I went to install LibreHardwareMonitor the trusted offical app for checking temps and the same dll it has so i put it in my folder but that didnt work because the verison is too new so we found out in the terminal its using verison llike 1.4.1 i think int he dll of course now its been udpated from last year and its newer so i found the install of the older dll put it into the folder and it worked thanks to AI for helping me because I was stuck on this for lik ean hour but anyways the dll that is being used is a year old but i hope the future of that problems dont arise
Found a guide to install tkinter in python created a button and label. Had so many issues with creating the data to automatically update in GUI so now the cpu usage ACTUALLY changes every second I can’t believe it finally worked I know my time logged doesnt reflect it but I searched for documentations and guides and was able to incorporate it into my project! The app does lag/freeze for a sec when the data changes but hopefully it can be optimized soon
Since my last dev log I have added 4 more labels. The CPU Temp, GPU Temp, ram usage, and the clock all these features update every second the program is running. I set a temp cap in celcius which is a little buggy right now sometimes it works and sometimes it doesnt I will have to figure that out but there is an entry box the user types in to cap their temperature and the warning box pops up when the cpu tempearture cap has exceeded to inform the user that their cpu temperature is exceeding what they want. The user puts their temp cap to their desired amount to safely monitor their desired temps.
Since my last dev log, I have imported customtkinter library for better and a modern aesthetic compared to regular tkinter, added a toggle switch button for dark and light mode. The program now uses threading for the stats for optimization. Before it was lagging very bad where it was just barely usable. Right now its a lot less laggy like way smoother but still lags a little occasionally. Changed the entry box and submit button for temp cap to simple sliders that is inputted and outputted after 1 second of release. Added slider for gpu. Finally fixed the annoying messagebox spam after temp cap reached. What happened was the temperature cap messagebox would show up and when you exited it would keep showing up a milisecond later upon close. Now the program uses a boolean that is set tot rue whenever the messagebox appears so that you acn just exit the box once and it will not pop up again until you changed the desired tempearture. Now i will be adding the anticiapted feature i want and a tab.
The final dev log before the first ship. I have finished creating the program now just need to turn it into an exe app. Since my last dev log, I have added a tabview to toggle between the main and this new feature. Temperature tracker. There is a combo box where the user selects a value and sets as the time until data from their pc stats are shown and for what time which can be used to show patterns in their hardware. A pause, reset, and unpause button has been added. This was a pretty fun first python project and the first one where I put effort in. Now I just need to watch a tutorial to make this an app.
Ships:
INSTALLATION WINDOWS SUPPORT ONLY Download the setup file on github release page, proceed through the setup and launch the program AS ADMISTRATOR After you finish the setup you see a checkbox to click launch after setup it will not work because the setup automatically runs the program with regular perms so you have to search for the program and run as admin. This is due to WinTMP requiring admistrator privilleges to read hall sensor temps. Hello everyone. This is my first python project that I made and spent a lot of time working on it especially since I had to research and google lots of guides and documentation. I made a temperature tracking app with 2 tabs one being the main and the other being the feature of tracking computer data over time. So for the main tab, shows pc stats such as data about CPU Usage, Ram usage, and the temperatures in Celcius of the CPU and GPU. I am proud of the 2 sliders which are temperature caps the user sets for the CPU and GPU Temps. When their own computer temps reaches the temp cap they put on the slider, a messagebox appears and notifies with a sound explaining that they have reached the temp of their desired cap and their temps when they went over the cap. This is to help inform people of their pc temperatures and to take notice whether or not they could be throttling and having reduced performance from high temps. It could inform people to put caps if they want to focus on being notified that oh no their temps are higher than what they wanted and that maybe it could be a sign to clean or change thermal paste of course every computer is different and we all have different expectations but yea. So the other thing I am proud of is the temperature tracker. User picks an amount of time to set so that their pc data is recorded over that set amount of time showing patterns and useful data towards their computer stats and that they would be informed of a lot of stuff they open on their computer is impacting the usage of their pc. Anyways this was my first python project and one that I put effort in so it was a nice jounry and I would probably miss doing this. I am planning to make one other project but still going to find out....
|
1793544559.4812438
|
1793630959.4812438
|
|
45382
|
My own site! by @arsenal4eva | Stardance
|
arsenal4eva
|
1
|
3.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-09T12:59:29Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made my personal website, introducing myself, my hobbies, my current projects. There’s also a little quiz about myself for others to play, and that was one way that I tried to implement my Javascript knowledge. HTML and CSS were quite challenging as syntax and usages were a lot to remember, and Javascript integration was quite fun to play with. Particularly for CSS, the formatting was really tedious, like making light mode and dark mode, as well as adjusting image placements. This overall involved quite a lot of research and definitely took quite long. Fun part is, I managed to get them to work. First time making my own webpage using Github, I hope it’s good! Images are not mine, I found them online, form pngplay.com, hiclipart.com, freepngimg.com, imgbin.com, pngegg.", "repo": "https://github.com/arsenal4eva/my-website", "demo": "https://arsenal4eva.github.io/my-website/"}]...
|
[{"post_id": 43960, "ts": "202 [{"post_id": 43960, "ts": "2026-08-09T12:40:13Z", "hours": 3.3294, "text": "Devlog #1. Pulled some templates from online, put all my stuff, customized it with some of my favorite MCU characters as well as a mini quiz of myself. Wanted to make a daily meme feature but keep having problems pulling memes from API."}]...
|
Title: My own site! by @arsenal4eva | Stardance
D Title: My own site! by @arsenal4eva | Stardance
Devlogs:
Devlog #1. Pulled some templates from online, put all my stuff, customized it with some of my favorite MCU characters as well as a mini quiz of myself. Wanted to make a daily meme feature but keep having problems pulling memes from API.
Ships:
I made my personal website, introducing myself, my hobbies, my current projects. There’s also a little quiz about myself for others to play, and that was one way that I tried to implement my Javascript knowledge. HTML and CSS were quite challenging as syntax and usages were a lot to remember, and Javascript integration was quite fun to play with. Particularly for CSS, the formatting was really tedious, like making light mode and dark mode, as well as adjusting image placements. This overall involved quite a lot of research and definitely took quite long. Fun part is, I managed to get them to work. First time making my own webpage using Github, I hope it’s good! Images are not mine, I found them online, form pngplay.com, hiclipart.com, freepngimg.com, imgbin.com, pngegg....
|
1792957977.7657866
|
1793821977.7657866
|
|
45411
|
Desktop Pokedex by @StiK | Stardance
|
StiK
|
1
|
23.65
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-21T05:14:03Z", "hours": 22.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "FINALLY!!! AFTER MONTHS OF BLOOD SWEAT AND TEARS, DESKTOP POKEDEX IS FINALLY DONE!!!! What? Desktop Pokedex is a mini, floating, pokedex for your desktop, inspired by those fun adgets we had in Windows 7. Search for your favourite pokemons and get stats like name, ID, sprites, cry sfx, entry, BASE stats, moves and types (and more in the future). This project is made with love using Godot 4 and powered by PokeAPI, a REST API with data of 1000+ pokemons! How? Go click on the try project button, OR CLICK HERE and download it and read the README.txt for instructions! Leave a comment if you find some trouble or bug. NOTE THAT THIS IS ONLY AVAILABLE FOR WINDOWS. Sooo… yeah, that’s it! Toodles 😁", "repo": "https://www.github.com/stik101/desktop-pokedex/", "demo": "https://gamo-studios.itch.io/desktop-pokedex"}]...
|
[{"post_id": 84774, "ts": "202 [{"post_id": 84774, "ts": "2026-10-30T08:18:15Z", "hours": 1.6456, "text": "DEVBLOG #12: GENDER REVEAL!?!?!? (+ Space Handling + Post-Shipping + Thanks) CHECK OUT DESKTOP POKEDEX ON ITCH.IO :) Heeeey! Long time since last one (yikes!) Fortunately I’ve a LOT to share! WE FINALLY SHIPPED DESKTOP POKEDEX! IT’S ON ITCH.IO, SO GO CHECK IT OUT TO TRY IT OUT FOR YOURSELF!!! I created an entire itch.io page for it… ahhh, finally, I get to make an itch.io page for something after a LOOONG time! It looks pretty comfy! It’s been one hell of a journey just to ship a small godot project on floaty pokedex on your desktop…infact, isn’t it bit too much of an effort for a small project like this…? But whatever, IT’S (almost barely) DONE!!! I’m still planning to bring new updates and patches whenever I get time, and also there’s still a LOT of stuff I can implement to make this even DOPER than an IRL pokedexes. ( see my first ever devblog to see what I mean, I dropped my big plans in there ) SEARCH POKEMON OF DIFFERENT GENDER ENTITIES (Like Nidoran) In the pokedex, earlier you couldn’t search nidoran or any pokemon with seperate male-female entries because they were under a special naming convention inside PokeAPI; I FIXED IT! Now my pokedex shows a cool looking “Choose Gender” Panel on top of the Search Bar and now you get to choose red pill or blue pill (or should I say, blue pill or pink pill? TADUMTISHHH ) SETTINGS GOT VOLUME CONTROLS LESGOOO Thx to my friend, who wants to say that; without it, my soul punched outta my body like how doctor strange punched spidey's when I heard pikachu's cry You can hit up settings from the Side Panel popup > Pokeball Icon > Right-Click > Settings > Cry SFX Volume ADDED A SNEAKY EXTRA SPACE WHILE TYPING? IDIOT! (but we fixed it) Yes, the title says it all. Idiot THANK YOU FOR BEING THERE, THAT’S KINDA A WRAP When I shipped the project, I was in bit of a hurry due to IRL stuff, so here’s the list of gratitude that I forgot to drop in Godot Engine : This is the game engine that helped me shape my ideas throughout my game-dev journey; it took me nearly 5 years to realize that THIS is my perfect tool to make games (and more), and I was almost too late, but all the time I spent here is sooo EPIC! I virtually (and actually rn) bow before the community that shaped the engine what it is now Hammy : The person who told me a program called something like “Stardance Challenge” exists, and her friend is in it, so maybe I could try it too. And I was just starting to talk to her back then, but working on this project and helping me test it really helped me build a strong bond between us, so I owe this project that :) (She’s also the one who helped me work on the volume slider btw) Stardance and Hack Club : For organizing such a program like this; let’s be honest, as much as a pokedex floating around our desktop for no reason sounds a li’l bit stupid, it’s something that I ALWAYS want to build. And without y’all, I wouldn’t have tried to make it. So thank you SOOOOOOOO MUCHHH for building up this opportunity (yes, y’all get the most gratitude of all, you’re welcome ) If I’m ever working on this project again after this, I’ll try to create a whole new blog page somewhere else, HECK, I’LL MAKE AN ENTIRE VIDEO ABOUT THIS ON YOUTUBE, but until then, this is prolly the end (aside from fixing bugs and stuff) Sooo, yeah… that’s it! Toodles"}, {"post_id": 72714, "ts": "2026-09-23T16:03:06Z", "hours": 1.1481, "text": "DEVBLOG #11: Wild Dino Appeared, because your internet sucks I realized my dex used internet, and all this time I never checked if it was connected to the internet or not So I fixed it!!! Also, I added a Pokedex scan complete sfx too! Classic And the settings has new options: Show Shiny Sprites or Legacy Cry!!! Small updates, but we’re wrapping it up!!! Time to ship ship ship! Sooo… yeah, that’s it! Toodles!"}, {"post_id": 66010, "ts": "2026-09-11T15:04:08Z", "hours": 2.2786, "text": "DEVBLOG #10: SHOW ’EM YOUR MOVES, BRUV Alright alright, we’re so back, I guess…progress it bit slow, but I’m trying my best too! Check your Pokemon’s MOVES A new section is finally unlocked in the dex; MOVES! Check out all the movesets and its description entries in the dex!!! We’re so close, yet so far…dang Sooo… yeah, that’s it! Toodles"}, {"post_id": 59097, "ts": "2026-08-31T18:35:07Z", "hours": 1.3461, "text": "DEVBLOG #9: The Pokedex…is actually almost done! I don’t believe it…but within 1 hour…I think I achieved the most difficult task of this project; the PASSTHROUGH HANDLER Basically, all this time, the passthrough wasn’t being handled, and so the desktop interactions were blocked…that’s why I was trying to close the program by Alt+F4 or by switching desktops. But now? Since now we’ve a separate passthrough handler, we can use our dex, while we use our desktop for daily use!!! 🔥 Obviously, it’s little bit glitchy…and I’m trying to understand the flow chart of the program so I can tackle this, until then, bear with it. But WE DID ITTTT!!! THAT’S WHAT MATTERS ! The Pokedex is 90% complete…and right now it is technically testable…however though, there’s still the 10% that I personally want in V1 (excluding fixing the glitchy passthrough handler). All such changes are probably implemented by the next (and maybe the final) devblog. But for now, I need a break. So again, devblogs will be non regular as usual And I need to probably update the github page further…add some cool banner and logo and stuff…but that’s prolly for later! Sooo… yeah, that’s it! Toodles"}, {"post_id": 58926, "ts": "2026-08-31T14:23:07Z", "hours": 1.1481, "text": "DEVBLOG #8: It feels like it’s part of the OS!!! (and settings) One of the things that inspired me to make my pokedex a floating desktop application is those “Windows 7 Gadgets”; these tiny floating applications, similar to how my pokedex worked. I especially loved the “Picture Puzzle” gadget, which is basically a mini game itself! And so, one of the main objectives in this project was definitely making it AS MUCH AS CLOSE to the original gadget feel, and it being part of the hidden icon tray was very crucial. As always, Godot Engine makes me speechless yet again, because would you believe that there’s ACTUALLY a seperate node just for this ? Introducing… StatusIndicator StatusIndicator Node Basically this creates that tiny hidden icon for your Godot application on both Windows and MacOS (idk about mac, but it definitely is the case for Windows ) And this allowed me cool stuff like; Hide the Dex when the icon is clicked Right click to find options like Settings, Help and Quit (and maybe more?) Settings menu can be enabled Quit the program (because, let’s be honest, WHERE’S THE CLOSE BUTTON??? ) Q: Oh wait...there's settings? A: Yes. Settings is being…set? As you can see, we made a settings menu…but let’s be honest, I forgot why do we even need settings for Sooo, until I remember, let it exist Now I’m gonna work on the passthrough handler, so we can actually use both the dex and desktop at the same time…infact, that’s another IMPORTANT aspect of the program. But it’s complicated, sooo…idk. Sooo… yeah, that’s it! Toodles"}, {"post_id": 58577, "ts": "2026-08-31T01:23:32Z", "hours": 0.7608, "text": "DEVBLOG #7: INTRODUCING…STATS I thought of adding stuff like progress bars to make it look cooler….but it’s bit too hard. Again, I suck at Control nodes a bit. But I’m happy I did pulled this off!!! As a tiny fix, if a data is still loading, unless it’s complete fetching, you can’t search the next one, orelse it might break the program Sooo…yeah, that’s it! Toodles"}, {"post_id": 57592, "ts": "2026-08-29T19:46:03Z", "hours": 2.0189, "text": "DEVBLOG #6: More, MORE tiny stuff Pretty much nothing else…unfortunately, for reasons that cannot be explained, my time to keep on working on this project is looking REALLY dim, so I have to wind it up. FAST So devblogs from now on are short and effective 1. Flip Button for Sprites Now you can see the rear of your pokemon…? (weird…) 2. GENERA Data of Pokemon You know how Pikachu is a Mouse Pokemon, and Jynx is a Human Shaped Pokemon? Yeah, that. 3. Seperate Area for name and ID Yippee! They got a new home! 4. Working Pokemon Info With an all new and working navigation button Sooo, yeah that’s it! Toodles"}, {"post_id": 56770, "ts": "2026-08-28T17:42:35Z", "hours": 2.3319, "text": "DEVBLOG #5: Jynx’s Beauty Secret EXPOSED* (not really, but listen) After the last blog, I decided to add passthrough desktop mechanic… only for that to actually not work. I realized that I have to set the passthrough regions AFTER building the entire pokedex, or else if unexpectedly I need to extend the search bar panel (which I did), I need to edit the polygon and reincorporate it in almost every single line of code And another thing I realized is that since the Kanto pokedex is a fictional device, THE BUTTONS DOESN’T MAKE SENSE AT ALL, LIKE, THEY DO NOT SERVE ANY PURPOSE So I realized that I’ve to redesign the dex inbetween the process. Plus, in doing so; 1. We gave pokedex a new and cool closing button 2. We added the Pokémon Type(s) Icon 3. Sickass shiny effect on the big blue button 🤌 4. Added a work in progress option button for each information 5. Extended the screen size for both the pokemon image screen and the entry screen (RIP, sickass scrolling marquee effect 🌹 )… (A totally accurate graphical representation attached below) Remember when I said the search bar extended a bit? Wondered why though? INTRODUCING… SNAP TO SEARCH (It’s not implemented yet though) One of the things that makes the pokedex…a pokedex, is image recognition of a pokemon! However, since this is an app, the only way of getting an image is through something like screenshot…sooo… …what if you CAN screenshot the desktop via the app, and send it to a Computer Vision based AI model (like Gemini) to identify the name of the pokemon, and search the information about it? For safety reasons, the user has to provide the AI model’s API key in the settings panel (which rn does not exist) to try this themselves, so for now, it’s locked. And finally…the biggest, simplest (and probably the dumbest) quality update… …I changed the screen stretch mode from canvas to viewport (which, in simple terms, means the setting in godot that changed the screen quality of my app 100x better) so yippee!!! As you can see, though it seems a huge makeover, it’s still incomplete, and I’m still incorporating more features and stuff… so patience is the key I guess… 😭🥀 Sooo…yeah, that’s it! Toodles"}, {"post_id": 55181, "ts": "2026-08-26T18:00:36Z", "hours": 3.8242, "text": "DEVBLOG #4: Addressing the Snorlax in the Room 😭 As the development for the pokdex progresses, it’s pretty obvious from the start that issues are about to rise, especially on a project that actually break traditional window-based programs… In the last DEVBLOG, I mentioned about creating a GitHub repository for the project…however though, hours later, I realised in doing so, I accidentally created a new copy of the current project, and Hackatime considered this as a NEW PROJECT, meaning my project in Stardance is stuck with the initial 6 hours of progress before creating the repo…it was an easy fix though; adding the NEW project along with the old one in the project settings over here. As for the pokedex, the codebase is getting larger, and we are almost 40% closer to finishing V1…I’ve sooo many of these cool ideas that makes this project (and me) stand on….however, due to time constrains and other issues…maybe it might be postponed for a veeeerry long time…I’m even skeptical of finishing the V1 too, at least, the way I want it to be. But as Toby Fox says, “Despite everything, you’re filled with DETERMINATION” 💪❤️ By the next devblog, probably I’ll be finished integrating every single collected data onto the pokedex, and (or by next devblog after that), the pokedex would be handling passthrough stuff, and THEN, it might be safe to say V1 is available to test… 🤞 Here’s the last video I recorded of the current working dex. As you can see, I’ve officially hidden the placeholder search bar, so that’s a start! Sooo….yeah, that’s it! Toodles"}, {"post_id": 54322, "ts": "2026-08-25T08:39:24Z", "hours": 4.0608, "text": "DEVBLOG #3 - Gotcha! You caught Octa! ⭐ As the name suggest, I finally created a GitHub repo for the project, and all the current progress is in the repo rn!!! I would not suggest you to check the project now…since I’ve uploaded the janky version…I’ll update it before the next devblog is out… Today I had waaay to much free time, and I woke up early in the morning just so I can work more on this…because I believe we’re almost reaching the end of VERSION 1!!! That is, a working pokedex that’s worth showing others…the “VERSION 2” is supposed to contain stuff like Search by Snippet, Pokemon based desktop pets (which sounds bit complicated rn…so maybe nope), and text to speech. The Pokedex officially collects 💯% of all the data we need! And I made it to show the description of the pokemon, and show it in the screen, while it scrolls slowly like a marquee !!!!!!!! And it’s sooooooooooooooo smooth!!! And I worked on the banner too for the repo. Now before I end the day, I’ll probably integrate the pokedex with transparent dragging feature we did on the first ever devblog… and also add some sound effects, so the JUICY opening of pokedex is EVEN JUICIER 😌🤌 So… yeah, that’s it Toodles"}, {"post_id": 52748, "ts": "2026-08-23T02:35:08Z", "hours": 2.0722, "text": "DEVBLOG #2: Farfetch’d gets them datas! Alright! Like any day 2 of any project, progress is going pretty…well…progressive. 🫡 For starters, I started shifting my focus from transparent movable objects in desktop to the thing we actually wanna move; the pokedex itself. I started thinking about how to receive inputs and search the pokemon for its data from PokeAPI, so for the sake of it, I created a placeholder field where we can search in the name of pokemon and get the id and name (and also other stats, but that’s in the output field). Again, this is a placeholder, and I’ll scrap it out once the dex is complete! I created a placeholder pokedex sprites based on the original kanto pokedex (see below), and chucked it into the editor. Secondly, I started finding the datas we need from PokeAPI and started storing it inside variables dedicated for it, so we can show these values once we finish the pokedex! For now, it’s printed out on the output field. I would say about 80% of datas are only collected; ID, Name, Height, Weight, Types, Abilities, Moves, Base Stats like SPEED, DEFENCE, ATTACK, HP, SPECIAL ATTACK AND DEFENCE. The other 20% includes the image, cry and description of the pokemon… And as for the pokedex…well, I made some quick open and closing animations…which works for now. 👍 Sooo…yeah, that’s it! Toodles"}, {"post_id": 51629, "ts": "2026-08-21T12:30:37Z", "hours": 0.98, "text": "DEVBLOG #1: A wild Pokedex appeared in your desktop…? Owning your own complete pokedex is a dream of any child as well as of any Pokemon geeks, and I’ve been both once. However though, spending money on a toy-pokedex is not something wise 😭. So why not build one? But I suck at anything electronics… so I decided to make a virtual pokedex for my desktop, inspired by those cool widgets we had in ol’ Windows 7! 😌 I started off by planning how the final project must look like (check it below), though I’m pretty sure it’s a bit over-ambitious, but it’s worth a shot! 👍👍 Then I opened Godot 4 (yes, you can make non-game applications in it, its bit popular for that) and started working on the first thing; TRANSPARENT INTERACTIBLE WINDOWS. It wasn’t a huge hassle, since Godot offers transparent, borderless window settings out of the box, and takes up 50% of the work… but there’s still the other 50%; handling interactions of both the desktop and the pokedex. See, either your Godot game must be opaque and clickable or, it must be transparent and clickthrough-able. It’s possible to make the window transparent and clickthrough-able, while making the pokedex interactable, thanks to “passthrough polygons”: these are areas where the game window can detect interactions and inputs, instead of ignoring it. By setting a demo sprite’s area passthrough and making it draggable, I accomplished my first step of the pokedex; making sure that a transparent floating pokedex is actually possible in Godot (here’s a demo of how it looks like!). And Godot never fails to baffle me. 📈📈📈 I don’t get much time to work on this, and I might give up after making a barely working prototype… but let’s see how long I would work on it until I do so. Sooo… yeah that’s it! Toodles"}]...
|
Title: Desktop Pokedex by @StiK | Stardance
Devlo Title: Desktop Pokedex by @StiK | Stardance
Devlogs:
DEVBLOG #1: A wild Pokedex appeared in your desktop…? Owning your own complete pokedex is a dream of any child as well as of any Pokemon geeks, and I’ve been both once. However though, spending money on a toy-pokedex is not something wise 😭. So why not build one? But I suck at anything electronics… so I decided to make a virtual pokedex for my desktop, inspired by those cool widgets we had in ol’ Windows 7! 😌 I started off by planning how the final project must look like (check it below), though I’m pretty sure it’s a bit over-ambitious, but it’s worth a shot! 👍👍 Then I opened Godot 4 (yes, you can make non-game applications in it, its bit popular for that) and started working on the first thing; TRANSPARENT INTERACTIBLE WINDOWS. It wasn’t a huge hassle, since Godot offers transparent, borderless window settings out of the box, and takes up 50% of the work… but there’s still the other 50%; handling interactions of both the desktop and the pokedex. See, either your Godot game must be opaque and clickable or, it must be transparent and clickthrough-able. It’s possible to make the window transparent and clickthrough-able, while making the pokedex interactable, thanks to “passthrough polygons”: these are areas where the game window can detect interactions and inputs, instead of ignoring it. By setting a demo sprite’s area passthrough and making it draggable, I accomplished my first step of the pokedex; making sure that a transparent floating pokedex is actually possible in Godot (here’s a demo of how it looks like!). And Godot never fails to baffle me. 📈📈📈 I don’t get much time to work on this, and I might give up after making a barely working prototype… but let’s see how long I would work on it until I do so. Sooo… yeah that’s it! Toodles
DEVBLOG #2: Farfetch’d gets them datas! Alright! Like any day 2 of any project, progress is going pretty…well…progressive. 🫡 For starters, I started shifting my focus from transparent movable objects in desktop to the thing we actually wanna move; the pokedex itself. I started thinking about how to receive inputs and search the pokemon for its data from PokeAPI, so for the sake of it, I created a placeholder field where we can search in the name of pokemon and get the id and name (and also other stats, but that’s in the output field). Again, this is a placeholder, and I’ll scrap it out once the dex is complete! I created a placeholder pokedex sprites based on the original kanto pokedex (see below), and chucked it into the editor. Secondly, I started finding the datas we need from PokeAPI and started storing it inside variables dedicated for it, so we can show these values once we finish the pokedex! For now, it’s printed out on the output field. I would say about 80% of datas are only collected; ID, Name, Height, Weight, Types, Abilities, Moves, Base Stats like SPEED, DEFENCE, ATTACK, HP, SPECIAL ATTACK AND DEFENCE. The other 20% includes the image, cry and description of the pokemon… And as for the pokedex…well, I made some quick open and closing animations…which works for now. 👍 Sooo…yeah, that’s it! Toodles
DEVBLOG #3 - Gotcha! You caught Octa! ⭐ As the name suggest, I finally created a GitHub repo for the project, and all the current progress is in the repo rn!!! I would not suggest you to check the project now…since I’ve uploaded the janky version…I’ll update it before the next devblog is out… Today I had waaay to much free time, and I woke up early in the morning just so I can work more on this…because I believe we’re almost reaching the end of VERSION 1!!! That is, a working pokedex that’s worth showing others…the “VERSION 2” is supposed to contain stuff like Search by Snippet, Pokemon based desktop pets (which sounds bit complicated rn…so maybe nope), and text to speech. The Pokedex officially collects 💯% of all the data we need! And I made it to show the description of the pokemon, and show it in the screen, while it scrolls slowly like a marquee !!!!!!!! And it’s sooooooooooooooo smooth!!! And I worked on the banner too for the repo. Now before I end the day, I’ll probably integrate the pokedex with transparent dragging feature we did on the first ever devblog… and also add some sound effects, so the JUICY opening of pokedex is EVEN JUICIER 😌🤌 So… yeah, that’s it Toodles
DEVBLOG #4: Addressing the Snorlax in the Room 😭 As the development for the pokdex progresses, it’s pretty obvious from the start that issues are about to rise, especially on a project that actually break traditional window-based programs… In the last DEVBLOG, I mentioned about creating a GitHub repository for the project…however though, hours later, I realised in doing so, I accidentally created a new copy of the current project, and Hackatime considered this as a NEW PROJECT, meaning my project in Stardance is stuck with the initial 6 hours of progress before creating the repo…it was an easy fix though; adding the NEW project along with the old one in the project settings over here. As for the pokedex, the codebase is getting larger, and we are almost 40% closer to finishing V1…I’ve sooo many of these cool ideas that makes this project (and me) stand on….however, due to time constrains and other issues…maybe it might be postponed for a veeeerry long time…I’m even skeptical of finishing the V1 too, at least, the way I want it to be. But as Toby Fox says, “Despite everything, you’re filled with DETERMINATION” 💪❤️ By the next devblog, probably I’ll be finished integrating every single collected data onto the pokedex, and (or by next devblog after that), the pokedex would be handling passthrough stuff, and THEN, it might be safe to say V1 is available to test… 🤞 Here’s the last video I recorded of the current working dex. As you can see, I’ve officially hidden the placeholder search bar, so that’s a start! Sooo….yeah, that’s it! Toodles
DEVBLOG #5: Jynx’s Beauty Secret EXPOSED* (not really, but listen) After the last blog, I decided to add passthrough desktop mechanic… only for that to actually not work. I realized that I have to set the passthrough regions AFTER building the entire pokedex, or else if unexpectedly I need to extend the search bar panel (which I did), I need to edit the polygon and reincorporate it in almost every single line of code And another thing I realized is that since the Kanto pokedex is a fictional device, THE BUTTONS DOESN’T MAKE SENSE AT ALL, LIKE, THEY DO NOT SERVE ANY PURPOSE So I realized that I’ve to redesign the dex inbetween the process. Plus, in doing so; 1. We gave pokedex a new and cool closing button 2. We added the Pokémon Type(s) Icon 3. Sickass shiny effect on the big blue button 🤌 4. Added a work in progress option button for each information 5. Extended the screen size for both the pokemon image screen and the entry screen (RIP, sickass scrolling marquee effect 🌹 )… (A totally accurate graphical representation attached below) Remember when I said the search bar extended a bit? Wondered why though? INTRODUCING… SNAP TO SEARCH (It’s not implemented yet though) One of the things that makes the pokedex…a pokedex, is image recognition of a pokemon! However, since this is an app, the only way of getting an image is through something like screenshot…sooo… …what if you CAN screenshot the desktop via the app, and send it to a Computer Vision based AI model (like Gemini) to identify the name of the pokemon, and search the information about it? For safety reasons, the user has to provide the AI model’s API key in the settings panel (which rn does not exist) to try this themselves, so for now, it’s locked. And finally…the biggest, simplest (and probably the dumbest) quality update… …I changed the screen stretch mode from canvas to viewport (which, in simple terms, means the setting in godot that changed the screen quality of my app 100x better) so yippee!!! As you can see, though it seems a huge makeover, it’s still incomplete, and I’m still incorporating more features and stuff… so patience is the key I guess… 😭🥀 Sooo…yeah, that’s it! Toodles
DEVBLOG #6: More, MORE tiny stuff Pretty much nothing else…unfortunately, for reasons that cannot be explained, my time to keep on working on this project is looking REALLY dim, so I have to wind it up. FAST So devblogs from now on are short and effective 1. Flip Button for Sprites Now you can see the rear of your pokemon…? (weird…) 2. GENERA Data of Pokemon You know how Pikachu is a Mouse Pokemon, and Jynx is a Human Shaped Pokemon? Yeah, that. 3. Seperate Area for name and ID Yippee! They got a new home! 4. Working Pokemon Info With an all new and working navigation button Sooo, yeah that’s it! Toodles
DEVBLOG #7: INTRODUCING…STATS I thought of adding stuff like progress bars to make it look cooler….but it’s bit too hard. Again, I suck at Control nodes a bit. But I’m happy I did pulled this off!!! As a tiny fix, if a data is still loading, unless it’s complete fetching, you can’t search the next one, orelse it might break the program Sooo…yeah, that’s it! Toodles
DEVBLOG #8: It feels like it’s part of the OS!!! (and settings) One of the things that inspired me to make my pokedex a floating desktop application is those “Windows 7 Gadgets”; these tiny floating applications, similar to how my pokedex worked. I especially loved the “Picture Puzzle” gadget, which is basically a mini game itself! And so, one of the main objectives in this project was definitely making it AS MUCH AS CLOSE to the original gadget feel, and it being part of the hidden icon tray was very crucial. As always, Godot Engine makes me speechless yet again, because would you believe that there’s ACTUALLY a seperate node just for this ? Introducing… StatusIndicator StatusIndicator Node Basically this creates that tiny hidden icon for your Godot application on both Windows and MacOS (idk about mac, but it definitely is the case for Windows ) And this allowed me cool stuff like; Hide the Dex when the icon is clicked Right click to find options like Settings, Help and Quit (and maybe more?) Settings menu can be enabled Quit the program (because, let’s be honest, WHERE’S THE CLOSE BUTTON??? ) Q: Oh wait...there's settings? A: Yes. Settings is being…set? As you can see, we made a settings menu…but let’s be honest, I forgot why do we even need settings for Sooo, until I remember, let it exist Now I’m gonna work on the passthrough handler, so we can actually use both the dex and desktop at the same time…infact, that’s another IMPORTANT aspect of the program. But it’s complicated, sooo…idk. Sooo… yeah, that’s it! Toodles
DEVBLOG #9: The Pokedex…is actually almost done! I don’t believe it…but within 1 hour…I think I achieved the most difficult task of this project; the PASSTHROUGH HANDLER Basically, all this time, the passthrough wasn’t being handled, and so the desktop interactions were blocked…that’s why I was trying to close the program by Alt+F4 or by switching desktops. But now? Since now we’ve a separate passthrough handler, we can use our dex, while we use our desktop for daily use!!! 🔥 Obviously, it’s little bit glitchy…and I’m trying to understand the flow chart of the program so I can tackle this, until then, bear with it. But WE DID ITTTT!!! THAT’S WHAT MATTERS ! The Pokedex is 90% complete…and right now it is technically testable…however though, there’s still the 10% that I personally want in V1 (excluding fixing the glitchy passthrough handler). All such changes are probably implemented by the next (and maybe the final) devblog. But for now, I need a break. So again, devblogs will be non regular as usual And I need to probably update the github page further…add some cool banner and logo and stuff…but that’s prolly for later! Sooo… yeah, that’s it! Toodles
DEVBLOG #10: SHOW ’EM YOUR MOVES, BRUV Alright alright, we’re so back, I guess…progress it bit slow, but I’m trying my best too! Check your Pokemon’s MOVES A new section is finally unlocked in the dex; MOVES! Check out all the movesets and its description entries in the dex!!! We’re so close, yet so far…dang Sooo… yeah, that’s it! Toodles
DEVBLOG #11: Wild Dino Appeared, because your internet sucks I realized my dex used internet, and all this time I never checked if it was connected to the internet or not So I fixed it!!! Also, I added a Pokedex scan complete sfx too! Classic And the settings has new options: Show Shiny Sprites or Legacy Cry!!! Small updates, but we’re wrapping it up!!! Time to ship ship ship! Sooo… yeah, that’s it! Toodles!
DEVBLOG #12: GENDER REVEAL!?!?!? (+ Space Handling + Post-Shipping + Thanks) CHECK OUT DESKTOP POKEDEX ON ITCH.IO :) Heeeey! Long time since last one (yikes!) Fortunately I’ve a LOT to share! WE FINALLY SHIPPED DESKTOP POKEDEX! IT’S ON ITCH.IO, SO GO CHECK IT OUT TO TRY IT OUT FOR YOURSELF!!! I created an entire itch.io page for it… ahhh, finally, I get to make an itch.io page for something after a LOOONG time! It looks pretty comfy! It’s been one hell of a journey just to ship a small godot project on floaty pokedex on your desktop…infact, isn’t it bit too much of an effort for a small project like this…? But whatever, IT’S (almost barely) DONE!!! I’m still planning to bring new updates and patches whenever I get time, and also there’s still a LOT of stuff I can implement to make this even DOPER than an IRL pokedexes. ( see my first ever devblog to see what I mean, I dropped my big plans in there ) SEARCH POKEMON OF DIFFERENT GENDER ENTITIES (Like Nidoran) In the pokedex, earlier you couldn’t search nidoran or any pokemon with seperate male-female entries because they were under a special naming convention inside PokeAPI; I FIXED IT! Now my pokedex shows a cool looking “Choose Gender” Panel on top of the Search Bar and now you get to choose red pill or blue pill (or should I say, blue pill or pink pill? TADUMTISHHH ) SETTINGS GOT VOLUME CONTROLS LESGOOO Thx to my friend, who wants to say that; without it, my soul punched outta my body like how doctor strange punched spidey's when I heard pikachu's cry You can hit up settings from the Side Panel popup > Pokeball Icon > Right-Click > Settings > Cry SFX Volume ADDED A SNEAKY EXTRA SPACE WHILE TYPING? IDIOT! (but we fixed it) Yes, the title says it all. Idiot THANK YOU FOR BEING THERE, THAT’S KINDA A WRAP When I shipped the project, I was in bit of a hurry due to IRL stuff, so here’s the list of gratitude that I forgot to drop in Godot Engine : This is the game engine that helped me shape my ideas throughout my game-dev journey; it took me nearly 5 years to realize that THIS is my perfect tool to make games (and more), and I was almost too late, but all the time I spent here is sooo EPIC! I virtually (and actually rn) bow before the community that shaped the engine what it is now Hammy : The person who told me a program called something like “Stardance Challenge” exists, and her friend is in it, so maybe I could try it too. And I was just starting to talk to her back then, but working on this project and helping me test it really helped me build a strong bond between us, so I owe this project that :) (She’s also the one who helped me work on the volume slider btw) Stardance and Hack Club : For organizing such a program like this; let’s be honest, as much as a pokedex floating around our desktop for no reason sounds a li’l bit stupid, it’s something that I ALWAYS want to build. And without y’all, I wouldn’t have tried to make it. So thank you SOOOOOOOO MUCHHH for building up this opportunity (yes, y’all get the most gratitude of all, you’re welcome ) If I’m ever working on this project again after this, I’ll try to create a whole new blog page somewhere else, HECK, I’LL MAKE AN ENTIRE VIDEO ABOUT THIS ON YOUTUBE, but until then, this is prolly the end (aside from fixing bugs and stuff) Sooo, yeah… that’s it! Toodles
Ships:
FINALLY!!! AFTER MONTHS OF BLOOD SWEAT AND TEARS, DESKTOP POKEDEX IS FINALLY DONE!!!! What? Desktop Pokedex is a mini, floating, pokedex for your desktop, inspired by those fun adgets we had in Windows 7. Search for your favourite pokemons and get stats like name, ID, sprites, cry sfx, entry, BASE stats, moves and types (and more in the future). This project is made with love using Godot 4 and powered by PokeAPI, a REST API with data of 1000+ pokemons! How? Go click on the try project button, OR CLICK HERE and download it and read the README.txt for instructions! Leave a comment if you find some trouble or bug. NOTE THAT THIS IS ONLY AVAILABLE FOR WINDOWS. Sooo… yeah, that’s it! Toodles 😁...
|
1793397415.8208342
|
1793483815.8208342
|
|
45412
|
Telos by @kazenoko | Stardance
|
kazenoko
|
1
|
109.29
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-13T15:21:00Z", "hours": 38.0, "multiplier": 1.87, "payout": 0, "blessing": "neutral", "text": "This was supposed to be a weekend project to learn LLMs. It became independent research on scaling Masked Diffusion Language Models instead. I built the models, survived datatype/timestep nightmares, optimized MLX on Apple Silicon, achieved ~1.5–2× faster local training, and investigated how training tokens scale with model parameters. To test the models or look at the research, head on over to https://telos.research.wingit.tech/ (please don’t expect the models to be good - they are NOT. They’re small models that barely generate anything useful [clearly, shown by the screenshot] and the only useful thing about them is how much the correct answer probabilities improve with increase in parameters and tokens, do note that inference is also pretty slow.)", "repo": "https://github.com/kazenoko-git/telos", "demo": "https://telos.research.wingit.tech/"}]...
|
[{"post_id": 53242, "ts": "202 [{"post_id": 53242, "ts": "2026-08-23T18:03:46Z", "hours": 10.4914, "text": "Devlog 8: I at least have a bit more to give this time. First: let me just tell you HOW BAD MY TRAINING SITUATION IS. Thankfully, I did manage to get some compute. 25 credits on Lightning AI in fact, which is helpful. I used up about 2.35 now for a few tests. The other 1.35 was from my old credit balance from long back just before I was about to run out of Lightning AI credits. The fact is that the Lightning AI credits didn’t matter at all. My Mac’s still the better machine to train AI models on, for now. TPU v6e-1 does yield a 2.5x increase in training throughput over my M5 Pro, but that’s not an increase I’m expecting with it having 916 TFLOPS in BF16 quantization while my M5 Pro has like… 17 something TFLOPS. The reason is pretty simple though. My scale isn’t big enough. 25M parameter models can’t occupy enough of the two Matrix Multiply Units, resulting in it not utilizing the whole TPU. To add insult to injury, setting a higher microbatch size (like to 256) causes Out Of Memory errors. To even occupy those two MXUs fully, I’d need AT MINIMUM a 50M model. So the scale has to be bigger. (or well, the matmuls for the 25M and 50M) I had actually tested the v5e-8 on Kaggle. Safe to say it performed worse than my M5 Pro. 💀 Not because the TPU v5e-8 itself was… bad. It wasn’t. It’s the fact that there’s a massive communication overhead. The CPU becomes the bottleneck. Would a bigger model solve that too? MAYBE. Can’t say for sure, not saying for sure. So how long is training going to take? FOUR OR FIVE DAYS. what? 🥀 YES. Unfortunately, even if I run 2x T4’s to speed up my situation, at most it’ll take 3-4 days to train the required models. 25M 1:20 is actively running, and will take 11 more hours to complete. This is upscaling from 12.5M 1:20. 25M 1:25 is scheduled to run after the 25M 1:20, and that will take 14 more hours… After that, it’s the train-from-scratch models… which I’ll try to speed up by running on 2x T4, but I can’t guarantee any speed-ups. So what after this? 50M and 100M train runs. And these should actually be faster, in theory, than the 25M model runs. Watch me be wrong though. But IN THEORY, once again, 50M 1:10 itself is maybe a ~20 minute job on TPU v6e-1. Before I get on with the results of whatever models I’ve trained so far, I have an admission. I kinda didn’t explain what all the terms I’ve mentioned are… And if I did, they’re scattered everywhere. Well I’ll have to explain this next devlog anyway, I’m running out of my 4000 character limit 😭 Getting onto the evaluations… You may have noticed that I mentioned UNDLMs are less stable to train last devlog. Taking ONE look at the graph shows EXACTLY why. The Average Target Rank for the 12.5M UNDLM is going MENTAL. That is NOT a normal graph. Also, the fact I’ve mentioned in the previous devlog, still holds true. AR > MDLM > UNDLM. And another thing: I don’t think we’re getting an AR replacement any time soon. I doubt even at higher parameters, MDLM and UNDLM still won’t catch up to AR. Something that kinda deviates from previous preliminary reports… The CE, Average Target Rank and Top 5 Accuracy were somewhat consistent before. But those are different here. Even if CE for MDLMs drop, Average Target Rank actually stay consistent or increase, while Top 5 Accuracy actually increases. UNDLMs are bad enough that this isn’t something we need to worry about at all, yet. Well, regardless, that’s all I have for you today. Stay tuned. (by the way, updating the website soon with an actual preview of how AR, MDLM and UNDLMs generate text to make the website more functional. trust me - it looks cool.)"}, {"post_id": 52427, "ts": "2026-08-22T15:32:40Z", "hours": 11.5667, "text": "Devlog 7: I don’t have much to give you. This is the point where scaling becomes hard. Because of my own stupidity (I just invalidated my 25M model runs because I set the wrong LR) Compute (and the fact that I’m running thrice the amount of models I was running before for training) So. Where are we headed? TPUs. Once again. Please send me prayers so that some nice company gives me compute :) LightningAI and Cerebras have already ghosted me. Here’s the weird graph that doesn’t matter anymore (25M MDLM doesn’t matter. AR and UNDLM unaffected because they don’t sample t randomly per batch) Stay tuned?"}, {"post_id": 51823, "ts": "2026-08-21T17:50:38Z", "hours": 9.0942, "text": "Devlog 6: Probes. There’s actually not much here except more data points for me to work with. Not much changes either. Well, unless you’d like to know that I updated my Training Suites Python notebook with a few more lines (calling the function… more times for training more models) Well regardless, the images contain all the data both you and I need. What I could infer with this… little data. Few things for certain: My training code is at least 100% correct considering AR shows no improvement past the 1:20 mark. My formula from preliminary paper 1 also matches with whatever is going on with the MDLM. And UNDLM just sucks. That’s kinda expected, actually! Previous research papers prove that UNDLMs have noticeably less quality than MDLMs at the same scale. Model quality should be like this AR > MDLM > UNDLM And it’s showing here. Which is good. So at least no errors here, so far. Stay tuned. by the way, the website was JUST updated with new-but-not-the-newest-as-of-this-and-the-previous-devlog models, DON’T expect good code. If your expectations are low, put them in the negatives, if you could."}, {"post_id": 51011, "ts": "2026-08-20T14:32:04Z", "hours": 9.9144, "text": "Devlog 5: THREE Paradigms. There are now THREE different model architectures in one unified codebase. Masked Discrete Diffusion Uniform Noise Diffusion Autoregressive Why? We’re comparing them?.. I don’t care, what are the results? A lot. But I am unable to infer much from this except that: Autoregressive models scale really well. Masked Diffusion models are stable. Don’t know what the hell is going on with Uniform Noise DLMs. More data is required for me to make any comment. Anyways: the repo has been updated and now it’s easy for anyone to train an AR, MD or UND language model! Not that I recommend. Stay tuned. Next preliminary report, eh… not coming soon. Here’s graphs too btw."}, {"post_id": 49679, "ts": "2026-08-18T15:52:19Z", "hours": 13.8333, "text": "Devlog 4: Preliminary Report 2. Firstly, here is the preliminary report #2 itself. More model runs have occurred since the last devlog, namely: Telos Kappa (MD) 12.5M 1:30 Telos Kappa (MD) 25M 1:35 Telos Kappa (MD) 25M 1:40 Telos Kappa (MD) 25M 1:45 (ongoing) Telos Kappa (MD) 50M 1:45 And data brings confusing news. As seen by the graphs attached, target CE continues to drop for both 50M and 25M models while still increasing for 12.5M models. This would indicate that the 50M and 25M models are improving, but probes data says otherwise. It improves in some categories and actually gets worse in others. What do I mean by that? 25M 1:40 gets better in Literals, Operators, Keywords, and Imports, but gets worse in Identifier Recovery, Function Names, and Attribute Names. The same trend appeared across the suite, yielding these numbers as the sweet spots: 12.5M: 1:20 25M: 1:30 50M: 1:35 With performance divergences and collapses past those boundaries. The RoPE Retrofitting Pitfall Which leads me to a conclusion that I had mentioned in the previous devlog — namely, how I implemented RoPE. For the existing models that were trained with learned absolute positional embeddings, I performed a 150-step RoPE fine-tuning adaptation (~19M tokens, barely ~1% of their training duration). The idea in theory was simple: let the attention heads quickly adapt to relative rotary rotations, but in practice, this 150-step surgical hack actively damaged the models across the board : 50M 1:25: 7.19 -> 7.79 50M 1:35: 7.05 -> 7.72 25M 1:30: 6.90 -> 7.55 (lower is better) For a transformer with billions of tokens of uninterrupted convergence, abruptly rotating query and key vectors in attention circuits calibrated for absolute coordinate space is a violent geometric shock. 150 steps was not nearly enough time to re-align the attention geometry — it simply threw the models into a worse local basin. Native RoPE vs. The Parameter Capacity Ceiling On the flip side, models trained natively with RoPE from step 0 (like 25M 1:35 and 25M 1:40) told a very different story: Top-1 Accuracy: 7.92% (New record) Top-5 Accuracy: 17.82% (New record) Overall CE: 7.24 nats They set high-water marks for positional accuracy and syntactic prediction. So why did their average rank still increase on Function Names and Attribute Names? My conclusion: Because at 25M parameters, we slammed directly into a capacity allocation ceiling: In extreme over-training regimes, gradient descent aggressively prioritizes easy, position-predictable tokens (literals at rank #32, operators at rank #67) to greedily minimize loss. Because 25M parameters is a fixed representational budget, the network exhausts its capacity on structural syntax and starves the complex semantic heads needed for open-vocabulary naming (self.config vs self.logger at rank #3,954). The loss drops on paper, but the model becomes a syntactic pattern-matcher rather than a semantic code understander. The Inherent Ceiling of Masked Diffusion (MDLM) This brings us to the fundamental limitation of standard Masked Discrete Diffusion: the lack of self-correction. In an MDLM, once a token is unmasked during sampling, that decision is locked in permanently. If the model commits early to a structural template, it has no way to revise downstream semantic errors as the broader context comes into view. Next: Pivoting to Uniform Noise DLMs. Due to my absolute stupidity, retraining will have to occur for most MDLMs here. Expect results for those next week. But that is where MDLM research concludes (mostly) . We are moving onwards with Uniform Noise Diffusion Language Models after that, which introduces true iterative self-correction for code generation, which gives the model the ability to fix its own mistakes. Stay tuned."}, {"post_id": 47621, "ts": "2026-08-15T17:00:04Z", "hours": 5.6972, "text": "Devlog 3: annoyances. Somehow: I had forgotten to implement RoPE for MLX training . This wasn’t a MASSIVE issue because the research is based on MDLMs (Masked Diffusion Language Models) rather than AR (Autoregressive models) . Why? In AR models, RoPE is critical because the model must distinguish between position 1 and 500 to generate coherent left-to-right sequences. However, in MDLMs, the model predicts all masked tokens simultaneously. Positional ordering matters less just because the model learns what token fits in a masked slot based on bidirectional context, and not what comes next. But it didn’t mean I could still use the old models. The model can still learn what tokens are likely without RoPE, but it is weaker at understanding where in a function body it is. (e.g, is it the beginning of a function or the return statement) Thankfully, I did not have to retrain all models. I could fine-tune RoPE into existing checkpoints instead. The new CE vs Token Multiplier graph is attached to this devlog. Annoyingly, this meant my formulas have to change. Because clearly, the model quality has jumped to be better from 1:15 to 1:20 for a 12.5M model, and from 1:25 to >=1:30 model for a 25M model, which means I will need to train more 25M models at 1:35, 1:40, so on. Especially considering Target CE reduces THAT drastically. It takes exceptionally long to train models as we scale further and further. The 50M 1:45 model is 67% of the way done since the last devlog, and it had been running overnight. Research on this will be uploaded later on. Research on Uniform Noise DLMs will start even later in this case, and Continuous Space DLMs even further than that. I’ve done some amount of learning into both of those though, UNDLM architecture is pretty easy to implement on top of my MDLM architecture. One code block change. The primary benefit of UNDLMs is that they can correct their own responses. Continuous Space DLMs too, but the architecture has to be rewritten for CSDLMs. Not just that: it introduces a few issues. Rounding errors: final discrete -> token projection can cause errors Training complexity: Need to jointly optiise embeddings and score network Less mature tooling Well. Stay tuned."}, {"post_id": 46877, "ts": "2026-08-14T12:43:59Z", "hours": 10.6903, "text": "Research on Masked Diffusion Language Models continues. Not much has occurred, but three models have been trained which will count towards the final report. Telos Kappa (MD) 25M 1:30 Telos Kappa (MD) 50M 1:35 Telos Kappa (MD) 50M 1:40 And Telos Kappa (MD) 50M 1:45 training is underway at 33% completion . These are the model results accordingly. Telos Kappa (MD) 25M 1:30 Total Probes Evaluated: 101 Overall Average Target CE: 6.9008 Overall Average Rank: 409.1 Top-1 Accuracy: 0.00% (0/101) Top-5 Accuracy: 2.97% (3/101) Telos Kappa (MD) 50M 1:35 Total Probes Evaluated: 101 Overall Average Target CE: 7.0468 Overall Average Rank: 445.8 Top-1 Accuracy: 0.99% (1/101) Top-5 Accuracy: 4.95% (5/101) Telos Kappa (MD) 50M 1:40 Total Probes Evaluated: 101 Overall Average Target CE: 7.0563 Overall Average Rank 510.3 Top-1 Accuracy: 0.00% (0/101) Top-5 Accuracy 5.94% (6/101) Note that NONE of these are averages, they’re single-run probes. If you don’t exactly know what these numbers mean, just know that: Target CE (lower is better) Average Rank (lower is better) Top-1 Accuracy (higher is better) Top-5 Accuracy (higher is better) I will not be publishing the model files until the final report as well. If you had also noticed in this log, I had mentioned “Telos Kappa (MD)” rather than just “Telos Kappa” which is mentioned on the report and on the testing page, this is because this research will be continuing PAST Masked Diffusion models and into Uniform Noise Discrete Diffusion models and Continuous Space Diffusion models. If you want to know what Uniform Noise Discrete Diffusion and Continuous Space Diffusion models are, I would recommend going through papers by Justin Deschenaux, Sahoo et al. and Liu et al. References: https://arxiv.org/abs/2511.12114 https://arxiv.org/abs/2506.10892 https://arxiv.org/abs/2602.15014 https://arxiv.org/abs/2602.21185 https://arxiv.org/abs/2605.11125 Stay tuned for the future of my research! (btw, here’s a pic of how training looks like… or in other words how much my laptop is suffering)"}, {"post_id": 46359, "ts": "2026-08-13T15:10:14Z", "hours": 37.6539, "text": "This was meant to be a weekend project for me to learn basics of LLMs with… Instead I’ve managed to work on Diffusion Language Models and perform research on it considering there’s not much (or enough) knowledge on Diffusion Language Models to begin with (as far as I’ve seen). So here’s what I’ve done instead of being normal: Research on Scaling Masked Diffusion Language Models An absolute pain of a research project but maybe worth it. This is the testing page and research paper . Had to deal with nightmares like timestep distribution, datatype mismatch and running out of compute all the time and optimising for MLX, but guess I managed to (somewhat) answer the primary question I had for Masked Diffusion Language Models: How do tokens scale with parameters for MDLMs? The full answer, methodology, and evidence are in the report linked above. But if you’re lazy and just want the current empirical relationships, here they are (these are still preliminary and may change as the research continues) : R(N)=14.43⋅ln(N)−21.44 R(N)=6.83⋅√N−9.14 R(N)=2.39⋅N^(0.74) Where R(N) is the optimal token to parameter ratio for a model of N parameters (in millions) Somehow this was a weekend project. That ended up taking more than a week and probably take even more time than this for a full report."}]...
|
Title: Telos by @kazenoko | Stardance
Devlogs:
Th Title: Telos by @kazenoko | Stardance
Devlogs:
This was meant to be a weekend project for me to learn basics of LLMs with… Instead I’ve managed to work on Diffusion Language Models and perform research on it considering there’s not much (or enough) knowledge on Diffusion Language Models to begin with (as far as I’ve seen). So here’s what I’ve done instead of being normal: Research on Scaling Masked Diffusion Language Models An absolute pain of a research project but maybe worth it. This is the testing page and research paper . Had to deal with nightmares like timestep distribution, datatype mismatch and running out of compute all the time and optimising for MLX, but guess I managed to (somewhat) answer the primary question I had for Masked Diffusion Language Models: How do tokens scale with parameters for MDLMs? The full answer, methodology, and evidence are in the report linked above. But if you’re lazy and just want the current empirical relationships, here they are (these are still preliminary and may change as the research continues) : R(N)=14.43⋅ln(N)−21.44 R(N)=6.83⋅√N−9.14 R(N)=2.39⋅N^(0.74) Where R(N) is the optimal token to parameter ratio for a model of N parameters (in millions) Somehow this was a weekend project. That ended up taking more than a week and probably take even more time than this for a full report.
Research on Masked Diffusion Language Models continues. Not much has occurred, but three models have been trained which will count towards the final report. Telos Kappa (MD) 25M 1:30 Telos Kappa (MD) 50M 1:35 Telos Kappa (MD) 50M 1:40 And Telos Kappa (MD) 50M 1:45 training is underway at 33% completion . These are the model results accordingly. Telos Kappa (MD) 25M 1:30 Total Probes Evaluated: 101 Overall Average Target CE: 6.9008 Overall Average Rank: 409.1 Top-1 Accuracy: 0.00% (0/101) Top-5 Accuracy: 2.97% (3/101) Telos Kappa (MD) 50M 1:35 Total Probes Evaluated: 101 Overall Average Target CE: 7.0468 Overall Average Rank: 445.8 Top-1 Accuracy: 0.99% (1/101) Top-5 Accuracy: 4.95% (5/101) Telos Kappa (MD) 50M 1:40 Total Probes Evaluated: 101 Overall Average Target CE: 7.0563 Overall Average Rank 510.3 Top-1 Accuracy: 0.00% (0/101) Top-5 Accuracy 5.94% (6/101) Note that NONE of these are averages, they’re single-run probes. If you don’t exactly know what these numbers mean, just know that: Target CE (lower is better) Average Rank (lower is better) Top-1 Accuracy (higher is better) Top-5 Accuracy (higher is better) I will not be publishing the model files until the final report as well. If you had also noticed in this log, I had mentioned “Telos Kappa (MD)” rather than just “Telos Kappa” which is mentioned on the report and on the testing page, this is because this research will be continuing PAST Masked Diffusion models and into Uniform Noise Discrete Diffusion models and Continuous Space Diffusion models. If you want to know what Uniform Noise Discrete Diffusion and Continuous Space Diffusion models are, I would recommend going through papers by Justin Deschenaux, Sahoo et al. and Liu et al. References: https://arxiv.org/abs/2511.12114 https://arxiv.org/abs/2506.10892 https://arxiv.org/abs/2602.15014 https://arxiv.org/abs/2602.21185 https://arxiv.org/abs/2605.11125 Stay tuned for the future of my research! (btw, here’s a pic of how training looks like… or in other words how much my laptop is suffering)
Devlog 3: annoyances. Somehow: I had forgotten to implement RoPE for MLX training . This wasn’t a MASSIVE issue because the research is based on MDLMs (Masked Diffusion Language Models) rather than AR (Autoregressive models) . Why? In AR models, RoPE is critical because the model must distinguish between position 1 and 500 to generate coherent left-to-right sequences. However, in MDLMs, the model predicts all masked tokens simultaneously. Positional ordering matters less just because the model learns what token fits in a masked slot based on bidirectional context, and not what comes next. But it didn’t mean I could still use the old models. The model can still learn what tokens are likely without RoPE, but it is weaker at understanding where in a function body it is. (e.g, is it the beginning of a function or the return statement) Thankfully, I did not have to retrain all models. I could fine-tune RoPE into existing checkpoints instead. The new CE vs Token Multiplier graph is attached to this devlog. Annoyingly, this meant my formulas have to change. Because clearly, the model quality has jumped to be better from 1:15 to 1:20 for a 12.5M model, and from 1:25 to >=1:30 model for a 25M model, which means I will need to train more 25M models at 1:35, 1:40, so on. Especially considering Target CE reduces THAT drastically. It takes exceptionally long to train models as we scale further and further. The 50M 1:45 model is 67% of the way done since the last devlog, and it had been running overnight. Research on this will be uploaded later on. Research on Uniform Noise DLMs will start even later in this case, and Continuous Space DLMs even further than that. I’ve done some amount of learning into both of those though, UNDLM architecture is pretty easy to implement on top of my MDLM architecture. One code block change. The primary benefit of UNDLMs is that they can correct their own responses. Continuous Space DLMs too, but the architecture has to be rewritten for CSDLMs. Not just that: it introduces a few issues. Rounding errors: final discrete -> token projection can cause errors Training complexity: Need to jointly optiise embeddings and score network Less mature tooling Well. Stay tuned.
Devlog 4: Preliminary Report 2. Firstly, here is the preliminary report #2 itself. More model runs have occurred since the last devlog, namely: Telos Kappa (MD) 12.5M 1:30 Telos Kappa (MD) 25M 1:35 Telos Kappa (MD) 25M 1:40 Telos Kappa (MD) 25M 1:45 (ongoing) Telos Kappa (MD) 50M 1:45 And data brings confusing news. As seen by the graphs attached, target CE continues to drop for both 50M and 25M models while still increasing for 12.5M models. This would indicate that the 50M and 25M models are improving, but probes data says otherwise. It improves in some categories and actually gets worse in others. What do I mean by that? 25M 1:40 gets better in Literals, Operators, Keywords, and Imports, but gets worse in Identifier Recovery, Function Names, and Attribute Names. The same trend appeared across the suite, yielding these numbers as the sweet spots: 12.5M: 1:20 25M: 1:30 50M: 1:35 With performance divergences and collapses past those boundaries. The RoPE Retrofitting Pitfall Which leads me to a conclusion that I had mentioned in the previous devlog — namely, how I implemented RoPE. For the existing models that were trained with learned absolute positional embeddings, I performed a 150-step RoPE fine-tuning adaptation (~19M tokens, barely ~1% of their training duration). The idea in theory was simple: let the attention heads quickly adapt to relative rotary rotations, but in practice, this 150-step surgical hack actively damaged the models across the board : 50M 1:25: 7.19 -> 7.79 50M 1:35: 7.05 -> 7.72 25M 1:30: 6.90 -> 7.55 (lower is better) For a transformer with billions of tokens of uninterrupted convergence, abruptly rotating query and key vectors in attention circuits calibrated for absolute coordinate space is a violent geometric shock. 150 steps was not nearly enough time to re-align the attention geometry — it simply threw the models into a worse local basin. Native RoPE vs. The Parameter Capacity Ceiling On the flip side, models trained natively with RoPE from step 0 (like 25M 1:35 and 25M 1:40) told a very different story: Top-1 Accuracy: 7.92% (New record) Top-5 Accuracy: 17.82% (New record) Overall CE: 7.24 nats They set high-water marks for positional accuracy and syntactic prediction. So why did their average rank still increase on Function Names and Attribute Names? My conclusion: Because at 25M parameters, we slammed directly into a capacity allocation ceiling: In extreme over-training regimes, gradient descent aggressively prioritizes easy, position-predictable tokens (literals at rank #32, operators at rank #67) to greedily minimize loss. Because 25M parameters is a fixed representational budget, the network exhausts its capacity on structural syntax and starves the complex semantic heads needed for open-vocabulary naming (self.config vs self.logger at rank #3,954). The loss drops on paper, but the model becomes a syntactic pattern-matcher rather than a semantic code understander. The Inherent Ceiling of Masked Diffusion (MDLM) This brings us to the fundamental limitation of standard Masked Discrete Diffusion: the lack of self-correction. In an MDLM, once a token is unmasked during sampling, that decision is locked in permanently. If the model commits early to a structural template, it has no way to revise downstream semantic errors as the broader context comes into view. Next: Pivoting to Uniform Noise DLMs. Due to my absolute stupidity, retraining will have to occur for most MDLMs here. Expect results for those next week. But that is where MDLM research concludes (mostly) . We are moving onwards with Uniform Noise Diffusion Language Models after that, which introduces true iterative self-correction for code generation, which gives the model the ability to fix its own mistakes. Stay tuned.
Devlog 5: THREE Paradigms. There are now THREE different model architectures in one unified codebase. Masked Discrete Diffusion Uniform Noise Diffusion Autoregressive Why? We’re comparing them?.. I don’t care, what are the results? A lot. But I am unable to infer much from this except that: Autoregressive models scale really well. Masked Diffusion models are stable. Don’t know what the hell is going on with Uniform Noise DLMs. More data is required for me to make any comment. Anyways: the repo has been updated and now it’s easy for anyone to train an AR, MD or UND language model! Not that I recommend. Stay tuned. Next preliminary report, eh… not coming soon. Here’s graphs too btw.
Devlog 6: Probes. There’s actually not much here except more data points for me to work with. Not much changes either. Well, unless you’d like to know that I updated my Training Suites Python notebook with a few more lines (calling the function… more times for training more models) Well regardless, the images contain all the data both you and I need. What I could infer with this… little data. Few things for certain: My training code is at least 100% correct considering AR shows no improvement past the 1:20 mark. My formula from preliminary paper 1 also matches with whatever is going on with the MDLM. And UNDLM just sucks. That’s kinda expected, actually! Previous research papers prove that UNDLMs have noticeably less quality than MDLMs at the same scale. Model quality should be like this AR > MDLM > UNDLM And it’s showing here. Which is good. So at least no errors here, so far. Stay tuned. by the way, the website was JUST updated with new-but-not-the-newest-as-of-this-and-the-previous-devlog models, DON’T expect good code. If your expectations are low, put them in the negatives, if you could.
Devlog 7: I don’t have much to give you. This is the point where scaling becomes hard. Because of my own stupidity (I just invalidated my 25M model runs because I set the wrong LR) Compute (and the fact that I’m running thrice the amount of models I was running before for training) So. Where are we headed? TPUs. Once again. Please send me prayers so that some nice company gives me compute :) LightningAI and Cerebras have already ghosted me. Here’s the weird graph that doesn’t matter anymore (25M MDLM doesn’t matter. AR and UNDLM unaffected because they don’t sample t randomly per batch) Stay tuned?
Devlog 8: I at least have a bit more to give this time. First: let me just tell you HOW BAD MY TRAINING SITUATION IS. Thankfully, I did manage to get some compute. 25 credits on Lightning AI in fact, which is helpful. I used up about 2.35 now for a few tests. The other 1.35 was from my old credit balance from long back just before I was about to run out of Lightning AI credits. The fact is that the Lightning AI credits didn’t matter at all. My Mac’s still the better machine to train AI models on, for now. TPU v6e-1 does yield a 2.5x increase in training throughput over my M5 Pro, but that’s not an increase I’m expecting with it having 916 TFLOPS in BF16 quantization while my M5 Pro has like… 17 something TFLOPS. The reason is pretty simple though. My scale isn’t big enough. 25M parameter models can’t occupy enough of the two Matrix Multiply Units, resulting in it not utilizing the whole TPU. To add insult to injury, setting a higher microbatch size (like to 256) causes Out Of Memory errors. To even occupy those two MXUs fully, I’d need AT MINIMUM a 50M model. So the scale has to be bigger. (or well, the matmuls for the 25M and 50M) I had actually tested the v5e-8 on Kaggle. Safe to say it performed worse than my M5 Pro. 💀 Not because the TPU v5e-8 itself was… bad. It wasn’t. It’s the fact that there’s a massive communication overhead. The CPU becomes the bottleneck. Would a bigger model solve that too? MAYBE. Can’t say for sure, not saying for sure. So how long is training going to take? FOUR OR FIVE DAYS. what? 🥀 YES. Unfortunately, even if I run 2x T4’s to speed up my situation, at most it’ll take 3-4 days to train the required models. 25M 1:20 is actively running, and will take 11 more hours to complete. This is upscaling from 12.5M 1:20. 25M 1:25 is scheduled to run after the 25M 1:20, and that will take 14 more hours… After that, it’s the train-from-scratch models… which I’ll try to speed up by running on 2x T4, but I can’t guarantee any speed-ups. So what after this? 50M and 100M train runs. And these should actually be faster, in theory, than the 25M model runs. Watch me be wrong though. But IN THEORY, once again, 50M 1:10 itself is maybe a ~20 minute job on TPU v6e-1. Before I get on with the results of whatever models I’ve trained so far, I have an admission. I kinda didn’t explain what all the terms I’ve mentioned are… And if I did, they’re scattered everywhere. Well I’ll have to explain this next devlog anyway, I’m running out of my 4000 character limit 😭 Getting onto the evaluations… You may have noticed that I mentioned UNDLMs are less stable to train last devlog. Taking ONE look at the graph shows EXACTLY why. The Average Target Rank for the 12.5M UNDLM is going MENTAL. That is NOT a normal graph. Also, the fact I’ve mentioned in the previous devlog, still holds true. AR > MDLM > UNDLM. And another thing: I don’t think we’re getting an AR replacement any time soon. I doubt even at higher parameters, MDLM and UNDLM still won’t catch up to AR. Something that kinda deviates from previous preliminary reports… The CE, Average Target Rank and Top 5 Accuracy were somewhat consistent before. But those are different here. Even if CE for MDLMs drop, Average Target Rank actually stay consistent or increase, while Top 5 Accuracy actually increases. UNDLMs are bad enough that this isn’t something we need to worry about at all, yet. Well, regardless, that’s all I have for you today. Stay tuned. (by the way, updating the website soon with an actual preview of how AR, MDLM and UNDLMs generate text to make the website more functional. trust me - it looks cool.)
Ships:
This was supposed to be a weekend project to learn LLMs. It became independent research on scaling Masked Diffusion Language Models instead. I built the models, survived datatype/timestep nightmares, optimized MLX on Apple Silicon, achieved ~1.5–2× faster local training, and investigated how training tokens scale with model parameters. To test the models or look at the research, head on over to https://telos.research.wingit.tech/ (please don’t expect the models to be good - they are NOT. They’re small models that barely generate anything useful [clearly, shown by the screenshot] and the only useful thing about them is how much the correct answer probabilities improve with increase in parameters and tokens, do note that inference is also pretty slow.)...
|
1792878787.1977553
|
1793742787.1977553
|
|
45418
|
Tic-Tac-Toe by @M-Ibrahim | Stardance
|
M-Ibrahim
|
1
|
5.0
|
3
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-08T18:15:12Z", "hours": 5.0, "multiplier": 1.03, "payout": 3, "blessing": "cursed", "text": "This game is a two player game and I create it using HTML,JAVA SCRIPT and CSS", "repo": "https://github.com/Ibrahim-Khudadad/Tic-Tac-Toe", "demo": "https://ibrahim-khudadad.github.io/Tic-Tac-Toe/"}]...
|
[{"post_id": 43098, "ts": "202 [{"post_id": 43098, "ts": "2026-08-08T05:42:38Z", "hours": 4.8114, "text": "made entire game using HTML, Java Script and CSS"}]...
|
Title: Tic-Tac-Toe by @M-Ibrahim | Stardance
Devl Title: Tic-Tac-Toe by @M-Ibrahim | Stardance
Devlogs:
made entire game using HTML, Java Script and CSS
Ships:
This game is a two player game and I create it using HTML,JAVA SCRIPT and CSS...
|
1792882065.4352033
|
1793746065.4352033
|
|
45422
|
CMIYGL by @Imtiaz | Stardance
|
Imtiaz
|
1
|
3.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-08T21:14:32Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I saw a badge of Tyler, The Creator online, and it inspired to me to create my own. I could easily create it from photoshop. Then, I thought why don’t I create a fun project about it? Here we go, Call Me If You Get Lost. You can add signatures. Your own signature or handwritten font, whatever you like. you can change name, date of birth, location and your picture. there’s four types of background for an id. They are Yellow, Green, Pink or Blue, Choose whatever you like the most! Here, you can make an id just like him, or me!", "repo": "https://github.com/imtua/CMIYGL", "demo": "https://imtua.github.io/CMIYGL/"}]...
|
[{"post_id": 43534, "ts": "202 [{"post_id": 43534, "ts": "2026-08-08T21:07:31Z", "hours": 0.2881, "text": "DONE. 💯"}, {"post_id": 43516, "ts": "2026-08-08T20:45:19Z", "hours": 1.1339, "text": "Made all the css files and yes, i used AI coz whos gonna write like 20k lines of codes? not me, when AI exists!"}, {"post_id": 43463, "ts": "2026-08-08T18:54:34Z", "hours": 1.6983, "text": "So, I made the front design, but it doesn’t do anything yet. Gotta work on the other files."}]...
|
Title: CMIYGL by @Imtiaz | Stardance
Devlogs:
So, Title: CMIYGL by @Imtiaz | Stardance
Devlogs:
So, I made the front design, but it doesn’t do anything yet. Gotta work on the other files.
Made all the css files and yes, i used AI coz whos gonna write like 20k lines of codes? not me, when AI exists!
DONE. 💯
Ships:
I saw a badge of Tyler, The Creator online, and it inspired to me to create my own. I could easily create it from photoshop. Then, I thought why don’t I create a fun project about it? Here we go, Call Me If You Get Lost. You can add signatures. Your own signature or handwritten font, whatever you like. you can change name, date of birth, location and your picture. there’s four types of background for an id. They are Yellow, Green, Pink or Blue, Choose whatever you like the most! Here, you can make an id just like him, or me!...
|
1793436986.902849
|
1793523386.902849
|
|
45423
|
Reaper by @joeltcyril | Stardance
|
joeltcyril
|
1
|
10.0
|
49
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-25T13:46:28Z", "hours": 10.0, "multiplier": 5.0, "payout": 49, "blessing": "neutral", "text": "this was a fun project where i tried to create a DIY flipper zero, i hand made the pcb from scratch which could be seen in me devlogs. This project in no way is over and I wish to give it more updates and features, Right now facing with some power issue which will be soon fixed. As of right now this is it worked a lot of hours for this and Thank you for the support", "repo": "https://github.com/JoelCyril/reaper1.2", "demo": ""}]...
|
[{"post_id": 50501, "ts": "202 [{"post_id": 50501, "ts": "2026-08-19T17:44:29Z", "hours": 1.4, "text": "Finished all wiring. Tried to do my best in cable management"}, {"post_id": 48690, "ts": "2026-08-17T06:20:23Z", "hours": 3.8514, "text": "button extension wiring done and Md1101 soldered now the wiring for the sd and md1101 left"}, {"post_id": 45914, "ts": "2026-08-12T17:58:43Z", "hours": 1.8333, "text": "Wiring done for the button extension board"}, {"post_id": 44421, "ts": "2026-08-10T05:22:06Z", "hours": 2.1333, "text": "Wiring done for pn532"}, {"post_id": 43363, "ts": "2026-08-08T15:54:44Z", "hours": 0.4894, "text": "Working on a diy flipper zero- making the homemade pcb for it now"}]...
|
Title: Reaper by @joeltcyril | Stardance
Devlogs: Title: Reaper by @joeltcyril | Stardance
Devlogs:
Working on a diy flipper zero- making the homemade pcb for it now
Wiring done for pn532
Wiring done for the button extension board
button extension wiring done and Md1101 soldered now the wiring for the sd and md1101 left
Finished all wiring. Tried to do my best in cable management
Ships:
this was a fun project where i tried to create a DIY flipper zero, i hand made the pcb from scratch which could be seen in me devlogs. This project in no way is over and I wish to give it more updates and features, Right now facing with some power issue which will be soon fixed. As of right now this is it worked a lot of hours for this and Thank you for the support...
|
1793551786.0788298
|
1793638186.0788298
|
|
45431
|
Conlatus : AI screening Interview by @prthm | Star Conlatus : AI screening Interview by @prthm | Stardance...
|
prthm
|
1
|
2.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-10T05:58:19Z", "hours": 2.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Conlatus : AI-powered screening interviews I built Conlatus, an AI-powered screening interview system designed to automate the repetitive first stage of candidate screening. The Idea is : Create interview -> Candidate enters -> AI conducts interview -> Responses are processed -> Recruiter reviews results. The challenge ? The hardest part wasn’t simply connecting an AI API. It was turning an LLM into an actual interview workflow. I had to figure out how to manage interview state, connect the frontend and backend, process candidate responses, and structure the system so it could grow beyond a simple chatbot. The stuff that I’m proud at… It has a working backend, frontend interfaces, AI integration, environment configuration, documentation, and a reproducible local setup. Test it.. You’ll need Python and a Groq API key (LLM Provider). git clone https://github.com/conlatus/conlatus.git cd conlatus python -m venv .venv # Windows .venv/Scripts/activate # Linux / MacOS source .venv/bin/activate pip install -r requirements.txt # Create .env from .env.example cp .env .env.example # Update your GROQ API : GROQ_API_KEY=_groq_api_key # Start the server uvicorn backend.main:app --reload The app will be runnning on http://localhost:8000/ . And access admin dashboard on http://localhost:8000/admin/ note: Conlatus was mostly developer with the help of AI coding IDEs, especially Google Antigravity. I used it extensively for implementation, debugging, refactoring, architecture exploration and UI development. What I did. Is that I directed the development process, made architectural decisions, reviewed the generated code, tested the application, and iterated on implementation. I’ve actually created a user friendly website. You can find it at : https://conlatus.github.io/", "repo": "https://github.com/conlatus/conlatus", "demo": "https://conlatus.github.io/"}]...
|
[{"post_id": 43901, "ts": "202 [{"post_id": 43901, "ts": "2026-08-09T10:52:02Z", "hours": 1.1206, "text": "Hey everyone, I just gave the Conlatus UI a massive brand makeover! :D We waved goodbye to those generic glowing dark-mode vibes and said hello to a super sharp, minimal monochrome look. The admin, candidate, and dashboard pages all got this sleek new treatment. Out with the neon colors, and in with a gorgeous off-white and near-black palette. We switched over to the Inter font so everything is wonderfully tight and readable. I also squared off those bubbly rounded corners to a crisp 2px and ditched the heavy drop shadows for elegant, subtle borders. Those old placeholder badges are finally out of here, replaced by our official SVG logo! Oh, and the candidate chat is now completely stripped of colored bubbles so you can focus entirely on the actual conversation. ;) The best part is that I pulled all of this off using just vanilla CSS and variables, without bringing in any heavy frameworks. B-) I really hope you all love this clean new aesthetic as much as I do! <3"}, {"post_id": 43124, "ts": "2026-08-08T06:51:20Z", "hours": 0.5058, "text": "As of this project sounds a bit of corporate. It isn’t.. I’m onboard this project thanks to my college’s “Micro Project”. I’m going to show this project as a “Micro Project” in my college. The status of the application so far is that only I have make it crawl (not even working as intended). You can say that current status is the MVP of MVP. I’ve only attached an LLM using the GROQ’s API (Llama’s 70b model). And I’m planning to use a smaller model (maybe: Llama 8b). Because.. I found out that GROQ only gives 500k tokens per day. And mostly that becomes half if we use bigger model like 70b or GPT OSS 120b. So, even though my application doesn’t need that much thinking power. I’ll be planning to use better context pipeline to feed it welll even in the small model. I’ll be sharing my architecture of this project soon… Happy hacking ;)"}]...
|
Title: Conlatus : AI screening Interview by @prthm Title: Conlatus : AI screening Interview by @prthm | Stardance
Devlogs:
As of this project sounds a bit of corporate. It isn’t.. I’m onboard this project thanks to my college’s “Micro Project”. I’m going to show this project as a “Micro Project” in my college. The status of the application so far is that only I have make it crawl (not even working as intended). You can say that current status is the MVP of MVP. I’ve only attached an LLM using the GROQ’s API (Llama’s 70b model). And I’m planning to use a smaller model (maybe: Llama 8b). Because.. I found out that GROQ only gives 500k tokens per day. And mostly that becomes half if we use bigger model like 70b or GPT OSS 120b. So, even though my application doesn’t need that much thinking power. I’ll be planning to use better context pipeline to feed it welll even in the small model. I’ll be sharing my architecture of this project soon… Happy hacking ;)
Hey everyone, I just gave the Conlatus UI a massive brand makeover! :D We waved goodbye to those generic glowing dark-mode vibes and said hello to a super sharp, minimal monochrome look. The admin, candidate, and dashboard pages all got this sleek new treatment. Out with the neon colors, and in with a gorgeous off-white and near-black palette. We switched over to the Inter font so everything is wonderfully tight and readable. I also squared off those bubbly rounded corners to a crisp 2px and ditched the heavy drop shadows for elegant, subtle borders. Those old placeholder badges are finally out of here, replaced by our official SVG logo! Oh, and the candidate chat is now completely stripped of colored bubbles so you can focus entirely on the actual conversation. ;) The best part is that I pulled all of this off using just vanilla CSS and variables, without bringing in any heavy frameworks. B-) I really hope you all love this clean new aesthetic as much as I do! <3
Ships:
Conlatus : AI-powered screening interviews I built Conlatus, an AI-powered screening interview system designed to automate the repetitive first stage of candidate screening. The Idea is : Create interview -> Candidate enters -> AI conducts interview -> Responses are processed -> Recruiter reviews results. The challenge ? The hardest part wasn’t simply connecting an AI API. It was turning an LLM into an actual interview workflow. I had to figure out how to manage interview state, connect the frontend and backend, process candidate responses, and structure the system so it could grow beyond a simple chatbot. The stuff that I’m proud at… It has a working backend, frontend interfaces, AI integration, environment configuration, documentation, and a reproducible local setup. Test it.. You’ll need Python and a Groq API key (LLM Provider). git clone https://github.com/conlatus/conlatus.git cd conlatus python -m venv .venv # Windows .venv/Scripts/activate # Linux / MacOS source .venv/bin/activate pip install -r requirements.txt # Create .env from .env.example cp .env .env.example # Update your GROQ API : GROQ_API_KEY=_groq_api_key # Start the server uvicorn backend.main:app --reload The app will be runnning on http://localhost:8000/ . And access admin dashboard on http://localhost:8000/admin/ note: Conlatus was mostly developer with the help of AI coding IDEs, especially Google Antigravity. I used it extensively for implementation, debugging, refactoring, architecture exploration and UI development. What I did. Is that I directed the development process, made architectural decisions, reviewed the generated code, tested the application, and iterated on implementation. I’ve actually created a user friendly website. You can find it at : https://conlatus.github.io/...
|
1793437002.5909202
|
1793523402.5909202
|
|
45432
|
Harry by @shravyakr0 | Stardance
|
shravyakr0
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-12T07:09:24Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Harry is a small Slack bot I built with Node.js and Slack Bolt. It has a few commands for checking ping latency, getting random jokes, and finding random cat facts. I also deployed it on Hack Club Nest so it can stay online without my computer running.", "repo": "https://github.com/shravyakr0/harry", "demo": "https://hackclub.enterprise.slack.com/archives/C0BQKJY4872"}]...
|
[{"post_id": 45619, "ts": "202 [{"post_id": 45619, "ts": "2026-08-12T07:08:24Z", "hours": 1.1264, "text": "verified"}, {"post_id": 43262, "ts": "2026-08-08T12:49:37Z", "hours": 0.2236, "text": "harry is working"}]...
|
Title: Harry by @shravyakr0 | Stardance
Devlogs:
Title: Harry by @shravyakr0 | Stardance
Devlogs:
harry is working
verified
Ships:
Harry is a small Slack bot I built with Node.js and Slack Bolt. It has a few commands for checking ping latency, getting random jokes, and finding random cat facts. I also deployed it on Hack Club Nest so it can stay online without my computer running....
|
1793555345.7162983
|
1793641745.7162983
|
|
45437
|
My Personal Site by @gavrilcatalin | Stardance
|
gavrilcatalin
|
1
|
2.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-12T19:43:36Z", "hours": 2.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made my own website so when i go somewhere, i can present myself with this website", "repo": "https://github.com/nyvrixista/My-Personal-Website", "demo": "https://nyvrixista.github.io/My-Personal-Website/"}]...
|
[{"post_id": 43497, "ts": "202 [{"post_id": 43497, "ts": "2026-08-08T19:58:22Z", "hours": 2.0786, "text": "I worked 2 hours on a fully polished personal website."}]...
|
Title: My Personal Site by @gavrilcatalin | Starda Title: My Personal Site by @gavrilcatalin | Stardance
Devlogs:
I worked 2 hours on a fully polished personal website.
Ships:
I made my own website so when i go somewhere, i can present myself with this website...
|
1793119671.193616
|
1793983671.193616
|
|
45447
|
xdna.cpp by @satvikhardat | Stardance
|
|
1
|
87.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-31T15:45:47Z", "hours": 87.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Run GGUF quantized models directly on AMD XDNA1 NPUs (Ryzen AI 7040 / 8040 series) with llama.cpp its a fork or bettter said plugin of llama.cpp specially made to run models using amd NPUs Using AMD’s hawkpoint NPUs to run LLMs!! its a llama.cpp plugin not a standalone runtime to ensure supporting most models, but it has a few cool kernels targeted at the the xdna1 arch bcs as it turns out, the support for xdna1 NPUs is like really dead everyones like xdna2 yay, but i hv a xdna1 CPU so ima use every bit of it ig lol", "repo": "https://github.com/random-unknown-username/xdna.cpp", "demo": "https://github.com/random-unknown-username/xdna.cpp/releases/tag/v1.0.0"}]...
|
[{"post_id": 58984, "ts": "202 [{"post_id": 58984, "ts": "2026-08-31T15:43:02Z", "hours": 7.7858, "text": "Devlog 08 — Aug 31: The Crossover Spectrum & v1.0 Ship Finished multi-model crossover validation across three scales (0.5B, 3B, 27B): // Adaptive Heterogeneous Scheduling if ( N <= 256 ) { // Tiny matrices (<60 KB) run on CPU SIMD to avoid driver dispatch overhead cpu_engine -> run ( weights , weight_bytes , N , K , act , out ); } else { // Medium/Large matrices stream to 16 AIE2 compute tiles xdna_engine -> run ( weights , weight_bytes , N , K , act , out ); } Measured Crossover Scoreboard Qwen2.5-0.5B (403 MB) : CPU favored (106.5 t/s vs 72.6 t/s XDNA hybrid) due to small 60 KB payloads. Qwen2.5-3B (1.86 GB) : XDNA wins decisively: 16.5 tok/s vs 9.8 tok/s CPU (+68.8% / 1.69× speedup) . Qwen3.8-27B (15.2 GB) : XDNA sustains 1.72 tok/s streaming 12.6 GiB smoothly on a 32 GB laptop. Numerical Quality : Verified 100% Top-1 token match across all 3 scales. Shipped v1.0.0 with standalone binaries and clean architecture docs!"}, {"post_id": 57796, "ts": "2026-08-30T02:55:21Z", "hours": 12.8164, "text": "Devlog 07: Bounded 128MB Staging Ring & The 11.5x Recovery Architected the fix for the 27B memory collapse: a bounded double-buffered staging ring in src/xdna-gemv-engine.cpp . // Allocate exactly two 64 MB host-only staging buffers (128 MB total pinned memory) static constexpr size_t STAGING_BO_SIZE = 64 * 1024 * 1024 ; bo_staging [ 0 ] = std :: make_unique < xrt :: bo > ( * device , STAGING_BO_SIZE , xrt :: bo :: flags :: host_only , 0 ); bo_staging [ 1 ] = std :: make_unique < xrt :: bo > ( * device , STAGING_BO_SIZE , xrt :: bo :: flags :: host_only , 0 ); // Double-buffered stream from mmap page cache size_t stage_idx = current_op % 2 ; std :: memcpy ( bo_staging_map [ stage_idx ], mmap_weight_ptr , weight_bytes ); kernel_dpu -> operator ()(..., * bo_staging [ stage_idx ], ...); flags::host_only : Limits pinned kernel memory strictly to $2 \\times 64\\text{ MB} = \\mathbf{128\\text{ MB}}$. mmap_weight_ptr : Weights stay in standard page cache ( MAP_SHARED ), freely managed by Linux VM. Result: pgmajfault and swap dropped to 0 . 27B decode speed jumped from 0.15 tok/s to 1.72 tok/s —an 11.5× end-to-end recovery ."}, {"post_id": 54488, "ts": "2026-08-25T14:40:48Z", "hours": 12.2272, "text": "Devlog 06 The 27B Disaster & 12.6 GB Unevictable BO Crisis Tried loading Qwen3.8-27B-Q4_0 (15.2 GB). Everything collapsed: token speed plummeted to 0.15 tok/s (6.67 seconds/token) . Ran /proc/meminfo and /proc/vmstat diffs during decode to find the bottleneck: /proc/meminfo during 27B crash: MemTotal: 31,842 MB Unevictable: 12,640 MB <-- 369 persistent XRT BOs locked in RAM! pgmajfault: 520,118 <-- 520k disk page reads PER TOKEN pswpout: 18,400 <-- active swap storm The bug: Allocating persistent xrt::bo objects for all 369 model tensors pinned 12.6 GB into Unevictable kernel memory . The result: On a 32 GB laptop with OS and KV cache, Linux was starved of clean page cache. Every layer forced synchronous swap-outs and major page faults to disk. Persistent BO allocation for large models is fundamentally broken on consumer RAM."}, {"post_id": 50947, "ts": "2026-08-20T12:42:25Z", "hours": 9.7175, "text": "Devlog 05: Standalone GEMV Ceiling: Sustaining 38.5 GB/s Built tools/bench-aie-gemv-standalone.cpp to measure pure hardware DMA bandwidth without graph scheduler overhead. auto t0 = std :: chrono :: high_resolution_clock :: now (); bo_weights -> sync ( XCL_BO_SYNC_BO_TO_DEVICE ); kernel_run . wait (); auto t1 = std :: chrono :: high_resolution_clock :: now (); double gb_s = ( bytes / ( dt_ns * 1e-9 )) / 1e9 ; sync(TO_DEVICE) : Flushes dirty CPU lines and triggers DMA transport. kernel_run.wait() : Waits for AIE vector compute completion. Tested synthetic matrix sizes out to 1 GB ($K=5120$): 16 MB: 31.87 GB/s (0.53 ms) 128 MB: 34.27 GB/s (3.92 ms) 1024 MB: 38.57 GB/s (27.84 ms) Linear fit: $T(\\text{bytes}) \\approx 0.15\\text{ ms} + \\frac{\\text{bytes}}{38.5\\text{ GB/s}}$. The ~150 µs startup overhead gets amortized as matrix size grows."}, {"post_id": 47977, "ts": "2026-08-16T07:59:35Z", "hours": 11.2086, "text": "Devlog 04: 4-Column Planar Prepacking & First Real AIE Run Standard GGUF interleaves nibbles row-by-row. But AIE2 vector tiles need weights split into 4 independent planar column channels aligned to 64-byte boundaries. Wrote xdna-q4-prepack.cpp to deinterleave GGUF Q4 weights: // 4-Column Planar Deinterleaving for ( size_t col = 0 ; col < 4 ; ++ col ) { uint8_t * dst_col = packed_out + col * col_bytes ; for ( size_t row = 0 ; row < N ; ++ row ) { const uint8_t * src_nibbles = src_weights + row * row_stride + col * ( K / 4 ) / 2 ; deinterleave_and_align64 ( src_nibbles , dst_col + row * 64 , K / 4 ); } } col * (K / 4) : Strips matrix columns across the 4 independent NPU memory tiles. 64-byte alignment : Direct DMA streaming into tile L1 SRAM without unaligned stalls. Inside AIE: aie::unpack converts uint4 to BF16, scales, and computes fused vector MACs. First interactive generation on physical NPU! Cosine similarity against CPU FP32 oracle: 0.9999 ."}, {"post_id": 46963, "ts": "2026-08-14T15:29:37Z", "hours": 13.0922, "text": "Devlog 03: The CPU Baseline (AVX2 / FMA Golden Oracle) Before writing custom AIE kernels, we needed an unyielding golden oracle to check numerical correctness and see how fast the host CPU is. Wrote an unrolled AVX2/FMA Q4_0 vector engine in src/cpu-q4-gemv-engine.cpp : const __m256i raw = _mm256_loadu_si256 ( reinterpret_cast < const __m256i *> ( w_ptr )); const __m256i lo_nibbles = _mm256_and_si256 ( raw , _mm256_set1_epi8 ( 0x0F )); const __m256 w_f32 = _mm256_cvtepi32_ps ( _mm256_sub_epi32 ( lo_nibbles , _mm256_set1_epi32 ( 8 ))); acc = _mm256_fmadd_ps ( _mm256_mul_ps ( w_f32 , scale_vec ), act_vec , acc ); _mm256_and_si256(..., 0x0F) : Masks out the low 4-bit nibbles from 32 packed weights. _mm256_sub_epi32(..., 8) : Subtracts the Q4_0 symmetric offset (8). _mm256_fmadd_ps : Fused multiply-accumulate with FP32 activations in single-cycle throughput. Benchmarked Qwen2.5-0.5B on CPU: 106.5 tok/s (9.38 ms/tok) on 8 threads. Modern Zen 4 AVX2 is blazing fast on small models, so the NPU has a high bar to clear."}, {"post_id": 44511, "ts": "2026-08-10T09:54:07Z", "hours": 8.0289, "text": "Devlog 02: Hardware Smoke Tests & The 14ms Trap why have random shi like gate-1? bcs xdna1 is the worst supported from amd, idk their docs are incomplete im like testing and figuring stuff out Gate 1 milestone: getting real AIE execution contexts spinning via AMD XRT. Initial prototype had a huge bug: we were creating an xrt::hw_context and reloading the .xclbin bitstream inside the operator compute loop. Profiling showed this added ~14 ms of pure driver overhead per tensor dispatch —which murdered performance before we even started doing math. Fixed it by making the context a persistent backend singleton: // Initialize context & load bitstream ONCE at startup device = std :: make_unique < xrt :: device > ( device_index ); xrt :: uuid uuid = device -> register_xclbin ( xclbin_img ); hw_ctx = std :: make_unique < xrt :: hw_context > ( * device , uuid ); xrt :: module mod ( elf_img ); kernel_dpu = std :: make_unique < xrt :: kernel > ( xrt :: ext :: kernel ( * hw_ctx , mod , \"DPU\" )); device->register_xclbin : Flashes the DPU bitstream once into the NPU fabric. hw_ctx : Persistent hardware context reused across all tensor iterations. Dispatch overhead instantly dropped from 14 ms down to ~38 µs."}, {"post_id": 43766, "ts": "2026-08-09T05:55:28Z", "hours": 12.0031, "text": "Devlog 01: Talking to the Silicon (DRM & Phoenix Discovery) So the plan is simple: get GGUF models running straight on the Ryzen AI NPU without touching bloated ONNX or Vitis runtimes. First step was checking if we could even talk to /dev/accel/accel0 directly without root. Wrote a quick probe calling the kernel’s amdxdna DRM driver ioctls: struct amdxdna_drm_get_info info {}; info . param = DRM_AMDXDNA_GET_INFO_TOPOLOGY ; ioctl ( fd , DRM_IOCTL_AMDXDNA_GET_INFO , & info ); DRM_IOCTL_AMDXDNA_GET_INFO : Queries the hardware directly from the kernel. info.param = TOPOLOGY : Confirmed our Phoenix chip has 4 columns × 4 compute rows = 16 AIE2 tiles. Instead of dragging in a 10 GB SDK, we wrote our own include/xdna/amdxdna_uapi.h directly matching the kernel driver structs. Zero bloat, instant builds."}]...
|
Title: xdna.cpp by @satvikhardat | Stardance
Devl Title: xdna.cpp by @satvikhardat | Stardance
Devlogs:
Devlog 01: Talking to the Silicon (DRM & Phoenix Discovery) So the plan is simple: get GGUF models running straight on the Ryzen AI NPU without touching bloated ONNX or Vitis runtimes. First step was checking if we could even talk to /dev/accel/accel0 directly without root. Wrote a quick probe calling the kernel’s amdxdna DRM driver ioctls: struct amdxdna_drm_get_info info {}; info . param = DRM_AMDXDNA_GET_INFO_TOPOLOGY ; ioctl ( fd , DRM_IOCTL_AMDXDNA_GET_INFO , & info ); DRM_IOCTL_AMDXDNA_GET_INFO : Queries the hardware directly from the kernel. info.param = TOPOLOGY : Confirmed our Phoenix chip has 4 columns × 4 compute rows = 16 AIE2 tiles. Instead of dragging in a 10 GB SDK, we wrote our own include/xdna/amdxdna_uapi.h directly matching the kernel driver structs. Zero bloat, instant builds.
Devlog 02: Hardware Smoke Tests & The 14ms Trap why have random shi like gate-1? bcs xdna1 is the worst supported from amd, idk their docs are incomplete im like testing and figuring stuff out Gate 1 milestone: getting real AIE execution contexts spinning via AMD XRT. Initial prototype had a huge bug: we were creating an xrt::hw_context and reloading the .xclbin bitstream inside the operator compute loop. Profiling showed this added ~14 ms of pure driver overhead per tensor dispatch —which murdered performance before we even started doing math. Fixed it by making the context a persistent backend singleton: // Initialize context & load bitstream ONCE at startup device = std :: make_unique < xrt :: device > ( device_index ); xrt :: uuid uuid = device -> register_xclbin ( xclbin_img ); hw_ctx = std :: make_unique < xrt :: hw_context > ( * device , uuid ); xrt :: module mod ( elf_img ); kernel_dpu = std :: make_unique < xrt :: kernel > ( xrt :: ext :: kernel ( * hw_ctx , mod , "DPU" )); device->register_xclbin : Flashes the DPU bitstream once into the NPU fabric. hw_ctx : Persistent hardware context reused across all tensor iterations. Dispatch overhead instantly dropped from 14 ms down to ~38 µs.
Devlog 03: The CPU Baseline (AVX2 / FMA Golden Oracle) Before writing custom AIE kernels, we needed an unyielding golden oracle to check numerical correctness and see how fast the host CPU is. Wrote an unrolled AVX2/FMA Q4_0 vector engine in src/cpu-q4-gemv-engine.cpp : const __m256i raw = _mm256_loadu_si256 ( reinterpret_cast < const __m256i *> ( w_ptr )); const __m256i lo_nibbles = _mm256_and_si256 ( raw , _mm256_set1_epi8 ( 0x0F )); const __m256 w_f32 = _mm256_cvtepi32_ps ( _mm256_sub_epi32 ( lo_nibbles , _mm256_set1_epi32 ( 8 ))); acc = _mm256_fmadd_ps ( _mm256_mul_ps ( w_f32 , scale_vec ), act_vec , acc ); _mm256_and_si256(..., 0x0F) : Masks out the low 4-bit nibbles from 32 packed weights. _mm256_sub_epi32(..., 8) : Subtracts the Q4_0 symmetric offset (8). _mm256_fmadd_ps : Fused multiply-accumulate with FP32 activations in single-cycle throughput. Benchmarked Qwen2.5-0.5B on CPU: 106.5 tok/s (9.38 ms/tok) on 8 threads. Modern Zen 4 AVX2 is blazing fast on small models, so the NPU has a high bar to clear.
Devlog 04: 4-Column Planar Prepacking & First Real AIE Run Standard GGUF interleaves nibbles row-by-row. But AIE2 vector tiles need weights split into 4 independent planar column channels aligned to 64-byte boundaries. Wrote xdna-q4-prepack.cpp to deinterleave GGUF Q4 weights: // 4-Column Planar Deinterleaving for ( size_t col = 0 ; col < 4 ; ++ col ) { uint8_t * dst_col = packed_out + col * col_bytes ; for ( size_t row = 0 ; row < N ; ++ row ) { const uint8_t * src_nibbles = src_weights + row * row_stride + col * ( K / 4 ) / 2 ; deinterleave_and_align64 ( src_nibbles , dst_col + row * 64 , K / 4 ); } } col * (K / 4) : Strips matrix columns across the 4 independent NPU memory tiles. 64-byte alignment : Direct DMA streaming into tile L1 SRAM without unaligned stalls. Inside AIE: aie::unpack converts uint4 to BF16, scales, and computes fused vector MACs. First interactive generation on physical NPU! Cosine similarity against CPU FP32 oracle: 0.9999 .
Devlog 05: Standalone GEMV Ceiling: Sustaining 38.5 GB/s Built tools/bench-aie-gemv-standalone.cpp to measure pure hardware DMA bandwidth without graph scheduler overhead. auto t0 = std :: chrono :: high_resolution_clock :: now (); bo_weights -> sync ( XCL_BO_SYNC_BO_TO_DEVICE ); kernel_run . wait (); auto t1 = std :: chrono :: high_resolution_clock :: now (); double gb_s = ( bytes / ( dt_ns * 1e-9 )) / 1e9 ; sync(TO_DEVICE) : Flushes dirty CPU lines and triggers DMA transport. kernel_run.wait() : Waits for AIE vector compute completion. Tested synthetic matrix sizes out to 1 GB ($K=5120$): 16 MB: 31.87 GB/s (0.53 ms) 128 MB: 34.27 GB/s (3.92 ms) 1024 MB: 38.57 GB/s (27.84 ms) Linear fit: $T(\text{bytes}) \approx 0.15\text{ ms} + \frac{\text{bytes}}{38.5\text{ GB/s}}$. The ~150 µs startup overhead gets amortized as matrix size grows.
Devlog 06 The 27B Disaster & 12.6 GB Unevictable BO Crisis Tried loading Qwen3.8-27B-Q4_0 (15.2 GB). Everything collapsed: token speed plummeted to 0.15 tok/s (6.67 seconds/token) . Ran /proc/meminfo and /proc/vmstat diffs during decode to find the bottleneck: /proc/meminfo during 27B crash: MemTotal: 31,842 MB Unevictable: 12,640 MB <-- 369 persistent XRT BOs locked in RAM! pgmajfault: 520,118 <-- 520k disk page reads PER TOKEN pswpout: 18,400 <-- active swap storm The bug: Allocating persistent xrt::bo objects for all 369 model tensors pinned 12.6 GB into Unevictable kernel memory . The result: On a 32 GB laptop with OS and KV cache, Linux was starved of clean page cache. Every layer forced synchronous swap-outs and major page faults to disk. Persistent BO allocation for large models is fundamentally broken on consumer RAM.
Devlog 07: Bounded 128MB Staging Ring & The 11.5x Recovery Architected the fix for the 27B memory collapse: a bounded double-buffered staging ring in src/xdna-gemv-engine.cpp . // Allocate exactly two 64 MB host-only staging buffers (128 MB total pinned memory) static constexpr size_t STAGING_BO_SIZE = 64 * 1024 * 1024 ; bo_staging [ 0 ] = std :: make_unique < xrt :: bo > ( * device , STAGING_BO_SIZE , xrt :: bo :: flags :: host_only , 0 ); bo_staging [ 1 ] = std :: make_unique < xrt :: bo > ( * device , STAGING_BO_SIZE , xrt :: bo :: flags :: host_only , 0 ); // Double-buffered stream from mmap page cache size_t stage_idx = current_op % 2 ; std :: memcpy ( bo_staging_map [ stage_idx ], mmap_weight_ptr , weight_bytes ); kernel_dpu -> operator ()(..., * bo_staging [ stage_idx ], ...); flags::host_only : Limits pinned kernel memory strictly to $2 \times 64\text{ MB} = \mathbf{128\text{ MB}}$. mmap_weight_ptr : Weights stay in standard page cache ( MAP_SHARED ), freely managed by Linux VM. Result: pgmajfault and swap dropped to 0 . 27B decode speed jumped from 0.15 tok/s to 1.72 tok/s —an 11.5× end-to-end recovery .
Devlog 08 — Aug 31: The Crossover Spectrum & v1.0 Ship Finished multi-model crossover validation across three scales (0.5B, 3B, 27B): // Adaptive Heterogeneous Scheduling if ( N <= 256 ) { // Tiny matrices (<60 KB) run on CPU SIMD to avoid driver dispatch overhead cpu_engine -> run ( weights , weight_bytes , N , K , act , out ); } else { // Medium/Large matrices stream to 16 AIE2 compute tiles xdna_engine -> run ( weights , weight_bytes , N , K , act , out ); } Measured Crossover Scoreboard Qwen2.5-0.5B (403 MB) : CPU favored (106.5 t/s vs 72.6 t/s XDNA hybrid) due to small 60 KB payloads. Qwen2.5-3B (1.86 GB) : XDNA wins decisively: 16.5 tok/s vs 9.8 tok/s CPU (+68.8% / 1.69× speedup) . Qwen3.8-27B (15.2 GB) : XDNA sustains 1.72 tok/s streaming 12.6 GiB smoothly on a 32 GB laptop. Numerical Quality : Verified 100% Top-1 token match across all 3 scales. Shipped v1.0.0 with standalone binaries and clean architecture docs!
Ships:
Run GGUF quantized models directly on AMD XDNA1 NPUs (Ryzen AI 7040 / 8040 series) with llama.cpp its a fork or bettter said plugin of llama.cpp specially made to run models using amd NPUs Using AMD’s hawkpoint NPUs to run LLMs!! its a llama.cpp plugin not a standalone runtime to ensure supporting most models, but it has a few cool kernels targeted at the the xdna1 arch bcs as it turns out, the support for xdna1 NPUs is like really dead everyones like xdna2 yay, but i hv a xdna1 CPU so ima use every bit of it ig lol...
|
1793551831.8490946
|
1793638231.8490946
|
|
45494
|
Minecraft client by @AshutoshPola | Stardance
|
AshutoshPola
|
1
|
8.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-26T16:15:43Z", "hours": 8.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Minecraft client please use responsibly, only works on minecraft java 1.21.11 fabric, the main problem this solves is the fact that you lose elo or are a quick drop if someone calls you in the middle of a game as you would stand still and die, The build in ai called sword ai does the basic running and fighting needed to keep you alive till you comeback, the rest of the features are only for anarchy servers as they improve your skill. Using any other module than the sword ai will get you banned so be carefull", "repo": "https://github.com/ashutosh-pola/cosmo-client", "demo": "https://github.com/ashutosh-pola/cosmo-client/releases/tag/V1.0.0"}]...
|
[{"post_id": 54295, "ts": "202 [{"post_id": 54295, "ts": "2026-08-25T07:40:10Z", "hours": 7.6975, "text": "This is a minecraft hack client ONLY FOR ANARCHY SERVERS, with a built in ai that plays for you. Have you ever had to leave a match mid way cuz your mom call you or you had to go check on something? causing you to lose your precious elo and de rank?Well this mod allows you to leave your desk and have an ai play for you + some extra features that should not be used anywhere else other than anarchy servers or you will be banned. Im almost done with it and after i finish making it and testing it, i will make a github repo and then ship the mod for everyone to try. The ai is not going to win you games (as then it would be a cheat) but it will try to atleast keep the game going until you come back. Using anything other than the sword ai on a normal pvp server will get you banned and is also not fair for other players, A lil teaser here for now"}]...
|
Title: Minecraft client by @AshutoshPola | Stardan Title: Minecraft client by @AshutoshPola | Stardance
Devlogs:
This is a minecraft hack client ONLY FOR ANARCHY SERVERS, with a built in ai that plays for you. Have you ever had to leave a match mid way cuz your mom call you or you had to go check on something? causing you to lose your precious elo and de rank?Well this mod allows you to leave your desk and have an ai play for you + some extra features that should not be used anywhere else other than anarchy servers or you will be banned. Im almost done with it and after i finish making it and testing it, i will make a github repo and then ship the mod for everyone to try. The ai is not going to win you games (as then it would be a cheat) but it will try to atleast keep the game going until you come back. Using anything other than the sword ai on a normal pvp server will get you banned and is also not fair for other players, A lil teaser here for now
Ships:
Minecraft client please use responsibly, only works on minecraft java 1.21.11 fabric, the main problem this solves is the fact that you lose elo or are a quick drop if someone calls you in the middle of a game as you would stand still and die, The build in ai called sword ai does the basic running and fighting needed to keep you alive till you comeback, the rest of the features are only for anarchy servers as they improve your skill. Using any other module than the sword ai will get you banned so be carefull...
|
1792878676.0550861
|
1793742676.0550861
|
|
45500
|
astroFETCH by @marygoat | Stardance
|
marygoat
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-09T01:32:38Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a website that pulls in data from the NASA website using their free API, showing the APOD (Astronomy Picture of the Day). It was challenging figuring out how to use the javascript and grab the required info, but it worked out! To access my website, just click on the try project down below or go to: https://awesomesauce4646.github.io/astro-fetch/ I’m proud of learning more about APIs, building off from the slack bot project that also used APIs to gather cat facts!", "repo": "https://github.com/awesomesauce4646/astro-fetch", "demo": "https://awesomesauce4646.github.io/astro-fetch/"}]...
|
[{"post_id": 43652, "ts": "202 [{"post_id": 43652, "ts": "2026-08-09T01:19:23Z", "hours": 0.6319, "text": "DEVLOG #2! animation + stylized page! i have done some stylizing, such as adding some fonts and adding a background image ( yes… the image looks a bit funky in the video but shhh) i have also add a one second fade in animation to the API NASA title, image, and paragraph to make it a bit more appealing!"}, {"post_id": 43635, "ts": "2026-08-09T00:30:58Z", "hours": 0.6017, "text": "DEVLOG #1 base format done! so i got the basic javascript and html done, now i will move onto styling it and adding a new feature! what new feature? not sure yet, but i will be looking at some projects or search things up for inspo."}]...
|
Title: astroFETCH by @marygoat | Stardance
Devlog Title: astroFETCH by @marygoat | Stardance
Devlogs:
DEVLOG #1 base format done! so i got the basic javascript and html done, now i will move onto styling it and adding a new feature! what new feature? not sure yet, but i will be looking at some projects or search things up for inspo.
DEVLOG #2! animation + stylized page! i have done some stylizing, such as adding some fonts and adding a background image ( yes… the image looks a bit funky in the video but shhh) i have also add a one second fade in animation to the API NASA title, image, and paragraph to make it a bit more appealing!
Ships:
I made a website that pulls in data from the NASA website using their free API, showing the APOD (Astronomy Picture of the Day). It was challenging figuring out how to use the javascript and grab the required info, but it worked out! To access my website, just click on the try project down below or go to: https://awesomesauce4646.github.io/astro-fetch/ I’m proud of learning more about APIs, building off from the slack bot project that also used APIs to gather cat facts!...
|
1793458332.3485758
|
1793544732.3485758
|
|
45532
|
Colloseum of the Damned by @anton_chernobaiev | St Colloseum of the Damned by @anton_chernobaiev | Stardance...
|
anton_chernobaiev
|
1
|
25.45
|
140
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-14T17:27:13Z", "hours": 21.0, "multiplier": 6.99, "payout": 140, "blessing": "neutral", "text": "I created a top-down arena style game where you will have to fight infinite number of waves of enemies", "repo": "https://github.com/antonchernobaiev/ColloseumOfTheDamned", "demo": "https://colloseumofthedamned.netlify.app/"}]...
|
[{"post_id": 52280, "ts": "202 [{"post_id": 52280, "ts": "2026-08-22T12:00:56Z", "hours": 4.4539, "text": "Devlog #4 -I deceided to add few new animation(animation of getting hit and death animation -I also made knockback more predictable"}, {"post_id": 46588, "ts": "2026-08-13T22:33:02Z", "hours": 10.6144, "text": "#devlog 2 I decided to make my game into a colloseum style game where every wave more skeletons spawn and you have to kill them. I finished my first version!!!!! From last devlog I added: -An arena -An Hp Bar -Ability to restore your hp -A main menu And a lot more"}, {"post_id": 44814, "ts": "2026-08-10T20:47:14Z", "hours": 10.5761, "text": "#1 devlog Working on a top-down rpg game. Gameplay is to kill skeletons, from them receive xp upgrade your character and progress through areas. Until this point: -I added the main character, he can run, attack, and has animation’s for idle, run and attack -Also added the basic enemy(A skeleton) if i enter his range he will start to track me and when he is close enough i can kill him. -When my player hits the enemy. enemy is pushed back and receives damage. when his hp equals zero he dies. -player is invincible for now planning to adding it next"}]...
|
Title: Colloseum of the Damned by @anton_chernobai Title: Colloseum of the Damned by @anton_chernobaiev | Stardance
Devlogs:
#1 devlog Working on a top-down rpg game. Gameplay is to kill skeletons, from them receive xp upgrade your character and progress through areas. Until this point: -I added the main character, he can run, attack, and has animation’s for idle, run and attack -Also added the basic enemy(A skeleton) if i enter his range he will start to track me and when he is close enough i can kill him. -When my player hits the enemy. enemy is pushed back and receives damage. when his hp equals zero he dies. -player is invincible for now planning to adding it next
#devlog 2 I decided to make my game into a colloseum style game where every wave more skeletons spawn and you have to kill them. I finished my first version!!!!! From last devlog I added: -An arena -An Hp Bar -Ability to restore your hp -A main menu And a lot more
Devlog #4 -I deceided to add few new animation(animation of getting hit and death animation -I also made knockback more predictable
Ships:
I created a top-down arena style game where you will have to fight infinite number of waves of enemies...
|
1793325126.7687836
|
1793411526.7687836
|
|
45544
|
AlGOL by @rayzchen | Stardance
|
rayzchen
|
1
|
24.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-30T00:18:08Z", "hours": 24.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "AlGOL - Game of Life NOTE: DOES NOT WORK ON MOBILE https://rayzchen.github.io/algol/ Game of Life is a cellular automata that simulates patterns of cells changing over time. Each cell is either “dead” or “alive”. If an alive cell has more than 3 alive neighbours it dies of crowding If an alive cell has less than 2 alive neighbours it dies of loneliness If a dead cell has exactly 3 alive neighbours it becomes alive Each frame is then decided based on the state of the previous. Have fun experimenting with the simulation controls!", "repo": "https://github.com/rayzchen/algol", "demo": "https://rayzchen.github.io/algol/"}]...
|
[{"post_id": 84471, "ts": "202 [{"post_id": 84471, "ts": "2026-10-29T18:15:34Z", "hours": 1.7108, "text": "Revert cursor Unfortunately I could not get time to finish implementing the cursor functionality, so that has now been moved to a separate branch for anyone interested in running that demo. The patterns can now be accessed via a link in the sidebar."}, {"post_id": 72733, "ts": "2026-09-23T16:43:17Z", "hours": 4.6883, "text": "Cursor for placement Much of this logged time was actually spent hunting for RLE files and testing them… Rewrote a large portion of the loading code to render a ‘cursor’ which indicates where the placed cells will be. The actual placing hasn’t been implemented yet… RLE bank can be found at https://rayzchen.github.io/algol/patterns/"}, {"post_id": 71460, "ts": "2026-09-20T21:21:27Z", "hours": 1.2733, "text": "Loading RLE strings Added a modal to input any RLE string (many can be found at https://conwaylife.com/wiki/ !). Spent a while trying to debug an extra generation simulated when loading, only to realise my RLE loading was too fast and outpaced the simulator… The RLE can also be inputted through Ctrl+Enter. RLE banks to be created soon… Temporary deployments can be found at https://rayzchen.github.io/algol/"}, {"post_id": 50667, "ts": "2026-08-19T22:59:05Z", "hours": 2.2294, "text": "Minimap and QoL After a few busy days at work, I’ve finally made progress on AlGOL! A minimap of the current viewing area appears when the map is dragged or zoomed, it can be toggled and adjusts according to wrapping. Also added zoom hotkeys that zoom precisely on the centre for ease of access. Temporary deployments can be found at https://rayzchen.github.io/algol/"}, {"post_id": 45078, "ts": "2026-08-11T10:55:22Z", "hours": 1.3367, "text": "Wrapping There is now an option to enable/disable grid wrapping, so cells on the edge of the map will die off. Produces interesting results! Also added a button to reset the view to the middle of the map in case the user gets lost in the unwrapped grid. Temporary deployments can be found at https://rayzchen.github.io/algol/"}, {"post_id": 44882, "ts": "2026-08-10T22:28:37Z", "hours": 2.8556, "text": "RLE PATTERN LOADING! There are three default patterns that can be loaded into the map: glider, glider gun, and breeder1 (a glider gun breeder). The map has been expanded to 2048x2048 which may have terrible performance at faster simulation speeds :( Color themes have also been added (currently only blue/green or black/white). Temporary deployments can be found at https://rayzchen.github.io/algol/"}, {"post_id": 44745, "ts": "2026-08-10T18:24:56Z", "hours": 0.5489, "text": "Performance and UI improvements Rendering is now disabled when the simulation is paused, which makes moving around really smooth! The side panel now shows the current zoom level and some keybinds for the buttons. Temporary deployments can be found at https://rayzchen.github.io/algol/"}, {"post_id": 44714, "ts": "2026-08-10T17:33:44Z", "hours": 2.1089, "text": "Better controls The slider now has larger segments for more common speeds (1-5 frames per second, 1-5x speed) for better usability, and now there’s a play/pause button and a step button to view individual generations! https://www.desmos.com/calculator/3ipfxfsmlu contains some of the math for the slider Temporary deployments can be found at https://rayzchen.github.io/algol/"}, {"post_id": 44629, "ts": "2026-08-10T15:03:14Z", "hours": 1.6703, "text": "Click+drag! The map is now larger than just the screen, and click+drag works to explore the whole (repeating) map! Temporary deployments can be found at https://rayzchen.github.io/algol/"}, {"post_id": 44210, "ts": "2026-08-09T20:25:50Z", "hours": 1.9578, "text": "Simulation speeds Changing the “Iterations” slider will change the number of steps the simulation goes through each frame. The code runs slow on mobile for some reason but performance doesn’t drop too much even with 32x iterations on desktop edit: most of the logged time was spent making optimizations in the shaders, will have to investigate mobile later"}, {"post_id": 44089, "ts": "2026-08-09T16:48:54Z", "hours": 0.8133, "text": "Basic GUI Added a few user interaction elements such as toggleable GUI, FPS counter and some frameworks to add more panels"}, {"post_id": 43504, "ts": "2026-08-08T20:21:29Z", "hours": 0.8361, "text": "Colour Cells now fade and change colour when they form and die."}, {"post_id": 43478, "ts": "2026-08-08T19:27:15Z", "hours": 0.7353, "text": "Game of Life rules Implemented the rules of Game of Life: Each cell is either “dead” (black) or “alive” (white) If an alive cell has more than 3 alive neighbours it dies of crowding If an alive cell has less than 2 alive neighbours it dies of loneliness If a dead cell has exactly 3 alive neighbours it becomes alive Each frame is then decided based on the state of the previous. You can see some “glider” patterns emerging from the randomly generated soup!"}, {"post_id": 43263, "ts": "2026-08-08T12:54:09Z", "hours": 1.3628, "text": "Setup First time using WebGL, so I had to look at the mdn documentation quite a few times to understand the syntax. Pink screen."}]...
|
Title: AlGOL by @rayzchen | Stardance
Devlogs:
Se Title: AlGOL by @rayzchen | Stardance
Devlogs:
Setup First time using WebGL, so I had to look at the mdn documentation quite a few times to understand the syntax. Pink screen.
Game of Life rules Implemented the rules of Game of Life: Each cell is either “dead” (black) or “alive” (white) If an alive cell has more than 3 alive neighbours it dies of crowding If an alive cell has less than 2 alive neighbours it dies of loneliness If a dead cell has exactly 3 alive neighbours it becomes alive Each frame is then decided based on the state of the previous. You can see some “glider” patterns emerging from the randomly generated soup!
Colour Cells now fade and change colour when they form and die.
Basic GUI Added a few user interaction elements such as toggleable GUI, FPS counter and some frameworks to add more panels
Simulation speeds Changing the “Iterations” slider will change the number of steps the simulation goes through each frame. The code runs slow on mobile for some reason but performance doesn’t drop too much even with 32x iterations on desktop edit: most of the logged time was spent making optimizations in the shaders, will have to investigate mobile later
Click+drag! The map is now larger than just the screen, and click+drag works to explore the whole (repeating) map! Temporary deployments can be found at https://rayzchen.github.io/algol/
Better controls The slider now has larger segments for more common speeds (1-5 frames per second, 1-5x speed) for better usability, and now there’s a play/pause button and a step button to view individual generations! https://www.desmos.com/calculator/3ipfxfsmlu contains some of the math for the slider Temporary deployments can be found at https://rayzchen.github.io/algol/
Performance and UI improvements Rendering is now disabled when the simulation is paused, which makes moving around really smooth! The side panel now shows the current zoom level and some keybinds for the buttons. Temporary deployments can be found at https://rayzchen.github.io/algol/
RLE PATTERN LOADING! There are three default patterns that can be loaded into the map: glider, glider gun, and breeder1 (a glider gun breeder). The map has been expanded to 2048x2048 which may have terrible performance at faster simulation speeds :( Color themes have also been added (currently only blue/green or black/white). Temporary deployments can be found at https://rayzchen.github.io/algol/
Wrapping There is now an option to enable/disable grid wrapping, so cells on the edge of the map will die off. Produces interesting results! Also added a button to reset the view to the middle of the map in case the user gets lost in the unwrapped grid. Temporary deployments can be found at https://rayzchen.github.io/algol/
Minimap and QoL After a few busy days at work, I’ve finally made progress on AlGOL! A minimap of the current viewing area appears when the map is dragged or zoomed, it can be toggled and adjusts according to wrapping. Also added zoom hotkeys that zoom precisely on the centre for ease of access. Temporary deployments can be found at https://rayzchen.github.io/algol/
Loading RLE strings Added a modal to input any RLE string (many can be found at https://conwaylife.com/wiki/ !). Spent a while trying to debug an extra generation simulated when loading, only to realise my RLE loading was too fast and outpaced the simulator… The RLE can also be inputted through Ctrl+Enter. RLE banks to be created soon… Temporary deployments can be found at https://rayzchen.github.io/algol/
Cursor for placement Much of this logged time was actually spent hunting for RLE files and testing them… Rewrote a large portion of the loading code to render a ‘cursor’ which indicates where the placed cells will be. The actual placing hasn’t been implemented yet… RLE bank can be found at https://rayzchen.github.io/algol/patterns/
Revert cursor Unfortunately I could not get time to finish implementing the cursor functionality, so that has now been moved to a separate branch for anyone interested in running that demo. The patterns can now be accessed via a link in the sidebar.
Ships:
AlGOL - Game of Life NOTE: DOES NOT WORK ON MOBILE https://rayzchen.github.io/algol/ Game of Life is a cellular automata that simulates patterns of cells changing over time. Each cell is either “dead” or “alive”. If an alive cell has more than 3 alive neighbours it dies of crowding If an alive cell has less than 2 alive neighbours it dies of loneliness If a dead cell has exactly 3 alive neighbours it becomes alive Each frame is then decided based on the state of the previous. Have fun experimenting with the simulation controls!...
|
1793336005.321852
|
1793422405.321852
|
|
45545
|
to do list by @umar7 | Stardance
|
umar7
|
1
|
2.0
|
2
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-08T15:55:24Z", "hours": 2.0, "multiplier": 1.11, "payout": 2, "blessing": "neutral", "text": "i created a simple To-do list which is locally stored in the browsers storage so even if the browser is closed or refreshed the tasks are still there", "repo": "https://github.com/umarxpro7-ai/todolist", "demo": "https://to-do-list6767.netlify.app/"}]...
|
[{"post_id": 43331, "ts": "202 [{"post_id": 43331, "ts": "2026-08-08T15:07:46Z", "hours": 2.2344, "text": "i have created a simple to-do list which can be marked as checked and unchecked it also saves the tasks in the browser so even if the browser is closed or refreshed it does not delete the tasks"}]...
|
Title: to do list by @umar7 | Stardance
Devlogs:
Title: to do list by @umar7 | Stardance
Devlogs:
i have created a simple to-do list which can be marked as checked and unchecked it also saves the tasks in the browser so even if the browser is closed or refreshed it does not delete the tasks
Ships:
i created a simple To-do list which is locally stored in the browsers storage so even if the browser is closed or refreshed the tasks are still there...
|
1793458389.1327775
|
1793544789.1327775
|
|
45560
|
Nasa AOPD Image Viewer by @iamdeathgod | Stardance
|
iamdeathgod
|
1
|
2.68
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-08T15:42:51Z", "hours": 2.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Built a NASA Astronomy Picture of the Day viewer — shows today’s picture automatically, plus a calendar sidebar to browse any past day this month. Hardest part was probably the async stuff — had a bug where the old image would flash before the new one loaded, took a while to figure out it needed the image’s onload event to fix properly. Pretty happy with how the UI turned out, went with a sci-fi/mission-control theme with glowing accents instead of a plain page. It’s responsive too, works fine on mobile. Try clicking through a few different days on the calendar to see it in action!", "repo": "https://github.com/iamdeathgod/nasa-apod-image", "demo": "https://iamdeathgod.github.io/nasa-apod-image/"}]...
|
[{"post_id": 43794, "ts": "202 [{"post_id": 43794, "ts": "2026-08-09T06:58:28Z", "hours": 0.6775, "text": "Added Past Months Image viewing , Recreated Image loading logic with improvements ."}, {"post_id": 43328, "ts": "2026-08-08T15:03:05Z", "hours": 0.9714, "text": "Devlog #3 — Calendar sidebar + full redesign Added a calendar to browse past pictures, and gave the whole site a proper visual overhaul. What’s new: Sidebar calendar showing all days of the current month — click any day to load that day’s picture instead of today’sRefactored the fetch logic into a reusable loadAPOD(date) function so it works for both today and any clicked dayAdded a loading animation while new pictures fetch, and fixed a bug where the old image would briefly show before the new one finished loadingHighlighted the currently selected day on the calendarFull visual redesign — sci-fi/mission-control theme with a glowing grid background, monospace font, and cyan accent colors instead of the plain black-and-crimson lookMade the whole layout responsive so it works properly on mobile (calendar stacks below the image, grid adjusts to fewer columns)Moved JavaScript into its own script.js file for cleaner project structure Bugs I ran into and fixed: Infinite recursion from accidentally calling loadAPOD inside itselfImage not updating because the fetch was defined but never calledOld image flashing before the new one loaded — fixed using the image’s onload event"}, {"post_id": 43287, "ts": "2026-08-08T13:52:09Z", "hours": 0.2669, "text": "Devlog #2 Added CSS styling : Fonts , spacing , colors to NASA APOD viewer"}, {"post_id": 43267, "ts": "2026-08-08T13:00:57Z", "hours": 0.4433, "text": "NASA APOD Image Viewer My first project for Stardance. It’s a simple web page that shows NASA’s Astronomy Picture of the Day — pulls the image and description live from NASA’s API, so it updates automatically every day. I’m a total beginner, so I built this step by step: started with a hardcoded image just to get the layout, then learned how to fetch live data from an API and swap it in using JavaScript. Also learned to keep my API key private instead of exposing it in the public repo."}]...
|
Title: Nasa AOPD Image Viewer by @iamdeathgod | St Title: Nasa AOPD Image Viewer by @iamdeathgod | Stardance
Devlogs:
NASA APOD Image Viewer My first project for Stardance. It’s a simple web page that shows NASA’s Astronomy Picture of the Day — pulls the image and description live from NASA’s API, so it updates automatically every day. I’m a total beginner, so I built this step by step: started with a hardcoded image just to get the layout, then learned how to fetch live data from an API and swap it in using JavaScript. Also learned to keep my API key private instead of exposing it in the public repo.
Devlog #2 Added CSS styling : Fonts , spacing , colors to NASA APOD viewer
Devlog #3 — Calendar sidebar + full redesign Added a calendar to browse past pictures, and gave the whole site a proper visual overhaul. What’s new: Sidebar calendar showing all days of the current month — click any day to load that day’s picture instead of today’sRefactored the fetch logic into a reusable loadAPOD(date) function so it works for both today and any clicked dayAdded a loading animation while new pictures fetch, and fixed a bug where the old image would briefly show before the new one finished loadingHighlighted the currently selected day on the calendarFull visual redesign — sci-fi/mission-control theme with a glowing grid background, monospace font, and cyan accent colors instead of the plain black-and-crimson lookMade the whole layout responsive so it works properly on mobile (calendar stacks below the image, grid adjusts to fewer columns)Moved JavaScript into its own script.js file for cleaner project structure Bugs I ran into and fixed: Infinite recursion from accidentally calling loadAPOD inside itselfImage not updating because the fetch was defined but never calledOld image flashing before the new one loaded — fixed using the image’s onload event
Added Past Months Image viewing , Recreated Image loading logic with improvements .
Ships:
Built a NASA Astronomy Picture of the Day viewer — shows today’s picture automatically, plus a calendar sidebar to browse any past day this month. Hardest part was probably the async stuff — had a bug where the old image would flash before the new one loaded, took a while to figure out it needed the image’s onload event to fix properly. Pretty happy with how the UI turned out, went with a sci-fi/mission-control theme with glowing accents instead of a plain page. It’s responsive too, works fine on mobile. Try clicking through a few different days on the calendar to see it in action!...
|
1793465363.6483724
|
1793551763.6483724
|
|
45561
|
Zig-Vulkan-Renderer by @DragonDev22 | Stardance
|
DragonDev22
|
1
|
18.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-29T00:08:31Z", "hours": 18.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "A Vulkan renderer in zig. It renders a coloured triangle, and it has some issues on linux mint for some reason.", "repo": "https://codeberg.org/DragonDev22/AIF-vk-renderer", "demo": "https://codeberg.org/DragonDev22/AIF-vk-renderer/releases/tag/v0.0.1-dev"}]...
|
[{"post_id": 77520, "ts": "202 [{"post_id": 77520, "ts": "2026-10-07T09:47:41Z", "hours": 10.7964, "text": "The almighty triangle of doom, death, and destruction. This has certainly taken a while! This was so much effort to this point, and it isn’t perfect, as I get some weird glitches on my system, which doesn’t occur with existing examples. I’ll definitely look to fix them, but I achieved my goal, and this will be improved some other time."}, {"post_id": 43241, "ts": "2026-08-08T12:09:16Z", "hours": 7.1583, "text": "Finally got not only windowing (with glfw) working, but also managed to set up screen colour clearing in just under 100 lines!"}]...
|
Title: Zig-Vulkan-Renderer by @DragonDev22 | Stard Title: Zig-Vulkan-Renderer by @DragonDev22 | Stardance
Devlogs:
Finally got not only windowing (with glfw) working, but also managed to set up screen colour clearing in just under 100 lines!
The almighty triangle of doom, death, and destruction. This has certainly taken a while! This was so much effort to this point, and it isn’t perfect, as I get some weird glitches on my system, which doesn’t occur with existing examples. I’ll definitely look to fix them, but I achieved my goal, and this will be improved some other time.
Ships:
A Vulkan renderer in zig. It renders a coloured triangle, and it has some issues on linux mint for some reason....
|
1793336113.2424083
|
1793422513.2424083
|
|
45569
|
Chi site by @shravyakr0 | Stardance
|
shravyakr0
|
1
|
0.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-09T07:24:43Z", "hours": 0.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "✨ Shravya KR — Personal Website My personal website, built as part of the Hack Club Stardance challenge. 🔗 Live site: [add your deployed link here once you set up GitHub Pages] 🌸 About This is my little corner of the internet — a place to share who I am, what I’m exploring, and the projects I’m working on. I’m an 11th grade science student with a curiosity for how things work, from the logic behind code to the concepts behind chemistry and physics. 🛠️ Built With HTML — structure CSS — styling (add JavaScript here later if you use it) 📂 Project Structure", "repo": "https://github.com/shravyakr0/My-website", "demo": "https://shravyakr0.github.io/My-website/"}]...
|
[{"post_id": 43803, "ts": "202 [{"post_id": 43803, "ts": "2026-08-09T07:22:33Z", "hours": 0.2819, "text": "Website publish"}]...
|
Title: Chi site by @shravyakr0 | Stardance
Devlog Title: Chi site by @shravyakr0 | Stardance
Devlogs:
Website publish
Ships:
✨ Shravya KR — Personal Website My personal website, built as part of the Hack Club Stardance challenge. 🔗 Live site: [add your deployed link here once you set up GitHub Pages] 🌸 About This is my little corner of the internet — a place to share who I am, what I’m exploring, and the projects I’m working on. I’m an 11th grade science student with a curiosity for how things work, from the logic behind code to the concepts behind chemistry and physics. 🛠️ Built With HTML — structure CSS — styling (add JavaScript here later if you use it) 📂 Project Structure...
|
1793465367.4940717
|
1793551767.4940717
|
|
45580
|
my game by @shravyakr0 | Stardance
|
shravyakr0
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-09T06:53:55Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Built this for the Stardance “Make a WarioWare Game” mission in Godot 4. It’s a collection of quick timed minigames — you’ve got 5 garlic (lives), and you lose one every time you don’t beat a minigame’s timer. Right now it’s got 4 minigames: A platformer where you collect garlic before time runs out A clicker where you tap all the targets fast A little Space Invaders-style shooter A Flappy Bird-style obstacle dodge Biggest challenges were wiring up the scene transitions between minigames without breaking the timer/lives tracking, and getting the export to actually run right in the browser. Learned a ton about Godot’s autoload system and signals along the way. Would love feedback — especially on difficulty, since I haven’t fully balanced the timers yet!", "repo": "https://github.com/shravyakr0/game", "demo": "https://shravyakr.itch.io/garlic-mania"}]...
|
[{"post_id": 43787, "ts": "202 [{"post_id": 43787, "ts": "2026-08-09T06:47:06Z", "hours": 0.9917, "text": "game onlie"}]...
|
Title: my game by @shravyakr0 | Stardance
Devlogs Title: my game by @shravyakr0 | Stardance
Devlogs:
game onlie
Ships:
Built this for the Stardance “Make a WarioWare Game” mission in Godot 4. It’s a collection of quick timed minigames — you’ve got 5 garlic (lives), and you lose one every time you don’t beat a minigame’s timer. Right now it’s got 4 minigames: A platformer where you collect garlic before time runs out A clicker where you tap all the targets fast A little Space Invaders-style shooter A Flappy Bird-style obstacle dodge Biggest challenges were wiring up the scene transitions between minigames without breaking the timer/lives tracking, and getting the export to actually run right in the browser. Learned a ton about Godot’s autoload system and signals along the way. Would love feedback — especially on difficulty, since I haven’t fully balanced the timers yet!...
|
1793465379.9356372
|
1793551779.9356372
|
|
45582
|
My own site! by @cylaualmus | Stardance
|
cylaualmus
|
1
|
3.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-11T12:04:54Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made my own person web. It is advised by AI on some parts as I am completely new to coding.", "repo": "https://github.com/ODd-line/Personal_web", "demo": "https://odd-line.github.io/Personal_web/"}]...
|
[{"post_id": 45111, "ts": "202 [{"post_id": 45111, "ts": "2026-08-11T12:00:05Z", "hours": 2.7122, "text": "My very own retro style build"}]...
|
Title: My own site! by @cylaualmus | Stardance
De Title: My own site! by @cylaualmus | Stardance
Devlogs:
My very own retro style build
Ships:
I made my own person web. It is advised by AI on some parts as I am completely new to coding....
|
1793328737.9777758
|
1793415137.9777758
|
|
45583
|
Endpoint Atlas by @Zeti_1223 | Stardance
|
Zeti_1223
|
1
|
1.0
|
8
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-11T06:20:29Z", "hours": 1.0, "multiplier": 6.07, "payout": 8, "blessing": "neutral", "text": "I’m built a browser-based API endpoint documentation generator that automatically scans directories, recognizes API endpoints, and exports them in multiple formats. But sorry because, hackataime didn’t logged while I worked on this project offline.", "repo": "https://github.com/zeti1223/API-documentation-creator", "demo": "https://zeti1223.github.io/API-documentation-creator/"}]...
|
[{"post_id": 44648, "ts": "202 [{"post_id": 44648, "ts": "2026-08-10T15:37:45Z", "hours": 0.5892, "text": "done with little fixes"}, {"post_id": 44530, "ts": "2026-08-10T11:03:13Z", "hours": 0.2808, "text": "Done with everything for today (I think)"}, {"post_id": 44477, "ts": "2026-08-10T08:07:00Z", "hours": 0.3753, "text": "Writing the algorithm"}]...
|
Title: Endpoint Atlas by @Zeti_1223 | Stardance
D Title: Endpoint Atlas by @Zeti_1223 | Stardance
Devlogs:
Writing the algorithm
Done with everything for today (I think)
done with little fixes
Ships:
I’m built a browser-based API endpoint documentation generator that automatically scans directories, recognizes API endpoints, and exports them in multiple formats. But sorry because, hackataime didn’t logged while I worked on this project offline....
|
1793328741.7387269
|
1793415141.7387269
|
|
45584
|
Sarvgyan by @ronitserva | Stardance
|
ronitserva
|
1
|
3.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-10T12:36:12Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Sarvgyan is a slack bot built in python. It can do a small number of things like doing a web-search for you and returning a short AI summary result and sometimes tell you an unfunny joke. (For web-search and AI summary it Uses Tavily Search API) Available commands with their features: /sarvgyan-ping: Responds with the latency. /sarvgyan-befunny: Tells a randomly sampled joke from a list of 5 jokes defined in the app. (btw the jokes are really unfunny) /sarvgyan-search : Lets you run web search for the given and returns a short AI summary result for the search In a sense I would say figuring out the right resources to learn to use slack bolt for python was a challenge for me coz this time I wasn’t following the guide which used JS for bot logic, instead I relied on python which I find more comfortable to use. In this process Google AI mode was a help Anther problem was figuring out how to get the app running 24/7 on nest using systemd. For trying Sarvgyan out, you can visit the channel “#try-sarvgyan” (use project demo link). There you can use different commands and see it in action.", "repo": "https://github.com/Ronit-Serva/Sarvgyan", "demo": "https://app.slack.com/client/E09V59WQY1E/C0BNZ1V86HH"}]...
|
[{"post_id": 44554, "ts": "202 [{"post_id": 44554, "ts": "2026-08-10T12:09:19Z", "hours": 1.1719, "text": "Shipping the project I completed updating the project readme with extensive details: Description, How to try?, How it works? and all the credits. Here’s how it looks:"}, {"post_id": 43919, "ts": "2026-08-09T11:22:47Z", "hours": 0.5156, "text": "Completed the basic mission requirements of the project I wrapped up writing the handling logic of the last command for the bot: /sarvgyan-search which takes a query and returns an AI summar answer for the search. For search, and AI answer I used the free tier of Tavily Search API. (It gives 1000 free req/month) Next I intent to deploy it on nest to get it up and running 24/7 btw: here’s a search result screenshot from the bot:"}, {"post_id": 43827, "ts": "2026-08-09T08:09:13Z", "hours": 1.1136, "text": "Completed logic for two slack commands Before writing a single line of code I spent ~1hr learning how to use slack_bolt to register a command listener and how to write logic to perform actions on the command trigger using the decorator @app.command(\"/command\") from the guide and web. Using it I went on to programming actions for two commands: /sarvgyan-ping : returns latency for acknowledging command. /sarvgyan-befunny : Tells you a joke (which I must say doesn’t look like a joke 😅)"}, {"post_id": 43428, "ts": "2026-08-08T17:45:16Z", "hours": 0.4733, "text": "Project Setup I worked on setting up the project basics: github repo, installing slack_bolt package and all that. For this project I’ve decided to not follow the guide and go on to build it on my own in python rather than JS coz I feel more comfortable in it. I think I’ll be using the official slack guide to help me along the way to build the app in python:"}]...
|
Title: Sarvgyan by @ronitserva | Stardance
Devlog Title: Sarvgyan by @ronitserva | Stardance
Devlogs:
Project Setup I worked on setting up the project basics: github repo, installing slack_bolt package and all that. For this project I’ve decided to not follow the guide and go on to build it on my own in python rather than JS coz I feel more comfortable in it. I think I’ll be using the official slack guide to help me along the way to build the app in python:
Completed logic for two slack commands Before writing a single line of code I spent ~1hr learning how to use slack_bolt to register a command listener and how to write logic to perform actions on the command trigger using the decorator @app.command("/command") from the guide and web. Using it I went on to programming actions for two commands: /sarvgyan-ping : returns latency for acknowledging command. /sarvgyan-befunny : Tells you a joke (which I must say doesn’t look like a joke 😅)
Completed the basic mission requirements of the project I wrapped up writing the handling logic of the last command for the bot: /sarvgyan-search which takes a query and returns an AI summar answer for the search. For search, and AI answer I used the free tier of Tavily Search API. (It gives 1000 free req/month) Next I intent to deploy it on nest to get it up and running 24/7 btw: here’s a search result screenshot from the bot:
Shipping the project I completed updating the project readme with extensive details: Description, How to try?, How it works? and all the credits. Here’s how it looks:
Ships:
Sarvgyan is a slack bot built in python. It can do a small number of things like doing a web-search for you and returning a short AI summary result and sometimes tell you an unfunny joke. (For web-search and AI summary it Uses Tavily Search API) Available commands with their features: /sarvgyan-ping: Responds with the latency. /sarvgyan-befunny: Tells a randomly sampled joke from a list of 5 jokes defined in the app. (btw the jokes are really unfunny) /sarvgyan-search : Lets you run web search for the given and returns a short AI summary result for the search In a sense I would say figuring out the right resources to learn to use slack bolt for python was a challenge for me coz this time I wasn’t following the guide which used JS for bot logic, instead I relied on python which I find more comfortable to use. In this process Google AI mode was a help Anther problem was figuring out how to get the app running 24/7 on nest using systemd. For trying Sarvgyan out, you can visit the channel “#try-sarvgyan” (use project demo link). There you can use different commands and see it in action....
|
1793328742.9477637
|
1793415142.9477637
|
|
45585
|
Celestial bot by @SMD | Stardance
|
SMD
|
1
|
2.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-14T13:38:31Z", "hours": 2.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I have made a bot that makes you laugh and gives you facts about cats and space! My biggest challenge was trying to figure out how to run my bot 24/7 on Nest. What I like most about my project is the /celestial-spacefact function which displays “Space fact of the Day”, including an image url, directly using NASA’s open APOD API. Hope you enjoy chatting with my bot! :)", "repo": "https://github.com/DakshikaaTech/Celestial-Slack-Bot", "demo": "https://app.slack.com/client/E09V59WQY1E/C0B8B8SR86A?"}]...
|
[{"post_id": 46316, "ts": "202 [{"post_id": 46316, "ts": "2026-08-13T13:45:18Z", "hours": 0.5839, "text": "Devlog #2: Made a spacefact function I used one of NASA’s open API to incorporate this function into my code. /celestial-spacefact gives a spacefact of the day along with an image link. You can use it to broaden your knowledge of astronomy and the worlds beyond! I’m excited to ship this project once I’m done figuring out how to make my bot run 24/7 on nest. But for now, I’m happy with my bot’s functionalities :)"}, {"post_id": 44643, "ts": "2026-08-10T15:25:58Z", "hours": 1.4381, "text": "Devlog #1 - Building my first ever chatbot This is my first time coding on JavaScript, so I’m finding it difficult. I have added the following functions: /celestial-help : Shows you all the available commands /celestial-ping : Shows you latency /celestial-catfact : Gives you a random fact about cats /celestial-joke : Makes you laugh ;D I’m planning to add more functions and polish my script. P.S: I finally figured out how to push my code to Github without revealing my “secrets”. So, yayy!!! It took me a long time to figure that out!! ;)"}]...
|
Title: Celestial bot by @SMD | Stardance
Devlogs: Title: Celestial bot by @SMD | Stardance
Devlogs:
Devlog #1 - Building my first ever chatbot This is my first time coding on JavaScript, so I’m finding it difficult. I have added the following functions: /celestial-help : Shows you all the available commands /celestial-ping : Shows you latency /celestial-catfact : Gives you a random fact about cats /celestial-joke : Makes you laugh ;D I’m planning to add more functions and polish my script. P.S: I finally figured out how to push my code to Github without revealing my “secrets”. So, yayy!!! It took me a long time to figure that out!! ;)
Devlog #2: Made a spacefact function I used one of NASA’s open API to incorporate this function into my code. /celestial-spacefact gives a spacefact of the day along with an image link. You can use it to broaden your knowledge of astronomy and the worlds beyond! I’m excited to ship this project once I’m done figuring out how to make my bot run 24/7 on nest. But for now, I’m happy with my bot’s functionalities :)
Ships:
I have made a bot that makes you laugh and gives you facts about cats and space! My biggest challenge was trying to figure out how to run my bot 24/7 on Nest. What I like most about my project is the /celestial-spacefact function which displays “Space fact of the Day”, including an image url, directly using NASA’s open APOD API. Hope you enjoy chatting with my bot! :)...
|
1793328744.1662364
|
1793415144.1662364
|
|
45586
|
PLEASE DELETE by @anshum_2422 | Stardance
|
anshum_2422
|
1
|
0.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-09T08:16:27Z", "hours": 0.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "What did you make? I built a retro NASA APOD viewer with olive & sage green vibes. It shows the daily space image with title and description. Added date picker, favorites, 3 view modes, keyboard shortcuts, and a “Surprise Me” button. What was challenging? Getting the API key to work with Vite’s .env system and setting up GitHub Actions for deployment. Also handling YouTube videos since NASA sometimes posts them instead of images. What are you proud of? The retro theme actually looks good! The favorites feature saves to localStorage so they stay forever. And the keyboard shortcuts make me feel like a hacker. What should people know to test? Live: https://anshum2422.github.io/nasa-project/ Press 1, 2, 3 for view modes Press D to toggle description Click the star to save favorites Use date picker to see any day’s image “Surprise Me” for random space pics!", "repo": "", "demo": ""}]...
|
[{"post_id": 43828, "ts": "202 [{"post_id": 43828, "ts": "2026-08-09T08:11:53Z", "hours": 0.3047, "text": "🚀 I Built a NASA Website! I built a retro-themed NASA Astronomy Picture of the Day viewer with olive & sage green vibes. It shows a new space image every day with the title and description. Features: 3 view modes (Normal, Dark, High Contrast) Keyboard shortcuts (1, 2, 3, D, +, -) Date picker to view any day’s image Favorites (saves to localStorage) “Surprise Me” for random space pics Font size controls Tech Stack: HTML, CSS, JavaScript, Vite, NASA API, GitHub Pages Challenges: API keys are sneaky (never commit .env!), GitHub Actions took a while to figure out, and YouTube videos need special handling. What I Learned: Environment variables, API fetching, localStorage, keyboard events, GitHub Actions deployment, and making things actually look good with CSS. Live Demo: https://anshum2422.github.io/nasa-project/ GitHub: https://github.com/anshum2422/nasa-project Shoutout to NASA for the awesome API and Hack Club for the mission! ✨"}]...
|
Title: PLEASE DELETE by @anshum_2422 | Stardance
Title: PLEASE DELETE by @anshum_2422 | Stardance
Devlogs:
🚀 I Built a NASA Website! I built a retro-themed NASA Astronomy Picture of the Day viewer with olive & sage green vibes. It shows a new space image every day with the title and description. Features: 3 view modes (Normal, Dark, High Contrast) Keyboard shortcuts (1, 2, 3, D, +, -) Date picker to view any day’s image Favorites (saves to localStorage) “Surprise Me” for random space pics Font size controls Tech Stack: HTML, CSS, JavaScript, Vite, NASA API, GitHub Pages Challenges: API keys are sneaky (never commit .env!), GitHub Actions took a while to figure out, and YouTube videos need special handling. What I Learned: Environment variables, API fetching, localStorage, keyboard events, GitHub Actions deployment, and making things actually look good with CSS. Live Demo: https://anshum2422.github.io/nasa-project/ GitHub: https://github.com/anshum2422/nasa-project Shoutout to NASA for the awesome API and Hack Club for the mission! ✨
Ships:
What did you make? I built a retro NASA APOD viewer with olive & sage green vibes. It shows the daily space image with title and description. Added date picker, favorites, 3 view modes, keyboard shortcuts, and a “Surprise Me” button. What was challenging? Getting the API key to work with Vite’s .env system and setting up GitHub Actions for deployment. Also handling YouTube videos since NASA sometimes posts them instead of images. What are you proud of? The retro theme actually looks good! The favorites feature saves to localStorage so they stay forever. And the keyboard shortcuts make me feel like a hacker. What should people know to test? Live: https://anshum2422.github.io/nasa-project/ Press 1, 2, 3 for view modes Press D to toggle description Click the star to save favorites Use date picker to see any day’s image “Surprise Me” for random space pics!...
|
1792878843.7385328
|
1793742843.7385328
|
|
45600
|
wiwi's world by @Wiwi | Stardance
|
Wiwi
|
1
|
5.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-10T19:21:14Z", "hours": 5.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a personal site and it was a bit challenging but at the same time it was fun. I spent more time on creation of this site than the time recorded by hackatime. But it was a lot of fun :)", "repo": "https://github.com/wardazahoor4-boop/wiwi-s-world", "demo": "https://wardazahoor4-boop.github.io/wiwi-s-world/"}]...
|
[{"post_id": 44759, "ts": "202 [{"post_id": 44759, "ts": "2026-08-10T19:07:29Z", "hours": 4.055, "text": "YAYAYA I’m finally done"}, {"post_id": 44104, "ts": "2026-08-09T17:27:10Z", "hours": 0.6367, "text": "I’m working on a personal site. This is how it currently looks. It looks empty because i’m not done making it and it takes me time to learn how everything works."}]...
|
Title: wiwi's world by @Wiwi | Stardance
Devl Title: wiwi's world by @Wiwi | Stardance
Devlogs:
I’m working on a personal site. This is how it currently looks. It looks empty because i’m not done making it and it takes me time to learn how everything works.
YAYAYA I’m finally done
Ships:
I made a personal site and it was a bit challenging but at the same time it was fun. I spent more time on creation of this site than the time recorded by hackatime. But it was a lot of fun :)...
|
1793332587.7391
|
1793418987.7391
|
|
45607
|
Grade 10 English literature reader Book by @Lalith Grade 10 English literature reader Book by @Lalith | Stardance...
|
Lalith
|
1
|
22.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-16T15:19:30Z", "hours": 22.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "A school friendly website for my school about this poem ‘The Rime Of The Ancient Mariner’ as a example for my website", "repo": "https://github.com/Hustlenix/The-Rime-Of-The-Ancient-Mariner", "demo": "https://hustlenix.github.io/The-Rime-Of-The-Ancient-Mariner/"}]...
|
[{"post_id": 69177, "ts": "202 [{"post_id": 69177, "ts": "2026-09-16T15:18:54Z", "hours": 6.235, "text": "As we begin the new academic session, this is the perfect time to build a strong foundation from day one! If you want to stay ahead and practice smarter, The Rime Of the Ancient Mariner Question Bank is your best companion 📖"}, {"post_id": 48217, "ts": "2026-08-16T14:55:16Z", "hours": 0.4689, "text": "I am currently on a mission to make my website https://hustlenix.github.io/The-Rime-Of-The-Ancient-Mariner/ more fun, interactive, and non boring website both in mobile and desktop. So tely’ll be more interested in studying and learning. through my website."}, {"post_id": 48179, "ts": "2026-08-16T14:02:09Z", "hours": 7.9622, "text": "Here is a ultra-crisp, casual version designed to fit right into your Hack Club devlog style:Devlog #5 — Teacher Tools & Parchment Restyle (~7h logged)Turned the portal into a full teacher workspace—built a question bank, a test paper generator, and a print library, then polished accessibility, bundle size, tests, and CSS!What got built:Teacher Backend (db.js, teacher.js): Added schemas for questions and paper templates. Generating a paper snapshots the questions so editing the bank later won’t ruin past test history.Smart Autofill (autofill.js): Builds papers based on difficulty (1–5), question types, and chapters while tracking usage frequency so questions don’t over-repeat.Paper Builder & CSV Import: 3-step wizard with preset CBSE formats (like 29-mark setups) and bulk CSV question uploading.A11y & Performance: Lazy-loaded all 14 routes to cut bundle size from 221 KB to 186 KB. Fixed screen-reader toggle text and added offline PWA caching.Parchment Theme: Redid CSS with warm ivory (#f0ece2), clean cards, serif fonts (Source Serif 4), and dark mode tokens.Autofill Logic Snippet:JavaScriptconst candidates = pool .filter((q) => !excluded.has(Number(q.id)) && !picked.has(Number(q.id))) .filter((q) => matchesSection(q, spec, user)) .map((q, i) => ({ q, i, tiebreak: rng() })) .sort((a, b) => a.q.usage_count - b.q.usage_count || a.tiebreak - b.tiebreak) .map((x) => x.q); What I Learned:A11y live regions: Always announce the result of a toggle to screen readers, while setting the button label to the next action.GitHub Pages hosting: Used static fallback data for student views so everything works smoothly without a live Express server.Next up: Direct PDF exports for the print queue! I am gonna finish this in no time and get my money, right."}, {"post_id": 43966, "ts": "2026-08-09T13:14:59Z", "hours": 1.3111, "text": "Ig that my free study website for stressed 10th graders from India to Indians is coming to an end, now that I have entered all of the data for the website like all poems, lessone and stuff I think with some touch ups and some polish I am gonna ship this in no time. W GNG"}, {"post_id": 43844, "ts": "2026-08-09T08:36:53Z", "hours": 1.2144, "text": "I tried a Neo-Brutalism style thing for the got, but it is not going well😭✌🏻. Someone pleaase help me make a study website from scratch"}, {"post_id": 43660, "ts": "2026-08-09T01:47:05Z", "hours": 1.3222, "text": "As i know how to make a simple study website, I got a idea to expand this for the whole book, like anyone can use this who wants to learn no cost, fully free and funded🤣🤣, i first used claude, gemini, chatgpt, and perplexity for research, like i asked them and combined all of them and used it as a raw data to build this master peice and gave it to opencode to data evaluate it and it helped me a lot and i used it to build the website around this ‘Grade 10 Literature Reader’ Book. Stay Studied GNG"}, {"post_id": 43329, "ts": "2026-08-08T15:03:20Z", "hours": 3.6222, "text": "I’ve used the most underrated free AI coding tool (Opencode) to help me with coding and helping me through the code and stuff, as of now i have used it to give me content for HTML and structured, and I’ll admit that it help me code CSS and JavaScript. Until now I have come till having Home, Summary, Theme on the poem, Poetic devices, Question/Answers, Quiz to test their knowledge, Flashcards to help them understand, and a useless AUTH even thogh anyone can use it even if we are in guest mode😭😭🐬. Stay Knowledged GNG"}]...
|
Title: Grade 10 English literature reader Book by Title: Grade 10 English literature reader Book by @Lalith | Stardance
Devlogs:
I’ve used the most underrated free AI coding tool (Opencode) to help me with coding and helping me through the code and stuff, as of now i have used it to give me content for HTML and structured, and I’ll admit that it help me code CSS and JavaScript. Until now I have come till having Home, Summary, Theme on the poem, Poetic devices, Question/Answers, Quiz to test their knowledge, Flashcards to help them understand, and a useless AUTH even thogh anyone can use it even if we are in guest mode😭😭🐬. Stay Knowledged GNG
As i know how to make a simple study website, I got a idea to expand this for the whole book, like anyone can use this who wants to learn no cost, fully free and funded🤣🤣, i first used claude, gemini, chatgpt, and perplexity for research, like i asked them and combined all of them and used it as a raw data to build this master peice and gave it to opencode to data evaluate it and it helped me a lot and i used it to build the website around this ‘Grade 10 Literature Reader’ Book. Stay Studied GNG
I tried a Neo-Brutalism style thing for the got, but it is not going well😭✌🏻. Someone pleaase help me make a study website from scratch
Ig that my free study website for stressed 10th graders from India to Indians is coming to an end, now that I have entered all of the data for the website like all poems, lessone and stuff I think with some touch ups and some polish I am gonna ship this in no time. W GNG
Here is a ultra-crisp, casual version designed to fit right into your Hack Club devlog style:Devlog #5 — Teacher Tools & Parchment Restyle (~7h logged)Turned the portal into a full teacher workspace—built a question bank, a test paper generator, and a print library, then polished accessibility, bundle size, tests, and CSS!What got built:Teacher Backend (db.js, teacher.js): Added schemas for questions and paper templates. Generating a paper snapshots the questions so editing the bank later won’t ruin past test history.Smart Autofill (autofill.js): Builds papers based on difficulty (1–5), question types, and chapters while tracking usage frequency so questions don’t over-repeat.Paper Builder & CSV Import: 3-step wizard with preset CBSE formats (like 29-mark setups) and bulk CSV question uploading.A11y & Performance: Lazy-loaded all 14 routes to cut bundle size from 221 KB to 186 KB. Fixed screen-reader toggle text and added offline PWA caching.Parchment Theme: Redid CSS with warm ivory (#f0ece2), clean cards, serif fonts (Source Serif 4), and dark mode tokens.Autofill Logic Snippet:JavaScriptconst candidates = pool .filter((q) => !excluded.has(Number(q.id)) && !picked.has(Number(q.id))) .filter((q) => matchesSection(q, spec, user)) .map((q, i) => ({ q, i, tiebreak: rng() })) .sort((a, b) => a.q.usage_count - b.q.usage_count || a.tiebreak - b.tiebreak) .map((x) => x.q); What I Learned:A11y live regions: Always announce the result of a toggle to screen readers, while setting the button label to the next action.GitHub Pages hosting: Used static fallback data for student views so everything works smoothly without a live Express server.Next up: Direct PDF exports for the print queue! I am gonna finish this in no time and get my money, right.
I am currently on a mission to make my website https://hustlenix.github.io/The-Rime-Of-The-Ancient-Mariner/ more fun, interactive, and non boring website both in mobile and desktop. So tely’ll be more interested in studying and learning. through my website.
As we begin the new academic session, this is the perfect time to build a strong foundation from day one! If you want to stay ahead and practice smarter, The Rime Of the Ancient Mariner Question Bank is your best companion 📖
Ships:
A school friendly website for my school about this poem ‘The Rime Of The Ancient Mariner’ as a example for my website...
|
1793346600.3773632
|
1793433000.3773632
|
|
45608
|
My own site! by @jon_pecar | Stardance
|
jon_pecar
|
1
|
0.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-12T17:06:39Z", "hours": 0.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made my own portfolio for myself and to learn a bit of frontend SMTP mail sending and tailwind for styles, i really enjoyed in making of this site and would recommend if you don’t have a site yet create it and host it on github!", "repo": "https://github.com/Jonontop/jonontop.github.io", "demo": "https://pecar.site/"}]...
|
[{"post_id": 45269, "ts": "202 [{"post_id": 45269, "ts": "2026-08-11T16:52:13Z", "hours": 0.3028, "text": "Implementing frontend smtp mail sending via emailJS for my portfolio’s form"}]...
|
Title: My own site! by @jon_pecar | Stardance
Dev Title: My own site! by @jon_pecar | Stardance
Devlogs:
Implementing frontend smtp mail sending via emailJS for my portfolio’s form
Ships:
I made my own portfolio for myself and to learn a bit of frontend SMTP mail sending and tailwind for styles, i really enjoyed in making of this site and would recommend if you don’t have a site yet create it and host it on github!...
|
1793332588.9169254
|
1793418988.9169254
|
|
45623
|
App Launcher by @Samyak | Stardance
|
Samyak
|
1
|
11.0
|
117
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-01T18:37:56Z", "hours": 11.0, "multiplier": 10.96, "payout": 117, "blessing": "neutral", "text": "App Launcher helps in finding and launching apps with ease. Many PC’s which are budget, running experimental versions of windows or general may find that Start Menu would lag sometimes. App Launcher is Instant, very minimal resource consumption, Modern Light/Dark Mode, fuzzy search which Start doesn’t support and clear icon view and navigation with arrow keys in the launcher. Its made in Python and compiled using pyinstaller and Setup made using Inno Setup. It essentially replaces the start menu in some way. Its hotkey to launch is Alt+X which is easily accessible. It has a priority system as well as soon as you open the Launcher, the list you see is the recently launched apps by it. Comparitively its much lighter to 99% of other launchers too. I had a lot of difficulty and lot pf googling for this latest update in which i include better quality icons(had do dive into ctypes and stuff) uwp icons(more advanced logics and stuff) and small but good to have UI Changes, theme switcher based on windows modes and much more", "repo": "https://github.com/SpaceCoderPro/App-Launcher", "demo": "https://github.com/SpaceCoderPro/App-Launcher/releases"}]...
|
[{"post_id": 75941, "ts": "202 [{"post_id": 75941, "ts": "2026-10-01T17:43:26Z", "hours": 0.6683, "text": "Just did some minor UI Changes like now 7 rows instead of 6, improved window size, removed scroll bar while maintaining scroll functionality and globalized some variables…"}, {"post_id": 75869, "ts": "2026-10-01T13:00:40Z", "hours": 10.0175, "text": "I worked on improving it. Its now much better.: Stability Improvements, Better Quality Icons, UWP Icons, Finally- An App Icon, Better Performance, Better Alt + X Capturing, Arrow Key Functionality. It wasn’t easy but not that hard. I definitely had to do a lot of googling. And i finally got Git working properly for the Repo with assistance from Gemini. I worked like 2hr and 30min(From i think 28 Sep), the 10h is just my past Macondo data btw…"}]...
|
Title: App Launcher by @Samyak | Stardance
Devlog Title: App Launcher by @Samyak | Stardance
Devlogs:
I worked on improving it. Its now much better.: Stability Improvements, Better Quality Icons, UWP Icons, Finally- An App Icon, Better Performance, Better Alt + X Capturing, Arrow Key Functionality. It wasn’t easy but not that hard. I definitely had to do a lot of googling. And i finally got Git working properly for the Repo with assistance from Gemini. I worked like 2hr and 30min(From i think 28 Sep), the 10h is just my past Macondo data btw…
Just did some minor UI Changes like now 7 rows instead of 6, improved window size, removed scroll bar while maintaining scroll functionality and globalized some variables…
Ships:
App Launcher helps in finding and launching apps with ease. Many PC’s which are budget, running experimental versions of windows or general may find that Start Menu would lag sometimes. App Launcher is Instant, very minimal resource consumption, Modern Light/Dark Mode, fuzzy search which Start doesn’t support and clear icon view and navigation with arrow keys in the launcher. Its made in Python and compiled using pyinstaller and Setup made using Inno Setup. It essentially replaces the start menu in some way. Its hotkey to launch is Alt+X which is easily accessible. It has a priority system as well as soon as you open the Launcher, the list you see is the recently launched apps by it. Comparitively its much lighter to 99% of other launchers too. I had a lot of difficulty and lot pf googling for this latest update in which i include better quality icons(had do dive into ctypes and stuff) uwp icons(more advanced logics and stuff) and small but good to have UI Changes, theme switcher based on windows modes and much more...
|
1793346605.65679
|
1793433005.65679
|
|
45646
|
TinyLilFella by @purpletue | Stardance
|
purpletue
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-22T19:08:11Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "After a few weeks of development, I am excited to introduce: TinyLilFella, the smallest STM32 devboard at least i can find. Featuring an STM32C071 and an absurdly small form factor, TinyLilFella is the devboard to go with if you need a smart dongle. no it doesn’t have wireless, susan. its this small. It’s got 10 GPIO, 6 of those being actual I/O and 4 being power! It also has an RGB LED to do whatever your heart desires!", "repo": "https://github.com/purpletue/TinyLilFella", "demo": ""}]...
|
[{"post_id": 48734, "ts": "202 [{"post_id": 48734, "ts": "2026-08-17T08:18:45Z", "hours": 0.5833, "text": "Finished the PCB COMPLETELY. THATS IT. DONE. NOTHING ELSE. i added a programmable button and a BOOT button, along with a power indicator."}, {"post_id": 45319, "ts": "2026-08-11T18:13:43Z", "hours": 1.2256, "text": "Made a bloody case in tinkercad. lets hope and pray my funding request gets approved."}, {"post_id": 43912, "ts": "2026-08-09T11:13:12Z", "hours": 0.6833, "text": "i finished the PCB!!! YAY!!!!!!!!!!!!!!!!!! THANK GOD FOR FREEROUTING YET AGAIN. uh can anybody help me out here how do i get a demo URL of a couple files in my computer…?"}, {"post_id": 43884, "ts": "2026-08-09T10:17:25Z", "hours": 1.2167, "text": "finished the schematic for my new project! wow this is gonna take a while for the PCB huh"}]...
|
Title: TinyLilFella by @purpletue | Stardance
Dev Title: TinyLilFella by @purpletue | Stardance
Devlogs:
finished the schematic for my new project! wow this is gonna take a while for the PCB huh
i finished the PCB!!! YAY!!!!!!!!!!!!!!!!!! THANK GOD FOR FREEROUTING YET AGAIN. uh can anybody help me out here how do i get a demo URL of a couple files in my computer…?
Made a bloody case in tinkercad. lets hope and pray my funding request gets approved.
Finished the PCB COMPLETELY. THATS IT. DONE. NOTHING ELSE. i added a programmable button and a BOOT button, along with a power indicator.
Ships:
After a few weeks of development, I am excited to introduce: TinyLilFella, the smallest STM32 devboard at least i can find. Featuring an STM32C071 and an absurdly small form factor, TinyLilFella is the devboard to go with if you need a smart dongle. no it doesn’t have wireless, susan. its this small. It’s got 10 GPIO, 6 of those being actual I/O and 4 being power! It also has an RGB LED to do whatever your heart desires!...
|
1793530528.1416154
|
1793616928.1416154
|
|
45648
|
My Website by @RajanKC | Stardance
|
RajanKC
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-09T06:56:04Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Made My WebSite", "repo": "https://github.com/RajanKCKC/my-web", "demo": "https://rajankckc.github.io/my-web/"}]...
|
[{"post_id": 43435, "ts": "202 [{"post_id": 43435, "ts": "2026-08-08T17:50:57Z", "hours": 1.1669, "text": "Made my Website"}]...
|
Title: My Website by @RajanKC | Stardance
Devlogs Title: My Website by @RajanKC | Stardance
Devlogs:
Made my Website
Ships:
Made My WebSite...
|
1793469119.4978907
|
1793555519.4978907
|
|
45659
|
TerminalTab by @poepoepipi | Stardance
|
poepoepipi
|
1
|
4.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-11T16:07:04Z", "hours": 4.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "This is TerminalTab it is a project that lets you search the internet, manage bookmarks, and more, all from a terminal-like interface in your browser. It provides a unique browsing experience for people who enjoy using command-line interfaces. I made it because I am one of those people and I look forward to actually using and improving this, in the pictures you can see the commands you can perform.", "repo": "https://github.com/poepoepipi/TerminalTab", "demo": "https://poepoepipi.github.io/TerminalTab/"}]...
|
[{"post_id": 45225, "ts": "202 [{"post_id": 45225, "ts": "2026-08-11T15:44:33Z", "hours": 4.4556, "text": "Just spend a few hours on this project, it is a ‘new tab page’ and since I like the linux command line a lot I decided to base it of of that, you can search stuff, bookmark stuff, there are some other commands, you can choose the search engine you want to use. I reused some code from my webOS project which also had a command line. I liked doing this project a lot and I will add more commands if I feel like it, I might also daily-drive this thing that I cooked up."}]...
|
Title: TerminalTab by @poepoepipi | Stardance
Dev Title: TerminalTab by @poepoepipi | Stardance
Devlogs:
Just spend a few hours on this project, it is a ‘new tab page’ and since I like the linux command line a lot I decided to base it of of that, you can search stuff, bookmark stuff, there are some other commands, you can choose the search engine you want to use. I reused some code from my webOS project which also had a command line. I liked doing this project a lot and I will add more commands if I feel like it, I might also daily-drive this thing that I cooked up.
Ships:
This is TerminalTab it is a project that lets you search the internet, manage bookmarks, and more, all from a terminal-like interface in your browser. It provides a unique browsing experience for people who enjoy using command-line interfaces. I made it because I am one of those people and I look forward to actually using and improving this, in the pictures you can see the commands you can perform....
|
1792882098.456861
|
1793746098.456861
|
|
45690
|
Game Design Pathways by @Kailey | Stardance
|
Kailey
|
1
|
4.0
|
5
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-10T14:50:26Z", "hours": 4.0, "multiplier": 1.1, "payout": 5, "blessing": "neutral", "text": "This repository contains the projects I completed as part of the Girls Who Code Game Design Track. Throughout the track, I learned the basics of game design and interactive storytelling by creating games and projects with different types of player interaction and choices. Each folder contains a project I worked on during the track.", "repo": "https://github.com/KaileyLiou/game-design", "demo": "https://kaileyliou.github.io/game-design/collection_game/"}]...
|
[{"post_id": 44621, "ts": "202 [{"post_id": 44621, "ts": "2026-08-10T14:49:22Z", "hours": 4.2778, "text": "Created interactive avatar, choose your own adventure, and collection-style games Updated readme Made github pages links"}]...
|
Title: Game Design Pathways by @Kailey | Stardance Title: Game Design Pathways by @Kailey | Stardance
Devlogs:
Created interactive avatar, choose your own adventure, and collection-style games Updated readme Made github pages links
Ships:
This repository contains the projects I completed as part of the Girls Who Code Game Design Track. Throughout the track, I learned the basics of game design and interactive storytelling by creating games and projects with different types of player interaction and choices. Each folder contains a project I worked on during the track....
|
1793429325.3796408
|
1793515725.3796408
|
|
45699
|
threat detection by @MadameLouise | Stardance
|
MadameLouise
|
1
|
6.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-08T19:20:09Z", "hours": 6.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Multi zone threat detection iot project for cars or any vehicles, if you want to detection a rat biting its wires and send alert! or if an animal is sleeping under your vehicle before moving it", "repo": "https://github.com/AmruthaMuralidhar1/Notebook/tree/565462271745ab651cf61654db632a26331b4e73/threatdetection", "demo": ""}]...
|
[{"post_id": 43474, "ts": "202 [{"post_id": 43474, "ts": "2026-08-08T19:18:53Z", "hours": 6.2158, "text": "Multi zone threat detection IoT project"}]...
|
Title: threat detection by @MadameLouise | Stardan Title: threat detection by @MadameLouise | Stardance
Devlogs:
Multi zone threat detection IoT project
Ships:
Multi zone threat detection iot project for cars or any vehicles, if you want to detection a rat biting its wires and send alert! or if an animal is sleeping under your vehicle before moving it...
|
1793476386.2868044
|
1793562786.2868044
|
|
45702
|
driver drowsiness detection by @MadameLouise | Sta driver drowsiness detection by @MadameLouise | Stardance...
|
MadameLouise
|
1
|
4.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-08T19:33:27Z", "hours": 4.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "the difficult part was making the wires stick, it was really loose so I had my mom hold the wires tightly, make sure to use tapes or new wires and breadboard", "repo": "https://github.com/AmruthaMuralidhar1/Notebook/tree/9303ec6ff69e4144a5fcc70df0b643fedaf5b8f3/driverdrowsy", "demo": ""}]...
|
[{"post_id": 43481, "ts": "202 [{"post_id": 43481, "ts": "2026-08-08T19:31:28Z", "hours": 4.3233, "text": "Driver Drowsiness detection using two methods, a specs based one where driver has to wear specs and it detects drowsiness n sends alerts and then camera based where a tiny iot camera is placed ifront of the driver"}]...
|
Title: driver drowsiness detection by @MadameLouis Title: driver drowsiness detection by @MadameLouise | Stardance
Devlogs:
Driver Drowsiness detection using two methods, a specs based one where driver has to wear specs and it detects drowsiness n sends alerts and then camera based where a tiny iot camera is placed ifront of the driver
Ships:
the difficult part was making the wires stick, it was really loose so I had my mom hold the wires tightly, make sure to use tapes or new wires and breadboard...
|
1793483250.6773376
|
1793569650.6773376
|
|
45715
|
My Space by @bndrk23 | Stardance
|
bndrk23
|
1
|
0.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-09T11:37:07Z", "hours": 0.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Though I do have experience in web development, I took a step back to where most people start. Here’s my website!", "repo": "https://github.com/bndrk23/Hackclub-Portfolio", "demo": "https://bndrk23.github.io/Hackclub-Portfolio/"}]...
|
[{"post_id": 43921, "ts": "202 [{"post_id": 43921, "ts": "2026-08-09T11:35:06Z", "hours": 0.3444, "text": "Begun working on my website! Though I do have experience in web development, I took a step back to where most people start. So far, I’ve created these 3 sections."}]...
|
Title: My Space by @bndrk23 | Stardance
Devlogs:
Title: My Space by @bndrk23 | Stardance
Devlogs:
Begun working on my website! Though I do have experience in web development, I took a step back to where most people start. So far, I’ve created these 3 sections.
Ships:
Though I do have experience in web development, I took a step back to where most people start. Here’s my website!...
|
1793483254.793316
|
1793569654.793316
|
|
45719
|
Ping Pong Game by @Jhenil | Stardance
|
Jhenil
|
1
|
7.0
|
33
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-10T21:59:41Z", "hours": 7.0, "multiplier": 4.9, "payout": 33, "blessing": "neutral", "text": "I have made a Ping Pong game. I have made this using Python and Pygame. This game is like a classic ping pong game. You can choose whether you want to play with a friend (It is not multiplayer but you can use the same keyboard to play with your friend) or you can choose a difficulty to play against a bot. Every level when you hover has a fun little decoration like for easy it is green particles around the button, for medium it is lightning strike buzzing and for the hard one it is red horns pulsing. I have added a retro style main screen. When you hover over a button then it glows. It has more things that are listed on my GitHub. Thank you for testing my game out!", "repo": "https://github.com/JP-code33/Ping-Pong-Game", "demo": "https://github.com/JP-code33/Ping-Pong-Game/releases/tag/v1.0.0"}]...
|
[{"post_id": 44787, "ts": "202 [{"post_id": 44787, "ts": "2026-08-10T19:59:13Z", "hours": 2.1592, "text": "Devlog - 5 I have completed the game. I have added a lot of new things on the ui side and to make the game better and fun. Firstly I have added a animation depicting the game mode you chose. For easy it is small green colored balls, for medium it is lightning bolts having animating like they are buzzing and for hard I have horns coming out with an pulse animation. Then I added a small glow to the ball & a ball trail which resets after a point is scored. I have also added a glowing paddle and a hit effect when the ball collides with the paddle. Then I added a pause menu which pops up when you press escape key. You can choose resume, main menu or quit. And I will be shipping the project soon! You can see the changes in the video attached below."}, {"post_id": 44254, "ts": "2026-08-09T21:42:57Z", "hours": 0.9617, "text": "Devlog - 4 In this hour I have worked a bit on improving the UI. Whenever I opened the game to test it out the boring black background made it boring as well. So I have added pop colors and made it pop as soon as you open with retro style background. Additionally when you hover over a button then it glows to a bright cyan color which makes it interesting and lets the user know what they are about to choose so that they don’t choose the wrong game mode. I might add like power ups for the game next, not sure though what to add. You can see all these updates in the video attached below."}, {"post_id": 44026, "ts": "2026-08-09T15:08:52Z", "hours": 0.8647, "text": "Devlog - 3 In this hour I have added a How to play menu and a back button to back to go back to the main menu. In this menu I have added all the information about controls and the game. Then I worked mostly on making the computer modes better. Like before I did make it like easy, medium and hard but it wasn’t that noticeable but now I tried a couple of things and now I think the game modes are much better than what they were before. Next I am thinking to make the UI better and all. Also I added a more of random and sharp bounce and coded so that with each hit the ball speed increases. Any suggestions are welcome!"}, {"post_id": 43665, "ts": "2026-08-09T01:56:20Z", "hours": 1.1611, "text": "Devlog - 2 Ok, so in this hour I have added a computer player like I did in the formula 1 style game. Then I created a main starting screen where you can select whether you want to “Play with friend” or “Play against computer” . If you select with a friend then you will 2 paddles which can be controlled by W & S for the left paddle and Up arrow key & Down arrow key for the right paddle. If you select to play against a computer then you have to select the difficulty of the computer. Three difficulties: Easy, Medium & Hard . I will be trying to add new features, more controls to the main menu and more next time."}, {"post_id": 43623, "ts": "2026-08-09T00:19:48Z", "hours": 1.5019, "text": "Devlog - 1 I have used this hour and half to make the basic version of the ping pong game. What it essentially does is that you have 2 paddles, 2 players, 2 scores and a ball. Currently the game is 2 player. In future time I will be adding computer version so that it can be played by a single player. Whoever gets to 10 points first then that side wins and the game will reset and will have a text showing who won. I will be adding more better UI to the game but for now I made the basic version of the game. You can see the game in action in the video."}]...
|
Title: Ping Pong Game by @Jhenil | Stardance
Devl Title: Ping Pong Game by @Jhenil | Stardance
Devlogs:
Devlog - 1 I have used this hour and half to make the basic version of the ping pong game. What it essentially does is that you have 2 paddles, 2 players, 2 scores and a ball. Currently the game is 2 player. In future time I will be adding computer version so that it can be played by a single player. Whoever gets to 10 points first then that side wins and the game will reset and will have a text showing who won. I will be adding more better UI to the game but for now I made the basic version of the game. You can see the game in action in the video.
Devlog - 2 Ok, so in this hour I have added a computer player like I did in the formula 1 style game. Then I created a main starting screen where you can select whether you want to “Play with friend” or “Play against computer” . If you select with a friend then you will 2 paddles which can be controlled by W & S for the left paddle and Up arrow key & Down arrow key for the right paddle. If you select to play against a computer then you have to select the difficulty of the computer. Three difficulties: Easy, Medium & Hard . I will be trying to add new features, more controls to the main menu and more next time.
Devlog - 3 In this hour I have added a How to play menu and a back button to back to go back to the main menu. In this menu I have added all the information about controls and the game. Then I worked mostly on making the computer modes better. Like before I did make it like easy, medium and hard but it wasn’t that noticeable but now I tried a couple of things and now I think the game modes are much better than what they were before. Next I am thinking to make the UI better and all. Also I added a more of random and sharp bounce and coded so that with each hit the ball speed increases. Any suggestions are welcome!
Devlog - 4 In this hour I have worked a bit on improving the UI. Whenever I opened the game to test it out the boring black background made it boring as well. So I have added pop colors and made it pop as soon as you open with retro style background. Additionally when you hover over a button then it glows to a bright cyan color which makes it interesting and lets the user know what they are about to choose so that they don’t choose the wrong game mode. I might add like power ups for the game next, not sure though what to add. You can see all these updates in the video attached below.
Devlog - 5 I have completed the game. I have added a lot of new things on the ui side and to make the game better and fun. Firstly I have added a animation depicting the game mode you chose. For easy it is small green colored balls, for medium it is lightning bolts having animating like they are buzzing and for hard I have horns coming out with an pulse animation. Then I added a small glow to the ball & a ball trail which resets after a point is scored. I have also added a glowing paddle and a hit effect when the ball collides with the paddle. Then I added a pause menu which pops up when you press escape key. You can choose resume, main menu or quit. And I will be shipping the project soon! You can see the changes in the video attached below.
Ships:
I have made a Ping Pong game. I have made this using Python and Pygame. This game is like a classic ping pong game. You can choose whether you want to play with a friend (It is not multiplayer but you can use the same keyboard to play with your friend) or you can choose a difficulty to play against a bot. Every level when you hover has a fun little decoration like for easy it is green particles around the button, for medium it is lightning strike buzzing and for the hard one it is red horns pulsing. I have added a retro style main screen. When you hover over a button then it glows. It has more things that are listed on my GitHub. Thank you for testing my game out!...
|
1793436885.0361538
|
1793523285.0361538
|
|
45725
|
A site for the fun by @Egisipub | Stardance
|
Egisipub
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-08T21:57:11Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a personal site for the mission, it was not very hard (i make web games) but it was my first time making somthing without js", "repo": "https://github.com/Egisipub/MyPersonalSite", "demo": "https://egisipub.github.io/MyPersonalSite/"}]...
|
[{"post_id": 43549, "ts": "202 [{"post_id": 43549, "ts": "2026-08-08T21:37:47Z", "hours": 0.6356, "text": "finished it up!"}, {"post_id": 43526, "ts": "2026-08-08T21:00:04Z", "hours": 0.3575, "text": "Stared my site"}]...
|
Title: A site for the fun by @Egisipub | Stardance Title: A site for the fun by @Egisipub | Stardance
Devlogs:
Stared my site
finished it up!
Ships:
I made a personal site for the mission, it was not very hard (i make web games) but it was my first time making somthing without js...
|
1792878440.9116378
|
1793742440.9116378
|
|
45740
|
Statitron by @matest | Stardance
|
matest
|
1
|
18.53
|
197
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-19T15:15:20Z", "hours": 17.0, "multiplier": 11.58, "payout": 197, "blessing": "neutral", "text": "Statitron is a hardware monitor that tracks: GPU Usage in percent, GPU temp, GPU Vram usage in percent CPU Usage RAM Usage in both percent and GB Net Recv + Net Send All disk partitions usage in GB and percent + Disk write and disk read total from all drives It also has a cool feature which is event tracker. It tracks GPU, CPU and RAM usage and whenever one of them has a spike of 20%, it records it and displays it in the window. Every 5 seconds it will also display updates on how your hardware usage is at that moment. Through this project i learnt 5 new python libraries that i before only had minimal experience with! This is the first ever project i made that id say im proud of, because it taught me so much and i had a lot of fun making it. Also the first time my ui design looks at least semi-decent :)", "repo": "https://github.com/TheMathematico/Statitron1", "demo": "https://github.com/TheMathematico/Statitron1/releases/tag/v1.0.0"}]...
|
[{"post_id": 57442, "ts": "202 [{"post_id": 57442, "ts": "2026-08-29T16:23:25Z", "hours": 1.5261, "text": "accidently posted a devlog"}, {"post_id": 47190, "ts": "2026-08-14T22:28:55Z", "hours": 6.1078, "text": "Final devlog before shipping(#4) It has been 2 days since my last devlog, here’s what happened: I’ve finished the event tracker, it shows cpu, gpu and ram spikes + usage updates every few seconds. You can also snooze updates or snooze both the spikes and the updates(snooze=they dont appear in the event tracker). Before shipping(tommorow) i will probably organize the code a little bit and maybe add a bar that shows the health of all the disks you have on your pc. Im glad that im finally done and i hope it looks good! (in the vid the event tracker is mistakenly named gpu monitor, sry)"}, {"post_id": 45445, "ts": "2026-08-11T21:56:28Z", "hours": 4.2778, "text": "Devlog - 3 Today i’ve added a detailed monitor for disk, gpu and ram. The disk monitor shows write speed and read speed combined from all the drives you have on your pc, and it also shows used and total space from all partitions you have(Don’t ask why my partitions are so full lol). The GPU monitor shows temp, usage and vram utilization. The Ram monitor is pretty basic and just shows how much is being utilized in gb and percent. For the next devlog im planning on importing another library to track your disk health and finally start adding the event tracker(a tracker that shows what app caused what component spike eg. google chrome caused a cpu spike at some point here’s what you can do etc.) This program also made me realize that my drive fills up passively every hour even tho im not installing anything which is so cool :)"}, {"post_id": 44809, "ts": "2026-08-10T20:42:31Z", "hours": 4.6183, "text": "Devlog - 2 I completely reworked the code and added 6 cool looking meters that show cpu/gpu usage, disk space, ram used and net recv + net send(net download/upload). I haven’t added the event tracker yet but im hoping to tomorrow. Im not quite sure what to put in the empty space below the buttons so i’d love to hear some suggestions!"}, {"post_id": 44285, "ts": "2026-08-09T22:51:32Z", "hours": 2.0314, "text": "Devlog - 1: Coded the stats monitor which i spent like 30 mins actually coding and 1h 30 mins cleaning up my messy code. For now, it tracks cpu usage, ram and gpu. Next i’ll be polishing the UI which doesn’t look the best at the moment and adding an event tracker that tracks hardware usage spikes and what process/app caused it."}]...
|
Title: Statitron by @matest | Stardance
Devlogs:
Title: Statitron by @matest | Stardance
Devlogs:
Devlog - 1: Coded the stats monitor which i spent like 30 mins actually coding and 1h 30 mins cleaning up my messy code. For now, it tracks cpu usage, ram and gpu. Next i’ll be polishing the UI which doesn’t look the best at the moment and adding an event tracker that tracks hardware usage spikes and what process/app caused it.
Devlog - 2 I completely reworked the code and added 6 cool looking meters that show cpu/gpu usage, disk space, ram used and net recv + net send(net download/upload). I haven’t added the event tracker yet but im hoping to tomorrow. Im not quite sure what to put in the empty space below the buttons so i’d love to hear some suggestions!
Devlog - 3 Today i’ve added a detailed monitor for disk, gpu and ram. The disk monitor shows write speed and read speed combined from all the drives you have on your pc, and it also shows used and total space from all partitions you have(Don’t ask why my partitions are so full lol). The GPU monitor shows temp, usage and vram utilization. The Ram monitor is pretty basic and just shows how much is being utilized in gb and percent. For the next devlog im planning on importing another library to track your disk health and finally start adding the event tracker(a tracker that shows what app caused what component spike eg. google chrome caused a cpu spike at some point here’s what you can do etc.) This program also made me realize that my drive fills up passively every hour even tho im not installing anything which is so cool :)
Final devlog before shipping(#4) It has been 2 days since my last devlog, here’s what happened: I’ve finished the event tracker, it shows cpu, gpu and ram spikes + usage updates every few seconds. You can also snooze updates or snooze both the spikes and the updates(snooze=they dont appear in the event tracker). Before shipping(tommorow) i will probably organize the code a little bit and maybe add a bar that shows the health of all the disks you have on your pc. Im glad that im finally done and i hope it looks good! (in the vid the event tracker is mistakenly named gpu monitor, sry)
accidently posted a devlog
Ships:
Statitron is a hardware monitor that tracks: GPU Usage in percent, GPU temp, GPU Vram usage in percent CPU Usage RAM Usage in both percent and GB Net Recv + Net Send All disk partitions usage in GB and percent + Disk write and disk read total from all drives It also has a cool feature which is event tracker. It tracks GPU, CPU and RAM usage and whenever one of them has a spike of 20%, it records it and displays it in the window. Every 5 seconds it will also display updates on how your hardware usage is at that moment. Through this project i learnt 5 new python libraries that i before only had minimal experience with! This is the first ever project i made that id say im proud of, because it taught me so much and i had a lot of fun making it. Also the first time my ui design looks at least semi-decent :)...
|
1793541255.858976
|
1793627655.858976
|