|
44314
|
Cami by @barfpile | Stardance
|
barfpile
|
2
|
35.49
|
530
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-22T22:22:29Z", "hours": 23.0, "multiplier": 17.33, "payout": 392, "blessing": "neutral", "text": "Welcome to Cami! It’s been a difficult 30 hour journey and I’m tryna get me Factorio to wrap up this awesome summer. :P Warning: The client is AI-Generated, it is not the project, simply a tool so you guys don’t have to make raw http requests with python. None of the rest of the project is AI-Generated.", "repo": "https://github.com/fries-git/Cami", "demo": "https://fries.hackclub.app/demo"}, {"ship_num": 2, "ts": "2026-08-11T05:46:34Z", "hours": 10.0, "multiplier": 14.13, "payout": 138, "blessing": "neutral", "text": "Cami is a full authentication backend. I made this for use in my own projects, and as a way to learn web stuff with flask. It was challenging just getting it all working. Combining Flask and TinyDB (things I’m not too familiar with) to make this come together. To use, register an account on the homepage, then click around and see what you can do! THE CLIENT USED IS AI: I do not know how to do frontend html work, and that is not the project. The project is the backend python.", "repo": "https://github.com/fries-git/Cami", "demo": "https://fries.hackclub.app/demo"}]...
|
[{"post_id": 76876, "ts": "202 [{"post_id": 76876, "ts": "2026-10-04T22:06:07Z", "hours": 1.0306, "text": "Fixes/Tweaks Might as well just get some time out here, I’ve literally been working on livechatting and misc fixes. I’ve been so stressed and tired and distracted I don’t remember working on this at all. I’ve moved primarily to working on Phantom, tryna get me a blahaj and balatroooooooo also its been 12 days please ship me my items 😭 Live Chatting Decentralized? Check Ability to change servername dynamically? Check Editing/Deleting messages? Check we’re so goated :)"}, {"post_id": 75357, "ts": "2026-09-29T20:49:47Z", "hours": 1.46, "text": "Well it was fun! (Its going for another week after i blow all my stardust.) Hello stardancers. Its 9-29-26. I’m not going to be able to make another ship and get it rated. Thank you everyone so much for the support on this project, and thanks for running Stardance! Mainly just working on live chatting, a decentralizable chatting service similar to discord, which will be picked up on phantom.hackclub.com. For anyone wondering what I got out of Stardance: 1 domain Outpost Badge (will make a project with that too!) Factorio Pico-8"}, {"post_id": 72426, "ts": "2026-09-22T22:21:17Z", "hours": 0.2506, "text": "AI generated a client so people can actually use it. Once again, I truthfully, have not used AI in this project for anything but front end, which I do not know how to do. Over the course of testing I have mainly used raw HTTP requests."}, {"post_id": 72420, "ts": "2026-09-22T22:02:45Z", "hours": 2.6606, "text": "A lot… I JUST BROKE 30 HOURS ON THIS PROJECT SERVER-SIDE CODING OMG!!! :D Well Cami has been rolling along reallllllllly quickly. Things I’ve added/worked on: Playlists/More Music Stuff Fixing up the post search api Remake of ws chat server Fries have been implemented Fries transfer is working Fries daily claiming is working So many fixes (many things didnt quite properly handle errors and so they have been fixed) Changes to your user info are being locked behind fries. (PFP Decor is locked but pfp, bio, and more will be locked, basically everything but password changes) Image/Music uploading will likely be locked behind fries, or you will have to pay fries to upgrade the amount of stuff you can store. More PFP Decor has been added to my personal instance but that doesnt affect here. Server logs are prettier. More info attached to the user queries. Thanks for reading and sticking with this shitshow of a project."}, {"post_id": 71293, "ts": "2026-09-20T16:11:07Z", "hours": 1.9511, "text": "Music Server/New Chat Server Hello! I’ve lately been working on a music server. Users can upload any sort of audio file, mp3, ogg, it should support mp4 but i haven’t tested, and it converts it to an ogg file. The ogg file has a roughly 75% file size to the original MP3 while keeping the same quality. I’ve also been working on things like metadata storage, playlists, and more. On top of music, I’ve started a full rework of the live chatting system. It’s been going well so far, but I’m changing up how it works a little. It’s going to be closer to IRC + DMs, there will be no locked channels, no way to create custom channels anymore. Hopefully I can also drag some more people in, and make it much simpler to use, and on top of this make it super easy to link to Discord and such. So yeah! It’s been going well, I’m still alive, I’m running out of time to ship… and uh yeah! Have fun coding!"}, {"post_id": 69922, "ts": "2026-09-18T02:21:37Z", "hours": 1.1539, "text": "Fixes, Simultaneous DB Editing, and JSONifying. Quick one since its like 11pm, I’ve been working on a lot of fixes. I, since the start of this project, haven’t closed DBs. Think about that. I am an intelligent human being. I’ve also been working on getting searching working (image) for the social api, and making sure everything works with that. On top of this, everything is still getting organized, and made to have very similar responses, so as a dev less work has to be done for you to support it. I also kinda started on a python library, but eh, we’ll see how it goes I suppose. Also have been working on some security, nothing commited, to try to make it harder to hack ig. Gn stardance! (im sick)"}, {"post_id": 68332, "ts": "2026-09-14T23:16:24Z", "hours": 0.4742, "text": "Multiplayer Im in the midst of making an extendable WS based multiplayer server, and figured I’d test it with a cool game somebody I know made! It’s a W.I.P. but works pretty well and everything server side is done lol."}, {"post_id": 66929, "ts": "2026-09-12T22:02:14Z", "hours": 0.4564, "text": "Im back Been working on the project a bit. Mainly just working on docs and helping people understand the API in a more sort of private environment. Should push a ship eventually, and its gonna be super awesome for everyone! :D Also maybe I did a devlog but i added timestamps to posts and stuff and made the total requests needed to do everything muuuuuuuch smaller, and made a smaller cache of data needed."}, {"post_id": 62232, "ts": "2026-09-05T14:31:16Z", "hours": 0.9633, "text": "LATEST UPDATES Auth Securely, Auth Silly <3 Normalizing Returns I’ve been doing a lot of work on simply normalizing some returns. Some of them were just slightly different like “The token is invalid” vs. “Invalid Token”, so those were condensed into “invalid token”, on top of this whenever i return a message i wrap it like: {\"cmd\":\"success\",\"message\":\"<original message>\" . On top of this I also went through and changed some of the codes. DB Fixes Next thing I need to fix is any DB access needs to be routed through the helper funcs and properly closed. If you change your name, half the project still thinks only the original exists, while the other half, the correct half, only sees the new name. The reason is I have broken the project up into like 5 python files, 2 of which are both trying to simultaneously access the DB. Which, in-case you were wondering, is not good. Less Requests Something else I’ve been working on to prevent clients having to make like 3 requests for one thing, and to prevent the server from having to handle those, is to whenever a message is saved to the DB say from the social endpoint, when I send it back down, I attach the username and display name to it. This takes >2 http requests, get the messages then the usernames and user info, down to just 1. (Until you grab user pfps, which should be just grabbed once and cached.) Because this is really all I did I like… don’t have pictures? So… Enjoy the little 88x31 I made Also this is probably the longest devlog I’ve ever made, but I’m bored, and since I just got 6 months of Spotify premium as a gift, I’m letting the weird AI DJ thing just play whatever it feels like. It does, however, keep going back to the dark ages of 2024. Let me forget that year of music listening…"}, {"post_id": 60382, "ts": "2026-09-02T17:53:50Z", "hours": 1.9931, "text": "Fixes and Usage Well hey! It’s been a hot minute right? Lately I have been working on a lot more fixes, mainly on things like the social endpoint, and the image endpoint. Not terribly visible portions right now, but majorly important! I also got a used RPI5 which is now hosting it. That means, no more Nest downtime issues resetting my code! Yay! Notable Changes: The social posting endpoint returns the whole message object instead of just the ID. Files have been reorganized to be much cleaner Tons of little crashes and issues have been cleaned up, there are still more. I’ve started in on beautifying the logs!"}, {"post_id": 55320, "ts": "2026-08-27T02:04:33Z", "hours": 0.3108, "text": "Quick Devlog for the reroll Started just adding more pfp decor, had some people make me some. Yippee! Quick update: that’s not mine and I didnt get permission to use it, its the one i had for testing first because I got it from somewhere else real easily. It has since been removed, in favor for other ones I do have permission to use."}, {"post_id": 54861, "ts": "2026-08-26T01:43:17Z", "hours": 0.7211, "text": "Fixes and Continuity So basically this was just fixing a lot of weird things. For example, this being the main thing, the pfps stored whenever a user uploads them, get stored as 128x128. But the empty pfp, was 256x256. On top of this in some websocket things i was using \"msg\":\"content\" or \"message\":\"content\" interchangeably, but this has since been normalized. In all its just been a productive time, I’ve added a bunch, started working on a python library, and just gotten ready for ship 2!"}, {"post_id": 53675, "ts": "2026-08-24T10:50:24Z", "hours": 0.9739, "text": "Fixes and new paint Pretty much everything I have worked on this devlog simply involves fixes. “Oh, I’m not handling invalid json on a route, oops!” Or: “Oh usernames can be >32 chars because i messed up my if statement.” (I learned this one when someone with the entire bee movie script as their name appeared on my users route.) While it was all fixes I worked on, on top of this, due to wanting to commit roughly once every hour to keep people updated, I rewrote the empty path so it looks better. Link still points to the github repo. Auth Securely, Auth Silly."}, {"post_id": 53089, "ts": "2026-08-23T14:50:20Z", "hours": 1.5633, "text": "PFP Decor / Display Names ALSO I HIT 20 HOURS These have been wip and were quite simple to implement, display name is just another value in the TINYDB database for users, and so is the profile decor. I got it from another app so I can’t really commit it because its not mine, however it works! There’s no way to set it yourself I just hand edited the DB. Also, users can now edit their username! I know that was a massive complaint in the first ship. Past that really all I changed was paths. Before i had paths like /getuser?user=fries which was dumb. I figured out how to, with flask, make it /user/fries and it gives the same information. Much cleaner."}, {"post_id": 50019, "ts": "2026-08-19T01:27:36Z", "hours": 2.4608, "text": "More Livechat and Currency Livechat: So I’ve done a lot more on livechat, you can create channels now (properly,) delete messages, almost have it so you can edit them, and typing indicators are almost done. Currency: I’ve started figuring out how users should get currency, and what it should go towards. Right now, the main idea is get it daily by posting/using livechat, then spend it on customization like user color, or upgrading max bio length."}, {"post_id": 49218, "ts": "2026-08-17T21:28:23Z", "hours": 0.6536, "text": "More public channels and locking!"}, {"post_id": 48867, "ts": "2026-08-17T13:00:31Z", "hours": 2.4442, "text": "Live Chat Fixed! I fully fixed and implemented the livechat. It supports the creation of channels with passwords, message history, joining channels, sending to channels you’ve joined. If all users leave the channel, unless its a keep-alive channel, mostly predefined channels with no passwords like general and off-topic, the database for message history gets wiped, and the channel is up for grabs again! I dont have any pictures really, I did it last night on a different PC, so enjoy an 88x31!"}, {"post_id": 48487, "ts": "2026-08-16T21:10:31Z", "hours": 0.4981, "text": "Live Chat Live chat is working in its most basic form! I did censor the usernames, solely because they used their real name lol. Color coding different users, the same person is censored with the same color across pics."}, {"post_id": 47555, "ts": "2026-08-15T15:07:11Z", "hours": 1.2475, "text": "GIFS Gifs have been added to the image api. (I can finally new line again!) Images you go: https://images.barfpile.dev/getimage/filename gifs you go: https://images.barfpile.dev/getgif/filename.gif (you can remove the .gif at the end and it will work fine everywhere but discord. You can also use getimage on a gif, but again, will work anywhere but discord.) (Attached gif was added by someone, idk who, while I was testing gifs lol. I am going to add basically metadata so you can get https://images.barfpile.dev/getmeta/filename and retrieve things like timestamp uploaded, filename, and who uploaded it.)"}, {"post_id": 47174, "ts": "2026-08-14T21:26:35Z", "hours": 1.8294, "text": "Images and livechat - I made an image api! You can upload infinite files, compressed to be 1/3 of their size ofc. Also started implementing live ws chatting with infinite channels that can be password locked. https://server/getimage?filename=testimage"}, {"post_id": 45027, "ts": "2026-08-11T05:44:27Z", "hours": 0.6342, "text": "Ship Time! I just added an AI test client, I am not disclosing this as AI usage in the project, as this really isnt the project, and is only meant so users (like me) with virtually 0 front end design knowledge, can just use this, now, in the web. THE CLIENT YOU SEE IS AI PLEASE DO NOT JUDGE AGAINST THIS AS NONE OF THE SERVER CODE (the true project) IS AI"}, {"post_id": 44750, "ts": "2026-08-10T18:39:05Z", "hours": 0.6975, "text": "PFPS Got a little sidetracked ya know just casually implemented pfps. no big deal. https://fries.hackclub.app/userpfp?user=fries"}, {"post_id": 44453, "ts": "2026-08-10T06:37:50Z", "hours": 0.6025, "text": "#SSE Approach - This took so long, its not done, and quite frankly I’m so tired. Why did I chose sse? Compatibility with old hardware and, like most of my projects, learning and goofing around. This has the added benefit of making this all exclusively http, and being able to get integrated into my system of endpoints i already have."}, {"post_id": 44433, "ts": "2026-08-10T05:52:03Z", "hours": 0.8692, "text": "Rewrites and Backtracking Really nothing has been done. I spent a decent chunk of time trying to work with WS and just toughing it out, but I couldn’t get done what I wanted to get done. So I’ve made the bold, stupid, late-night decision, to switch to using SSE for the live chat. Partially so it can be more integrated into my already made systems, however, mainly just because I wanna learn something new. Enjoy this picture of timestamps from me trying to learn Flask’s SSE."}, {"post_id": 44373, "ts": "2026-08-10T02:48:38Z", "hours": 0.325, "text": "quick one, added some more info to the live chat object, namely cmd and channel, this is in preparation for the channels system."}, {"post_id": 44359, "ts": "2026-08-10T02:05:52Z", "hours": 1.9847, "text": "Live Chat and More Worked on quite a bit this devlog. I finished up all the endpoints I would need, cleaned up the server code, made an init file to run it, and started on a live chatting system using websockets. It’s going to support an infinite amount of channels each able to be locked behind a password. However, except for maybe one general chat, no chat history is likely to be stored at this time, simply because infinite chats with no restrictions being stored, is going to eat through storage like mad. However for now it works. I was originally debating that each channel would basically have its own encryption, and then i realized… that’s dumb. I don’t need to do that, and here we are."}, {"post_id": 42866, "ts": "2026-08-07T20:28:48Z", "hours": 0.3258, "text": "Social I worked on the social endpoint, and the reason it says it only took 17 minutes, is I switched to Zed, realized it doesn’t have Hackatime support, and switched back when already basically done lol. I made a little slop coded tool before I actually attempt to make something, even though any sort of interface to use it isn’t part of the project really. Basically, its just a simple endpoint you can post to and get to post and read messages in a sort of twitter-esque environment."}, {"post_id": 42291, "ts": "2026-08-06T22:36:37Z", "hours": 0.345, "text": "Added a little thing telling you what port it was on, and then started it up! https://fries.hackclub.app/"}, {"post_id": 41943, "ts": "2026-08-06T14:02:19Z", "hours": 1.3444, "text": "It works! (Also I learned you can do markdown here) https://fries.hackclub.app/ Yesterday I did a good bit of work on actually making it work lol. I did a lot of work out and about just on GitHub’s website, so when I came back there was a lot needed to get everything working. Mainly when I refactored some of the code into functions in a different file, I completely broke the login. But a little more in-depth about Cami. When you post {\"username\":\"<str>\",\"password\":\"<str>\"} to either register or login, you get back a token. This token is based off your user-id and gets refreshed every time you login (also supposed to be after a day just unimplemented right now.) You then use this to authenticate with (the only commands that need it right now) /changepass or /updatebio. You can also, as shown in the image below, run /GET on /user?user=(username or user id). That’s pretty much the full run down honestly. Passwords are currently hashed with SHA256, although I need to find a better option as I was able to brute force reverse my 8 letter password on the web in <1 minute. :("}, {"post_id": 41495, "ts": "2026-08-05T18:53:11Z", "hours": 2.6375, "text": "Cami - Cami is a silly goofy authentication program for use in my other projects. It currently supports: POST/register - Registering an Account POST/login - Logging in to get a token POST/updatebio - Updating your bio GET/getuser - Getting user information from name or ID (returns fries [currency] bio and account #) I am currently working on: POST/changepass - Changing password Implementing this into a chat system that’s websocket based Adding little games and things This was all done with primarily Flask (for the server), hashlib (for hashing passwords), and tinydb (for storage). It is meant to be lightweight, easy to integrate into other systems, and a fun project in general!"}]...
|
Title: Cami by @barfpile | Stardance
Devlogs:
Cam Title: Cami by @barfpile | Stardance
Devlogs:
Cami - Cami is a silly goofy authentication program for use in my other projects. It currently supports: POST/register - Registering an Account POST/login - Logging in to get a token POST/updatebio - Updating your bio GET/getuser - Getting user information from name or ID (returns fries [currency] bio and account #) I am currently working on: POST/changepass - Changing password Implementing this into a chat system that’s websocket based Adding little games and things This was all done with primarily Flask (for the server), hashlib (for hashing passwords), and tinydb (for storage). It is meant to be lightweight, easy to integrate into other systems, and a fun project in general!
It works! (Also I learned you can do markdown here) https://fries.hackclub.app/ Yesterday I did a good bit of work on actually making it work lol. I did a lot of work out and about just on GitHub’s website, so when I came back there was a lot needed to get everything working. Mainly when I refactored some of the code into functions in a different file, I completely broke the login. But a little more in-depth about Cami. When you post {"username":"<str>","password":"<str>"} to either register or login, you get back a token. This token is based off your user-id and gets refreshed every time you login (also supposed to be after a day just unimplemented right now.) You then use this to authenticate with (the only commands that need it right now) /changepass or /updatebio. You can also, as shown in the image below, run /GET on /user?user=(username or user id). That’s pretty much the full run down honestly. Passwords are currently hashed with SHA256, although I need to find a better option as I was able to brute force reverse my 8 letter password on the web in <1 minute. :(
Added a little thing telling you what port it was on, and then started it up! https://fries.hackclub.app/
Social I worked on the social endpoint, and the reason it says it only took 17 minutes, is I switched to Zed, realized it doesn’t have Hackatime support, and switched back when already basically done lol. I made a little slop coded tool before I actually attempt to make something, even though any sort of interface to use it isn’t part of the project really. Basically, its just a simple endpoint you can post to and get to post and read messages in a sort of twitter-esque environment.
Live Chat and More Worked on quite a bit this devlog. I finished up all the endpoints I would need, cleaned up the server code, made an init file to run it, and started on a live chatting system using websockets. It’s going to support an infinite amount of channels each able to be locked behind a password. However, except for maybe one general chat, no chat history is likely to be stored at this time, simply because infinite chats with no restrictions being stored, is going to eat through storage like mad. However for now it works. I was originally debating that each channel would basically have its own encryption, and then i realized… that’s dumb. I don’t need to do that, and here we are.
quick one, added some more info to the live chat object, namely cmd and channel, this is in preparation for the channels system.
Rewrites and Backtracking Really nothing has been done. I spent a decent chunk of time trying to work with WS and just toughing it out, but I couldn’t get done what I wanted to get done. So I’ve made the bold, stupid, late-night decision, to switch to using SSE for the live chat. Partially so it can be more integrated into my already made systems, however, mainly just because I wanna learn something new. Enjoy this picture of timestamps from me trying to learn Flask’s SSE.
#SSE Approach - This took so long, its not done, and quite frankly I’m so tired. Why did I chose sse? Compatibility with old hardware and, like most of my projects, learning and goofing around. This has the added benefit of making this all exclusively http, and being able to get integrated into my system of endpoints i already have.
PFPS Got a little sidetracked ya know just casually implemented pfps. no big deal. https://fries.hackclub.app/userpfp?user=fries
Ship Time! I just added an AI test client, I am not disclosing this as AI usage in the project, as this really isnt the project, and is only meant so users (like me) with virtually 0 front end design knowledge, can just use this, now, in the web. THE CLIENT YOU SEE IS AI PLEASE DO NOT JUDGE AGAINST THIS AS NONE OF THE SERVER CODE (the true project) IS AI
Images and livechat - I made an image api! You can upload infinite files, compressed to be 1/3 of their size ofc. Also started implementing live ws chatting with infinite channels that can be password locked. https://server/getimage?filename=testimage
GIFS Gifs have been added to the image api. (I can finally new line again!) Images you go: https://images.barfpile.dev/getimage/filename gifs you go: https://images.barfpile.dev/getgif/filename.gif (you can remove the .gif at the end and it will work fine everywhere but discord. You can also use getimage on a gif, but again, will work anywhere but discord.) (Attached gif was added by someone, idk who, while I was testing gifs lol. I am going to add basically metadata so you can get https://images.barfpile.dev/getmeta/filename and retrieve things like timestamp uploaded, filename, and who uploaded it.)
Live Chat Live chat is working in its most basic form! I did censor the usernames, solely because they used their real name lol. Color coding different users, the same person is censored with the same color across pics.
Live Chat Fixed! I fully fixed and implemented the livechat. It supports the creation of channels with passwords, message history, joining channels, sending to channels you’ve joined. If all users leave the channel, unless its a keep-alive channel, mostly predefined channels with no passwords like general and off-topic, the database for message history gets wiped, and the channel is up for grabs again! I dont have any pictures really, I did it last night on a different PC, so enjoy an 88x31!
More public channels and locking!
More Livechat and Currency Livechat: So I’ve done a lot more on livechat, you can create channels now (properly,) delete messages, almost have it so you can edit them, and typing indicators are almost done. Currency: I’ve started figuring out how users should get currency, and what it should go towards. Right now, the main idea is get it daily by posting/using livechat, then spend it on customization like user color, or upgrading max bio length.
PFP Decor / Display Names ALSO I HIT 20 HOURS These have been wip and were quite simple to implement, display name is just another value in the TINYDB database for users, and so is the profile decor. I got it from another app so I can’t really commit it because its not mine, however it works! There’s no way to set it yourself I just hand edited the DB. Also, users can now edit their username! I know that was a massive complaint in the first ship. Past that really all I changed was paths. Before i had paths like /getuser?user=fries which was dumb. I figured out how to, with flask, make it /user/fries and it gives the same information. Much cleaner.
Fixes and new paint Pretty much everything I have worked on this devlog simply involves fixes. “Oh, I’m not handling invalid json on a route, oops!” Or: “Oh usernames can be >32 chars because i messed up my if statement.” (I learned this one when someone with the entire bee movie script as their name appeared on my users route.) While it was all fixes I worked on, on top of this, due to wanting to commit roughly once every hour to keep people updated, I rewrote the empty path so it looks better. Link still points to the github repo. Auth Securely, Auth Silly.
Fixes and Continuity So basically this was just fixing a lot of weird things. For example, this being the main thing, the pfps stored whenever a user uploads them, get stored as 128x128. But the empty pfp, was 256x256. On top of this in some websocket things i was using "msg":"content" or "message":"content" interchangeably, but this has since been normalized. In all its just been a productive time, I’ve added a bunch, started working on a python library, and just gotten ready for ship 2!
Quick Devlog for the reroll Started just adding more pfp decor, had some people make me some. Yippee! Quick update: that’s not mine and I didnt get permission to use it, its the one i had for testing first because I got it from somewhere else real easily. It has since been removed, in favor for other ones I do have permission to use.
Fixes and Usage Well hey! It’s been a hot minute right? Lately I have been working on a lot more fixes, mainly on things like the social endpoint, and the image endpoint. Not terribly visible portions right now, but majorly important! I also got a used RPI5 which is now hosting it. That means, no more Nest downtime issues resetting my code! Yay! Notable Changes: The social posting endpoint returns the whole message object instead of just the ID. Files have been reorganized to be much cleaner Tons of little crashes and issues have been cleaned up, there are still more. I’ve started in on beautifying the logs!
LATEST UPDATES Auth Securely, Auth Silly <3 Normalizing Returns I’ve been doing a lot of work on simply normalizing some returns. Some of them were just slightly different like “The token is invalid” vs. “Invalid Token”, so those were condensed into “invalid token”, on top of this whenever i return a message i wrap it like: {"cmd":"success","message":"<original message>" . On top of this I also went through and changed some of the codes. DB Fixes Next thing I need to fix is any DB access needs to be routed through the helper funcs and properly closed. If you change your name, half the project still thinks only the original exists, while the other half, the correct half, only sees the new name. The reason is I have broken the project up into like 5 python files, 2 of which are both trying to simultaneously access the DB. Which, in-case you were wondering, is not good. Less Requests Something else I’ve been working on to prevent clients having to make like 3 requests for one thing, and to prevent the server from having to handle those, is to whenever a message is saved to the DB say from the social endpoint, when I send it back down, I attach the username and display name to it. This takes >2 http requests, get the messages then the usernames and user info, down to just 1. (Until you grab user pfps, which should be just grabbed once and cached.) Because this is really all I did I like… don’t have pictures? So… Enjoy the little 88x31 I made Also this is probably the longest devlog I’ve ever made, but I’m bored, and since I just got 6 months of Spotify premium as a gift, I’m letting the weird AI DJ thing just play whatever it feels like. It does, however, keep going back to the dark ages of 2024. Let me forget that year of music listening…
Im back Been working on the project a bit. Mainly just working on docs and helping people understand the API in a more sort of private environment. Should push a ship eventually, and its gonna be super awesome for everyone! :D Also maybe I did a devlog but i added timestamps to posts and stuff and made the total requests needed to do everything muuuuuuuch smaller, and made a smaller cache of data needed.
Multiplayer Im in the midst of making an extendable WS based multiplayer server, and figured I’d test it with a cool game somebody I know made! It’s a W.I.P. but works pretty well and everything server side is done lol.
Fixes, Simultaneous DB Editing, and JSONifying. Quick one since its like 11pm, I’ve been working on a lot of fixes. I, since the start of this project, haven’t closed DBs. Think about that. I am an intelligent human being. I’ve also been working on getting searching working (image) for the social api, and making sure everything works with that. On top of this, everything is still getting organized, and made to have very similar responses, so as a dev less work has to be done for you to support it. I also kinda started on a python library, but eh, we’ll see how it goes I suppose. Also have been working on some security, nothing commited, to try to make it harder to hack ig. Gn stardance! (im sick)
Music Server/New Chat Server Hello! I’ve lately been working on a music server. Users can upload any sort of audio file, mp3, ogg, it should support mp4 but i haven’t tested, and it converts it to an ogg file. The ogg file has a roughly 75% file size to the original MP3 while keeping the same quality. I’ve also been working on things like metadata storage, playlists, and more. On top of music, I’ve started a full rework of the live chatting system. It’s been going well so far, but I’m changing up how it works a little. It’s going to be closer to IRC + DMs, there will be no locked channels, no way to create custom channels anymore. Hopefully I can also drag some more people in, and make it much simpler to use, and on top of this make it super easy to link to Discord and such. So yeah! It’s been going well, I’m still alive, I’m running out of time to ship… and uh yeah! Have fun coding!
A lot… I JUST BROKE 30 HOURS ON THIS PROJECT SERVER-SIDE CODING OMG!!! :D Well Cami has been rolling along reallllllllly quickly. Things I’ve added/worked on: Playlists/More Music Stuff Fixing up the post search api Remake of ws chat server Fries have been implemented Fries transfer is working Fries daily claiming is working So many fixes (many things didnt quite properly handle errors and so they have been fixed) Changes to your user info are being locked behind fries. (PFP Decor is locked but pfp, bio, and more will be locked, basically everything but password changes) Image/Music uploading will likely be locked behind fries, or you will have to pay fries to upgrade the amount of stuff you can store. More PFP Decor has been added to my personal instance but that doesnt affect here. Server logs are prettier. More info attached to the user queries. Thanks for reading and sticking with this shitshow of a project.
AI generated a client so people can actually use it. Once again, I truthfully, have not used AI in this project for anything but front end, which I do not know how to do. Over the course of testing I have mainly used raw HTTP requests.
Well it was fun! (Its going for another week after i blow all my stardust.) Hello stardancers. Its 9-29-26. I’m not going to be able to make another ship and get it rated. Thank you everyone so much for the support on this project, and thanks for running Stardance! Mainly just working on live chatting, a decentralizable chatting service similar to discord, which will be picked up on phantom.hackclub.com. For anyone wondering what I got out of Stardance: 1 domain Outpost Badge (will make a project with that too!) Factorio Pico-8
Fixes/Tweaks Might as well just get some time out here, I’ve literally been working on livechatting and misc fixes. I’ve been so stressed and tired and distracted I don’t remember working on this at all. I’ve moved primarily to working on Phantom, tryna get me a blahaj and balatroooooooo also its been 12 days please ship me my items 😭 Live Chatting Decentralized? Check Ability to change servername dynamically? Check Editing/Deleting messages? Check we’re so goated :)
Ships:
Cami is a full authentication backend. I made this for use in my own projects, and as a way to learn web stuff with flask. It was challenging just getting it all working. Combining Flask and TinyDB (things I’m not too familiar with) to make this come together. To use, register an account on the homepage, then click around and see what you can do! THE CLIENT USED IS AI: I do not know how to do frontend html work, and that is not the project. The project is the backend python.
Welcome to Cami! It’s been a difficult 30 hour journey and I’m tryna get me Factorio to wrap up this awesome summer. :P Warning: The client is AI-Generated, it is not the project, simply a tool so you guys don’t have to make raw http requests with python. None of the rest of the project is AI-Generated....
|
1793000867.682174
|
1793087267.682174
|
|
15804
|
Crunchyroll Multi Sub by @AndyNoob | Stardance
|
AndyNoob
|
1
|
46.9
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-22T22:15:32Z", "hours": 46.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Alright, it’s been a pretty long ride, so let me try to sum this up. - The idea for this extension sprang forth when I was trying to watch Frieren. For context, on Crunchyroll dubbed shows, there are two types of subtitles (for the most part, AD subs also exist but are very uncommon), closed caption and on screen translation subtitles: closed caption captures only character dialogues (generally), whereas the on screen translation subs translate signs and such on screen, typically using ASS subtitles (so fancy typesetting texts). - As it so turned out, you can’t pick both subtitles at the same time, which makes it really annoying for me to hear what the dialogues are saying if there are a lot of sound effects and BGM. So, I decided to look into how I can render both types of subtitles. - After a long course of development, and many hurdles (mostly related to Crunchyroll’s internal API being very not external developer friendly, I wonder why…), I was able to ship this little extension, which currently has about 200 or so active users? - -TLDR: Crunchyroll default subtitle system sucks so I made it better. Also if you don’t have Crunchyroll just watch this slightly outdated demo video: https://www.youtube.com/watch?v=C6fvmeJ0SoM", "repo": "https://github.com/AndyNoob/crunchyroll-dual-subs", "demo": "https://chromewebstore.google.com/detail/crunchyroll-dual-subs/mahcmkjllaabldhminilhldfiickigmi"}]...
|
[{"post_id": 79415, "ts": "202 [{"post_id": 79415, "ts": "2026-10-13T21:22:25Z", "hours": 0.9047, "text": "NEW FEATURE ALERT - Due to popular requests (one person on Github who opened an issue), I have added a spanking new feature to move subtitles up and down. LIFE CHANGING, I know. - Rahaha, more stuff incoming. Also the more I work on tis the more I realize my code sucks."}, {"post_id": 72422, "ts": "2026-09-22T22:05:42Z", "hours": 1.7556, "text": "Yoo - Kind of forgot to post this one. Basically, I just made it so the subtitles loaded from the original audio are marked as [original] , you can pick either or. - That’s about it. Yay"}, {"post_id": 39304, "ts": "2026-08-02T06:02:52Z", "hours": 9.5822, "text": "Been a minute. - Let’s see what I worked on… Mostly fixing minor issues. LIke subtitles being unmovable. And after that fixed it teleporting to Narnia when being moved. While I was doing that, I actually finished the subtitle editor in last devlog that I actually didn’t finish. - Aside from the UI, there’s also numerous minor bugs that sometimes causes the side bar to malfunction. And some that causes the extension to not load. All that good stuff. - The biggest update, however, is that the extension, using a very, very sneaky method, now loads additional subtitles for dubbed episodes. Typically, the majority of subtitles are made for the original audio language (Japanese mostly), and they are usually drag-and-drop ready for other audio languages. The idea is nothing new, but I had to brainstorm a new way of achieving that. - Essentially, the extension “mimics” the Crunchyroll player by making a stream request to the original audio language, and capturing the subtitles. All before the actual player starts its own stream request. This way, we don’t trigger the concurrent stream limit. Pretty neat! - Also added a on/off switch because you never know when this might break. Peak CSS right here haha."}, {"post_id": 33250, "ts": "2026-07-23T00:31:38Z", "hours": 7.1061, "text": "Worked on a bunch of stuff, mostly random issues: extension broken on Opera, extension randomly not updating subtitles, features of extension randomly bricking if you do a specific set of stuff (like adding and deleting masks really fast). - Other than that, I added a new subtitle style editor. I thought it was gonna be a 30min quick change. And then it ended up being like 4 hours long. The font selector is so damn annoying to add because there’s really only one way to do it, and that’s through Google. And of course it’s going to be a pain in the rear when it’s Google. - Whatever, at least it looks good."}, {"post_id": 29868, "ts": "2026-07-17T00:59:24Z", "hours": 3.2006, "text": "Fixed a bunnnnnch of issues as an aftermath of the last devlog… Took a minute but I finally released 0.12.0 (and immediately realized there’s more bugs. Also cleaned up the README and made it look real fancy."}, {"post_id": 28206, "ts": "2026-07-14T10:49:37Z", "hours": 7.2869, "text": "Ok, it’s been a minute, so let me go over the changes. (also i finally figured out you need to shift + enter to do new line bruh) Firstly, in preparation for the subtitle masking feature, I changed the extension popup to be a side bar/panel instead. This way, you can keep it open while you interact with the page. Secondly, I swapped the old “Reset subtitle position” button (which didn’t even work LMAO) with the new “Edit subtitle configuration” button. When you click it, a new section expands. This is where my other project (move-it) plays in! (see video). When you add a mask, it will block out subtitles using the CSS clip-path property, which is pretty neat! I also fixed a bunch of random issues along the way, so yay!"}, {"post_id": 25032, "ts": "2026-07-08T23:35:26Z", "hours": 6.48, "text": "Forgot to post devlogs ngl… Anyways, I fixed a bunch of weird bugs and compatibility issues with other extensions and userscripts. And then, I spent a few hours restyling the scoped options menu. Look at it moveee- Anyways, the moving part is made with a see through ::after element that is moved using the CSS transform: translateX element. I am able to move it programmatically by changing a CSS property/variable that translateX reads from. And then, I slapped a fancy transition on there. Works like a charm! (I had considered doing slide effect on the actual options, but that seemed like too much work haha.)"}, {"post_id": 10370, "ts": "2026-06-17T01:40:31Z", "hours": 3.7725, "text": "Working on the prerequisite parts of implementing a subtitle masking feature (hide subtitle base on defined areas). Also released 0.11.0 of the extension. Out on chrome already but firefox will probably be another month :sigh:"}, {"post_id": 8287, "ts": "2026-06-13T19:39:02Z", "hours": 0.7133, "text": "Nice… negative notes. The users’ll absolutely adore this."}, {"post_id": 7889, "ts": "2026-06-13T05:08:58Z", "hours": 3.8869, "text": "IT MOVESSS!! What’s happening here is that the extension loads JSON data from an unlisted Gist and reads the developer notes that I put down every 5 hours. Once it does, it populates the popup with those notes. The “1 new notes” thing isn’t actively updated yet, so I’ll implement that next. Just need to keep track of opened notes using their slug. Only took 4 hrs 🫠"}, {"post_id": 7250, "ts": "2026-06-12T02:53:56Z", "hours": 2.3333, "text": "Currently trying to add a dev note/changelog system by loading a gist that I have loaded on my system as a git repo and then symlinked as a file in my actual project. I actually did not know you could do that, learned it from Claude ha! Anyways, adding a new section to the popup menu, so I had to make some space. My solution: SMOOOOTH drop down. Note how the border-radius on the bottom of the overlay settings change from 0 to rounded at different speed depending on if the drop down is retracting vs. extending. CSS is a pain in the rear even when AI is helping…"}]...
|
Title: Crunchyroll Multi Sub by @AndyNoob | Starda Title: Crunchyroll Multi Sub by @AndyNoob | Stardance
Devlogs:
Currently trying to add a dev note/changelog system by loading a gist that I have loaded on my system as a git repo and then symlinked as a file in my actual project. I actually did not know you could do that, learned it from Claude ha! Anyways, adding a new section to the popup menu, so I had to make some space. My solution: SMOOOOTH drop down. Note how the border-radius on the bottom of the overlay settings change from 0 to rounded at different speed depending on if the drop down is retracting vs. extending. CSS is a pain in the rear even when AI is helping…
IT MOVESSS!! What’s happening here is that the extension loads JSON data from an unlisted Gist and reads the developer notes that I put down every 5 hours. Once it does, it populates the popup with those notes. The “1 new notes” thing isn’t actively updated yet, so I’ll implement that next. Just need to keep track of opened notes using their slug. Only took 4 hrs 🫠
Nice… negative notes. The users’ll absolutely adore this.
Working on the prerequisite parts of implementing a subtitle masking feature (hide subtitle base on defined areas). Also released 0.11.0 of the extension. Out on chrome already but firefox will probably be another month :sigh:
Forgot to post devlogs ngl… Anyways, I fixed a bunch of weird bugs and compatibility issues with other extensions and userscripts. And then, I spent a few hours restyling the scoped options menu. Look at it moveee- Anyways, the moving part is made with a see through ::after element that is moved using the CSS transform: translateX element. I am able to move it programmatically by changing a CSS property/variable that translateX reads from. And then, I slapped a fancy transition on there. Works like a charm! (I had considered doing slide effect on the actual options, but that seemed like too much work haha.)
Ok, it’s been a minute, so let me go over the changes. (also i finally figured out you need to shift + enter to do new line bruh) Firstly, in preparation for the subtitle masking feature, I changed the extension popup to be a side bar/panel instead. This way, you can keep it open while you interact with the page. Secondly, I swapped the old “Reset subtitle position” button (which didn’t even work LMAO) with the new “Edit subtitle configuration” button. When you click it, a new section expands. This is where my other project (move-it) plays in! (see video). When you add a mask, it will block out subtitles using the CSS clip-path property, which is pretty neat! I also fixed a bunch of random issues along the way, so yay!
Fixed a bunnnnnch of issues as an aftermath of the last devlog… Took a minute but I finally released 0.12.0 (and immediately realized there’s more bugs. Also cleaned up the README and made it look real fancy.
Worked on a bunch of stuff, mostly random issues: extension broken on Opera, extension randomly not updating subtitles, features of extension randomly bricking if you do a specific set of stuff (like adding and deleting masks really fast). - Other than that, I added a new subtitle style editor. I thought it was gonna be a 30min quick change. And then it ended up being like 4 hours long. The font selector is so damn annoying to add because there’s really only one way to do it, and that’s through Google. And of course it’s going to be a pain in the rear when it’s Google. - Whatever, at least it looks good.
Been a minute. - Let’s see what I worked on… Mostly fixing minor issues. LIke subtitles being unmovable. And after that fixed it teleporting to Narnia when being moved. While I was doing that, I actually finished the subtitle editor in last devlog that I actually didn’t finish. - Aside from the UI, there’s also numerous minor bugs that sometimes causes the side bar to malfunction. And some that causes the extension to not load. All that good stuff. - The biggest update, however, is that the extension, using a very, very sneaky method, now loads additional subtitles for dubbed episodes. Typically, the majority of subtitles are made for the original audio language (Japanese mostly), and they are usually drag-and-drop ready for other audio languages. The idea is nothing new, but I had to brainstorm a new way of achieving that. - Essentially, the extension “mimics” the Crunchyroll player by making a stream request to the original audio language, and capturing the subtitles. All before the actual player starts its own stream request. This way, we don’t trigger the concurrent stream limit. Pretty neat! - Also added a on/off switch because you never know when this might break. Peak CSS right here haha.
Yoo - Kind of forgot to post this one. Basically, I just made it so the subtitles loaded from the original audio are marked as [original] , you can pick either or. - That’s about it. Yay
NEW FEATURE ALERT - Due to popular requests (one person on Github who opened an issue), I have added a spanking new feature to move subtitles up and down. LIFE CHANGING, I know. - Rahaha, more stuff incoming. Also the more I work on tis the more I realize my code sucks.
Ships:
Alright, it’s been a pretty long ride, so let me try to sum this up. - The idea for this extension sprang forth when I was trying to watch Frieren. For context, on Crunchyroll dubbed shows, there are two types of subtitles (for the most part, AD subs also exist but are very uncommon), closed caption and on screen translation subtitles: closed caption captures only character dialogues (generally), whereas the on screen translation subs translate signs and such on screen, typically using ASS subtitles (so fancy typesetting texts). - As it so turned out, you can’t pick both subtitles at the same time, which makes it really annoying for me to hear what the dialogues are saying if there are a lot of sound effects and BGM. So, I decided to look into how I can render both types of subtitles. - After a long course of development, and many hurdles (mostly related to Crunchyroll’s internal API being very not external developer friendly, I wonder why…), I was able to ship this little extension, which currently has about 200 or so active users? - -TLDR: Crunchyroll default subtitle system sucks so I made it better. Also if you don’t have Crunchyroll just watch this slightly outdated demo video: https://www.youtube.com/watch?v=C6fvmeJ0SoM...
|
1793004803.95493
|
1793091203.95493
|
|
64923
|
evil ass website by @e | Stardance
|
e
|
1
|
0.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-22T21:48:38Z", "hours": 0.0, "multiplier": 1.0, "payout": 0, "blessing": "neutral", "text": "very evil website standout feature: cat standout feature 2: resizeable cat standout feature 3: advertisement for my other project please multiply and starfruit", "repo": "https://github.com/emmameowss/evil-ass-website", "demo": "https://emmameowss.github.io/evil-ass-website/"}]...
|
[{"post_id": 72418, "ts": "202 [{"post_id": 72418, "ts": "2026-09-22T21:47:30Z", "hours": 0.2656, "text": "evil ass website done it is very good feature: you can resize the cat that is all please good rating and good feedback so big multiplier"}]...
|
Title: evil ass website by @e | Stardance
Devlogs Title: evil ass website by @e | Stardance
Devlogs:
evil ass website done it is very good feature: you can resize the cat that is all please good rating and good feedback so big multiplier
Ships:
very evil website standout feature: cat standout feature 2: resizeable cat standout feature 3: advertisement for my other project please multiply and starfruit...
|
1792965127.1674542
|
1793051527.1674542
|
|
64828
|
mit-topper-pov by @tejasv | Stardance
|
tejasv
|
1
|
2.79
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-22T21:16:44Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I created mit-pov, a browser-based desktop OS software, but with the perspective taken from an MIT topper’s point of view rather than the default OS design. The first screen that appeared after launch was the welcome page, which then transitioned to the actual desktop. The desktop comprises a wallpaper, a top bar, a clock, and icons on the bottom bar, which open windows with drag-and-drop. The applications were Transcript.exe (GPA and coursework in the form of a real-life transcript), Trophy Case.exe (showcasing achievements), and Projects.exe (portfolio cards in the form of a portfolio). The new application the user has not seen in the tutorial is the Terminal.exe, which is a fake interactive terminal where the user can type in commands, such as whoami, and receive an appropriate response in the terminal emulator. What were the biggest challenges? The biggest challenge was implementing the window mechanic. It had to have drag-and-drop, focus listening, and opening/closing functions, and all of them had to share the same set of rules or have some of them overridden due to specific cases, such as having multiple windows open at the same time and having their z-index sorted out. What are you most proud of? I am most proud of the fact that the application was not just a modified version of the given tutorial. It involved using React and TypeScript framework rather than the default JavaScript code and, thus, constituted a different project at its core. What should users know before testing? The users do not have to log in or type in any credentials before launching. The first step would be to open applications by clicking on the icons on the bottom bar and playing around with them, including dragging windows. Then, the user should try to open the Terminal.exe and type some commands to see the easter eggs.", "repo": "https://github.com/tejasvswipe/mit-pov-webos", "demo": "https://mit-pov-webos.vercel.app"}]...
|
[{"post_id": 75507, "ts": "202 [{"post_id": 75507, "ts": "2026-09-30T09:49:16Z", "hours": 0.2667, "text": "ADDED PLENTY OF FEATURES TO MAKE IN 80% HUMAN AND REWRITE README BY MY SELF"}, {"post_id": 75288, "ts": "2026-09-29T17:16:52Z", "hours": 0.3272, "text": "Debugged the code"}, {"post_id": 74768, "ts": "2026-09-28T06:19:37Z", "hours": 1.1936, "text": "added new feature , spotify integrity , alarm , llm support, now this website has 12 features , vroooommm!!!!! MIT i am coming"}, {"post_id": 72408, "ts": "2026-09-22T21:06:06Z", "hours": 0.7753, "text": "an ui ux update with real features mit-pov-webos.vercel.app"}, {"post_id": 72348, "ts": "2026-09-22T18:36:53Z", "hours": 0.3078, "text": "developin’ the backend for the GOAT for the MIT aspirants and beautiful , rizzy frontend in the , for the cool aspirants only"}]...
|
Title: mit-topper-pov by @tejasv | Stardance
Devl Title: mit-topper-pov by @tejasv | Stardance
Devlogs:
developin’ the backend for the GOAT for the MIT aspirants and beautiful , rizzy frontend in the , for the cool aspirants only
an ui ux update with real features mit-pov-webos.vercel.app
added new feature , spotify integrity , alarm , llm support, now this website has 12 features , vroooommm!!!!! MIT i am coming
Debugged the code
ADDED PLENTY OF FEATURES TO MAKE IN 80% HUMAN AND REWRITE README BY MY SELF
Ships:
I created mit-pov, a browser-based desktop OS software, but with the perspective taken from an MIT topper’s point of view rather than the default OS design. The first screen that appeared after launch was the welcome page, which then transitioned to the actual desktop. The desktop comprises a wallpaper, a top bar, a clock, and icons on the bottom bar, which open windows with drag-and-drop. The applications were Transcript.exe (GPA and coursework in the form of a real-life transcript), Trophy Case.exe (showcasing achievements), and Projects.exe (portfolio cards in the form of a portfolio). The new application the user has not seen in the tutorial is the Terminal.exe, which is a fake interactive terminal where the user can type in commands, such as whoami, and receive an appropriate response in the terminal emulator. What were the biggest challenges? The biggest challenge was implementing the window mechanic. It had to have drag-and-drop, focus listening, and opening/closing functions, and all of them had to share the same set of rules or have some of them overridden due to specific cases, such as having multiple windows open at the same time and having their z-index sorted out. What are you most proud of? I am most proud of the fact that the application was not just a modified version of the given tutorial. It involved using React and TypeScript framework rather than the default JavaScript code and, thus, constituted a different project at its core. What should users know before testing? The users do not have to log in or type in any credentials before launching. The first step would be to open applications by clicking on the icons on the bottom bar and playing around with them, including dragging windows. Then, the user should try to open the Terminal.exe and type some commands to see the easter eggs....
|
1793051343.5365715
|
1793915343.5365715
|
|
61822
|
Aura Tab by @pakistan_pc_x_47 | Stardance
|
pakistan_pc_x_47
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-22T21:13:30Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I make a tab for my use bay the way i am new and this is my second project so i dont now how much the tab you like but i love BMW M4 so i put the picture of M4 at background and i add mostly that feature that neaded by everyone", "repo": "https://github.com/hussain47x/AuraTab", "demo": "https://aura-tab-five.vercel.app"}]...
|
[{"post_id": 69783, "ts": "202 [{"post_id": 69783, "ts": "2026-09-17T19:35:38Z", "hours": 1.2717, "text": "I built AuraTab, a customizable new-tab dashboard designed to make browsing more useful, focused, and personal. I built it using React, JavaScript, HTML, CSS, and Vite. The main features include: Live clock, date, and greeting Google search Website shortcuts Add Shortcut system Tasks with add, complete, and delete functionality Focus timer Notes Themes Settings Dark glass-style interface I also connected AuraTab to GitHub and deployed it with Vercel so it has a live demo. One challenge was setting up Hackatime correctly so my development time was tracked under the AuraTab project. I also created a Chrome New Tab extension that loads the live AuraTab website. This project helped me practice React, localStorage, CSS, Git/GitHub, Vercel deployment, and Chrome extension basics. Live demo: https://aura-tab-five.vercel.app GitHub: https://github.com/hussain47x/AuraTab"}]...
|
Title: Aura Tab by @pakistan_pc_x_47 | Stardance
Title: Aura Tab by @pakistan_pc_x_47 | Stardance
Devlogs:
I built AuraTab, a customizable new-tab dashboard designed to make browsing more useful, focused, and personal. I built it using React, JavaScript, HTML, CSS, and Vite. The main features include: Live clock, date, and greeting Google search Website shortcuts Add Shortcut system Tasks with add, complete, and delete functionality Focus timer Notes Themes Settings Dark glass-style interface I also connected AuraTab to GitHub and deployed it with Vercel so it has a live demo. One challenge was setting up Hackatime correctly so my development time was tracked under the AuraTab project. I also created a Chrome New Tab extension that loads the live AuraTab website. This project helped me practice React, localStorage, CSS, Git/GitHub, Vercel deployment, and Chrome extension basics. Live demo: https://aura-tab-five.vercel.app GitHub: https://github.com/hussain47x/AuraTab
Ships:
I make a tab for my use bay the way i am new and this is my second project so i dont now how much the tab you like but i love BMW M4 so i put the picture of M4 at background and i add mostly that feature that neaded by everyone...
|
1792964855.010791
|
1793051255.010791
|
|
64911
|
Aerial distant by @zenzei | Stardance
|
zenzei
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-22T20:00:00Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "This extension will help you by measuring something in the eligible webpage. I built this only for my personal interest and it works!", "repo": "https://github.com/hossainmahmudchowdhury-boop/Aerial-distant", "demo": "https://drive.google.com/file/d/13Yn1YQs_hjLjwIHfo9xWpXV76m8uTQEV/view?usp=sharing"}]...
|
[{"post_id": 72379, "ts": "202 [{"post_id": 72379, "ts": "2026-09-22T19:56:35Z", "hours": 1.2144, "text": "I have done my displacement extension ."}]...
|
Title: Aerial distant by @zenzei | Stardance
Devl Title: Aerial distant by @zenzei | Stardance
Devlogs:
I have done my displacement extension .
Ships:
This extension will help you by measuring something in the eligible webpage. I built this only for my personal interest and it works!...
|
1792965123.6825547
|
1793051523.6825547
|
|
34521
|
StarTV by @Zaloguj12 | Stardance
|
Zaloguj12
|
1
|
7.0
|
24
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-22T19:49:50Z", "hours": 7.0, "multiplier": 2.81, "payout": 24, "blessing": "neutral", "text": "StarTV is a basic video streaming site, it uses direct file serving using FastAPI with an R2 Bucket Storage, it is deployed using Vercel. For now there are only 12 videos with more coming in the future, since it serves the videos directly it can be worse on slower internet or metered connections. It is a fun simple project to learn how APIs work and to learn how video streaming works. This was a fun project. I will maintain this for as long as I will be able to.", "repo": "https://github.com/zaloguj12/StarTV", "demo": "https://star-tv-ten.vercel.app/"}]...
|
[{"post_id": 72372, "ts": "202 [{"post_id": 72372, "ts": "2026-09-22T19:37:40Z", "hours": 0.4114, "text": "added a few videos"}, {"post_id": 63033, "ts": "2026-09-06T16:34:07Z", "hours": 0.58, "text": "i added a button to view every video as a json, and i updated the readme"}, {"post_id": 49950, "ts": "2026-08-18T22:57:06Z", "hours": 0.56, "text": "i added a quick fox section to the side to fill in the space that was left on the right. i added the invertocat github icon leading to the source. will probably focus on adding more videos before shipping"}, {"post_id": 49933, "ts": "2026-08-18T22:03:10Z", "hours": 0.3319, "text": "i scrapped the like and dislike buttons, i replaced them with a suggest button leading to my github pages issues. i added a few more videos to the site from my yt homepage. if you have any ideas to add as the videos then feel free to drop them in the comments or at https://github.com/zaloguj12/StarTV/issues"}, {"post_id": 44772, "ts": "2026-08-10T19:30:38Z", "hours": 0.5736, "text": "so dont have any reveleant screenshots, but moved storage to r2 and deployment is now by vercel"}, {"post_id": 42622, "ts": "2026-08-07T13:20:49Z", "hours": 2.3411, "text": "another dev log? i decided to use fastapi static files to “send” the videos to the users, now also each video and info about it is stored in a videos.json having its own id, title and file path, an http GET is sent to the api, to fetch a video selected with random.choice , the json is loaded and then serves valuable info that JS uses to update the src of the video player, but also to update <p></p> for title displaying, now also the whole server can be started from a single terminal so no need for 2 anymore. next up i think about implementing a system for liking/disliking videos, based on the reddit upvote/downvote system, so instead of two counters, there will be one. the little problem is still the videos/ folder being local which means, each user has to get their own .mp4 files but also update the videos.json with any new/updated info, i will look forward to making this system easier in the future"}, {"post_id": 30427, "ts": "2026-07-17T23:21:59Z", "hours": 2.2364, "text": "i started with a basic site, just a logo, and a video player. basic test are going good so far. but im not looking forward to implementing the random video feature as it will require JS🤢"}]...
|
Title: StarTV by @Zaloguj12 | Stardance
Devlogs:
Title: StarTV by @Zaloguj12 | Stardance
Devlogs:
i started with a basic site, just a logo, and a video player. basic test are going good so far. but im not looking forward to implementing the random video feature as it will require JS🤢
another dev log? i decided to use fastapi static files to “send” the videos to the users, now also each video and info about it is stored in a videos.json having its own id, title and file path, an http GET is sent to the api, to fetch a video selected with random.choice , the json is loaded and then serves valuable info that JS uses to update the src of the video player, but also to update <p></p> for title displaying, now also the whole server can be started from a single terminal so no need for 2 anymore. next up i think about implementing a system for liking/disliking videos, based on the reddit upvote/downvote system, so instead of two counters, there will be one. the little problem is still the videos/ folder being local which means, each user has to get their own .mp4 files but also update the videos.json with any new/updated info, i will look forward to making this system easier in the future
so dont have any reveleant screenshots, but moved storage to r2 and deployment is now by vercel
i scrapped the like and dislike buttons, i replaced them with a suggest button leading to my github pages issues. i added a few more videos to the site from my yt homepage. if you have any ideas to add as the videos then feel free to drop them in the comments or at https://github.com/zaloguj12/StarTV/issues
i added a quick fox section to the side to fill in the space that was left on the right. i added the invertocat github icon leading to the source. will probably focus on adding more videos before shipping
i added a button to view every video as a json, and i updated the readme
added a few videos
Ships:
StarTV is a basic video streaming site, it uses direct file serving using FastAPI with an R2 Bucket Storage, it is deployed using Vercel. For now there are only 12 videos with more coming in the future, since it serves the videos directly it can be worse on slower internet or metered connections. It is a fun simple project to learn how APIs work and to learn how video streaming works. This was a fun project. I will maintain this for as long as I will be able to....
|
1793004661.85427
|
1793091061.85427
|
|
56270
|
ProjectGen - Powered by HackAI by @fanouriakisharr ProjectGen - Powered by HackAI by @fanouriakisharry | Stardance...
|
fanouriakisharry
|
1
|
19.94
|
293
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-22T19:43:06Z", "hours": 19.0, "multiplier": 15.43, "payout": 293, "blessing": "neutral", "text": "ProjectGen - AI Powered Project Idea Generator Hey there! I’ve had the idea to build this for a while, and I finally did it! ProjectGen is a desktop app, coded in Python and packaged both for mac and windows using Pyinstaller . In simple words, it’s an app powered by artificial intelligence, that can generate your next project ideas tailored to your exact requirements (project type, time, budget, difficulty level, etc.). It’s built to solve a specific problem I, and I’m sure all other tinkerers have: we have this feeling that we wanna start a new project, but have no idea what, and when we finally land on a specific idea, we often realize that we don’t have the right components, enough time, or the budget to actually build it. It is powered using HackAI, HackClub’s own free LLM API, and using gemini-3.8-flash as the model. How it works! When you open the app, you are met with the main screen, which features separate entry boxes and dropdown menus for the project type (software or hardware), difficulty level, available components if it’s a hardware project, and programming language if it’s software. There are also input fields for the time you can devote and your budget for the project. Oh, something I forgot to mention is that there’s an upload image button for the components, to avoid the hassle of having to type each and every one of your parts manually, and just upload an image of your components drawer. When you click “Generate ideas!”, after some time, 5 ideas will show up. Each one of those ideas has a “Build this!” button under it, that once pressed, generates a complete build guide for the specific project, covering everything you’ll need to build it yourself (overview, parts, wiring, code, instructions, etc.). What was challenging? The biggest challenge for this project, was probably packaging everything. The macOS dock icon constantly refused to work properly, because when I was launching the app, it would show the actual app icon for half a second and then switch to the deafult ttkbootstrap icon. Eventually, after asking AI, I ended up using PyObjC to keep re-applying the icon every 500ms while the app was running. Since I’m developing on a Mac, I also couldn’t build the Windows .exe myself on my computer, so I used GitHub Actions and a workflow written by ChatGpt to build it for me. I then created a Windows VM using UTM to make sure the .exe actually worked properly. What I’m happy with! I genuinely feel pretty happy with how the finished app turned out, especially considering how it started as a 70-line terminal-based Python script that only worked through VS code, and evolved into a proper packaged app that people can download and use without even needing Python installed. I’m also really happy with the component image upload feature, cause it just saves so much time! Instead of having to manually type out each one of the components you have, you can just take a picture of your components drawer and let the AI figure out what you have. How can you test it? Windows release: https://github.com/HarFProFour12/projectgen/releases/tag/v1.0.0_Windows Extract the ZIP file and run ProjectGen.exe . MacOS release: https://github.com/HarFProFour12/projectgen/releases/tag/v1.0.0 When you double click to open the app, it will refuse saying that Apple can’t verify it doesn’t contain malware. Go to Settings, then click Privacy & Security, scroll down, find the section about ProjectGen and click “Open anyway”.", "repo": "https://github.com/HarFProFour12/projectgen", "demo": "https://github.com/HarFProFour12/projectgen/releases/tag/v1.0.0"}]...
|
[{"post_id": 79303, "ts": "202 [{"post_id": 79303, "ts": "2026-10-13T13:10:49Z", "hours": 0.3097, "text": "Added back the API key dialog, so the app uses the user’s key, instead of leaking mine."}, {"post_id": 74851, "ts": "2026-09-28T13:20:20Z", "hours": 0.6281, "text": "Updated the github releases (both for Windows and MacOS), so the app runs straight out the box without needing the user to input their own api key. This was done upon request from the Shipwrights."}, {"post_id": 71185, "ts": "2026-09-20T12:35:23Z", "hours": 4.4536, "text": "Devlog #7: Packaging the app and shipping! Heyy there! Continuing from what I said on the next devlog, what I did today was finally turn ProjectGen into an actual app that people can download and run on their pc instead of just through VS code, as well as add some new features. Then, I used PyInstaller to package everything into a proper macOS .app , including the fonts and icon. The biggest problem I ran into was the dock icon not working for some reason. My actual ProjectGen icon would appear for half a second before default ttkbootstrap icon would take its place. After asking AI to help me find a solution, I ended up using PyObjC to keep re-applying my icon while the app is running, which sometimes works and sometimes just doesn’t, but I decided not to give it too much attention. Since, I am on mac, I couldn’t locally create the .exe file using pyinstaller , so I used Github Actions plus a script Chatgpt wrote to create it from there. Then I set up a windows vm in UTM, to check if the .exe file works properly. Thankfully it does, so that’s great! Other than that, there were some errosr with indentation and syntax, which I easily fixed. Finally, I made a .gitignore , added requirements.txt , uploaded everything to GitHub, and uploaded the packaged .app as a github release so people can download and run ProjectGen without needing Python or VS Code installed. I used AI a lot in this step, because the icon issue was driving me insane and also to create help create the Windows app. That’s it for now, see you on the next devlog!"}, {"post_id": 66790, "ts": "2026-09-12T17:52:31Z", "hours": 1.9661, "text": "Devlog #6: Photo upload for the components + copy code button! Hey there! Following up on what I said in the last devlog, what I did today what add a way to uplaod a photo of your components drawer instead of typing each componetn manually. There’s nwo an “or” and an “upload image” button right next to the components field, so the user can pick whichever way is more convenient for them. I used base64 to then encode the image and send it to the AI along with the rest of the prompt, along with some extra instructions. When an image is picked, the components field just shows “Image uploaded” so the user can tell the AI will be looking at the photo instead of reading from the entry field, plus I added a red X button next to the upload button so the user can cancel it to pick another image or use txet instead. Other than that, I also added a “Copy code” button to the build guide’s code section, so you don’t have to manually select text out of the text box anymore to copy it. Later, I found out that command=self._copy_code(code) doesn’t work the way it looks like it would, since the parentheses call the function immediately instead of waiting for a the button to be cliced. To solve that, I wrapped it in a lambda function so it only runs when the button’s actually pressed. I used AI to create the new prompt for the image upload and also to help me understand some errors the terminal was showing. That’s for now, see you on the next devlog!"}, {"post_id": 65299, "ts": "2026-09-10T10:41:54Z", "hours": 2.8261, "text": "Devlog #5: Build guide screen, project types, and caching! Heyyy! I’ve been putting off writing this devlog, since there’s a lot off stuff I need to talk about. So, picking up from where I left off in devlog #4, since I said I’d give the build guide it’s own screen and fix the colors, that’s mostly what this devlog is about. The build guide now renders as a seperate screen with seperate sections (Overview, Components, Wiring, Build Steps, Code), pulled from the AI call that returns structured json. I also fixed the fact that the build guide screen was using a blue theme instead of my olive green one, which was because I was using bootstyle=\"primary\" that pulls from ttkbootstrap ’s default theme instead of my custom styles. I also added a project type dropdown in the beginning of the home screen, so the user can choose whether they want a hardware or a software project. Picking software, hides the budget field (since software projects are mostly free), and relabels the components field to programming language. I fixed another annoying bug where clicking “Build this!” twice on the same project, re-called the AI every time, instead of using the old response. To fix tat, I added a small cache keyed my project name, so if it detects that the build button has already been pressed for the specific project, it displays the old instructions instead of creating new ones every time. I also fixed a small bug with the “Back to ideas” button and debugged some typos. Next time, I’m thinking of letting users upload a photo of their components drawer and having the AI think of ideas using those components. That’s it for now, see you on the next devlog!"}, {"post_id": 63443, "ts": "2026-09-07T09:17:41Z", "hours": 3.5797, "text": "Devlog #4: Moving to ttkbootstrap + adding a “Build this!“button Heyyyy! I was gonna write this devlog yesterday, but it was getting kinda late, so I decided to do it toady. So here’s what’s new: First of all, I switched the app over from plain tkinter widgets to ttkbootstrap , to basically just make things easier. Before, the “Generate ideas!” button was just a label pretending to be a button, with custom hover colors and click bindings, because MacOS (my operating system) was applying an ugly outdated gray/silverish button with no styling, and I wasn’t able to change it. The switch was relatively smooth, since for most commands, I just had to change the prefix from tk. to tb. Only problem was that these new widgets don’t take bg= / fg= like my previous ones did, so I had to define named styled in the beginning instead. I also added a difficulty field in the beginning, so the user can control the difficulty level of the project ideas, and also a progress bar along with the cycling messages, so the user actually knows when the Ai is thinking. I also gave each card a “Build this! button, which once pressed, sends another prompt to the ai asking for a full guide, including components, wiring, build instructions, and code if needed. I ran into some errors along the way, mostly typos, which I debugged with the help of Ai. Next time I’ll give the build guide it’s own screen instead of sitting underneath the entry fields, and make the colors of the app consistent between all the screens. That’s it for now, see you on the next devlog!"}, {"post_id": 62750, "ts": "2026-09-06T08:23:14Z", "hours": 3.7319, "text": "Devlog #3: Displaying each idea in it’s own dedicated card Hey there! Today, I switched from dumping all he project ideas the AI gave me into one big ScrolledText box, since just a wall of text with no specific layout or format isn’t excactly great UX. The main thing I changed, was swapping the text box with a scrollable list of widgets (boxes), with each widget having its own colored background, border, a Label for the project name, one for the description and the extra components and lastly one for the time and cost to make. Since tkinter frames don’t scroll by default, I had to create a seperate canvas with a scrollbar bound to it and the cards embedded inside it. Because cards are real widgets now instead of just plain text you can use .delete() , when the user clicked the button again to regenerate ideas, it also had to clean up the previous cards before drawing the new ones, since otherwise all the ideas would just pile up one after the other. I ran into quite some bugs along the way, such as small syntax errors and typos, which I used AI to help me debug. Next time I’ll probably add some buttons for each card, such as a “copy idea” or a “build this one” button. That’s it for now, see you on the next devlog!"}, {"post_id": 59863, "ts": "2026-09-01T20:51:27Z", "hours": 1.5997, "text": "Devlog #2: Transferring project to tkinter ! Today I moved the project from a terminal-based script to an actual GUI using the tkinter library, since typing into input() prompts and just reading a wall of terminal text isn’t exactly a great user experience. The main structure translated pretty easily: text boxes (entry widgets) for components, hours and budget, a “Generate Ideas!” button and an output area for the results. The most difficult part was keeping the window responsive: calling the AI API directly would freeze the whole window until the response came back, so the request now runs in the background, with the result handed back to the main thread safely using root.after(). I used the same rotating status messages from the terminal version (“Brainstorming…”, “Thinking”, etc.), which now update live in the GUI while it waits. Because this was my first time using tkinter , I used Claude to get me up to speed with the core concepts (widgets, entries, `.pack(), etc.). Once I wrote the code, I also used it to help me debug it. Next time I’m probably gonna make the ai output structures json so I can display each project idea in it’s own “card”, and generally work in making the GUI look prettier. That’s it for today, see you on the next devlog!"}, {"post_id": 59186, "ts": "2026-08-31T20:42:01Z", "hours": 0.8419, "text": "Devlog #1: Coding MVP Hey there! First devlog for this project! So the idea of this project is that you write what components you have, how much time you can devote and what your budget is, and AI brainstorms 5 different project ideas you can make that fit those criteria. The project is coded in Python. First, I generated a new API key from HackAi to use as the brain, and integrated it. Then I wrote 1 master prompt which gets sent to the AI every time and includes the info the user has given (components, time available, budget), along with instructions on what format to return each idea in (name, description, extra components needed, cost, and time estimate). I used the rich library to make the terminal output look prettier: rendering the AI’s response as formatted markdown instead of plain text, adding colors and even a colored spinner along with some phrases (such as thinking... , brainstorming... , ect.) so the user knows somethings is happening instead of just guessing if the program has frozen or not. I used AI to help make the prompt and debug. Next up: I’ll probably switch to Tkinter to give it an actual GUI instead of a terminal prompt. Probably gonna have text boxes for components/time/budget, a “Generate Ideas” button, and each idea shown in its own card instead of one long markdown dump. Follow along to see how it turns out!"}]...
|
Title: ProjectGen - Powered by HackAI by @fanouria Title: ProjectGen - Powered by HackAI by @fanouriakisharry | Stardance
Devlogs:
Devlog #1: Coding MVP Hey there! First devlog for this project! So the idea of this project is that you write what components you have, how much time you can devote and what your budget is, and AI brainstorms 5 different project ideas you can make that fit those criteria. The project is coded in Python. First, I generated a new API key from HackAi to use as the brain, and integrated it. Then I wrote 1 master prompt which gets sent to the AI every time and includes the info the user has given (components, time available, budget), along with instructions on what format to return each idea in (name, description, extra components needed, cost, and time estimate). I used the rich library to make the terminal output look prettier: rendering the AI’s response as formatted markdown instead of plain text, adding colors and even a colored spinner along with some phrases (such as thinking... , brainstorming... , ect.) so the user knows somethings is happening instead of just guessing if the program has frozen or not. I used AI to help make the prompt and debug. Next up: I’ll probably switch to Tkinter to give it an actual GUI instead of a terminal prompt. Probably gonna have text boxes for components/time/budget, a “Generate Ideas” button, and each idea shown in its own card instead of one long markdown dump. Follow along to see how it turns out!
Devlog #2: Transferring project to tkinter ! Today I moved the project from a terminal-based script to an actual GUI using the tkinter library, since typing into input() prompts and just reading a wall of terminal text isn’t exactly a great user experience. The main structure translated pretty easily: text boxes (entry widgets) for components, hours and budget, a “Generate Ideas!” button and an output area for the results. The most difficult part was keeping the window responsive: calling the AI API directly would freeze the whole window until the response came back, so the request now runs in the background, with the result handed back to the main thread safely using root.after(). I used the same rotating status messages from the terminal version (“Brainstorming…”, “Thinking”, etc.), which now update live in the GUI while it waits. Because this was my first time using tkinter , I used Claude to get me up to speed with the core concepts (widgets, entries, `.pack(), etc.). Once I wrote the code, I also used it to help me debug it. Next time I’m probably gonna make the ai output structures json so I can display each project idea in it’s own “card”, and generally work in making the GUI look prettier. That’s it for today, see you on the next devlog!
Devlog #3: Displaying each idea in it’s own dedicated card Hey there! Today, I switched from dumping all he project ideas the AI gave me into one big ScrolledText box, since just a wall of text with no specific layout or format isn’t excactly great UX. The main thing I changed, was swapping the text box with a scrollable list of widgets (boxes), with each widget having its own colored background, border, a Label for the project name, one for the description and the extra components and lastly one for the time and cost to make. Since tkinter frames don’t scroll by default, I had to create a seperate canvas with a scrollbar bound to it and the cards embedded inside it. Because cards are real widgets now instead of just plain text you can use .delete() , when the user clicked the button again to regenerate ideas, it also had to clean up the previous cards before drawing the new ones, since otherwise all the ideas would just pile up one after the other. I ran into quite some bugs along the way, such as small syntax errors and typos, which I used AI to help me debug. Next time I’ll probably add some buttons for each card, such as a “copy idea” or a “build this one” button. That’s it for now, see you on the next devlog!
Devlog #4: Moving to ttkbootstrap + adding a “Build this!“button Heyyyy! I was gonna write this devlog yesterday, but it was getting kinda late, so I decided to do it toady. So here’s what’s new: First of all, I switched the app over from plain tkinter widgets to ttkbootstrap , to basically just make things easier. Before, the “Generate ideas!” button was just a label pretending to be a button, with custom hover colors and click bindings, because MacOS (my operating system) was applying an ugly outdated gray/silverish button with no styling, and I wasn’t able to change it. The switch was relatively smooth, since for most commands, I just had to change the prefix from tk. to tb. Only problem was that these new widgets don’t take bg= / fg= like my previous ones did, so I had to define named styled in the beginning instead. I also added a difficulty field in the beginning, so the user can control the difficulty level of the project ideas, and also a progress bar along with the cycling messages, so the user actually knows when the Ai is thinking. I also gave each card a “Build this! button, which once pressed, sends another prompt to the ai asking for a full guide, including components, wiring, build instructions, and code if needed. I ran into some errors along the way, mostly typos, which I debugged with the help of Ai. Next time I’ll give the build guide it’s own screen instead of sitting underneath the entry fields, and make the colors of the app consistent between all the screens. That’s it for now, see you on the next devlog!
Devlog #5: Build guide screen, project types, and caching! Heyyy! I’ve been putting off writing this devlog, since there’s a lot off stuff I need to talk about. So, picking up from where I left off in devlog #4, since I said I’d give the build guide it’s own screen and fix the colors, that’s mostly what this devlog is about. The build guide now renders as a seperate screen with seperate sections (Overview, Components, Wiring, Build Steps, Code), pulled from the AI call that returns structured json. I also fixed the fact that the build guide screen was using a blue theme instead of my olive green one, which was because I was using bootstyle="primary" that pulls from ttkbootstrap ’s default theme instead of my custom styles. I also added a project type dropdown in the beginning of the home screen, so the user can choose whether they want a hardware or a software project. Picking software, hides the budget field (since software projects are mostly free), and relabels the components field to programming language. I fixed another annoying bug where clicking “Build this!” twice on the same project, re-called the AI every time, instead of using the old response. To fix tat, I added a small cache keyed my project name, so if it detects that the build button has already been pressed for the specific project, it displays the old instructions instead of creating new ones every time. I also fixed a small bug with the “Back to ideas” button and debugged some typos. Next time, I’m thinking of letting users upload a photo of their components drawer and having the AI think of ideas using those components. That’s it for now, see you on the next devlog!
Devlog #6: Photo upload for the components + copy code button! Hey there! Following up on what I said in the last devlog, what I did today what add a way to uplaod a photo of your components drawer instead of typing each componetn manually. There’s nwo an “or” and an “upload image” button right next to the components field, so the user can pick whichever way is more convenient for them. I used base64 to then encode the image and send it to the AI along with the rest of the prompt, along with some extra instructions. When an image is picked, the components field just shows “Image uploaded” so the user can tell the AI will be looking at the photo instead of reading from the entry field, plus I added a red X button next to the upload button so the user can cancel it to pick another image or use txet instead. Other than that, I also added a “Copy code” button to the build guide’s code section, so you don’t have to manually select text out of the text box anymore to copy it. Later, I found out that command=self._copy_code(code) doesn’t work the way it looks like it would, since the parentheses call the function immediately instead of waiting for a the button to be cliced. To solve that, I wrapped it in a lambda function so it only runs when the button’s actually pressed. I used AI to create the new prompt for the image upload and also to help me understand some errors the terminal was showing. That’s for now, see you on the next devlog!
Devlog #7: Packaging the app and shipping! Heyy there! Continuing from what I said on the next devlog, what I did today was finally turn ProjectGen into an actual app that people can download and run on their pc instead of just through VS code, as well as add some new features. Then, I used PyInstaller to package everything into a proper macOS .app , including the fonts and icon. The biggest problem I ran into was the dock icon not working for some reason. My actual ProjectGen icon would appear for half a second before default ttkbootstrap icon would take its place. After asking AI to help me find a solution, I ended up using PyObjC to keep re-applying my icon while the app is running, which sometimes works and sometimes just doesn’t, but I decided not to give it too much attention. Since, I am on mac, I couldn’t locally create the .exe file using pyinstaller , so I used Github Actions plus a script Chatgpt wrote to create it from there. Then I set up a windows vm in UTM, to check if the .exe file works properly. Thankfully it does, so that’s great! Other than that, there were some errosr with indentation and syntax, which I easily fixed. Finally, I made a .gitignore , added requirements.txt , uploaded everything to GitHub, and uploaded the packaged .app as a github release so people can download and run ProjectGen without needing Python or VS Code installed. I used AI a lot in this step, because the icon issue was driving me insane and also to create help create the Windows app. That’s it for now, see you on the next devlog!
Updated the github releases (both for Windows and MacOS), so the app runs straight out the box without needing the user to input their own api key. This was done upon request from the Shipwrights.
Added back the API key dialog, so the app uses the user’s key, instead of leaking mine.
Ships:
ProjectGen - AI Powered Project Idea Generator Hey there! I’ve had the idea to build this for a while, and I finally did it! ProjectGen is a desktop app, coded in Python and packaged both for mac and windows using Pyinstaller . In simple words, it’s an app powered by artificial intelligence, that can generate your next project ideas tailored to your exact requirements (project type, time, budget, difficulty level, etc.). It’s built to solve a specific problem I, and I’m sure all other tinkerers have: we have this feeling that we wanna start a new project, but have no idea what, and when we finally land on a specific idea, we often realize that we don’t have the right components, enough time, or the budget to actually build it. It is powered using HackAI, HackClub’s own free LLM API, and using gemini-3.8-flash as the model. How it works! When you open the app, you are met with the main screen, which features separate entry boxes and dropdown menus for the project type (software or hardware), difficulty level, available components if it’s a hardware project, and programming language if it’s software. There are also input fields for the time you can devote and your budget for the project. Oh, something I forgot to mention is that there’s an upload image button for the components, to avoid the hassle of having to type each and every one of your parts manually, and just upload an image of your components drawer. When you click “Generate ideas!”, after some time, 5 ideas will show up. Each one of those ideas has a “Build this!” button under it, that once pressed, generates a complete build guide for the specific project, covering everything you’ll need to build it yourself (overview, parts, wiring, code, instructions, etc.). What was challenging? The biggest challenge for this project, was probably packaging everything. The macOS dock icon constantly refused to work properly, because when I was launching the app, it would show the actual app icon for half a second and then switch to the deafult ttkbootstrap icon. Eventually, after asking AI, I ended up using PyObjC to keep re-applying the icon every 500ms while the app was running. Since I’m developing on a Mac, I also couldn’t build the Windows .exe myself on my computer, so I used GitHub Actions and a workflow written by ChatGpt to build it for me. I then created a Windows VM using UTM to make sure the .exe actually worked properly. What I’m happy with! I genuinely feel pretty happy with how the finished app turned out, especially considering how it started as a 70-line terminal-based Python script that only worked through VS code, and evolved into a proper packaged app that people can download and use without even needing Python installed. I’m also really happy with the component image upload feature, cause it just saves so much time! Instead of having to manually type out each one of the components you have, you can just take a picture of your components drawer and let the AI figure out what you have. How can you test it? Windows release: https://github.com/HarFProFour12/projectgen/releases/tag/v1.0.0_Windows Extract the ZIP file and run ProjectGen.exe . MacOS release: https://github.com/HarFProFour12/projectgen/releases/tag/v1.0.0 When you double click to open the app, it will refuse saying that Apple can’t verify it doesn’t contain malware. Go to Settings, then click Privacy & Security, scroll down, find the section about ProjectGen and click “Open anyway”....
|
1793004835.7815561
|
1793091235.7815561
|
|
64708
|
Useless Website by @silvonik | Stardance
|
silvonik
|
1
|
2.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-22T19:42:00Z", "hours": 2.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a website that is a very useless website that wastes your time on it, it has random gifs and pranks and a old windows 98 style. It has features like; Home/Intro, Useless Gallery, Useless Button which you should definitely press, Very Cool THING, Old Windows Vibe, A bunch of GIFs. I didn’t encounter any Challenges on the way, but it was my first time making a website with GIFs and the old windows vibe so I had to study the design of old windows and learn how to add GIFs to websites (It was pretty easy to add GIFs).", "repo": "https://github.com/Silvonik/MyStardanceWebsite", "demo": "https://silvonik.github.io/MyStardanceWebsite/"}]...
|
[{"post_id": 72371, "ts": "202 [{"post_id": 72371, "ts": "2026-09-22T19:32:03Z", "hours": 1.0467, "text": "#Devlog 1: Finished the CSS and I am ready to ship the website! I decided to go with a retro windows vibe because I thought it would be funny!"}, {"post_id": 72344, "ts": "2026-09-22T18:23:25Z", "hours": 0.6856, "text": "#Devlog 0: I’m making a website that is USELESS and has no reason for anyone to use it.. So far I made the HTML and next I will work on the CSS. It took me pretty long to find all of the GIFs."}]...
|
Title: Useless Website by @silvonik | Stardance
D Title: Useless Website by @silvonik | Stardance
Devlogs:
#Devlog 0: I’m making a website that is USELESS and has no reason for anyone to use it.. So far I made the HTML and next I will work on the CSS. It took me pretty long to find all of the GIFs.
#Devlog 1: Finished the CSS and I am ready to ship the website! I decided to go with a retro windows vibe because I thought it would be funny!
Ships:
I made a website that is a very useless website that wastes your time on it, it has random gifs and pranks and a old windows 98 style. It has features like; Home/Intro, Useless Gallery, Useless Button which you should definitely press, Very Cool THING, Old Windows Vibe, A bunch of GIFs. I didn’t encounter any Challenges on the way, but it was my first time making a website with GIFs and the old windows vibe so I had to study the design of old windows and learn how to add GIFs to websites (It was pretty easy to add GIFs)....
|
1792965107.6658554
|
1793051507.6658554
|
|
64881
|
my new website by @stefanellinicolas72 | Stardance
|
stefanellinicolas72
|
1
|
0.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-22T19:11:49Z", "hours": 0.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "i made a website that tellls about me, it explains my hobbies and who i am. it wasn’t that challenging to make, since i watched many, and i mean MANY youtube videos to try and make something beautiful!", "repo": "https://github.com/stefanellinicolas72-glitch/my-website-2", "demo": "https://stefanellinicolas72-glitch.github.io/my-website-2/"}]...
|
[{"post_id": 72361, "ts": "202 [{"post_id": 72361, "ts": "2026-09-22T19:08:35Z", "hours": 0.4856, "text": "a website about me. my portfolio"}]...
|
Title: my new website by @stefanellinicolas72 | St Title: my new website by @stefanellinicolas72 | Stardance
Devlogs:
a website about me. my portfolio
Ships:
i made a website that tellls about me, it explains my hobbies and who i am. it wasn’t that challenging to make, since i watched many, and i mean MANY youtube videos to try and make something beautiful!...
|
1792965121.9483318
|
1793051521.9483318
|
|
43907
|
Flappy Bird Console by @artitule | Stardance
|
artitule
|
1
|
40.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-22T19:05:53Z", "hours": 40.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I built FlappyINO a small form factor portable Flappy Bird Console. It is easy to take with you and enjoy on the go. It is based around the ATmega328P IC (the same IC that is used in the Arduino UNO and NANO) so the project is very easy to build from readily available parts. Also since the same IC is used in popular Arduino boards the project can be built on a breadboard and tested beforehand with ease. This project was started before Stardance but before only the game part was there. Since Stardance the project became a lot more polished and i was able to add a lot of the features that were missing before. I rewrote the code to use the more user friendly VSCode + PlatformIO combo instead of the ArduinoIDE, before the code was organized in what ArduinoIDE calls “Tabs”. Now the code is organized in actual files and this is an actual software project. Apart from that in the v2 release i added: A game progression system with difficulty unlocks and more game modes, a Settings menu for graphical features, landing and takeoff animations, better UI and so much more. Please see the README to see the full list of changes and see the demo video for the gameplay. As this is a hardware project and you can’t run something like Unity on a IC that has 2Kb of SRAM and 32Kb of flash you need to implement all of the “basic” things that you can do with a couple lines of code in game engine like collision detection, game loop, player inputs, accurate timings and stable FPS needs implementation by hand. This was by far the hardest part (together with game optimization and asset storage) that i had to overcome to finish this project. I’m most proud of being able to combine all of these aspects into one and get something that is stable/reliable and responsive but also compact so that you can carry the whole console on your keychain. Don’t even get me started on the responsive part. Since the game needs to get faster and faster (otherwise it would get really boring) you will be quickly met with restrictions to how much data you can process and send to the display while keeping the game responsive and not slowing it down. Here even at 30 FPS you need to basically redraw 128x64=8.192 pixels every 33 ish milliseconds. On a modern computer that is not that hard but on a 8MHz microcontroller that is no easy feat. In the end i had to cut down and optimize almost all of the “redraws” to minimize the amount that needs to be actually “redrawn”. To test the project select the hardware you want to run the project on (the PCB or an Arduino Board) go to the GitHub repository and follow the steps for the connections and code uploading. You can also watch the demo video beforehand to get more information about the project. I really enjoyed being a part of the Stardance community and improving my project. I hope in the future i will be able to to more really interesting hardware and software projects. If you want to see this and my future projects grow please consider leaving feedback. I am designing these projects on my own so other peoples feedback is really important to me! Thank You! :)", "repo": "https://github.com/ARTITULE/FlappyINO", "demo": ""}]...
|
[{"post_id": 71874, "ts": "202 [{"post_id": 71874, "ts": "2026-09-21T18:01:22Z", "hours": 7.5458, "text": "Devlog Time!! Hopefully this is going to be my final devlog for this project. I finished the demo video and the thumbnail updated the README and did much more. You can watch the demo video from the link in my project or the link below. https://www.youtube.com/watch?v=2ZuoSsNO6Mo See you in the next devlog"}, {"post_id": 64322, "ts": "2026-09-08T16:43:15Z", "hours": 6.4667, "text": "Devlog Time!! After a lot of soldering i finished the assembly of the v2 FlappyINO console. You can see the v1(on the left) vs the v2(on the right) comparison in the picture. Now the only thing that’s left is to update the README and to film the video! See you then"}, {"post_id": 62394, "ts": "2026-09-05T18:47:28Z", "hours": 2.8417, "text": "Devlog Time!! Finally got the Pcb’s and redesigned the case. The only real thing that is left is to assemble the console and SHIP! I also added the production files to github and modified the README. Now i am going to, keep soldering!"}, {"post_id": 59637, "ts": "2026-09-01T15:38:43Z", "hours": 7.6844, "text": "Devlog Time!! Finally added the animations for landing and taking off . You can see them attached. Among minor bug fixes i implemented: Landing and Takeoff animation. Setting in settings menu to enable and disable the animations(in case they get boring) Added a way to see if the level is locked, unlocked or cleared(completed) Since there is no game engines written for AVR microcontrollers the animation took a long time to implement because i need to draw each frame of it by hand to the buffer and then to the screen. But i definitely learned a lot about how to interact with each element on its own. Now i am slowly preparing to ship the project but until then i will keep coding!"}, {"post_id": 48390, "ts": "2026-08-16T18:29:51Z", "hours": 3.5811, "text": "Devlog Time!! Finally worked on the level ending.(before the game had no ending and no way to complete the levels ) Now the levels have a cool ending screen and an option to play the ENDLESS MODE . Also a new feature is that you now need to beat previous levels before advancing to the next. I think this way an endless game has more “story” i guess. The next thing i will be working on is a cool landing animation. In the meantime Keep Coding!"}, {"post_id": 44709, "ts": "2026-08-10T17:26:21Z", "hours": 2.8642, "text": "Devlog Time!! After adding more graphics to the game i saw some frame drops so i added the ability to toggle some of the more performance heavy ones. That is how the Settings menu was born. Not a lot of changes for this devlog but in the meantime, Keep coding"}, {"post_id": 44011, "ts": "2026-08-09T14:38:52Z", "hours": 5.8189, "text": "Devlog Time!! Mainly worked on the GUI this time now the level select screen has a cute planet picture :3. Also added a moon surface looking background to the level. Spent like 30 minutes trying to align everything but now i am really good at math(specifically dividing by 2). Keep coding 🙃"}, {"post_id": 42492, "ts": "2026-08-07T08:12:39Z", "hours": 3.3422, "text": "Finally rewrote the code to work with PlatformIO . Code compilation is a lot faster now. Struggled on splitting the ArduinoIDE “Tabs” into actual files but this is a lot better than the old mess."}]...
|
Title: Flappy Bird Console by @artitule | Stardanc Title: Flappy Bird Console by @artitule | Stardance
Devlogs:
Finally rewrote the code to work with PlatformIO . Code compilation is a lot faster now. Struggled on splitting the ArduinoIDE “Tabs” into actual files but this is a lot better than the old mess.
Devlog Time!! Mainly worked on the GUI this time now the level select screen has a cute planet picture :3. Also added a moon surface looking background to the level. Spent like 30 minutes trying to align everything but now i am really good at math(specifically dividing by 2). Keep coding 🙃
Devlog Time!! After adding more graphics to the game i saw some frame drops so i added the ability to toggle some of the more performance heavy ones. That is how the Settings menu was born. Not a lot of changes for this devlog but in the meantime, Keep coding
Devlog Time!! Finally worked on the level ending.(before the game had no ending and no way to complete the levels ) Now the levels have a cool ending screen and an option to play the ENDLESS MODE . Also a new feature is that you now need to beat previous levels before advancing to the next. I think this way an endless game has more “story” i guess. The next thing i will be working on is a cool landing animation. In the meantime Keep Coding!
Devlog Time!! Finally added the animations for landing and taking off . You can see them attached. Among minor bug fixes i implemented: Landing and Takeoff animation. Setting in settings menu to enable and disable the animations(in case they get boring) Added a way to see if the level is locked, unlocked or cleared(completed) Since there is no game engines written for AVR microcontrollers the animation took a long time to implement because i need to draw each frame of it by hand to the buffer and then to the screen. But i definitely learned a lot about how to interact with each element on its own. Now i am slowly preparing to ship the project but until then i will keep coding!
Devlog Time!! Finally got the Pcb’s and redesigned the case. The only real thing that is left is to assemble the console and SHIP! I also added the production files to github and modified the README. Now i am going to, keep soldering!
Devlog Time!! After a lot of soldering i finished the assembly of the v2 FlappyINO console. You can see the v1(on the left) vs the v2(on the right) comparison in the picture. Now the only thing that’s left is to update the README and to film the video! See you then
Devlog Time!! Hopefully this is going to be my final devlog for this project. I finished the demo video and the thumbnail updated the README and did much more. You can watch the demo video from the link in my project or the link below. https://www.youtube.com/watch?v=2ZuoSsNO6Mo See you in the next devlog
Ships:
I built FlappyINO a small form factor portable Flappy Bird Console. It is easy to take with you and enjoy on the go. It is based around the ATmega328P IC (the same IC that is used in the Arduino UNO and NANO) so the project is very easy to build from readily available parts. Also since the same IC is used in popular Arduino boards the project can be built on a breadboard and tested beforehand with ease. This project was started before Stardance but before only the game part was there. Since Stardance the project became a lot more polished and i was able to add a lot of the features that were missing before. I rewrote the code to use the more user friendly VSCode + PlatformIO combo instead of the ArduinoIDE, before the code was organized in what ArduinoIDE calls “Tabs”. Now the code is organized in actual files and this is an actual software project. Apart from that in the v2 release i added: A game progression system with difficulty unlocks and more game modes, a Settings menu for graphical features, landing and takeoff animations, better UI and so much more. Please see the README to see the full list of changes and see the demo video for the gameplay. As this is a hardware project and you can’t run something like Unity on a IC that has 2Kb of SRAM and 32Kb of flash you need to implement all of the “basic” things that you can do with a couple lines of code in game engine like collision detection, game loop, player inputs, accurate timings and stable FPS needs implementation by hand. This was by far the hardest part (together with game optimization and asset storage) that i had to overcome to finish this project. I’m most proud of being able to combine all of these aspects into one and get something that is stable/reliable and responsive but also compact so that you can carry the whole console on your keychain. Don’t even get me started on the responsive part. Since the game needs to get faster and faster (otherwise it would get really boring) you will be quickly met with restrictions to how much data you can process and send to the display while keeping the game responsive and not slowing it down. Here even at 30 FPS you need to basically redraw 128x64=8.192 pixels every 33 ish milliseconds. On a modern computer that is not that hard but on a 8MHz microcontroller that is no easy feat. In the end i had to cut down and optimize almost all of the “redraws” to minimize the amount that needs to be actually “redrawn”. To test the project select the hardware you want to run the project on (the PCB or an Arduino Board) go to the GitHub repository and follow the steps for the connections and code uploading. You can also watch the demo video beforehand to get more information about the project. I really enjoyed being a part of the Stardance community and improving my project. I hope in the future i will be able to to more really interesting hardware and software projects. If you want to see this and my future projects grow please consider leaving feedback. I am designing these projects on my own so other peoples feedback is really important to me! Thank You! :)...
|
1793004639.4883895
|
1793091039.4883895
|
|
54225
|
YACK by @Definitly-Not-Me | Stardance
|
Definitly-Not-Me
|
1
|
57.5
|
186
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-22T18:45:35Z", "hours": 55.0, "multiplier": 3.44, "payout": 186, "blessing": "neutral", "text": "I tried to build a language model Model. My expectation were not high. I just hoped he would be multilingual (English + French + My Mother tongue) and that I would learn how LLMs works along the way. Overall the experience was pretty rewarding. Except for the Kaggle Part: This one, I hated it with passion. Due to monetary requirement both models are under-trained but they can produce coherent sentences. So I consider it a win. I’m hosting the project on my laptop so whoever review this: Don’t take your time >:( ** Just Kidding ☺️**", "repo": "https://github.com/Definitly-Not-Me/Patrick", "demo": "https://definitlynotme.site"}]...
|
[{"post_id": 75633, "ts": "202 [{"post_id": 75633, "ts": "2026-09-30T16:32:34Z", "hours": 2.0122, "text": "Dear shipwrights I don’t know if you’ll read this but I still feel like writing it since I’ve nothing else to write. In response to the feedback provided, here’s what changed: I deleted some part of my README as well as corrected grammar mistakes since it seemed to “contain” part written by AI. Honestly the grammar mistakes should’ve given me an alibi but … nevermind. I have patched garbage characters generation during inference. I truly hope that was the “ bug ” you mentioned in your review. If it was not, I’m afraid there’s not more I can do without spending ton of time/money on computing to improve my Language Model output (NOT chatbot). Which would be sad. Really sad. For the planet and for me. Detailed AI usage in the project description. I really hope the third time will pay home 🥲"}, {"post_id": 72678, "ts": "2026-09-23T13:59:13Z", "hours": 0.4858, "text": "Dear shipwrights My Cloudflared tunnel went down and I don’t know why. Thus the link in my shipping devlog is now invalid. I looked up if there was any way to get a more lasting url and all solutions I found were either paid services (domain name) or required a credit card. I have neither. I will wait for your message and try to improve networking skills for the next ship. Thanks for reading me. Sadly, @Definitly-Not-Me"}, {"post_id": 72349, "ts": "2026-09-22T18:37:55Z", "hours": 2.0403, "text": "Wait ! shipping require you to post a devlog ? Bad luck on top of bad luck. I found no cloud hosting platform that check all my requirements so for the time being, I’m a cloud provider :) For those who will review my project, I ask for your understanding. Nothing to show for this one. So here is picture of my Language Model mascot. Patrick Star"}, {"post_id": 71936, "ts": "2026-09-21T20:21:38Z", "hours": 10.3194, "text": "Last devlog before shipping: Against my best wishes, none of my models reached a usable state. Even though their best loss is quite low (2.94 and 2.81) I didn’t manage to reach the finetuning stage. To continue training I would have to start pouring money to get more compute power. And I don’t have that…. So that’ll be all. I will finish the UI and deploy locally first until I manage to find a vps before my project get a reviewer."}, {"post_id": 68777, "ts": "2026-09-15T18:51:37Z", "hours": 9.3614, "text": "Premature optimization is the root of all evils I still fell in the trap… I struggled for weeks to produce a model that can generate coherent text. Now all what is left is to ship or perhaps even fine-tune and be done. But nooooo, we need to atleast make PeRfOrmAnt . Ended adding some mods to the original GPT-2. I found that there’s even a whole community around this . I gained a lot from them. Now, the project is a Frankenstein DeepSeek . Time will tell if this was a good idea (-_-) Here’s a picture of the last training round. Things went quite well despite a bug affecting the learning rate."}, {"post_id": 65660, "ts": "2026-09-10T23:05:05Z", "hours": 1.6197, "text": "Updates and Bloopers Even though Kaggle runs on Google Collab, it turn out Collab is much more easier to use than Kaggle. To my grand deception, Collab is not as generous as Kaggle. So I will not change my workflow. I think I also need to change dataset. Also what’s up with Stardance and all those auxiliary events/challenges ?"}, {"post_id": 65020, "ts": "2026-09-09T20:25:25Z", "hours": 8.3361, "text": "Now we’re talking folks Reached a milestone. After nearly 10 hours of training on OpenwebText , the model can now formulate somewhat grammatically correct sentences. It’s not over though. Training was interrupted because apparently kaggle has a time limit for how long a notebook can run (on top on the weekly time limit). Sadly I have no interest in buying cloud compute for that, so I will just look for a richer dataset, reduce the number of epoch and crank up the learning rate."}, {"post_id": 63205, "ts": "2026-09-06T21:31:41Z", "hours": 4.2356, "text": "I’m tired boss Sorry, stardance but for my own good and sanity, I think I will have to give up or half bake this project. I really tried 😞"}, {"post_id": 59298, "ts": "2026-09-01T00:37:38Z", "hours": 3.1833, "text": "Two steps before the throne Finally deployed the training script to Kaggle. Now all there’s to be is wait and hope. A quick list of what’s new: Divided the training loop in many functions to handle dataloading, parsing, logging and more; Managed to find a copy of gutenberg books to serve as dataset; Implemented checkpoints in the training so that I will not lose all progress if I run out of compute; Dataloading is now done using np.memmap ensuring that only a portion of tokens are loaded in memory; Scaled the value of hyprparameters based on configuration of gpt-2 small (my main source is Chatgpt/GLM and a rough guess of number of epochs); Fixed a “ storage leak ” where the best model checkpoints where saved per epoch instead of overwriting previous one (totally my fault) Next: Fix my nonexistant git history while waiting for the training to finish"}, {"post_id": 58245, "ts": "2026-08-30T16:34:58Z", "hours": 7.7647, "text": "Small update on building a Language Model So after getting the architecture down and adding collecting some data, I started the training phase. That was one week ago …. Training is surprisingly (or not ?) actually more than just shoving in more data and expect it to work. Right now I’m struggling with finding sensible hyperparameters and getting the model to output something coherent. What’s new I mainly worked on the training loop and minor optimizations to hidden layers to distract myself while Pytorch was frying my APU. Of course there were also bugs in the code that had to fix on the way. For monitoring the training I decided to use plain TUI built with Rich but I’m currently adding a csv logging for better history tracking. At first I was planning to run the training on my laptop but I understood why billions dollar companies needed so many datacenters. Anyway, I deployed it on Kaggle which also was harder than it should be. Next Take a break, Improve training loop, Deploy on Kaggle Forget about it"}, {"post_id": 54745, "ts": "2026-08-25T20:38:12Z", "hours": 7.6444, "text": "Devlog 0: Build a Large/Small/Whatever LM Overview Hello Stardance! Hello world appetIntern disdainwartsnine . Those were the first words of my Language Model, am feeling so fogging proud right now. I’m trying to get into ML for the next year (not just because of the hype). For my first projects, I tried building a simple perceptron as well as understanding the algorithm behind Tic-Tac-Toe. Nothing grandiose. Why aim so high for my next project since I’m not that knowledgeable ? Because I’m short of time and there are full tutorial available, that’s all. Goal & MVP The MVP goal is to be able to generate coherent text (will probably be gibberish since I’m not a billion dollars corpo) and implement simple RAG to compensate for the lack of intelligence. I plan to upgrade it as I learn more about LLMs and Transformers. The Current State I just got the basic unoptimized architecture down. It tooks so much time to understand the Transformer architecture and all the maths that goes behind it (thanks to 3Blue1Brown it was manageable). Now I need to train & evaluate the “Advanced Autocomplete Machine” so that It can start acting more like GPT2. Picture: Liking my rice ? 😏"}]...
|
Title: YACK by @Definitly-Not-Me | Stardance
Devl Title: YACK by @Definitly-Not-Me | Stardance
Devlogs:
Devlog 0: Build a Large/Small/Whatever LM Overview Hello Stardance! Hello world appetIntern disdainwartsnine . Those were the first words of my Language Model, am feeling so fogging proud right now. I’m trying to get into ML for the next year (not just because of the hype). For my first projects, I tried building a simple perceptron as well as understanding the algorithm behind Tic-Tac-Toe. Nothing grandiose. Why aim so high for my next project since I’m not that knowledgeable ? Because I’m short of time and there are full tutorial available, that’s all. Goal & MVP The MVP goal is to be able to generate coherent text (will probably be gibberish since I’m not a billion dollars corpo) and implement simple RAG to compensate for the lack of intelligence. I plan to upgrade it as I learn more about LLMs and Transformers. The Current State I just got the basic unoptimized architecture down. It tooks so much time to understand the Transformer architecture and all the maths that goes behind it (thanks to 3Blue1Brown it was manageable). Now I need to train & evaluate the “Advanced Autocomplete Machine” so that It can start acting more like GPT2. Picture: Liking my rice ? 😏
Small update on building a Language Model So after getting the architecture down and adding collecting some data, I started the training phase. That was one week ago …. Training is surprisingly (or not ?) actually more than just shoving in more data and expect it to work. Right now I’m struggling with finding sensible hyperparameters and getting the model to output something coherent. What’s new I mainly worked on the training loop and minor optimizations to hidden layers to distract myself while Pytorch was frying my APU. Of course there were also bugs in the code that had to fix on the way. For monitoring the training I decided to use plain TUI built with Rich but I’m currently adding a csv logging for better history tracking. At first I was planning to run the training on my laptop but I understood why billions dollar companies needed so many datacenters. Anyway, I deployed it on Kaggle which also was harder than it should be. Next Take a break, Improve training loop, Deploy on Kaggle Forget about it
Two steps before the throne Finally deployed the training script to Kaggle. Now all there’s to be is wait and hope. A quick list of what’s new: Divided the training loop in many functions to handle dataloading, parsing, logging and more; Managed to find a copy of gutenberg books to serve as dataset; Implemented checkpoints in the training so that I will not lose all progress if I run out of compute; Dataloading is now done using np.memmap ensuring that only a portion of tokens are loaded in memory; Scaled the value of hyprparameters based on configuration of gpt-2 small (my main source is Chatgpt/GLM and a rough guess of number of epochs); Fixed a “ storage leak ” where the best model checkpoints where saved per epoch instead of overwriting previous one (totally my fault) Next: Fix my nonexistant git history while waiting for the training to finish
I’m tired boss Sorry, stardance but for my own good and sanity, I think I will have to give up or half bake this project. I really tried 😞
Now we’re talking folks Reached a milestone. After nearly 10 hours of training on OpenwebText , the model can now formulate somewhat grammatically correct sentences. It’s not over though. Training was interrupted because apparently kaggle has a time limit for how long a notebook can run (on top on the weekly time limit). Sadly I have no interest in buying cloud compute for that, so I will just look for a richer dataset, reduce the number of epoch and crank up the learning rate.
Updates and Bloopers Even though Kaggle runs on Google Collab, it turn out Collab is much more easier to use than Kaggle. To my grand deception, Collab is not as generous as Kaggle. So I will not change my workflow. I think I also need to change dataset. Also what’s up with Stardance and all those auxiliary events/challenges ?
Premature optimization is the root of all evils I still fell in the trap… I struggled for weeks to produce a model that can generate coherent text. Now all what is left is to ship or perhaps even fine-tune and be done. But nooooo, we need to atleast make PeRfOrmAnt . Ended adding some mods to the original GPT-2. I found that there’s even a whole community around this . I gained a lot from them. Now, the project is a Frankenstein DeepSeek . Time will tell if this was a good idea (-_-) Here’s a picture of the last training round. Things went quite well despite a bug affecting the learning rate.
Last devlog before shipping: Against my best wishes, none of my models reached a usable state. Even though their best loss is quite low (2.94 and 2.81) I didn’t manage to reach the finetuning stage. To continue training I would have to start pouring money to get more compute power. And I don’t have that…. So that’ll be all. I will finish the UI and deploy locally first until I manage to find a vps before my project get a reviewer.
Wait ! shipping require you to post a devlog ? Bad luck on top of bad luck. I found no cloud hosting platform that check all my requirements so for the time being, I’m a cloud provider :) For those who will review my project, I ask for your understanding. Nothing to show for this one. So here is picture of my Language Model mascot. Patrick Star
Dear shipwrights My Cloudflared tunnel went down and I don’t know why. Thus the link in my shipping devlog is now invalid. I looked up if there was any way to get a more lasting url and all solutions I found were either paid services (domain name) or required a credit card. I have neither. I will wait for your message and try to improve networking skills for the next ship. Thanks for reading me. Sadly, @Definitly-Not-Me
Dear shipwrights I don’t know if you’ll read this but I still feel like writing it since I’ve nothing else to write. In response to the feedback provided, here’s what changed: I deleted some part of my README as well as corrected grammar mistakes since it seemed to “contain” part written by AI. Honestly the grammar mistakes should’ve given me an alibi but … nevermind. I have patched garbage characters generation during inference. I truly hope that was the “ bug ” you mentioned in your review. If it was not, I’m afraid there’s not more I can do without spending ton of time/money on computing to improve my Language Model output (NOT chatbot). Which would be sad. Really sad. For the planet and for me. Detailed AI usage in the project description. I really hope the third time will pay home 🥲
Ships:
I tried to build a language model Model. My expectation were not high. I just hoped he would be multilingual (English + French + My Mother tongue) and that I would learn how LLMs works along the way. Overall the experience was pretty rewarding. Except for the Kaggle Part: This one, I hated it with passion. Due to monetary requirement both models are under-trained but they can produce coherent sentences. So I consider it a win. I’m hosting the project on my laptop so whoever review this: Don’t take your time >:( ** Just Kidding ☺️**...
|
1793008163.0882738
|
1793094563.0882738
|
|
46465
|
SolariStudy by @MathBty | Stardance
|
MathBty
|
1
|
18.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-22T18:27:10Z", "hours": 18.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Hi! I created SolariStudy, basically a specialised study platform and productivity app (I built it with React Native, Expo and Supabase). The app addreses a problem which I face a lot every day and a lot of students preparing for rigorous exams and olympiads face it too: standard AI tools tipically just generate big quizzes in a MCQ format or just give immediate solutions that kind of ruin the learning process (also cluttering interfaces with unorganized chat logs). My idea for this app was to try a dual-mode engine which features SolariLearn for normal tutoring (just perfect for going through study materials or books) and SolariSolve for strict, timed problem sessions (very useful for Olympiad preparation especially). Here I introduced major QoL improvements that structure the revision workflow, including organizing sessions into dedicated, isolated subject folders (like Mathematics, Physics, Linguistics, Astronomy etc.) to prevent the cluttering of chats (one of the problems mentioned earlier, which is solved by a few AI’s, but the process of organizing is not automated). The app also implements automated worksheet ingestion to extract and prepare textbook problems, introducing exam focus sprint timers to enforce accountability. By using the SolariSolve mode, you are able to get step-by-step scorecards with streak and accuracy tracking. The most challenging tech hurdle was engineering the streaming AI pipeline (faced a lot of bugs here and did not really know where to start from), but also mathematical rendering ragebaited me at the end… Resolving API dropouts and rate limits required me to implement an exponential backoff with a dynamic model fallback system, alongside the real-time latex rendering to display the math formulas (which were essential for physics, math and astronomy so I couldnt just use normal text). I am proudest of turning this small concept into a functional , working cross-platform project that I feel balances an unstimulating focus environment with rigorous grading (which is objectively done by the AI tool). Now, for testing, you should know that while a compiled Android APK is abvailable for mobile testing, running the web version locally on pc is kinda my own recommendation :) since the mobile part was more of an experimental preview which can still receive UI polishing in the future. Most of the instructions are in the READme, but I can paste them here again. Local setup required node.js, cloning the repository, running npm install, supplying supabase and gemini api keys in an .env file and launching the project by entering in terminal npx expo start -w to test the engine directly in a web browser. I really hope you like this project and that you can maybe use it for your own personal use.", "repo": "https://github.com/MateiBt/solaristudy", "demo": "https://mateibt.github.io/solaristudy/"}]...
|
[{"post_id": 72336, "ts": "202 [{"post_id": 72336, "ts": "2026-09-22T18:06:32Z", "hours": 1.7706, "text": "5th and last SolariStudy devlog - This was it… finally over. Even though I thought I was close to finishing 2 days ago, I faced a serious bug with latex rendering, also found out that the AI model I was using in the code was 3.5-flash instead of 3.5-flash-lite which is very limited in terms of number of messages so I was hitting rate limits on the app a lot. Thankfully I made it out through them and also made a READme with some help from a github readme which I found (i credited him in my github READme). You can guys actually try my app. (I tried to do as much as I could, but the lack of tutorials online made the Android version of the app being partially functional, you can test it and return to me with some bugs, but it will be quite hard to fix them, so for the moment I will go with the fully functional web app). Thank you for all the attention and support, and let’s go on with the next project!"}, {"post_id": 71254, "ts": "2026-09-20T15:10:53Z", "hours": 2.0711, "text": "4th SolariStudy devlog - Here we are with the completed project I can say (everything that is left to do is just some app icons, maybe touch up on some things related to the design andd the readme, of course). What I’m most proud of is that the app finally works on android, and it can be downloaded (I’ll prolly put the link/qr code in the readme). It’s been a long journey, but I am really happy of what I achieved here and maybe the app can be even launched publicly on appstore one day. See you tomorrow guys"}, {"post_id": 69232, "ts": "2026-09-16T16:54:29Z", "hours": 2.6781, "text": "3rd SolariStudy devlog - Again a long week has passed and school kind of made me lose a lot of precious time. Although here we are anhd lemme tell you what I’ve done this week: - I added a stale-while-revalidate caching pattern for study folder, sessions and global leaderboards so that reads work seamlessly without internet, then I built a write-side mutation queue to capture offline actions (like creating folders, updating timer solve stages and logging session details), also integrated a bg network listener to automatically detect reconnects and flush the queued mutations back to supabase. After working on this I though it would be nice to stabilize the end-to-end chat and polish the study session lifecycle. Also worked a little on the security of the app. I hope to do more these couple of days and maybe get closer to launching this app :) Cya in the next devlog guys"}, {"post_id": 64976, "ts": "2026-09-09T18:52:05Z", "hours": 7.7342, "text": "2nd SolariStudy devlog - Hellooo, I believe a week passed since my last devlog on this project… uhm yeah also the time logged is way longer than usual since I tried to do as much as possible to make the app functional. I will say some things about what I added in the meantime. I replaced all the placeholders with real , live data (also added a custom postgresql function that aggregates score dynamically across chat sessions and messages without duplicates), I wrote some trigers that automatically calculate the total problems solved and accuracy percentages whenever a study session finishes or a message is graded, ran a migration and onetime backfill query so that historical data stays in sync. I finished the architecture in db.ts, where I have now folder nesting, scoped session filtering, message grading accuracy toggles, global search and daily activity streak. (I want to say this is the first time I felt like giving up on a project (ok I know it is just my 2nd project, but I feel its kind of a serious step from my 1st one). I learned a lot like writing functions in sql editor (using supabase), using react native state and doing the UI sync, making the AI worflow and many others. It really was a lot but thankfully I got through the most of it. Sadly I also get the same problem as for the last project, because I plan my code beforehand, the time registered I feel doesn’t reflect at all my work on this project. I think I spent over 30h brainstorming, learning and planning the code, only for around 10h to be logged in which is basically the hard coding time. Well, either way, my main goal is to make the most out of this project, not log as much time as possible, however it would’ve been nice to see exactly how much effort was put into this). There is a lot more to do like a lot of testing to see if the app can be improved, to touch up on some things and maybe then I can present the finished app soon. Cya in the next devlog"}, {"post_id": 60406, "ts": "2026-09-02T18:23:57Z", "hours": 3.3744, "text": "1st SolariStudy devlog - Here is my new project, a project meant to be a better study app. Current AI tools for studying are pretty boring and have very few functions. Topics like mathematics and physics can’t be learned by memorizing or taking quizzes, but by solving as many problems as possible. After more than 3h of trial and error I think I got an UI that I like (i found it on dribbble) and planned a few of the functions I want to add onto the site. I am very open to suggestions/ideas if you have some, or even a like :). (If you wanna continue reading, here are some things I wanna say: first, I finally returned to stardance. I was quite busy with personal study and activities and I sadly neglected this activity. However, I am eager to finish this project and start a few more to reach some stardust goals (like the small shark :) ). secondly, the current site is just frontend, no backend made yet and for that reason i added placeholders to have an idea of how everything would look on the site. third, I really appreciate your guys support from the personal site project and together with you I can maybe ship and pursue more projects in this amazing first hackathon for me). Here are some photos:"}]...
|
Title: SolariStudy by @MathBty | Stardance
Devlog Title: SolariStudy by @MathBty | Stardance
Devlogs:
1st SolariStudy devlog - Here is my new project, a project meant to be a better study app. Current AI tools for studying are pretty boring and have very few functions. Topics like mathematics and physics can’t be learned by memorizing or taking quizzes, but by solving as many problems as possible. After more than 3h of trial and error I think I got an UI that I like (i found it on dribbble) and planned a few of the functions I want to add onto the site. I am very open to suggestions/ideas if you have some, or even a like :). (If you wanna continue reading, here are some things I wanna say: first, I finally returned to stardance. I was quite busy with personal study and activities and I sadly neglected this activity. However, I am eager to finish this project and start a few more to reach some stardust goals (like the small shark :) ). secondly, the current site is just frontend, no backend made yet and for that reason i added placeholders to have an idea of how everything would look on the site. third, I really appreciate your guys support from the personal site project and together with you I can maybe ship and pursue more projects in this amazing first hackathon for me). Here are some photos:
2nd SolariStudy devlog - Hellooo, I believe a week passed since my last devlog on this project… uhm yeah also the time logged is way longer than usual since I tried to do as much as possible to make the app functional. I will say some things about what I added in the meantime. I replaced all the placeholders with real , live data (also added a custom postgresql function that aggregates score dynamically across chat sessions and messages without duplicates), I wrote some trigers that automatically calculate the total problems solved and accuracy percentages whenever a study session finishes or a message is graded, ran a migration and onetime backfill query so that historical data stays in sync. I finished the architecture in db.ts, where I have now folder nesting, scoped session filtering, message grading accuracy toggles, global search and daily activity streak. (I want to say this is the first time I felt like giving up on a project (ok I know it is just my 2nd project, but I feel its kind of a serious step from my 1st one). I learned a lot like writing functions in sql editor (using supabase), using react native state and doing the UI sync, making the AI worflow and many others. It really was a lot but thankfully I got through the most of it. Sadly I also get the same problem as for the last project, because I plan my code beforehand, the time registered I feel doesn’t reflect at all my work on this project. I think I spent over 30h brainstorming, learning and planning the code, only for around 10h to be logged in which is basically the hard coding time. Well, either way, my main goal is to make the most out of this project, not log as much time as possible, however it would’ve been nice to see exactly how much effort was put into this). There is a lot more to do like a lot of testing to see if the app can be improved, to touch up on some things and maybe then I can present the finished app soon. Cya in the next devlog
3rd SolariStudy devlog - Again a long week has passed and school kind of made me lose a lot of precious time. Although here we are anhd lemme tell you what I’ve done this week: - I added a stale-while-revalidate caching pattern for study folder, sessions and global leaderboards so that reads work seamlessly without internet, then I built a write-side mutation queue to capture offline actions (like creating folders, updating timer solve stages and logging session details), also integrated a bg network listener to automatically detect reconnects and flush the queued mutations back to supabase. After working on this I though it would be nice to stabilize the end-to-end chat and polish the study session lifecycle. Also worked a little on the security of the app. I hope to do more these couple of days and maybe get closer to launching this app :) Cya in the next devlog guys
4th SolariStudy devlog - Here we are with the completed project I can say (everything that is left to do is just some app icons, maybe touch up on some things related to the design andd the readme, of course). What I’m most proud of is that the app finally works on android, and it can be downloaded (I’ll prolly put the link/qr code in the readme). It’s been a long journey, but I am really happy of what I achieved here and maybe the app can be even launched publicly on appstore one day. See you tomorrow guys
5th and last SolariStudy devlog - This was it… finally over. Even though I thought I was close to finishing 2 days ago, I faced a serious bug with latex rendering, also found out that the AI model I was using in the code was 3.5-flash instead of 3.5-flash-lite which is very limited in terms of number of messages so I was hitting rate limits on the app a lot. Thankfully I made it out through them and also made a READme with some help from a github readme which I found (i credited him in my github READme). You can guys actually try my app. (I tried to do as much as I could, but the lack of tutorials online made the Android version of the app being partially functional, you can test it and return to me with some bugs, but it will be quite hard to fix them, so for the moment I will go with the fully functional web app). Thank you for all the attention and support, and let’s go on with the next project!
Ships:
Hi! I created SolariStudy, basically a specialised study platform and productivity app (I built it with React Native, Expo and Supabase). The app addreses a problem which I face a lot every day and a lot of students preparing for rigorous exams and olympiads face it too: standard AI tools tipically just generate big quizzes in a MCQ format or just give immediate solutions that kind of ruin the learning process (also cluttering interfaces with unorganized chat logs). My idea for this app was to try a dual-mode engine which features SolariLearn for normal tutoring (just perfect for going through study materials or books) and SolariSolve for strict, timed problem sessions (very useful for Olympiad preparation especially). Here I introduced major QoL improvements that structure the revision workflow, including organizing sessions into dedicated, isolated subject folders (like Mathematics, Physics, Linguistics, Astronomy etc.) to prevent the cluttering of chats (one of the problems mentioned earlier, which is solved by a few AI’s, but the process of organizing is not automated). The app also implements automated worksheet ingestion to extract and prepare textbook problems, introducing exam focus sprint timers to enforce accountability. By using the SolariSolve mode, you are able to get step-by-step scorecards with streak and accuracy tracking. The most challenging tech hurdle was engineering the streaming AI pipeline (faced a lot of bugs here and did not really know where to start from), but also mathematical rendering ragebaited me at the end… Resolving API dropouts and rate limits required me to implement an exponential backoff with a dynamic model fallback system, alongside the real-time latex rendering to display the math formulas (which were essential for physics, math and astronomy so I couldnt just use normal text). I am proudest of turning this small concept into a functional , working cross-platform project that I feel balances an unstimulating focus environment with rigorous grading (which is objectively done by the AI tool). Now, for testing, you should know that while a compiled Android APK is abvailable for mobile testing, running the web version locally on pc is kinda my own recommendation :) since the mobile part was more of an experimental preview which can still receive UI polishing in the future. Most of the instructions are in the READme, but I can paste them here again. Local setup required node.js, cloning the repository, running npm install, supplying supabase and gemini api keys in an .env file and launching the project by entering in terminal npx expo start -w to test the engine directly in a web browser. I really hope you like this project and that you can maybe use it for your own personal use....
|
1793004866.3192956
|
1793091266.3192956
|
|
63339
|
My own site! by @Proxy | Stardance
|
Proxy
|
1
|
3.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-22T17:51:58Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "made my first website in my life don’t how good it came out but it was fun the js was the hardest for me lets see what all think", "repo": "https://github.com/AsfahanAnsari/first-site", "demo": "https://asfahanansari.github.io/first-site/"}]...
|
[{"post_id": 72319, "ts": "202 [{"post_id": 72319, "ts": "2026-09-22T17:35:20Z", "hours": 0.4775, "text": "working on js"}, {"post_id": 71392, "ts": "2026-09-20T18:54:58Z", "hours": 2.3669, "text": "stared the make HTML structure but not getting the idea what design should i make like which color to use etc."}]...
|
Title: My own site! by @Proxy | Stardance
Devlogs Title: My own site! by @Proxy | Stardance
Devlogs:
stared the make HTML structure but not getting the idea what design should i make like which color to use etc.
working on js
Ships:
made my first website in my life don’t how good it came out but it was fun the js was the hardest for me lets see what all think...
|
1792964987.3090096
|
1793051387.3090096
|
|
48721
|
Ai-Voice-Assistant by @mateoLuc | Stardance
|
mateoLuc
|
1
|
16.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-22T17:35:51Z", "hours": 16.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I created a voice assistant from scratch that can answer a variety of questions, such as math questions, finding out weather information, and answering any question using APIs. At the same time, the stage of what is happening is outputted through audio and displayed on a screen with cool animations. I would say the hardest part was the learning curve of understanding all of the specific libraries I would have to use, as well as where and how to use them. As simple as it sounds, I am very proud of how well it works. It always displays its status through animations and outputs audio at the same time. Just being able to see that it works and being able to use it makes me proud. I tried to make it relatively simple to use, but I also provided more in-depth instructions in my README. I hope you guys enjoy this project!!!", "repo": "https://github.com/MatLuch/Voice-Assistant", "demo": ""}]...
|
[{"post_id": 71948, "ts": "202 [{"post_id": 71948, "ts": "2026-09-21T20:37:23Z", "hours": 5.9519, "text": "Over the past days i have added a screen that will display the status of what is currently happening along with a cool little animations such as if its listening or processing the info when outputting the info it also has a cool type writing animation. Along with that i have also revamped my code making it faster and adding new features by optimizing code and creating more sub functions. Under i will attack a couple photos showing some of the features."}, {"post_id": 52699, "ts": "2026-08-22T23:59:57Z", "hours": 2.0719, "text": "Today I debugged some of my code, but along with that, I redid all of my weather features. Instead of only getting the temperature, you can individually ask for the temperature, rain forecast, and cloud coverage. If you ask for the weather, it automatically gives you all three."}, {"post_id": 51222, "ts": "2026-08-20T19:12:50Z", "hours": 1.0297, "text": "Now i have added feature where in order to activate the assistance you must say Hey Jarvis, it uses the pre trained openwakeworld model for detection."}, {"post_id": 50724, "ts": "2026-08-20T02:06:49Z", "hours": 6.6308, "text": "Over the past few hours, I have created the base code for it to perform calculations, check the weather, and use a Gemini API to answer questions. It then uses the built-in voices from your laptop to speak the answers out loud. I plan to add memory, timers, and stopwatches, along with a small physical cube powered by a Raspberry Pi with a screen for animations. It will also have a feature where you can activate it by simply saying “Hey” followed by its chosen name. All of the voice recognition is handled by Google’s AI, so it can run on any laptop or Raspberry Pi. Finally i also plan to add more weather features including future forecast and precipitation."}]...
|
Title: Ai-Voice-Assistant by @mateoLuc | Stardance Title: Ai-Voice-Assistant by @mateoLuc | Stardance
Devlogs:
Over the past few hours, I have created the base code for it to perform calculations, check the weather, and use a Gemini API to answer questions. It then uses the built-in voices from your laptop to speak the answers out loud. I plan to add memory, timers, and stopwatches, along with a small physical cube powered by a Raspberry Pi with a screen for animations. It will also have a feature where you can activate it by simply saying “Hey” followed by its chosen name. All of the voice recognition is handled by Google’s AI, so it can run on any laptop or Raspberry Pi. Finally i also plan to add more weather features including future forecast and precipitation.
Now i have added feature where in order to activate the assistance you must say Hey Jarvis, it uses the pre trained openwakeworld model for detection.
Today I debugged some of my code, but along with that, I redid all of my weather features. Instead of only getting the temperature, you can individually ask for the temperature, rain forecast, and cloud coverage. If you ask for the weather, it automatically gives you all three.
Over the past days i have added a screen that will display the status of what is currently happening along with a cool little animations such as if its listening or processing the info when outputting the info it also has a cool type writing animation. Along with that i have also revamped my code making it faster and adding new features by optimizing code and creating more sub functions. Under i will attack a couple photos showing some of the features.
Ships:
I created a voice assistant from scratch that can answer a variety of questions, such as math questions, finding out weather information, and answering any question using APIs. At the same time, the stage of what is happening is outputted through audio and displayed on a screen with cool animations. I would say the hardest part was the learning curve of understanding all of the specific libraries I would have to use, as well as where and how to use them. As simple as it sounds, I am very proud of how well it works. It always displays its status through animations and outputs audio at the same time. Just being able to see that it works and being able to use it makes me proud. I tried to make it relatively simple to use, but I also provided more in-depth instructions in my README. I hope you guys enjoy this project!!!...
|
1793004632.1646698
|
1793091032.1646698
|
|
62325
|
rinifolio by @rinimee | Stardance
|
rinimee
|
1
|
3.0
|
5
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-22T17:34:32Z", "hours": 3.0, "multiplier": 3.45, "payout": 5, "blessing": "neutral", "text": "I made a portfolio template made for those who would like to log in their projects! It consists of an information panel for those who would like to add their information about wo they are and what they do, and a place to input 9 projects, with a picture, title, and description! Something that was really challenging was getting the CSS right! While it seemed easy, I had to get a lot of help just to fix up my code and make it look correct. However, I am very proud of the result, especially how the ambience of the UI turned out! All the information needed to run my project is included in my GitHub repository. Please check it out, and thank you so much!", "repo": "https://github.com/rinimee/rinifolio", "demo": "https://rinimee.github.io/rinifolio/"}]...
|
[{"post_id": 70678, "ts": "202 [{"post_id": 70678, "ts": "2026-09-19T15:59:45Z", "hours": 1.3519, "text": "doneee with this ;-; I did NOT think css would take an hour. Most of this was because of this one probelm with my CSS. I have a span function in my html with the text “click to add cover” but it ended up not being visible. I ended up leaving that as is after 30 minutes of trying to find the problem. Oh well, at least i’m done now! I don’t want to worry about it, especially since i need those 30 hours complete all the while worrying about if my code is good enough…anyway, here is the final look! I’ll be prepping this and preparing it for shipping in the meantime, so rinimee out"}, {"post_id": 70277, "ts": "2026-09-18T21:05:16Z", "hours": 0.3261, "text": "CSS for first tab donee! Yayy! With a lot of help from copilot (I had too much trouble because everything wasn’t lining up properly ) I was able to finish the CSS for the first tab! There were a lot of mistakes and annoying loopholes i found in my code which isn’t usual, so I had copilot pick out the weeds. I did write the entire code for css!, copilot tweaked it up and made sure it was clean, so, DONT GET THE WRONG IDEA! here’s how it looks like, so rinimee out"}, {"post_id": 69824, "ts": "2026-09-17T21:06:04Z", "hours": 0.4172, "text": "MOAR STUFF DONE!! alright, i got a lot more productive! I did a lot of javascript, which allowed me to save information locally using localStorage and then I also tweaked some tab switching! Also, I officially started my CSS! I added a background which took FOREVER, but then I realized that I ended up using the function url(‘/whimsybg.jpg’) which is wrong! The backslash is only used for actual links! If its saved in your folder you don’t need it! I also added a cool font and styled the buttons! Here’s a quick snappy, rinimee out"}, {"post_id": 69429, "ts": "2026-09-17T01:16:10Z", "hours": 0.4678, "text": "first looks! I lowkey needed a last hour to fulfill the 30 hour mark, and with only 2 weeks left…the pressure is on! The idea for this is to create a portfolio page for your projects! It’s going to look very similar to my rinimee’s journal without all the fancy stuff. I finished working on the html for the most part, and wanted to switch up some stuff, like adding a textarea block (allowing to manipulate a box for text) for the first tab and adding 9 project spots in the second tab! I’ll be working on javascript next, basing it off once more from my previous project. alright gang rinimee out"}]...
|
Title: rinifolio by @rinimee | Stardance
Devlogs: Title: rinifolio by @rinimee | Stardance
Devlogs:
first looks! I lowkey needed a last hour to fulfill the 30 hour mark, and with only 2 weeks left…the pressure is on! The idea for this is to create a portfolio page for your projects! It’s going to look very similar to my rinimee’s journal without all the fancy stuff. I finished working on the html for the most part, and wanted to switch up some stuff, like adding a textarea block (allowing to manipulate a box for text) for the first tab and adding 9 project spots in the second tab! I’ll be working on javascript next, basing it off once more from my previous project. alright gang rinimee out
MOAR STUFF DONE!! alright, i got a lot more productive! I did a lot of javascript, which allowed me to save information locally using localStorage and then I also tweaked some tab switching! Also, I officially started my CSS! I added a background which took FOREVER, but then I realized that I ended up using the function url(‘/whimsybg.jpg’) which is wrong! The backslash is only used for actual links! If its saved in your folder you don’t need it! I also added a cool font and styled the buttons! Here’s a quick snappy, rinimee out
CSS for first tab donee! Yayy! With a lot of help from copilot (I had too much trouble because everything wasn’t lining up properly ) I was able to finish the CSS for the first tab! There were a lot of mistakes and annoying loopholes i found in my code which isn’t usual, so I had copilot pick out the weeds. I did write the entire code for css!, copilot tweaked it up and made sure it was clean, so, DONT GET THE WRONG IDEA! here’s how it looks like, so rinimee out
doneee with this ;-; I did NOT think css would take an hour. Most of this was because of this one probelm with my CSS. I have a span function in my html with the text “click to add cover” but it ended up not being visible. I ended up leaving that as is after 30 minutes of trying to find the problem. Oh well, at least i’m done now! I don’t want to worry about it, especially since i need those 30 hours complete all the while worrying about if my code is good enough…anyway, here is the final look! I’ll be prepping this and preparing it for shipping in the meantime, so rinimee out
Ships:
I made a portfolio template made for those who would like to log in their projects! It consists of an information panel for those who would like to add their information about wo they are and what they do, and a place to input 9 projects, with a picture, title, and description! Something that was really challenging was getting the CSS right! While it seemed easy, I had to get a lot of help just to fix up my code and make it look correct. However, I am very proud of the result, especially how the ambience of the UI turned out! All the information needed to run my project is included in my GitHub repository. Please check it out, and thank you so much!...
|
1792964901.7143893
|
1793051301.7143893
|
|
64823
|
Atlas by @shadowash8 | Stardance
|
shadowash8
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-22T17:06:38Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Why is saving content on mobile still so painful? I love tools like Emacs on the desktop which is my main notes app and text editor, but there is no mobile for it, the mobile options have too much friction. I wanted a zero-friction way to save links, text, and ideas the second I encounter them. So I built it myself. Meet Atlas. It’s an elegant, lightweight mobile app focused entirely on gathering digital artifacts. I spent a lot of time fine-tuning the native mobile integration - now you can share websites, quotes, or media from any app directly into Atlas via system share intents. It’s completely solved my content-hoarding problem.", "repo": "https://github.com/shadowash8/atlas", "demo": "https://github.com/shadowash8/atlas/releases/download/v0.2.0/atlas-v0.2.0.apk"}]...
|
[{"post_id": 72300, "ts": "202 [{"post_id": 72300, "ts": "2026-09-22T16:46:09Z", "hours": 0.5694, "text": "Atlas Preview"}]...
|
Title: Atlas by @shadowash8 | Stardance
Devlogs:
Title: Atlas by @shadowash8 | Stardance
Devlogs:
Atlas Preview
Ships:
Why is saving content on mobile still so painful? I love tools like Emacs on the desktop which is my main notes app and text editor, but there is no mobile for it, the mobile options have too much friction. I wanted a zero-friction way to save links, text, and ideas the second I encounter them. So I built it myself. Meet Atlas. It’s an elegant, lightweight mobile app focused entirely on gathering digital artifacts. I spent a lot of time fine-tuning the native mobile integration - now you can share websites, quotes, or media from any app directly into Atlas via system share intents. It’s completely solved my content-hoarding problem....
|
1792965120.1807103
|
1793051520.1807103
|
|
63934
|
My own site! by @benitoleon467 | Stardance
|
benitoleon467
|
1
|
2.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-22T17:05:26Z", "hours": 2.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "So i have created my personal website using codespace with html and css the challenging part was designing other than there was nothing else", "repo": "https://github.com/benleo2/benleo2", "demo": "https://benleo2.github.io/benleo2/"}]...
|
[{"post_id": 72303, "ts": "202 [{"post_id": 72303, "ts": "2026-09-22T16:53:43Z", "hours": 2.1919, "text": "A personal website as a portfolio"}]...
|
Title: My own site! by @benitoleon467 | Stardance
Title: My own site! by @benitoleon467 | Stardance
Devlogs:
A personal website as a portfolio
Ships:
So i have created my personal website using codespace with html and css the challenging part was designing other than there was nothing else...
|
1792965032.209786
|
1793051432.209786
|
|
38768
|
Stardew calc by @hrushal | Stardance
|
hrushal
|
1
|
18.29
|
157
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-22T16:31:39Z", "hours": 18.0, "multiplier": 8.57, "payout": 157, "blessing": "neutral", "text": "Starcalc YES THIS IS ANOTHER STARDEW CALCULATOR The problem i wanted to solve w this was making important information thats slighly harder to find on the wiki and requires a lot of clicks like gold/day for each crop, which monster drops what and how to make some artisanal goods be shown upfront so instead of just going down rabbit holes of reddit and wiki i could just open the website and check what things i can do w a specific item and which equipment to use The website has 4 core functions rn which are Crops Monsters Artisanal goods Animals The information is laid in simple to read cards with a image and clear description and the important numbers are highlighted and to avoid clutter produce etc is grouped under a dropdown so you arent bombarded with information you dont need I had a lot of trouble w finalizing the design AND WORST OF ALL TSPARTICLES and then making card components for every page cuz the data is diff for everything and i decided individual components would speed it up", "repo": "https://github.com/Hrushal-Nikhare/star", "demo": "https://star-xi-seven.vercel.app/"}]...
|
[{"post_id": 72637, "ts": "202 [{"post_id": 72637, "ts": "2026-09-23T12:29:59Z", "hours": 0.2906, "text": "Fixed readme with images and website had no title 😭"}, {"post_id": 71390, "ts": "2026-09-20T18:52:44Z", "hours": 3.7192, "text": "WE ARE BACK W IT AND WE FINSIHED THE PROJECT ported the card component to every single sub page and made sure it works shifted sm styles into global.css removed the search route and slug to make it static render able also cuz i didnt find a use for it l8r DEPOLYED ON VERCEL https://star-xi-seven.vercel.app/ added back to home button and mobile compatibility THANK YOU EVERYONE"}, {"post_id": 70150, "ts": "2026-09-18T15:46:19Z", "hours": 1.6047, "text": "DONE W CARD COMPONENT THEY LOOK SO GOOD took 1.5hrs but it looks good atleast 😭"}, {"post_id": 69233, "ts": "2026-09-16T16:57:19Z", "hours": 3.8619, "text": "New homepage and then made a card component for showing the animals (for now) Learnt about how logic in svelte is done w {#} and {/} and then also components and nested objects were pmo i have to make the cards pretty and then if conditionals on prices and dropdown for the produce and tags and then layout too so thanks for reading"}, {"post_id": 60396, "ts": "2026-09-02T18:13:51Z", "hours": 3.5, "text": "NEW NOT SO PLAIN BACKDROP tldr: basically i gave up so i wanted the plans and the wine bottle to have this cute colored circles to ‘splash’ out when you click it But then i look for svelte particle libraries and its only tsparticles which is FINE BUT HOLY DEBUGGING so i went on a side quest to learn it DECENTLY and thats how we have a background ik its not fancy or anything or a lot of added code but the debugging uh let not also shifted to bun for everything and had some issues w vite asw also bun has great support for this stuff crazy"}, {"post_id": 40874, "ts": "2026-08-04T17:53:29Z", "hours": 2.5747, "text": "Redeigned the home page cuz it looked really boring and life less and nothing like stardew spent an hr making the ui and then aft clg started has a urge to redesign the ui so um here we are (feedback and logo help appreciated) Tried three diff styles to see which one i like some of them were: Notebook flipping ish Purple heatmap ahh Cool png animation stuff ( gave up before trying bc couldnt find assets) THE title above is currently in the works of making the A a Star cuz hehe stardew starcalc The Pngs will hopefully have a transition animation where the coffee plant sheds the berries and it swoops to the crops page animals has egg particles artisanal has a foam jet or smth and the slime for moster loses his color and becomes the resource now ill have to ditch all of my programming of the previous ui and start all over again but lowk worth it i need it to be pretty cuz i said so. added both old and new ui for yall to rate and tell pls help me i suck at ui"}, {"post_id": 36960, "ts": "2026-07-29T11:48:44Z", "hours": 3.1017, "text": "Season and Professions Mocked up in Figma purple color scheme Handmade font/icons 2.Chose svelte for no reason (other than to learn) 3. Made Gemni write a data.json to Prototype w (eventually will nosql/sqllite it) 4. Season Select using radios that look like buttons w functioning hover and select colors ( took alot of time and help NO AI THO ALL DOCS) 5. Profession Select drafted but need to Read and add the perks to the data/process in js"}]...
|
Title: Stardew calc by @hrushal | Stardance
Devlo Title: Stardew calc by @hrushal | Stardance
Devlogs:
Season and Professions Mocked up in Figma purple color scheme Handmade font/icons 2.Chose svelte for no reason (other than to learn) 3. Made Gemni write a data.json to Prototype w (eventually will nosql/sqllite it) 4. Season Select using radios that look like buttons w functioning hover and select colors ( took alot of time and help NO AI THO ALL DOCS) 5. Profession Select drafted but need to Read and add the perks to the data/process in js
Redeigned the home page cuz it looked really boring and life less and nothing like stardew spent an hr making the ui and then aft clg started has a urge to redesign the ui so um here we are (feedback and logo help appreciated) Tried three diff styles to see which one i like some of them were: Notebook flipping ish Purple heatmap ahh Cool png animation stuff ( gave up before trying bc couldnt find assets) THE title above is currently in the works of making the A a Star cuz hehe stardew starcalc The Pngs will hopefully have a transition animation where the coffee plant sheds the berries and it swoops to the crops page animals has egg particles artisanal has a foam jet or smth and the slime for moster loses his color and becomes the resource now ill have to ditch all of my programming of the previous ui and start all over again but lowk worth it i need it to be pretty cuz i said so. added both old and new ui for yall to rate and tell pls help me i suck at ui
NEW NOT SO PLAIN BACKDROP tldr: basically i gave up so i wanted the plans and the wine bottle to have this cute colored circles to ‘splash’ out when you click it But then i look for svelte particle libraries and its only tsparticles which is FINE BUT HOLY DEBUGGING so i went on a side quest to learn it DECENTLY and thats how we have a background ik its not fancy or anything or a lot of added code but the debugging uh let not also shifted to bun for everything and had some issues w vite asw also bun has great support for this stuff crazy
New homepage and then made a card component for showing the animals (for now) Learnt about how logic in svelte is done w {#} and {/} and then also components and nested objects were pmo i have to make the cards pretty and then if conditionals on prices and dropdown for the produce and tags and then layout too so thanks for reading
DONE W CARD COMPONENT THEY LOOK SO GOOD took 1.5hrs but it looks good atleast 😭
WE ARE BACK W IT AND WE FINSIHED THE PROJECT ported the card component to every single sub page and made sure it works shifted sm styles into global.css removed the search route and slug to make it static render able also cuz i didnt find a use for it l8r DEPOLYED ON VERCEL https://star-xi-seven.vercel.app/ added back to home button and mobile compatibility THANK YOU EVERYONE
Fixed readme with images and website had no title 😭
Ships:
Starcalc YES THIS IS ANOTHER STARDEW CALCULATOR The problem i wanted to solve w this was making important information thats slighly harder to find on the wiki and requires a lot of clicks like gold/day for each crop, which monster drops what and how to make some artisanal goods be shown upfront so instead of just going down rabbit holes of reddit and wiki i could just open the website and check what things i can do w a specific item and which equipment to use The website has 4 core functions rn which are Crops Monsters Artisanal goods Animals The information is laid in simple to read cards with a image and clear description and the important numbers are highlighted and to avoid clutter produce etc is grouped under a dropdown so you arent bombarded with information you dont need I had a lot of trouble w finalizing the design AND WORST OF ALL TSPARTICLES and then making card components for every page cuz the data is diff for everything and i decided individual components would speed it up...
|
1793004998.4800441
|
1793091398.4800441
|
|
55692
|
nephthys+ by @Devansh | Stardance
|
Devansh
|
1
|
5.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-22T16:29:28Z", "hours": 5.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made nephthys+, a alternative to nephthys which has many more feautres. prometheus api integration support for custom macros, made in slack home page, not in code macros send with user name and pfp above integretures with taut client forward macro comming soon! to forward it to other help channels! hopefully will get this on a hackclub repo!", "repo": "https://github.com/aoishik/nephthys-plus", "demo": "https://hackclub.enterprise.slack.com/archives/C07TM4C0AQ5"}]...
|
[{"post_id": 72284, "ts": "202 [{"post_id": 72284, "ts": "2026-09-22T16:13:35Z", "hours": 1.5697, "text": "another big update! help now uses it, along with hackclub-ai-help . unfortunetley aoishik kidnaped the repo idk why but probably to auto deploy on push Anyways firstly we tried but failed to fix why slack mesage deleiton wasnt working. I also added integretion with taut, so now taut will show it as me sending it with small app icon instead of showing it from a app, it looks realy cool more updates to follow(or probably not, i have exams so ill ship now but updates will come after sd ends) Plan for future is to make it so that i can run ?forward #stardance-help to forward the ticket it would make much things easier And i will kidnap the wait time form unified help, and probaly get this on a hackclub repo! The picture shows a custom macro i made to redirect to stardance"}, {"post_id": 57096, "ts": "2026-08-29T06:01:54Z", "hours": 3.6097, "text": "i did a lot of stuf! made so that you can add macros on app homepage made it use the promethus api instead of a ws admin token! no ned to bother a ws admin now just ask evan! is safer too since only for one channel made macros use helper pfp cuz looks better"}]...
|
Title: nephthys+ by @Devansh | Stardance
Devlogs: Title: nephthys+ by @Devansh | Stardance
Devlogs:
i did a lot of stuf! made so that you can add macros on app homepage made it use the promethus api instead of a ws admin token! no ned to bother a ws admin now just ask evan! is safer too since only for one channel made macros use helper pfp cuz looks better
another big update! help now uses it, along with hackclub-ai-help . unfortunetley aoishik kidnaped the repo idk why but probably to auto deploy on push Anyways firstly we tried but failed to fix why slack mesage deleiton wasnt working. I also added integretion with taut, so now taut will show it as me sending it with small app icon instead of showing it from a app, it looks realy cool more updates to follow(or probably not, i have exams so ill ship now but updates will come after sd ends) Plan for future is to make it so that i can run ?forward #stardance-help to forward the ticket it would make much things easier And i will kidnap the wait time form unified help, and probaly get this on a hackclub repo! The picture shows a custom macro i made to redirect to stardance
Ships:
I made nephthys+, a alternative to nephthys which has many more feautres. prometheus api integration support for custom macros, made in slack home page, not in code macros send with user name and pfp above integretures with taut client forward macro comming soon! to forward it to other help channels! hopefully will get this on a hackclub repo!...
|
1793004764.176452
|
1793091164.176452
|
|
64415
|
My very own WebOS by @shyamks1828 | Stardance
|
shyamks1828
|
1
|
1.41
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-22T15:58:48Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "halloo guys. so i am shipping this for webos mission. heres to summarise what ive done Built a basic WebOS by following the guide Added a recognizable bg Included a working clock added two of my own games. no they were not coded during hrs logged for this proj. but i welocme feedbakc pls do comment abt it Added a notes app,the terminal is currently a placeholder Used little AI during development, but is actively learning and improving will add more features in the future do watch out!!", "repo": "https://github.com/coderrcboy/My-own-webos", "demo": "https://coderrcboy.github.io/My-own-webos/"}]...
|
[{"post_id": 72988, "ts": "202 [{"post_id": 72988, "ts": "2026-09-24T05:30:27Z", "hours": 0.4144, "text": "halloo guys, i added a small clock widget on the top right of the os. i also a dded a login option. just eneter a username you like and play. pls i insist yall check out flappy bird but mainly FPS game i want your review on it i might upload devlog with changes i made on that. i also made the explorer working u can open or rename saved files. as usual disclaimer Ai was used."}, {"post_id": 72278, "ts": "2026-09-22T15:55:00Z", "hours": 0.8436, "text": "hi guyss. followed th guide and made os pretty generic. did add tha well known bg tho. it looks sick. will add more features in the future. also added two video games. feel free to give feedback abt that too. also i used a bit much ai. ye hate to admit but im improving. features to summarise include multiple windows time and 2 games and notes app stuff like terminal still placeholders. anyway c yall later"}, {"post_id": 71760, "ts": "2026-09-21T13:49:17Z", "hours": 0.2725, "text": "halloo guyss. I know it looks very crude but beleive me when i say there is somethingcooking. i have agreat vision i think. it should hopefully workout great. i have added a icon for an about page. a notepad and a terminal. terminals just a place holder:). c yall next devlog."}, {"post_id": 71721, "ts": "2026-09-21T11:39:38Z", "hours": 0.2761, "text": "Heloo guyss. I am making a webOS for gaming relaated stuff and games. I have just now started. this is pilot devlog. also i will be open about this I am using ai to a certain extent. mainly to get one aesthetic colour combination. however following devlogs you will see theres a more human touch to this☺️☺️"}]...
|
Title: My very own WebOS by @shyamks1828 | Stardan Title: My very own WebOS by @shyamks1828 | Stardance
Devlogs:
Heloo guyss. I am making a webOS for gaming relaated stuff and games. I have just now started. this is pilot devlog. also i will be open about this I am using ai to a certain extent. mainly to get one aesthetic colour combination. however following devlogs you will see theres a more human touch to this☺️☺️
halloo guyss. I know it looks very crude but beleive me when i say there is somethingcooking. i have agreat vision i think. it should hopefully workout great. i have added a icon for an about page. a notepad and a terminal. terminals just a place holder:). c yall next devlog.
hi guyss. followed th guide and made os pretty generic. did add tha well known bg tho. it looks sick. will add more features in the future. also added two video games. feel free to give feedback abt that too. also i used a bit much ai. ye hate to admit but im improving. features to summarise include multiple windows time and 2 games and notes app stuff like terminal still placeholders. anyway c yall later
halloo guys, i added a small clock widget on the top right of the os. i also a dded a login option. just eneter a username you like and play. pls i insist yall check out flappy bird but mainly FPS game i want your review on it i might upload devlog with changes i made on that. i also made the explorer working u can open or rename saved files. as usual disclaimer Ai was used.
Ships:
halloo guys. so i am shipping this for webos mission. heres to summarise what ive done Built a basic WebOS by following the guide Added a recognizable bg Included a working clock added two of my own games. no they were not coded during hrs logged for this proj. but i welocme feedbakc pls do comment abt it Added a notes app,the terminal is currently a placeholder Used little AI during development, but is actively learning and improving will add more features in the future do watch out!!...
|
1792965069.7936718
|
1793051469.7936718
|
|
55609
|
personal_portfolio by @Mando328 | Stardance
|
Mando328
|
2
|
15.0
|
36
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-22T15:56:16Z", "hours": 10.0, "multiplier": 3.45, "payout": 36, "blessing": "neutral", "text": "Added a ton of features and polished it all up. I am very happy with this project. I learnd a lot during it and i just have fun. I can always develop it in fututre once I learn new things.", "repo": "https://github.com/Mando328/personalportfolio_os", "demo": "https://mando328.github.io/personalportfolio_os/"}, {"ship_num": 2, "ts": "2026-09-02T15:34:45Z", "hours": 5.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "FIRST VERSION FINALLY READY!!! I am very proud of myself beacuse it is my very first finished fully shipped project. I always lacked the self control to ship a project, and I have started many. I am very very happy with how it turned out, but i plan on working and polishing it until the next ship. I also very like the asthetics, beacuse it leads me to old internet times (which I am probably too young to remember). The most challenging part was once again the self control, but I managed to make it work! I am very very happy.", "repo": "https://github.com/Mando328/personalportfolio_os", "demo": "https://mando328.github.io/personalportfolio_os/"}]...
|
[{"post_id": 72277, "ts": "202 [{"post_id": 72277, "ts": "2026-09-22T15:53:51Z", "hours": 1.2444, "text": "finished the project. tried to add a calculator but gave up. fixed last bugs and i will be shipping rn"}, {"post_id": 67311, "ts": "2026-09-13T11:47:34Z", "hours": 0.8606, "text": "added a function to save window position and state between sessions"}, {"post_id": 66837, "ts": "2026-09-12T19:10:02Z", "hours": 1.4089, "text": "Added a music player and fixed some bugs. It tbh mostly code copied from medium and repurposed for my use. I am pretty happy with how it turned out, but once again I used ai for debbuging which i am not proud of. Next i plan to add a konami code"}, {"post_id": 64304, "ts": "2026-09-08T16:21:43Z", "hours": 1.2106, "text": "added this simple function to optimize the window opening. I am mad at myself i have not coded it right on the start. I had this weird bug where after commiting to gh parts of the function got deleted and the code got corrupted, so i reverted to previous version and wrote the optimalization de novo. I will be working on improving the code further"}, {"post_id": 63569, "ts": "2026-09-07T14:18:25Z", "hours": 2.5175, "text": "added fractals window. It dynamicly generates greyscale fractals from julia set. It was some pretty advanced math for me and a first time doing smth like that, so god bless @polytroper for his tutorial on this matter. It unfortunatly was not very good suited for usage in this type of windows, so i had to change it quite a bit. I also used ai for optimalization of the code beacuse it ran in like 2 frames per second. Next i want to implement a music player."}, {"post_id": 61109, "ts": "2026-09-03T20:42:22Z", "hours": 1.705, "text": "Added NASA astronomy picture of the day. It was VERY hard for me since it was my first time working with API. I am very very happy it turned out to work good. I had to use some copilot for explaining the concepts and stuff but I wrote the code. Tommorow I will create a small app where I will put in all my certificates and achivments (currently 3 lol). Goodnight Btw should i go with 2 column or 1 column layout of the icons(the ones on the left)"}, {"post_id": 60985, "ts": "2026-09-03T17:51:42Z", "hours": 0.455, "text": "added nice project window where you can scroll the gallery and click to get to github. (I am also showcasing the new social media buttons)"}, {"post_id": 60895, "ts": "2026-09-03T15:28:53Z", "hours": 0.9328, "text": "I made the notes window more fitting for the theme, also added reddit dc and github link in the personal tab and added an icon for the next window"}, {"post_id": 60275, "ts": "2026-09-02T15:27:32Z", "hours": 0.7606, "text": "So i added a notes function with memory that persist between site openings and polished everything up for shipping!"}, {"post_id": 57971, "ts": "2026-08-30T09:35:41Z", "hours": 1.2786, "text": "So i added new window with some personal info and a nice scrollable gallery that i stole from the internet. I had to use a lil bit of copilot for debugging beacuse i could not get window opening and image sizing to work. I am not proud of it but its a tool like any other isnt it? Next I plan on adding more advanced app like a music one and ship the project for the first time so I can already track the time towards more stardust than the set payout amount."}, {"post_id": 57678, "ts": "2026-08-29T22:15:21Z", "hours": 0.6539, "text": "added a div for the rest of the icons, those ones are just placeholders for now. I also created some css classes to improve the code readibility, but I still think it is very very bad."}, {"post_id": 57252, "ts": "2026-08-29T11:16:03Z", "hours": 1.5653, "text": "So today I am omw to my aunt’s birthday, so I wrote some code in the car. I added the clock, expanded the text in the welcome window, added some styling and made the windows draggable. I am very very proud of myself tbh, beacuse i never used js"}, {"post_id": 56930, "ts": "2026-08-28T23:12:46Z", "hours": 0.9286, "text": "Starting the basics, organizing file structure and starting with html and css. I was able to create a pretty nice starting page i guess. I am trying to go with kind of windows xp look with the icons, i like the retro vibe. I think i will add a little bit tommorow."}]...
|
Title: personal_portfolio by @Mando328 | Stardance Title: personal_portfolio by @Mando328 | Stardance
Devlogs:
Starting the basics, organizing file structure and starting with html and css. I was able to create a pretty nice starting page i guess. I am trying to go with kind of windows xp look with the icons, i like the retro vibe. I think i will add a little bit tommorow.
So today I am omw to my aunt’s birthday, so I wrote some code in the car. I added the clock, expanded the text in the welcome window, added some styling and made the windows draggable. I am very very proud of myself tbh, beacuse i never used js
added a div for the rest of the icons, those ones are just placeholders for now. I also created some css classes to improve the code readibility, but I still think it is very very bad.
So i added new window with some personal info and a nice scrollable gallery that i stole from the internet. I had to use a lil bit of copilot for debugging beacuse i could not get window opening and image sizing to work. I am not proud of it but its a tool like any other isnt it? Next I plan on adding more advanced app like a music one and ship the project for the first time so I can already track the time towards more stardust than the set payout amount.
So i added a notes function with memory that persist between site openings and polished everything up for shipping!
I made the notes window more fitting for the theme, also added reddit dc and github link in the personal tab and added an icon for the next window
added nice project window where you can scroll the gallery and click to get to github. (I am also showcasing the new social media buttons)
Added NASA astronomy picture of the day. It was VERY hard for me since it was my first time working with API. I am very very happy it turned out to work good. I had to use some copilot for explaining the concepts and stuff but I wrote the code. Tommorow I will create a small app where I will put in all my certificates and achivments (currently 3 lol). Goodnight Btw should i go with 2 column or 1 column layout of the icons(the ones on the left)
added fractals window. It dynamicly generates greyscale fractals from julia set. It was some pretty advanced math for me and a first time doing smth like that, so god bless @polytroper for his tutorial on this matter. It unfortunatly was not very good suited for usage in this type of windows, so i had to change it quite a bit. I also used ai for optimalization of the code beacuse it ran in like 2 frames per second. Next i want to implement a music player.
added this simple function to optimize the window opening. I am mad at myself i have not coded it right on the start. I had this weird bug where after commiting to gh parts of the function got deleted and the code got corrupted, so i reverted to previous version and wrote the optimalization de novo. I will be working on improving the code further
Added a music player and fixed some bugs. It tbh mostly code copied from medium and repurposed for my use. I am pretty happy with how it turned out, but once again I used ai for debbuging which i am not proud of. Next i plan to add a konami code
added a function to save window position and state between sessions
finished the project. tried to add a calculator but gave up. fixed last bugs and i will be shipping rn
Ships:
FIRST VERSION FINALLY READY!!! I am very proud of myself beacuse it is my very first finished fully shipped project. I always lacked the self control to ship a project, and I have started many. I am very very happy with how it turned out, but i plan on working and polishing it until the next ship. I also very like the asthetics, beacuse it leads me to old internet times (which I am probably too young to remember). The most challenging part was once again the self control, but I managed to make it work! I am very very happy.
Added a ton of features and polished it all up. I am very happy with this project. I learnd a lot during it and i just have fun. I can always develop it in fututre once I learn new things....
|
1792997350.541962
|
1793083750.541962
|
|
64744
|
RidzOS by @Ridith | Stardance
|
Ridith
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-22T15:38:27Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "What Did We Make? We built a fully functional web operating system named RidzOS! It features a custom desktop interface, an interactive top status bar with a live clock ticking every second, desktop application icon shortcuts, modular draggable windows with closing and layer focusing capabilities, and a built-in notes application driven by JavaScript arrays and dynamic sidebars. What Was Challenging? Building the window management engine was definitely the trickiest part. Wiring up the math for mouse dragging coordinates so windows follow your cursor smoothly, managing layer order so clicked windows always rise to the top above others, and protecting the top menu bar from being covered required careful programming logic. What Are You Proud Of? Being able to conceptualize, code, and ship a completely personalized operating system live onto the internet is a massive achievement. Watching the custom gradient wallpaper load, clicking the icon to spawn windows, and seeing notes render dynamically from an array all coming together into a polished product feels incredible. What Should People Know When Testing? When testing Ridith OS, keep these things in mind: You can click and drag any window header around the screen just like a real operating system. Click the desktop app icon to launch the notes application, and use the sidebar items to switch between notes. The top bar features a live clock showing real time updates, and windows will automatically stack on top of each other when clicked. Technical Architecture Ridith OS is structured around two primary code files: index .html: Contains the core DOM structure, including the desktop layout container, the top status bar, desktop app shortcut wrappers, and the modular window templates for both the welcome prompt and the notes application.script.js: Manages all dynamic behaviors. This includes the real time clock interval loop, the physics engine for mouse dragging windows, window layering and focus management, and the JavaScript array iteration used to dynamically populate the notes sidebar content. Getting Started Locally To run or modify this project on your local machine or through a cloud development environment, follow these steps: Clone or download the repository to your local computer. Open the project folder inside any code editor such as Visual Studio Code or GitHub Codespaces. Open the index.html file in any modern web browser or deploy the repository using GitHub Pages to run it live on the web. Future Development Plans Future updates and additions planned for the platform include additional desktop utilities, persistent local storage support for user notes, custom theme selection, and expanded interactive applications", "repo": "https://github.com/RockingRidz/Ridith-OS", "demo": "https://rockingridz.github.io/Ridith-OS/"}]...
|
[{"post_id": 72267, "ts": "202 [{"post_id": 72267, "ts": "2026-09-22T15:30:55Z", "hours": 0.2836, "text": "I have successfully redone the UI as I felt the last one was too bland and a little bit common, hope you look it!!"}, {"post_id": 72244, "ts": "2026-09-22T14:57:56Z", "hours": 0.8336, "text": "I gave my best attempt to do a speed run project trying to finish by 1 Hour, which will improve my critical thinking as well as speed coding. Which I was able to acomplish!!"}]...
|
Title: RidzOS by @Ridith | Stardance
Devlogs:
I g Title: RidzOS by @Ridith | Stardance
Devlogs:
I gave my best attempt to do a speed run project trying to finish by 1 Hour, which will improve my critical thinking as well as speed coding. Which I was able to acomplish!!
I have successfully redone the UI as I felt the last one was too bland and a little bit common, hope you look it!!
Ships:
What Did We Make? We built a fully functional web operating system named RidzOS! It features a custom desktop interface, an interactive top status bar with a live clock ticking every second, desktop application icon shortcuts, modular draggable windows with closing and layer focusing capabilities, and a built-in notes application driven by JavaScript arrays and dynamic sidebars. What Was Challenging? Building the window management engine was definitely the trickiest part. Wiring up the math for mouse dragging coordinates so windows follow your cursor smoothly, managing layer order so clicked windows always rise to the top above others, and protecting the top menu bar from being covered required careful programming logic. What Are You Proud Of? Being able to conceptualize, code, and ship a completely personalized operating system live onto the internet is a massive achievement. Watching the custom gradient wallpaper load, clicking the icon to spawn windows, and seeing notes render dynamically from an array all coming together into a polished product feels incredible. What Should People Know When Testing? When testing Ridith OS, keep these things in mind: You can click and drag any window header around the screen just like a real operating system. Click the desktop app icon to launch the notes application, and use the sidebar items to switch between notes. The top bar features a live clock showing real time updates, and windows will automatically stack on top of each other when clicked. Technical Architecture Ridith OS is structured around two primary code files: index .html: Contains the core DOM structure, including the desktop layout container, the top status bar, desktop app shortcut wrappers, and the modular window templates for both the welcome prompt and the notes application.script.js: Manages all dynamic behaviors. This includes the real time clock interval loop, the physics engine for mouse dragging windows, window layering and focus management, and the JavaScript array iteration used to dynamically populate the notes sidebar content. Getting Started Locally To run or modify this project on your local machine or through a cloud development environment, follow these steps: Clone or download the repository to your local computer. Open the project folder inside any code editor such as Visual Studio Code or GitHub Codespaces. Open the index.html file in any modern web browser or deploy the repository using GitHub Pages to run it live on the web. Future Development Plans Future updates and additions planned for the platform include additional desktop utilities, persistent local storage support for user notes, custom theme selection, and expanded interactive applications...
|
1792965110.829666
|
1793051510.829666
|
|
61246
|
Personal site by @Coaxbow99 | Stardance
|
Coaxbow99
|
1
|
8.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-22T15:06:53Z", "hours": 8.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "🌐 Project Highlights: I made a custom personal website from scratch designed around an early-2000s desktop aesthetic inspired by the Frutiger Aero design. 💔The most heartbreaking and difficult part of the project was managing all the code from scratch, wrestling with the curly brackets, and building the desktop boxes. It was a massive challenge to make all those components layout correctly while ensuring the text contrast stayed readable against the vibrant background elements.🗒️ Please note that the first view of the site is just for the desktop window aesthetics, while all of my personal sections are neatly organized as you scroll down.🔔To test my project, simply open the live link and scroll down to explore my three custom sections: the About Me introduction, the Projects area featuring this website, and the My Favourites section highlighting my hobbies like DIY paper crafts, sketching, and coding.", "repo": "https://github.com/coaxbow99/personal-site", "demo": "https://coaxbow99.github.io/personal-site/"}]...
|
[{"post_id": 71697, "ts": "202 [{"post_id": 71697, "ts": "2026-09-21T10:26:30Z", "hours": 1.72, "text": "Last Devlog… Today I finally polished up my website to make it look clean. I updated the wording in my projects and favorites sections so they aren’t just empty placeholders anymore. Since the text was hard to read against the bright grass and cloud background, I changed it to a soft white color. Then I added a nice dark text shadow behind the letters so they stand out perfectly and anyone can read them easily on mobile or computer screens"}, {"post_id": 71076, "ts": "2026-09-20T08:40:19Z", "hours": 1.0794, "text": "Devlog 5… 💫 Today I added a new section called “My Favourites” with this quirky blue emoji I found on Pinterest idk why I did that. Anyways I will add the things I like tomorrow cuz I couldn’t think on any at the moment🫠"}, {"post_id": 69558, "ts": "2026-09-17T09:52:41Z", "hours": 2.4164, "text": "Devlog 4..Today I updated my website layout. I fixed some broken code blocks and made a clean grid system. Now, my text and custom pictures sit perfectly side-by-side inside the Notepad window. It makes the site look much more organized and gives it a cool tech style."}, {"post_id": 69067, "ts": "2026-09-16T09:58:14Z", "hours": 1.3392, "text": "Devlog 3… I couldn’t wait to fix my chopped website Now atleast it looks fine.first i fixed all my broken code typos like accidental double semicolons and missing brackets that were breaking everything. then i threw away the boring white layout and added the windows xp hills wallpaper to the background. i also changed my old plain blue gaming icon to a much cooler pfp and added a cool cloud image lower down finally i made the main text float right on top of a realistic retro notepad box instead of sitting underneath it, and made all the images perfect circles. btw here’s how it looks now"}, {"post_id": 67941, "ts": "2026-09-14T08:23:18Z", "hours": 0.8819, "text": "Devlog 2…. So basically at the start I got this live server extension in VS Code so I can see my site updates right away in Chrome. Then I made some boxes using and tags so my page can have columns like a real layout. I went on Picrew and made my own avatar from scratch then downloaded it and put it in my sidebar folder. It was way too HUGE at first and the code had some typos, but after I fixed the spelling, After that I shrink it and added a radius thingy that made the square image into a perfect circle icon. Then I put my text into a box and used Flexbox so the heading sits right next to my profile picture instead of under it. Finally I fixed some broken brackets and changed the background color to light cyan bcz it looked way too basic. It still looks very basic though🥀…. Still there are way too many things to add. Anyways I like doing it"}, {"post_id": 66490, "ts": "2026-09-12T10:21:22Z", "hours": 0.3839, "text": "What I did today :) so today I started my personal website! ngl i got stuck for a second trying to get git and my github folders set up, so I used to an ai tool guide me on how to get unblocked. but after that was sorted I literally wrote all the HTML myself from the stardance guide .I started by setting up the first few lines with the tag so the browser uses the newest version and doesnt glitch out. tbh coding HTML is so much easier than making a slackbot. with my bot, literally one missing comma would crash the whole entire thing, but HTML is super chill and nothing explodes if you mess up. I will move on to the next thing soon but I can’t be consistent because i have my exams this week :("}]...
|
Title: Personal site by @Coaxbow99 | Stardance
De Title: Personal site by @Coaxbow99 | Stardance
Devlogs:
What I did today :) so today I started my personal website! ngl i got stuck for a second trying to get git and my github folders set up, so I used to an ai tool guide me on how to get unblocked. but after that was sorted I literally wrote all the HTML myself from the stardance guide .I started by setting up the first few lines with the tag so the browser uses the newest version and doesnt glitch out. tbh coding HTML is so much easier than making a slackbot. with my bot, literally one missing comma would crash the whole entire thing, but HTML is super chill and nothing explodes if you mess up. I will move on to the next thing soon but I can’t be consistent because i have my exams this week :(
Devlog 2…. So basically at the start I got this live server extension in VS Code so I can see my site updates right away in Chrome. Then I made some boxes using and tags so my page can have columns like a real layout. I went on Picrew and made my own avatar from scratch then downloaded it and put it in my sidebar folder. It was way too HUGE at first and the code had some typos, but after I fixed the spelling, After that I shrink it and added a radius thingy that made the square image into a perfect circle icon. Then I put my text into a box and used Flexbox so the heading sits right next to my profile picture instead of under it. Finally I fixed some broken brackets and changed the background color to light cyan bcz it looked way too basic. It still looks very basic though🥀…. Still there are way too many things to add. Anyways I like doing it
Devlog 3… I couldn’t wait to fix my chopped website Now atleast it looks fine.first i fixed all my broken code typos like accidental double semicolons and missing brackets that were breaking everything. then i threw away the boring white layout and added the windows xp hills wallpaper to the background. i also changed my old plain blue gaming icon to a much cooler pfp and added a cool cloud image lower down finally i made the main text float right on top of a realistic retro notepad box instead of sitting underneath it, and made all the images perfect circles. btw here’s how it looks now
Devlog 4..Today I updated my website layout. I fixed some broken code blocks and made a clean grid system. Now, my text and custom pictures sit perfectly side-by-side inside the Notepad window. It makes the site look much more organized and gives it a cool tech style.
Devlog 5… 💫 Today I added a new section called “My Favourites” with this quirky blue emoji I found on Pinterest idk why I did that. Anyways I will add the things I like tomorrow cuz I couldn’t think on any at the moment🫠
Last Devlog… Today I finally polished up my website to make it look clean. I updated the wording in my projects and favorites sections so they aren’t just empty placeholders anymore. Since the text was hard to read against the bright grass and cloud background, I changed it to a soft white color. Then I added a nice dark text shadow behind the letters so they stand out perfectly and anyone can read them easily on mobile or computer screens
Ships:
🌐 Project Highlights: I made a custom personal website from scratch designed around an early-2000s desktop aesthetic inspired by the Frutiger Aero design. 💔The most heartbreaking and difficult part of the project was managing all the code from scratch, wrestling with the curly brackets, and building the desktop boxes. It was a massive challenge to make all those components layout correctly while ensuring the text contrast stayed readable against the vibrant background elements.🗒️ Please note that the first view of the site is just for the desktop window aesthetics, while all of my personal sections are neatly organized as you scroll down.🔔To test my project, simply open the live link and scroll down to explore my three custom sections: the About Me introduction, the Projects area featuring this website, and the My Favourites section highlighting my hobbies like DIY paper crafts, sketching, and coding....
|
1793055318.7116046
|
1793141718.7116046
|
|
51782
|
Astronaut Game by @lantern | Stardance
|
lantern
|
2
|
36.0
|
67
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-22T14:55:09Z", "hours": 24.0, "multiplier": 2.84, "payout": 67, "blessing": "neutral", "text": "Astronaut Game is my first full game that i actually made . I have used stardance guide throughout making this project . It has 4 minigames in it ( what else you expect from beginner) . Added some of my own assets and space pictures from nasa website ..lol. From the last ship i have made a lot of amends in this projects by cutting out my school time for this project . I firstly added animation to the collectable O2 tanks in minigame 1 , a winner and a death scene ,a score system which works on completion of each level ,a new minigame which was pretty hard to make ( also hard to play..lol..) anyway there were some complications and errors too but it turned out to be ok !!!", "repo": "https://github.com/jigneshphalsawal-cloud/astronaut-game", "demo": "https://jigneshphalsawal-cloud.itch.io/astronaut-game"}, {"ship_num": 2, "ts": "2026-08-22T08:41:58Z", "hours": 12.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Astronaut Game, my very first game development project! Built using the Godot Engine, this project features 3 distinct space-themed minigames designed to challenge the player through interactive mechanics and puzzle-solving. This project was built following the Stardance Challenge Guide, which provided me roadmap for learning game development fundamentals.", "repo": "https://github.com/jigneshphalsawal-cloud/astronaut-game", "demo": "https://jigneshphalsawal-cloud.itch.io/astronaut-game"}]...
|
[{"post_id": 72225, "ts": "202 [{"post_id": 72225, "ts": "2026-09-22T14:15:09Z", "hours": 3.5689, "text": "Fixed the issues in minigame 4 , and enhanced the player experience by adding instructions and making the level more difficult , now the asteroids spawn in relative with position of the player. Also added a score system it calculates score as you complete levels . After some final verifications i will post this soon to itch.io!!"}, {"post_id": 71103, "ts": "2026-09-20T09:33:54Z", "hours": 7.6217, "text": "Working on a dodge based game , in which you have to dodge your spacecraft from asteroid falling . While working on the game the asteroid falling became a problem because while playing i realised that there was a issue with the asteroids as they were falling at one place making game less challenging . I have decided to make asteroids to actively track the player’s movement horizontally while falling, instead of just locking onto a static X position when they spawn"}, {"post_id": 69486, "ts": "2026-09-17T04:38:20Z", "hours": 6.3667, "text": "Finished Adding 2 new mini-games ✌️ first one was a simple clicker game in which we collect the O2 cylinders In second one we refill the suit by pressing the valves in a sequence next i will add a alien shooter game or smthing like that!!!"}, {"post_id": 69047, "ts": "2026-09-16T08:41:16Z", "hours": 6.0814, "text": "Working on 2 new games:- Collecting O2 Cylinder by clicking in limited time Value closer- closing the valve in sequence"}, {"post_id": 52161, "ts": "2026-08-22T08:00:09Z", "hours": 7.6769, "text": "Completed!!! Guide OP!!"}, {"post_id": 51060, "ts": "2026-08-20T15:18:51Z", "hours": 4.5164, "text": "Main Menu Done!!!!!!!!!"}]...
|
Title: Astronaut Game by @lantern | Stardance
Dev Title: Astronaut Game by @lantern | Stardance
Devlogs:
Main Menu Done!!!!!!!!!
Completed!!! Guide OP!!
Working on 2 new games:- Collecting O2 Cylinder by clicking in limited time Value closer- closing the valve in sequence
Finished Adding 2 new mini-games ✌️ first one was a simple clicker game in which we collect the O2 cylinders In second one we refill the suit by pressing the valves in a sequence next i will add a alien shooter game or smthing like that!!!
Working on a dodge based game , in which you have to dodge your spacecraft from asteroid falling . While working on the game the asteroid falling became a problem because while playing i realised that there was a issue with the asteroids as they were falling at one place making game less challenging . I have decided to make asteroids to actively track the player’s movement horizontally while falling, instead of just locking onto a static X position when they spawn
Fixed the issues in minigame 4 , and enhanced the player experience by adding instructions and making the level more difficult , now the asteroids spawn in relative with position of the player. Also added a score system it calculates score as you complete levels . After some final verifications i will post this soon to itch.io!!
Ships:
Astronaut Game, my very first game development project! Built using the Godot Engine, this project features 3 distinct space-themed minigames designed to challenge the player through interactive mechanics and puzzle-solving. This project was built following the Stardance Challenge Guide, which provided me roadmap for learning game development fundamentals.
Astronaut Game is my first full game that i actually made . I have used stardance guide throughout making this project . It has 4 minigames in it ( what else you expect from beginner) . Added some of my own assets and space pictures from nasa website ..lol. From the last ship i have made a lot of amends in this projects by cutting out my school time for this project . I firstly added animation to the collectable O2 tanks in minigame 1 , a winner and a death scene ,a score system which works on completion of each level ,a new minigame which was pretty hard to make ( also hard to play..lol..) anyway there were some complications and errors too but it turned out to be ok !!!...
|
1792958059.3161135
|
1793822059.3161135
|
|
61285
|
the adventure to nowhere PART - 1 by @senthilnatha the adventure to nowhere PART - 1 by @senthilnathan_arun | Stardance...
|
senthilnathan_arun
|
1
|
6.0
|
9
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-22T14:26:47Z", "hours": 6.0, "multiplier": 1.51, "payout": 9, "blessing": "neutral", "text": "hi i created ths text based rpg game . my goal is the cmf buds so rate this as you think it is . there are a lot of reliability issues with github streamlit . so i also have a backup link : https://the-adventure-to-nowhere-part-1-c8cyynjokisz4bzutjomy8.streamlit.app/", "repo": "https://github.com/senthilnathanarun15/the-adventure-to-nowhere-part-1", "demo": "https://senthilnathanarun15.github.io/the-adventure-to-nowhere-part-1/"}]...
|
[{"post_id": 66457, "ts": "202 [{"post_id": 66457, "ts": "2026-09-12T09:29:38Z", "hours": 5.7253, "text": "i am doing the story first"}]...
|
Title: the adventure to nowhere PART - 1 by @senth Title: the adventure to nowhere PART - 1 by @senthilnathan_arun | Stardance
Devlogs:
i am doing the story first
Ships:
hi i created ths text based rpg game . my goal is the cmf buds so rate this as you think it is . there are a lot of reliability issues with github streamlit . so i also have a backup link : https://the-adventure-to-nowhere-part-1-c8cyynjokisz4bzutjomy8.streamlit.app/...
|
1793055328.464761
|
1793141728.464761
|
|
60385
|
selfaware by @Kaanreal | Stardance
|
Kaanreal
|
1
|
20.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-22T14:24:12Z", "hours": 20.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Selfaware 1.0.0 is out. This is the first proper release of Selfaware, a client-side Minecraft mod that lets you see your own nametag while playing in third person. The main idea is simple, but I wanted it to feel like something that actually belongs in Minecraft. Your nametag follows the normal rendering behavior, and Selfaware can also match server-specific nametag styling instead of always showing a basic vanilla label. There are a few integrations already included. On DonutSMP, Selfaware can show your own rank, prefix and balance. Simple Voice Chat is also supported, so your own voice and group icons can appear next to your nametag. There is also a settings menu with a live player preview, options for the different integrations, and everything can be changed without leaving the game. A big part of this first release was compatibility. Selfaware already supports a lot of Minecraft versions and works across Fabric, Forge, NeoForge and Quilt where available. The project is structured so I can keep adding versions without having to maintain completely separate mods. You can try the first release here: https://github.com/kaanreal/selfaware/releases or on Modrinth: https://modrinth.com/mod/selfaware", "repo": "https://github.com/kaanreal/selfaware", "demo": "https://modrinth.com/mod/selfaware"}]...
|
[{"post_id": 72228, "ts": "202 [{"post_id": 72228, "ts": "2026-09-22T14:22:33Z", "hours": 12.2208, "text": "Hello! Today I continued working on Selfaware.I mainly focused on fixing issues across different Minecraft versions and mod loaders, so everything works more consistently. There were a few version-specific problems from yesterday that are now cleaned up.I also added a proper menu for Selfaware. It makes the mod feel a lot more complete and gives me a good place to add settings and new features later.Besides that, I spent some time cleaning up the overall project structure. Since I want to support a lot of Minecraft versions and mod loaders, I wanted to get the structure right early instead of having everything become messy later.The base is now in a much better state, so I can start focusing more on actual features next."}, {"post_id": 66986, "ts": "2026-09-13T00:01:51Z", "hours": 7.9928, "text": "Hello! Today I started working on a new project called Selfaware.Selfaware is a Minecraft mod that displays your own nametag above your head while playing in F5. I tried a few other mods that do something similar, but I found them a bit too simple, so I wanted to make my own version with more features.I want Selfaware to support things like server specific nametag formatting, DonutSMP features, Simple Voice Chat icons for yourself, and more in the future. I also want to support as many Minecraft versions and mod loaders as possible.Today I mainly worked on the base of the mod. So far, all supported versions and mod loaders seem to be working correctly, and the nametag is rendering properly. I also added Simple Voice Chat support, so you can now see your own voice chat icons above your nametag."}]...
|
Title: selfaware by @Kaanreal | Stardance
Devlogs Title: selfaware by @Kaanreal | Stardance
Devlogs:
Hello! Today I started working on a new project called Selfaware.Selfaware is a Minecraft mod that displays your own nametag above your head while playing in F5. I tried a few other mods that do something similar, but I found them a bit too simple, so I wanted to make my own version with more features.I want Selfaware to support things like server specific nametag formatting, DonutSMP features, Simple Voice Chat icons for yourself, and more in the future. I also want to support as many Minecraft versions and mod loaders as possible.Today I mainly worked on the base of the mod. So far, all supported versions and mod loaders seem to be working correctly, and the nametag is rendering properly. I also added Simple Voice Chat support, so you can now see your own voice chat icons above your nametag.
Hello! Today I continued working on Selfaware.I mainly focused on fixing issues across different Minecraft versions and mod loaders, so everything works more consistently. There were a few version-specific problems from yesterday that are now cleaned up.I also added a proper menu for Selfaware. It makes the mod feel a lot more complete and gives me a good place to add settings and new features later.Besides that, I spent some time cleaning up the overall project structure. Since I want to support a lot of Minecraft versions and mod loaders, I wanted to get the structure right early instead of having everything become messy later.The base is now in a much better state, so I can start focusing more on actual features next.
Ships:
Selfaware 1.0.0 is out. This is the first proper release of Selfaware, a client-side Minecraft mod that lets you see your own nametag while playing in third person. The main idea is simple, but I wanted it to feel like something that actually belongs in Minecraft. Your nametag follows the normal rendering behavior, and Selfaware can also match server-specific nametag styling instead of always showing a basic vanilla label. There are a few integrations already included. On DonutSMP, Selfaware can show your own rank, prefix and balance. Simple Voice Chat is also supported, so your own voice and group icons can appear next to your nametag. There is also a settings menu with a live player preview, options for the different integrations, and everything can be changed without leaving the game. A big part of this first release was compatibility. Selfaware already supports a lot of Minecraft versions and works across Fabric, Forge, NeoForge and Quilt where available. The project is structured so I can keep adding versions without having to maintain completely separate mods. You can try the first release here: https://github.com/kaanreal/selfaware/releases or on Modrinth: https://modrinth.com/mod/selfaware...
|
1793055174.2928185
|
1793141574.2928185
|
|
56146
|
a simple shell in c by @premharsha | Stardance
|
premharsha
|
1
|
2.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-22T13:30:23Z", "hours": 2.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "#INTRODUCTION: *I made a simple Shell for Linux written in C. *This Shell works just like any basic Shell but it doesn’t store any history. #MY EXPERIENCE: *the hardest part of making this shell is parsing the input and also executing it. *Because the execvp() function used to execute Commands is a bit tricky and parsing Commands into tokens too, as this is my 1st time working with pointer arrays. *it felt exciting at first and a bit exhausting too but i’m proud atleast after completing the project. #TECHNICAL DETAILS: *the shell is written purely in C language and does need to be compiled before executing it . *the shell makes use of string functions like strtok(),strcmp(),etc to work with input strings *and it makes use of execvp() to execute os functions. *Runs only on linux. #REQUIREMENTS: *Linux OS (to run the program). *any c compliler(for compilation).", "repo": "https://github.com/premharsha970-png/simple-c-shell/blob/main/README.md", "demo": "https://github.com/premharsha970-png/simple-c-shell"}]...
|
[{"post_id": 72197, "ts": "202 [{"post_id": 72197, "ts": "2026-09-22T13:14:00Z", "hours": 0.3, "text": "Finally, i completed writing the shell guys !!!!! this felt very hard but , i am proud to complete my 1st project and becoming one of you guys… :)"}, {"post_id": 71779, "ts": "2026-09-21T15:09:41Z", "hours": 1.3, "text": "hey guys, writing a linux shell in c for linux ,and yeah this is my 1st project and the process is going great but it kind feels exhausting because this is my first time making projects. if you have any ideas or improvements then you are free to contact mee!! here is my email ID: [email protected]"}]...
|
Title: a simple shell in c by @premharsha | Starda Title: a simple shell in c by @premharsha | Stardance
Devlogs:
hey guys, writing a linux shell in c for linux ,and yeah this is my 1st project and the process is going great but it kind feels exhausting because this is my first time making projects. if you have any ideas or improvements then you are free to contact mee!! here is my email ID: [email protected]
Finally, i completed writing the shell guys !!!!! this felt very hard but , i am proud to complete my 1st project and becoming one of you guys… :)
Ships:
#INTRODUCTION: *I made a simple Shell for Linux written in C. *This Shell works just like any basic Shell but it doesn’t store any history. #MY EXPERIENCE: *the hardest part of making this shell is parsing the input and also executing it. *Because the execvp() function used to execute Commands is a bit tricky and parsing Commands into tokens too, as this is my 1st time working with pointer arrays. *it felt exciting at first and a bit exhausting too but i’m proud atleast after completing the project. #TECHNICAL DETAILS: *the shell is written purely in C language and does need to be compiled before executing it . *the shell makes use of string functions like strtok(),strcmp(),etc to work with input strings *and it makes use of execvp() to execute os functions. *Runs only on linux. #REQUIREMENTS: *Linux OS (to run the program). *any c compliler(for compilation)....
|
1793004813.6425507
|
1793091213.6425507
|
|
46463
|
DAEMON by @katopirat | Stardance
|
katopirat
|
1
|
61.0
|
1164
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-22T13:26:15Z", "hours": 61.0, "multiplier": 19.19, "payout": 1164, "blessing": "neutral", "text": "I shipped my game: DAEMON It’s 2am. Your friend is online. He wants you to print something. ⚠ Browser version can lag — grab the Windows build if you can. The game: first-person psychological horror about a 3D printer, a friend who won’t stop messaging you, and an OS that’s a little too honest about what it sees. Built: a real in-game OS — file explorer reading actual disk files, Discord-style chat, mail, terminal, all Windows 95 style over a gritty PSX world. A working 3D printer with its own physics, shader-based print reveal, and sound. Story written entirely in JSON, no code touched for content. Hardest part: never made horror before. Built the whole tech first, had a friend playtest — verdict: not scary. Rebuilt most of the second half because of it. Proud of: the printer, the OS, and the ending — which flips the camera around so you end up watching yourself through the eyes of the thing you built. Stuck? Check “Files” often, especially after a conversation ends.", "repo": "https://github.com/katopirat/DAEMON/", "demo": "https://katopiratgames.itch.io/daemon"}]...
|
[{"post_id": 72194, "ts": "202 [{"post_id": 72194, "ts": "2026-09-22T13:11:43Z", "hours": 6.9956, "text": "THIS IS THE LAST DEVLOG —————————————— finished the ending. you end up seeing everything through a screen from the other side, watching “him” sit down at the desk you’ve been sitting at the whole game. there’s a voice line now too (ElevenLabs), and two different ways it can end depending on what you do in the terminal went through and fixed a genuinely embarrassing bug where photos silently failed to save on a fresh install because the folder never existed. found it the hard way, glad I caught it before shipping it’s live: playable in browser on itch.io, Windows build on GitHub releases this is my last devlog for this one. never made a horror game before this, first version wasn’t scary at all according to a friend, and honestly that stung a bit. rebuilt a good chunk of it because of that. really happy with where it ended up thanks for reading these"}, {"post_id": 70636, "ts": "2026-09-19T14:23:51Z", "hours": 9.4572, "text": "NIGHT 4 IS NOW THE ENDING cut nights 5-6 and made night 4 the finale instead. it’s tighter and actually scarier than the original 6-night plan would’ve been the thing built from the printed pieces finally shows up in the room. it turns its head to look at you if you get close, then the lights flicker and it’s gone. added a proper scare sequence too - see it once through a window, then somewhere else it’s right behind you. screen goes black next: finishing the ending"}, {"post_id": 65332, "ts": "2026-09-10T12:36:07Z", "hours": 9.8781, "text": "NIGHT 3 FINISHED + MAIN MENU + TERMINAL built the main menu and its honestly my fav part. not a boring menu screen but literally ur monitor in the apartment. night 3 u wake up and the 3d printer is ALREADY running even tho u didnt queue anything and a terminal appeared terminal app has 4 commands - help ps clear and kill oh and the printer is making a hand. scaryyyy 👻 and in night 4 the hadn move into a room next to the livingroom next: night 4 - more body parts I’m sorry for the low quality video but it was too large :("}, {"post_id": 61901, "ts": "2026-09-05T02:23:10Z", "hours": 9.3094, "text": "SENDING REAL PHOTOS IN CHAT + SLEEP SYSTEM u can now physically take a pic of the 3d print and it saves to disk. in chat u just open the file explorer and send the actual photo. built a working sleep cycle too. walk to bed camera does a nice eyes-closing fade into a NIGHT 2 screen. so the story actually progresses now instead of just looping the same day forever funniest bug: realized my in game file explorer let u type “/” and browse my actual irl computer files. patched it but for like an hour my horror game had a literal zero day vulnerability lol added proper sound design everywhere. next: writing the story for night 3 + 2since all the tools are finally ready 📝"}, {"post_id": 58703, "ts": "2026-08-31T07:22:56Z", "hours": 7.6203, "text": "DISCORD CLONE + THE HORROR ACTUALLY STARTED built a full discord-style chat app from scratch. typing indicators message bubbles and it looks so sick in the win95 theme also made a win95 mail client . file explorer now reads straight off the real disk so adding content is literally just dropping a file in and the horror system went live. finished a chat, checked my files later, and a text file had silently renamed itself. added a notification sound next: writing the actual story since the skeleton is basically done"}, {"post_id": 52522, "ts": "2026-08-22T17:50:42Z", "hours": 8.6172, "text": "8.5 HOURS LATER: 3D PRINTER WORKS + OS FIXED spent 8.5 solid hours on this and honestly my brain is fried. finally got printhead and hotbed animated with a shader so models build layer by layer. syncing the movement was absolute pain but watching it print is insanely satisfying 🔥 added a bouncy physical print button and a grab system. once it finishes u can actually pick up the printed model as a real physics object finally fixed the annoying stuff: windows got classic win95 headers taskbar has icons and grabbed objects dont clip through walls anymore built a real file explorer reading disk files. It took a long time, but now the file browser reads files directly from the folder on your disk, so when you add a file to the folder, you can open it in the game. opening .stl opens a printer app biggest pain: godots UI anchors for sizing window content. offsets act totally diff depending on edge and nobody warned me >:( next: making the OS cursed. Finally… Maybe… 🥲"}, {"post_id": 48850, "ts": "2026-08-17T12:19:45Z", "hours": 6.9931, "text": "JUST CODED MY FIRST FAKE OS IN GAME 7 hours in and absolutely zero regrets i created my first ingame OS from scratch. I got desktop icons, windows you can drag around, and a working taskbar. never tried anything like this so it was basically a live speedrun of learning biggest win: slapped a free Windows 95 icon pack on it and now it genuinely looks like a legit retro OS instead of just ugly gray boxes also just added a grab mechanic so you can physically pick up objects and spin them around biggest bug: wasted 20 minutes thinking the click logic was broken :( turns out only the icon TEXT was clickable not the actual image lol next up: making the whole OS feel cursed. icons glitching out, files changing their own names. 😈"}, {"post_id": 45669, "ts": "2026-08-12T09:37:29Z", "hours": 1.8022, "text": "So i started a new Project! :) - it will be a first person psychological horror game set in a single apartment. I got a basic first person player movement working first, then i make the appartment from free assets (i thing it’s looking verry good!) and then i added psx style filter , whitch took some fighting to get looking and working right. then i added collisions for all the walls and furniture so the player can’t walk trought anything or escape the apartment, and set ip lighting that’s finaly starting to sell the mood I’m going for."}]...
|
Title: DAEMON by @katopirat | Stardance
Devlogs:
Title: DAEMON by @katopirat | Stardance
Devlogs:
So i started a new Project! :) - it will be a first person psychological horror game set in a single apartment. I got a basic first person player movement working first, then i make the appartment from free assets (i thing it’s looking verry good!) and then i added psx style filter , whitch took some fighting to get looking and working right. then i added collisions for all the walls and furniture so the player can’t walk trought anything or escape the apartment, and set ip lighting that’s finaly starting to sell the mood I’m going for.
JUST CODED MY FIRST FAKE OS IN GAME 7 hours in and absolutely zero regrets i created my first ingame OS from scratch. I got desktop icons, windows you can drag around, and a working taskbar. never tried anything like this so it was basically a live speedrun of learning biggest win: slapped a free Windows 95 icon pack on it and now it genuinely looks like a legit retro OS instead of just ugly gray boxes also just added a grab mechanic so you can physically pick up objects and spin them around biggest bug: wasted 20 minutes thinking the click logic was broken :( turns out only the icon TEXT was clickable not the actual image lol next up: making the whole OS feel cursed. icons glitching out, files changing their own names. 😈
8.5 HOURS LATER: 3D PRINTER WORKS + OS FIXED spent 8.5 solid hours on this and honestly my brain is fried. finally got printhead and hotbed animated with a shader so models build layer by layer. syncing the movement was absolute pain but watching it print is insanely satisfying 🔥 added a bouncy physical print button and a grab system. once it finishes u can actually pick up the printed model as a real physics object finally fixed the annoying stuff: windows got classic win95 headers taskbar has icons and grabbed objects dont clip through walls anymore built a real file explorer reading disk files. It took a long time, but now the file browser reads files directly from the folder on your disk, so when you add a file to the folder, you can open it in the game. opening .stl opens a printer app biggest pain: godots UI anchors for sizing window content. offsets act totally diff depending on edge and nobody warned me >:( next: making the OS cursed. Finally… Maybe… 🥲
DISCORD CLONE + THE HORROR ACTUALLY STARTED built a full discord-style chat app from scratch. typing indicators message bubbles and it looks so sick in the win95 theme also made a win95 mail client . file explorer now reads straight off the real disk so adding content is literally just dropping a file in and the horror system went live. finished a chat, checked my files later, and a text file had silently renamed itself. added a notification sound next: writing the actual story since the skeleton is basically done
SENDING REAL PHOTOS IN CHAT + SLEEP SYSTEM u can now physically take a pic of the 3d print and it saves to disk. in chat u just open the file explorer and send the actual photo. built a working sleep cycle too. walk to bed camera does a nice eyes-closing fade into a NIGHT 2 screen. so the story actually progresses now instead of just looping the same day forever funniest bug: realized my in game file explorer let u type “/” and browse my actual irl computer files. patched it but for like an hour my horror game had a literal zero day vulnerability lol added proper sound design everywhere. next: writing the story for night 3 + 2since all the tools are finally ready 📝
NIGHT 3 FINISHED + MAIN MENU + TERMINAL built the main menu and its honestly my fav part. not a boring menu screen but literally ur monitor in the apartment. night 3 u wake up and the 3d printer is ALREADY running even tho u didnt queue anything and a terminal appeared terminal app has 4 commands - help ps clear and kill oh and the printer is making a hand. scaryyyy 👻 and in night 4 the hadn move into a room next to the livingroom next: night 4 - more body parts I’m sorry for the low quality video but it was too large :(
NIGHT 4 IS NOW THE ENDING cut nights 5-6 and made night 4 the finale instead. it’s tighter and actually scarier than the original 6-night plan would’ve been the thing built from the printed pieces finally shows up in the room. it turns its head to look at you if you get close, then the lights flicker and it’s gone. added a proper scare sequence too - see it once through a window, then somewhere else it’s right behind you. screen goes black next: finishing the ending
THIS IS THE LAST DEVLOG —————————————— finished the ending. you end up seeing everything through a screen from the other side, watching “him” sit down at the desk you’ve been sitting at the whole game. there’s a voice line now too (ElevenLabs), and two different ways it can end depending on what you do in the terminal went through and fixed a genuinely embarrassing bug where photos silently failed to save on a fresh install because the folder never existed. found it the hard way, glad I caught it before shipping it’s live: playable in browser on itch.io, Windows build on GitHub releases this is my last devlog for this one. never made a horror game before this, first version wasn’t scary at all according to a friend, and honestly that stung a bit. rebuilt a good chunk of it because of that. really happy with where it ended up thanks for reading these
Ships:
I shipped my game: DAEMON It’s 2am. Your friend is online. He wants you to print something. ⚠ Browser version can lag — grab the Windows build if you can. The game: first-person psychological horror about a 3D printer, a friend who won’t stop messaging you, and an OS that’s a little too honest about what it sees. Built: a real in-game OS — file explorer reading actual disk files, Discord-style chat, mail, terminal, all Windows 95 style over a gritty PSX world. A working 3D printer with its own physics, shader-based print reveal, and sound. Story written entirely in JSON, no code touched for content. Hardest part: never made horror before. Built the whole tech first, had a friend playtest — verdict: not scary. Rebuilt most of the second half because of it. Proud of: the printer, the OS, and the ending — which flips the camera around so you end up watching yourself through the eyes of the thing you built. Stuck? Check “Files” often, especially after a conversation ends....
|
1793004865.1393566
|
1793091265.1393566
|
|
63635
|
PaperSite by @paper14 | Stardance
|
paper14
|
1
|
2.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-22T13:12:31Z", "hours": 2.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a website and deployed it through GitHub pages. The website has 4 sections with links near the top so the user can quickly navigate to it. The website will be updated alongside any other projects I may do.", "repo": "https://github.com/paper14g/papersite", "demo": "https://paper14g.github.io/papersite/"}]...
|
[{"post_id": 72193, "ts": "202 [{"post_id": 72193, "ts": "2026-09-22T13:05:17Z", "hours": 0.2672, "text": "Done with my site! Although it might be kind of empty, I will often update it with my personal projects, so dont worry!"}, {"post_id": 71611, "ts": "2026-09-21T05:03:32Z", "hours": 0.8344, "text": "still working on making the website look cool! I dont know if i am capable of making any functions out of it yet, but hopefully this site can display some of the cool things I do!"}, {"post_id": 70800, "ts": "2026-09-19T19:43:12Z", "hours": 0.6508, "text": "nearly complete! now, i will work on making the website nice looking and functioning"}, {"post_id": 70411, "ts": "2026-09-19T04:16:16Z", "hours": 0.3839, "text": "i am working on getting the site together! i used to learn a little bit of html from books in primary school so this should be a little bit easier!"}]...
|
Title: PaperSite by @paper14 | Stardance
Devlogs: Title: PaperSite by @paper14 | Stardance
Devlogs:
i am working on getting the site together! i used to learn a little bit of html from books in primary school so this should be a little bit easier!
nearly complete! now, i will work on making the website nice looking and functioning
still working on making the website look cool! I dont know if i am capable of making any functions out of it yet, but hopefully this site can display some of the cool things I do!
Done with my site! Although it might be kind of empty, I will often update it with my personal projects, so dont worry!
Ships:
I made a website and deployed it through GitHub pages. The website has 4 sections with links near the top so the user can quickly navigate to it. The website will be updated alongside any other projects I may do....
|
1792965000.3616583
|
1793051400.3616583
|
|
59397
|
battleship by @senthilnathan_arun | Stardance
|
senthilnathan_arun
|
2
|
6.0
|
9
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-22T13:01:02Z", "hours": 0.0, "multiplier": 1.26, "payout": 0, "blessing": "neutral", "text": "so , in my before ship . the reviewers told that i got low reviews because of my game not opening . so i have fixed it , and if anyone gets that error again because of the reliability of github streamlit apps , which is not good , i have a backup url : https://battleship-game-4serfv4fe6e8keyvliy3e2.streamlit.app/", "repo": "https://github.com/senthilnathanarun15/battleship-game", "demo": "https://senthilnathanarun15.github.io/battleship-game/"}, {"ship_num": 2, "ts": "2026-09-18T15:12:57Z", "hours": 6.0, "multiplier": 1.51, "payout": 9, "blessing": "neutral", "text": "i made a battleship game with streamlit , which is a library of python . in this game , we attack ships with ammo, random guesses and pure luck . i hope you like this game as this is my first project", "repo": "https://github.com/senthilnathanarun15/battleship-game", "demo": "https://senthilnathanarun15.github.io/battleship-game/"}]...
|
[{"post_id": 70938, "ts": "202 [{"post_id": 70938, "ts": "2026-09-20T02:29:51Z", "hours": 0.2978, "text": "i have made a backup web url for my project https://senthilnathanarun15.github.io/battleship-game/"}, {"post_id": 67106, "ts": "2026-09-13T05:09:28Z", "hours": 3.3117, "text": "finally done with the mechanics with random.randinit"}, {"post_id": 64203, "ts": "2026-09-08T13:00:46Z", "hours": 2.3664, "text": "i just got the ui correct , now i am moving on to the logic"}]...
|
Title: battleship by @senthilnathan_arun | Stardan Title: battleship by @senthilnathan_arun | Stardance
Devlogs:
i just got the ui correct , now i am moving on to the logic
finally done with the mechanics with random.randinit
i have made a backup web url for my project https://senthilnathanarun15.github.io/battleship-game/
Ships:
i made a battleship game with streamlit , which is a library of python . in this game , we attack ships with ammo, random guesses and pure luck . i hope you like this game as this is my first project
so , in my before ship . the reviewers told that i got low reviews because of my game not opening . so i have fixed it , and if anyone gets that error again because of the reliability of github streamlit apps , which is not good , i have a backup url : https://battleship-game-4serfv4fe6e8keyvliy3e2.streamlit.app/...
|
1793008202.3954892
|
1793094602.3954892
|
|
64760
|
MY AWESOME SPACE DODGER by @shiyank33 | Stardance
|
shiyank33
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-22T12:00:22Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a space game where you play as the space craft and try your best to avoid the flying planets! During the coding of this game i faced many challenges such as lack of creativity as it took me a while to be creative and think about what to make. To play this game all you have to do is Press A or D to move left and right to dodge planets!", "repo": "https://github.com/shiyank33/My-Awesome-Space-Dodger/blob/main/Project%20Space%20Dodger.sb3", "demo": "https://scratch.mit.edu/projects/1383715264/"}]...
|
[{"post_id": 72173, "ts": "202 [{"post_id": 72173, "ts": "2026-09-22T11:27:57Z", "hours": 1.1336, "text": "This entire project took me a while to finish, its a game on scratch where you play as the space craft, your goal it to dodge as many planets as you can!"}]...
|
Title: MY AWESOME SPACE DODGER by @shiyank33 | Sta Title: MY AWESOME SPACE DODGER by @shiyank33 | Stardance
Devlogs:
This entire project took me a while to finish, its a game on scratch where you play as the space craft, your goal it to dodge as many planets as you can!
Ships:
I made a space game where you play as the space craft and try your best to avoid the flying planets! During the coding of this game i faced many challenges such as lack of creativity as it took me a while to be creative and think about what to make. To play this game all you have to do is Press A or D to move left and right to dodge planets!...
|
1792965115.9365728
|
1793051515.9365728
|
|
7854
|
CometOS by @Aradhana | Stardance
|
Aradhana
|
1
|
39.23
|
48
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-22T11:27:56Z", "hours": 31.0, "multiplier": 1.71, "payout": 48, "blessing": "neutral", "text": "I built a WebOS that was designed to explore a character - the Sorceress Comet, a student at the Arx Nubium - and her fictional world of Alarica. As people use it, they find out more about Comet’s world, thoughts and family. It has a notebook app (where you can write your thoughts), a family tree app (to see a bit more of what Comet’s life is like) and comes with added functionality for the users - a date and time display, and battery meter. Now, the project is finally SHIPPED!", "repo": "https://github.com/dragonloversod051-max/CometOS", "demo": "https://dragonloversod051-max.github.io/CometOS/"}]...
|
[{"post_id": 79292, "ts": "202 [{"post_id": 79292, "ts": "2026-10-13T11:03:42Z", "hours": 8.2306, "text": "Devlog #8 Ok, so this is the FIRST devlog after the ship. Not really happy about how the ship went but oh well. Anyway, so, I added stuff: A Settings App Upgrades to the UI Worked on a sort of dictionary for all the new stuff that I’m introducing (after all, it is CometOS) The Settings App: Ok, so one of the major themes in the feedback I got was there needed to be more apps (since its an OS). So, I added a settings app, as just a basic, customization app. So, you can change the background image, and there’s a bit of design choices as well. I kept it so you need to scroll down to see all the images (some people won’t agree with this, but personally, I really like it. The scrolling feels more interactive and is required for a window size that looks really, really good). Also, the borders of the buttons turn blue when selected, and there obviously also a shadow indication that its a button when you hover over it. UI changes: So this was actually pretty small but looked really cool. I’ve seen on some sites there are just these little elements that blur the background behind them. While I was tinkering with css for the button shading I realized there was a style of filter: blur() . From there I found out about backdrop-filter: blur() and used that in the CometOS welcome window and the top and bottom bars. The dictionary app (name needs workshopping) So this is basically just because CometOS is about a fictional character in a fantasy world, so there needed to be an app that dealt with some words and terms used in other partts of the website (specifically the family tree). I felt there needed to be something to explain it, so, I added this. Its not done, so far I’m just done with one of the Relseiðr pages. Currently this is just hidden with display: none so I can work on functionality first. Challenges: There were really only a few challenges this time. The largest one was actually just getting the seperate visual cues which go ( oh, this is interactive! ) for the button and the image inside. Because I kept accidentally giving the button’s new classList to the image. And thats when I realized event.target and event.currentTarget were different and made for this….. On a side note, omg, display: inline-flex is so helpful! What I’ll work on next: I have now realized that since I’m adding so many apps, I need to add proper, adaptive view bounds. Before this I was using local pixel-specific bounds which were adapted to my viewport, and just not putting it on github, because I had already put in the work for those view bounds a few months ago, and it worked really well for me. So, anyway, I have now decided I need proper view bounds, so definitely going to work on that. Also, heres the new Settings app, and the beginning of the dictionary app."}, {"post_id": 71729, "ts": "2026-09-21T12:19:13Z", "hours": 2.21, "text": "Devlog #7 So, I thought it was ready to be shipped, but it wasn’t. In the final checks, I found out that because I had used pixel - specific drag bounds , while it worked perfectly on my laptop, it didn’t on anyone else’s (since other devices have different viewports, different areas. Some have longer lengths or widths than others, leading drag bounds to potentially be in the middle of the screen). I tinkered with it for a while (enlisting a bit of AI help) , but then realized that there was something about the new code that was messing up the notebook app (the sidebar stuck to the edge of the viewport). And, since there was about only one week left (and exams are starting soon), I decided to not accidentally mess up anything else, and so, deleted the drag bounds - I mean, better to be able to drag windows anywhere than have bounds that completely restrict it, right? - The good part is that even if the window goes out of the viewport somehow, you can just reload the screen to get it all back, which has no real downside since notes autosave. So anyway, now, we are actually , finally ready to ship ! This was what was happening to the notebook app btw"}, {"post_id": 43179, "ts": "2026-08-08T09:26:22Z", "hours": 3.4597, "text": "Devlog #6 We are FINALLY DONE and ready for the FIRST SHIP! Here’s whats new: Added information bubbles for each and every character in the family tree, which can be easily opened and closed. Fixed the selection for icons in the bottom bar: The green highlighted background would also highlight the areas where there were padding which we didn’t want because the icons would then be off center. Fixed this by adding a new transparent div in the middle, so padding is no longer required. Challenges: Fixing the icon selection bug. I played around with box-size for a bit but then chose to just add a transparent div between icons. Getting the information window to move along with the family tree window (as that is draggable). After a lot of testing, I realized I could just keep it inside the div but in positioning, its overflowing, so with an overflow: auto tag, it’s now set up and working! This is a screenshot of how the info bubble would break because it wasn’t in the same div:"}, {"post_id": 38671, "ts": "2026-08-01T05:38:48Z", "hours": 5.8169, "text": "Devlog #5 Ok, so, update: Created the family tree Improved feel of the app (through a visual sign when you hover over a character button) Fully initialized the window for the family tree app (made it closable, draggable, opens with an icon, added drag bounds). Challenges: The family tree image kept going above the icons used to drag and close the window. I put them in a different and experimented with different ways for SOOOO long - turned out I was just missing a position: absolute tag…. There was also a small bug where the buttons would go under the image instead of on it. Here are some pictures of the bugs, since it’s pretty hard to explain:"}, {"post_id": 34516, "ts": "2026-07-25T09:34:28Z", "hours": 0.6922, "text": "Devlog #4 I’ve started the next app - an interactive family tree. Since CometOS is based around Comet, I figured I should add a family tree. So this app is going to have clickable buttons for each member of the family, to give some info. Basically, its a massive lore drop. Here’s the wireframe for the app, and also an entire page I spent planning it because I ran into a few problems…"}, {"post_id": 31185, "ts": "2026-07-19T11:57:03Z", "hours": 12.5381, "text": "Devlog #3 What’s new: Added a bottom bar to store content selection options Added a notes app which is editable (and stored in javascript)-you can add your own notes. Added a save feature to the notes app-log back in anytime and the note is still there. YOU WOULD NOT BELIEVE HOW LONG THIS TOOK ( but, I learned how to save things in localStorage ). Fixed a bug where was at the bottom of the and the .js file and .css file weren’t loading in the live server. Fixed the bug where you lose the handle and the window gets stuck at the top/bottom of the page by making it so you can click through the top and bottom bar. Challenges: I spent a whole afternoon trying to come up with a clever way to avoid putting html in my .js file (because it looked messy), only to end up putting it in my .js file….. MOVING ON, There was some really weird stuff happening with saving notes. Like, I would write stuff, and it would be saved, but in different ’s? So only one was actually editable and the rest were all floating under it. Started to debug in a live server instead of as a file. The html and css files weren’t loading in. I spent so long trying to figure out why, and then realized that should be at the top of the body, not at the bottom ( You know, like an actual head. Wow, thats pretty self-explanatory ). So then, I fixed that and to check if it was working or not, made the background hot pink in css.( AND IT WORKED! And I will never be able to forget that image ). What’s next: Ok, so next, I still have to finish a few things. Make it so that you can’t drag windows past a certain limit (to prevent the background image scrolling and multiplying - learned how to clamp draggable elements to the viewport!). START STEP 5! So since this entire webOS is based around a fictional character-Comet, I think I’ll make an interactive family tree. So, each person has buttons and that leads you to a brief description about them ( and lore. LOTS of lore ). This is how the webOS looked in the test. I’m still not sure how the top bar also turned light pink, but, cool I guess"}, {"post_id": 15523, "ts": "2026-06-25T06:48:06Z", "hours": 1.6658, "text": "Devlog#2 Done with step 3. So now I can open, close and move around the welcome screen window. The cross acts as the close button, and you click and drag the hand part of the window to move it around. So I’ve updated the CometOS text in the top bar to open this window - hence it looks a lot more like a button. I think for the next windows and apps I’m going to make the open button in a side bar. And I finally figured out what classes are! So yeah, for now thats it, but I think by the end of step 4 its going to be a massive update with a lot more things."}, {"post_id": 13644, "ts": "2026-06-22T11:56:42Z", "hours": 4.2733, "text": "Devlog #1 So this is CometOS which is from the mission WebOS 1. It revolves around a fictional character - the Sorceress (in-training) Comet, set in the fictional world of Alarica. So far I’ve finished uptil step 2. So the top bar can track time, and also battery levels and gives custom messages based on the battery. Right now that’s pretty much it but I can’t wait to expand the project and develop the world and everything."}]...
|
Title: CometOS by @Aradhana | Stardance
Devlogs:
Title: CometOS by @Aradhana | Stardance
Devlogs:
Devlog #1 So this is CometOS which is from the mission WebOS 1. It revolves around a fictional character - the Sorceress (in-training) Comet, set in the fictional world of Alarica. So far I’ve finished uptil step 2. So the top bar can track time, and also battery levels and gives custom messages based on the battery. Right now that’s pretty much it but I can’t wait to expand the project and develop the world and everything.
Devlog#2 Done with step 3. So now I can open, close and move around the welcome screen window. The cross acts as the close button, and you click and drag the hand part of the window to move it around. So I’ve updated the CometOS text in the top bar to open this window - hence it looks a lot more like a button. I think for the next windows and apps I’m going to make the open button in a side bar. And I finally figured out what classes are! So yeah, for now thats it, but I think by the end of step 4 its going to be a massive update with a lot more things.
Devlog #3 What’s new: Added a bottom bar to store content selection options Added a notes app which is editable (and stored in javascript)-you can add your own notes. Added a save feature to the notes app-log back in anytime and the note is still there. YOU WOULD NOT BELIEVE HOW LONG THIS TOOK ( but, I learned how to save things in localStorage ). Fixed a bug where was at the bottom of the and the .js file and .css file weren’t loading in the live server. Fixed the bug where you lose the handle and the window gets stuck at the top/bottom of the page by making it so you can click through the top and bottom bar. Challenges: I spent a whole afternoon trying to come up with a clever way to avoid putting html in my .js file (because it looked messy), only to end up putting it in my .js file….. MOVING ON, There was some really weird stuff happening with saving notes. Like, I would write stuff, and it would be saved, but in different ’s? So only one was actually editable and the rest were all floating under it. Started to debug in a live server instead of as a file. The html and css files weren’t loading in. I spent so long trying to figure out why, and then realized that should be at the top of the body, not at the bottom ( You know, like an actual head. Wow, thats pretty self-explanatory ). So then, I fixed that and to check if it was working or not, made the background hot pink in css.( AND IT WORKED! And I will never be able to forget that image ). What’s next: Ok, so next, I still have to finish a few things. Make it so that you can’t drag windows past a certain limit (to prevent the background image scrolling and multiplying - learned how to clamp draggable elements to the viewport!). START STEP 5! So since this entire webOS is based around a fictional character-Comet, I think I’ll make an interactive family tree. So, each person has buttons and that leads you to a brief description about them ( and lore. LOTS of lore ). This is how the webOS looked in the test. I’m still not sure how the top bar also turned light pink, but, cool I guess
Devlog #4 I’ve started the next app - an interactive family tree. Since CometOS is based around Comet, I figured I should add a family tree. So this app is going to have clickable buttons for each member of the family, to give some info. Basically, its a massive lore drop. Here’s the wireframe for the app, and also an entire page I spent planning it because I ran into a few problems…
Devlog #5 Ok, so, update: Created the family tree Improved feel of the app (through a visual sign when you hover over a character button) Fully initialized the window for the family tree app (made it closable, draggable, opens with an icon, added drag bounds). Challenges: The family tree image kept going above the icons used to drag and close the window. I put them in a different and experimented with different ways for SOOOO long - turned out I was just missing a position: absolute tag…. There was also a small bug where the buttons would go under the image instead of on it. Here are some pictures of the bugs, since it’s pretty hard to explain:
Devlog #6 We are FINALLY DONE and ready for the FIRST SHIP! Here’s whats new: Added information bubbles for each and every character in the family tree, which can be easily opened and closed. Fixed the selection for icons in the bottom bar: The green highlighted background would also highlight the areas where there were padding which we didn’t want because the icons would then be off center. Fixed this by adding a new transparent div in the middle, so padding is no longer required. Challenges: Fixing the icon selection bug. I played around with box-size for a bit but then chose to just add a transparent div between icons. Getting the information window to move along with the family tree window (as that is draggable). After a lot of testing, I realized I could just keep it inside the div but in positioning, its overflowing, so with an overflow: auto tag, it’s now set up and working! This is a screenshot of how the info bubble would break because it wasn’t in the same div:
Devlog #7 So, I thought it was ready to be shipped, but it wasn’t. In the final checks, I found out that because I had used pixel - specific drag bounds , while it worked perfectly on my laptop, it didn’t on anyone else’s (since other devices have different viewports, different areas. Some have longer lengths or widths than others, leading drag bounds to potentially be in the middle of the screen). I tinkered with it for a while (enlisting a bit of AI help) , but then realized that there was something about the new code that was messing up the notebook app (the sidebar stuck to the edge of the viewport). And, since there was about only one week left (and exams are starting soon), I decided to not accidentally mess up anything else, and so, deleted the drag bounds - I mean, better to be able to drag windows anywhere than have bounds that completely restrict it, right? - The good part is that even if the window goes out of the viewport somehow, you can just reload the screen to get it all back, which has no real downside since notes autosave. So anyway, now, we are actually , finally ready to ship ! This was what was happening to the notebook app btw
Devlog #8 Ok, so this is the FIRST devlog after the ship. Not really happy about how the ship went but oh well. Anyway, so, I added stuff: A Settings App Upgrades to the UI Worked on a sort of dictionary for all the new stuff that I’m introducing (after all, it is CometOS) The Settings App: Ok, so one of the major themes in the feedback I got was there needed to be more apps (since its an OS). So, I added a settings app, as just a basic, customization app. So, you can change the background image, and there’s a bit of design choices as well. I kept it so you need to scroll down to see all the images (some people won’t agree with this, but personally, I really like it. The scrolling feels more interactive and is required for a window size that looks really, really good). Also, the borders of the buttons turn blue when selected, and there obviously also a shadow indication that its a button when you hover over it. UI changes: So this was actually pretty small but looked really cool. I’ve seen on some sites there are just these little elements that blur the background behind them. While I was tinkering with css for the button shading I realized there was a style of filter: blur() . From there I found out about backdrop-filter: blur() and used that in the CometOS welcome window and the top and bottom bars. The dictionary app (name needs workshopping) So this is basically just because CometOS is about a fictional character in a fantasy world, so there needed to be an app that dealt with some words and terms used in other partts of the website (specifically the family tree). I felt there needed to be something to explain it, so, I added this. Its not done, so far I’m just done with one of the Relseiðr pages. Currently this is just hidden with display: none so I can work on functionality first. Challenges: There were really only a few challenges this time. The largest one was actually just getting the seperate visual cues which go ( oh, this is interactive! ) for the button and the image inside. Because I kept accidentally giving the button’s new classList to the image. And thats when I realized event.target and event.currentTarget were different and made for this….. On a side note, omg, display: inline-flex is so helpful! What I’ll work on next: I have now realized that since I’m adding so many apps, I need to add proper, adaptive view bounds. Before this I was using local pixel-specific bounds which were adapted to my viewport, and just not putting it on github, because I had already put in the work for those view bounds a few months ago, and it worked really well for me. So, anyway, I have now decided I need proper view bounds, so definitely going to work on that. Also, heres the new Settings app, and the beginning of the dictionary app.
Ships:
I built a WebOS that was designed to explore a character - the Sorceress Comet, a student at the Arx Nubium - and her fictional world of Alarica. As people use it, they find out more about Comet’s world, thoughts and family. It has a notebook app (where you can write your thoughts), a family tree app (to see a bit more of what Comet’s life is like) and comes with added functionality for the users - a date and time display, and battery meter. Now, the project is finally SHIPPED!...
|
1793004948.0806434
|
1793091348.0806434
|
|
62775
|
My own site! by @MAyaanBaig2013 | Stardance
|
MAyaanBaig2013
|
1
|
4.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-22T11:09:49Z", "hours": 4.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a mission of my own site.I wasn’t challanging but the placing of the tags was difficult.you can check my demo link", "repo": "https://github.com/DevAyaan123/myownsite2", "demo": "https://devayaan123.github.io/myownsite2/"}]...
|
[{"post_id": 72168, "ts": "202 [{"post_id": 72168, "ts": "2026-09-22T11:08:33Z", "hours": 3.7756, "text": "My Progress I am In the code sometimes stuck!"}]...
|
Title: My own site! by @MAyaanBaig2013 | Stardance Title: My own site! by @MAyaanBaig2013 | Stardance
Devlogs:
My Progress I am In the code sometimes stuck!
Ships:
I made a mission of my own site.I wasn’t challanging but the placing of the tags was difficult.you can check my demo link...
|
1792964940.9883063
|
1793051340.9883063
|
|
60118
|
FluidSim by @AbdurRehman | Stardance
|
AbdurRehman
|
1
|
55.0
|
1027
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-22T10:31:19Z", "hours": 55.0, "multiplier": 18.75, "payout": 1027, "blessing": "neutral", "text": "Well I made a fluid simulation that runs completely on the GPU using WebGPU. Since everything happens on the gpu, like from the physics to the rendering, it can handle tens of thousands of particles in real time in the browser without having performance issues. What was challenging for me was moving everything over to WebGPU since before I was just using plain Three.js and stuff. It’s completely different from WebGL and I had to refactor a lot of code, especially how the sim was structured, and then setting up the rendering system. The other big challenge was just making the water actually look convincing. That took quite a while and a lot of tweaking to make it look at least somewhat realistic. Honestly pretty much how the entire thing turned out. The audio reacts to the physics, the water looks good (or acceptable at the very least), objects float and sink, you can sculpt the terrain, then there are wind gusts and you can interact with the water. Every little thing comes together in a way I’m really happy with. Like this project was just a simple particle test I was making just for fun but in the end I actually enjoyed making and playing around with it. Just open the web page. You’ll need a browser with WebGPU support to run it and the controls are pretty much on the screen. You can adjust sliders and stuff and pretty much play around with everything, including adding your own .glb models. Audio might not play immediately since it takes some time to load in the background.", "repo": "https://github.com/RealAbdurRehman/fluid-simulation", "demo": "https://fluid-simulation-sigma.vercel.app"}]...
|
[{"post_id": 72151, "ts": "202 [{"post_id": 72151, "ts": "2026-09-22T10:16:14Z", "hours": 1.7319, "text": "This is the final dev log. Like I said in the last devlog, the sim was basically feature complete so this dev log is mostly the cleanup and little UI improvements. I cleaned up a bunch of code by like removing dead code that had jut been sitting and I improved how the controls panel looks. Other than that I wrote the README and finalized the repo by adding stuff like the license and I also added a cool looking favicon. And with that, the project is now complete."}, {"post_id": 71772, "ts": "2026-09-21T14:41:21Z", "hours": 9.8517, "text": "I have made a ton of progress since the last devlog. First I added a simple but good looking sky shader which has clouds and a sun, and then hooked up textures on the loaded models so they aren’t just basic colors anymore. And I also added support for loading your own .glb models and they’ll work in the sim. Relatively small changes but they made the scene look a whole lot better and more interactive. Audio was the biggest change and took the most time, but it was also the most fun. There are multiple layers to it, like the general ambience is pretty much layered water sounds like water flowing sounds, foam sound, lapping sound, bubbles, etc that crossfade based on how the fluid is moving. External objects also create sounds like you can hear them splash in and out of the water or when heavy stuff sinks there is kind of a low rumble. There’s also sounds for water splashing on itself, objects colliding around with other objects, etc. There is also a cool underwater effect where if the camera is inside the water stuff get’s muffled and stuff which is really cool. What’s good is that everything is driven by the physics so everything is dynamic and nothing is being faked. Like each sound is created for a reason. After that I added wind to the sim. Like wind is created using gusts which are scheduled procedurally, so you get calm stretches and then a burst of air. I also added another interaction too. You can now create vortexes using V + left click which is kind of fun and adds more interactivity. I also added sculpting to the terrain. Now you can change the terrain to your liking by using different brush modes like: raise, lower, smoothen, flatten. I also optimized particles check with the terrain especially after stuff had become more dynamic though that was pretty easy to do. Some other small polishes I did was to clean up the settings panel thing among other small stuff. The sim is basically feature complete at this point, so next up is cleaning up the UI and then creating a good README."}, {"post_id": 70222, "ts": "2026-09-18T18:56:06Z", "hours": 8.7947, "text": "Since my last dev log I’ve mostly been working on the water’s visuals. First thing I did was to rewrite the screen space fluid rendering implementation and tuned it a bit to make it look way better than before and less like a bunch of stacked balls and I also added realistic looking refractions too. Then I added proper shadows to the scene, which made stuff look more alive. This bumped the visuals up a lot. Then I worked on caustics. This was one of those features that instantly made the water look ten times better. This took a bit of time to get right but eventually I got it to work and it looks good. After that, I added foam to make the water look less flat and blobby. The water, in general, waswas too perfect and so I added noise to the water to fix that. With these changes, there was a noticeable loss of performance so I had to work on that. Along the way I also cleaned up some of the code especially the GUI control panel thingy since it was getting too extensive so I cut down a lot of things. Then I finally added model support. Before you could only use basic shapes like squares, spheres etc. Now I can load in model files, and use them in the simulation which is really cool. There was also this weird bug where objects would disappear when you switched them around but after a bunch of changes in my code I finally fixed the bug. I also fixed other bugs like water kind of acting weird with the boat spawned which too took quite a bit of time to fix. Next I want to do some scene polish like better background, etc and then finally audio. I might also work some more on the object collision physics since I intentionally kept them really simple but I might not. Depends on how lazy I am I guess."}, {"post_id": 69606, "ts": "2026-09-17T12:18:15Z", "hours": 9.1133, "text": "Since my last dev log I’ve been working on terrain. I started with simple noise on a grid so the particles had something cool to fall and interact with rather than a boring flat plane. Then I had the idea of making the terrain a planet like fluid flowing on it and stuff like that. Actually got it working. It just wasn’t as good as I thought it would be. It made the project overly complex and kind of shift the focus towards the terrain instead of the fluid and made it harder to play with it. And also the fluid would obviously spread around over the planet so you couldn’t even see most of the cool stuff. And I spent a lot of time on that but well I eventually reverted and added a seabed in a box. That made the fluid the focus instead of the scenery and stuff and how it turned out in the end kind of looks dope. Well with the new terrain I spent time making it look sandy and good. I also switched from rendering some stuff as wireframes to actual meshes Shoudl’ve done this before but back then I guess I got lazy even though most of the stuff for that was already set up Water is really what’s been improved. Particles were just tiny colored spheres before, which I guess is okay for debugging but doesn’t look like water. I’ve been building something called screen space fluid rendering instead which just renders every particle as a billboard that always looks at/faces the camera and does some other cool stuff behind. Mine works I guess but I still have to improve it a lot. Like I guess the fluid looks more like water but still it looks like a bunch of balls so yeah that’s what I want to focus on next. After that, I’ll add proper collisions between objects, then scene polish, then audio. Audio is something I am excited for!"}, {"post_id": 68014, "ts": "2026-09-14T11:35:02Z", "hours": 6.3853, "text": "Since my last dev log, I made a pretty big change by making the fluid interact with actual 3D objects instead of just the bounds. First, I cleaned some stuff up like spawning the particles in a neat cube among other little stuff. Then I decided to refactor how stuff was being rendered. Before, I had two separate canvases, one WebGL canvas for the scene and one WebGPU canvas for the particles, because I was lazy implementing them and so I merged them into one since. That didn’t make too big of a difference visually but it makes it easier to add other stuff later. The main feature was getting the fluid to actually flow around objects. The particles can now collide with not only boxes and spheres but any complex shape I place in the scene. The torus knot is the only complex shape set up so far, but the same system will work for pretty much anything I add later. The other half was making the objects feel realistic. Like at first, they were just static test objects and the fluid could only move around them but not push them so they could move. I added proper physics to the objects so they float and move around realistically in the water and pretty much react to it. Getting this to work took quite a while like objects would spin violently when in contact with the water or bobbing up and down non stop but I eventually got it to work. Next up is pretty much the biggest change yet (at least visually). I want to remove the container and add real terrain over which the fluid can realistically flow over and stuff. Most of the foundation for this change is pretty much setup and the biggest change is to actually generate the terrain. After that I want to improve the physics of the objects. Right now the physics are like deliberately really simple like objects collide with the container only and can’t interact with other objects and the rotations aren’t even handled well. Once there is a terrain, then I’ll work on them pretty much."}, {"post_id": 67166, "ts": "2026-09-13T07:29:00Z", "hours": 9.1594, "text": "Since my last dev log, I’ve made quite a few changes to the fluid simulation which make it look completely different from the last dev log. First, I added interaction with the particles, which makes things a bit fun but its real purpose was to make testing the simulation easier. After that, I spent some time tuning and improving the physics. I added stuff like viscosity and a repulsion force between particles, which made the particles behave more like an actual fluid and add more customisation. While working on the physics, I also optimized the SPH simulation. I combined some of the neighbor searches and reduced unnecessary allocations happening every frame. This was pretty simple and made quite a difference. Once the basic simulation was good enough, I decided to move on to WebGP to really make stuff run smoothly. Both the fluid simulation and particle rendering now run through WebGPU, which gives me a much better foundation for scaling the simulation to larger numbers of particles. Like before the simulation could not run smoothly at around 4000 particles while now I can go up to tens of thousands of particles and still have really good performance (unless the particles are too squished up). After that, I finally started converting the simulation from 2D to 3D. This was relatively simple as I just had to go around the code changing Vector2s into Vector3s and accounting for the z axis but this made some other underlying issues more prominent. Like one of the biggest issues was particles stacking up against the boundaries walls that would repel other particles. I fixed that issue and made several other changes to get the 3D simulation behaving more naturally. At this point, the project has gone quite a bit beyond the small Three.js experiment I originally started with. What I want to do next is to make the particles react to other objects and shapes in the environment. I want to try and make it eventually work with more complex shapes as well, so the fluid can flow around and interact with actual 3D objects rather than being restricted to simple boundaries. After which I’ll make the fluid look like water instead of a bunch of balls flowing around and then work on the environment."}, {"post_id": 65881, "ts": "2026-09-11T10:01:05Z", "hours": 9.7228, "text": "I started working on a small fluid simulation in Three.js just for learning. Originally, this was really just meant to be a test project and something fun to mess around with, but after working on it a bunch I decided I want to keep developing it and eventually turn it into something interesting. So far I’ve built basic SPH simulation and got particles interacting with each other. I also implemented spatial hashing to make everything more efficient which just avoids checking every particle against every other particle. This improved the performance a lot especially with a lot of particles. I also added configurable simulation parameters such as gravity, pressure, particle count, etc to make testing easier. I also worked on the particles like befoe they were just blue circles but right now they change their color based on speed which I implemented by adding a shader. Right now, it still needs a bunch of work. There are bugs I need to fix and generally make the physics better. Next, I want to make the particles interactive something like click to move them type thing for testing. After, I’ll work on improving the physics, fixing bugs, and finally make stuff 3D."}]...
|
Title: FluidSim by @AbdurRehman | Stardance
Devlo Title: FluidSim by @AbdurRehman | Stardance
Devlogs:
I started working on a small fluid simulation in Three.js just for learning. Originally, this was really just meant to be a test project and something fun to mess around with, but after working on it a bunch I decided I want to keep developing it and eventually turn it into something interesting. So far I’ve built basic SPH simulation and got particles interacting with each other. I also implemented spatial hashing to make everything more efficient which just avoids checking every particle against every other particle. This improved the performance a lot especially with a lot of particles. I also added configurable simulation parameters such as gravity, pressure, particle count, etc to make testing easier. I also worked on the particles like befoe they were just blue circles but right now they change their color based on speed which I implemented by adding a shader. Right now, it still needs a bunch of work. There are bugs I need to fix and generally make the physics better. Next, I want to make the particles interactive something like click to move them type thing for testing. After, I’ll work on improving the physics, fixing bugs, and finally make stuff 3D.
Since my last dev log, I’ve made quite a few changes to the fluid simulation which make it look completely different from the last dev log. First, I added interaction with the particles, which makes things a bit fun but its real purpose was to make testing the simulation easier. After that, I spent some time tuning and improving the physics. I added stuff like viscosity and a repulsion force between particles, which made the particles behave more like an actual fluid and add more customisation. While working on the physics, I also optimized the SPH simulation. I combined some of the neighbor searches and reduced unnecessary allocations happening every frame. This was pretty simple and made quite a difference. Once the basic simulation was good enough, I decided to move on to WebGP to really make stuff run smoothly. Both the fluid simulation and particle rendering now run through WebGPU, which gives me a much better foundation for scaling the simulation to larger numbers of particles. Like before the simulation could not run smoothly at around 4000 particles while now I can go up to tens of thousands of particles and still have really good performance (unless the particles are too squished up). After that, I finally started converting the simulation from 2D to 3D. This was relatively simple as I just had to go around the code changing Vector2s into Vector3s and accounting for the z axis but this made some other underlying issues more prominent. Like one of the biggest issues was particles stacking up against the boundaries walls that would repel other particles. I fixed that issue and made several other changes to get the 3D simulation behaving more naturally. At this point, the project has gone quite a bit beyond the small Three.js experiment I originally started with. What I want to do next is to make the particles react to other objects and shapes in the environment. I want to try and make it eventually work with more complex shapes as well, so the fluid can flow around and interact with actual 3D objects rather than being restricted to simple boundaries. After which I’ll make the fluid look like water instead of a bunch of balls flowing around and then work on the environment.
Since my last dev log, I made a pretty big change by making the fluid interact with actual 3D objects instead of just the bounds. First, I cleaned some stuff up like spawning the particles in a neat cube among other little stuff. Then I decided to refactor how stuff was being rendered. Before, I had two separate canvases, one WebGL canvas for the scene and one WebGPU canvas for the particles, because I was lazy implementing them and so I merged them into one since. That didn’t make too big of a difference visually but it makes it easier to add other stuff later. The main feature was getting the fluid to actually flow around objects. The particles can now collide with not only boxes and spheres but any complex shape I place in the scene. The torus knot is the only complex shape set up so far, but the same system will work for pretty much anything I add later. The other half was making the objects feel realistic. Like at first, they were just static test objects and the fluid could only move around them but not push them so they could move. I added proper physics to the objects so they float and move around realistically in the water and pretty much react to it. Getting this to work took quite a while like objects would spin violently when in contact with the water or bobbing up and down non stop but I eventually got it to work. Next up is pretty much the biggest change yet (at least visually). I want to remove the container and add real terrain over which the fluid can realistically flow over and stuff. Most of the foundation for this change is pretty much setup and the biggest change is to actually generate the terrain. After that I want to improve the physics of the objects. Right now the physics are like deliberately really simple like objects collide with the container only and can’t interact with other objects and the rotations aren’t even handled well. Once there is a terrain, then I’ll work on them pretty much.
Since my last dev log I’ve been working on terrain. I started with simple noise on a grid so the particles had something cool to fall and interact with rather than a boring flat plane. Then I had the idea of making the terrain a planet like fluid flowing on it and stuff like that. Actually got it working. It just wasn’t as good as I thought it would be. It made the project overly complex and kind of shift the focus towards the terrain instead of the fluid and made it harder to play with it. And also the fluid would obviously spread around over the planet so you couldn’t even see most of the cool stuff. And I spent a lot of time on that but well I eventually reverted and added a seabed in a box. That made the fluid the focus instead of the scenery and stuff and how it turned out in the end kind of looks dope. Well with the new terrain I spent time making it look sandy and good. I also switched from rendering some stuff as wireframes to actual meshes Shoudl’ve done this before but back then I guess I got lazy even though most of the stuff for that was already set up Water is really what’s been improved. Particles were just tiny colored spheres before, which I guess is okay for debugging but doesn’t look like water. I’ve been building something called screen space fluid rendering instead which just renders every particle as a billboard that always looks at/faces the camera and does some other cool stuff behind. Mine works I guess but I still have to improve it a lot. Like I guess the fluid looks more like water but still it looks like a bunch of balls so yeah that’s what I want to focus on next. After that, I’ll add proper collisions between objects, then scene polish, then audio. Audio is something I am excited for!
Since my last dev log I’ve mostly been working on the water’s visuals. First thing I did was to rewrite the screen space fluid rendering implementation and tuned it a bit to make it look way better than before and less like a bunch of stacked balls and I also added realistic looking refractions too. Then I added proper shadows to the scene, which made stuff look more alive. This bumped the visuals up a lot. Then I worked on caustics. This was one of those features that instantly made the water look ten times better. This took a bit of time to get right but eventually I got it to work and it looks good. After that, I added foam to make the water look less flat and blobby. The water, in general, waswas too perfect and so I added noise to the water to fix that. With these changes, there was a noticeable loss of performance so I had to work on that. Along the way I also cleaned up some of the code especially the GUI control panel thingy since it was getting too extensive so I cut down a lot of things. Then I finally added model support. Before you could only use basic shapes like squares, spheres etc. Now I can load in model files, and use them in the simulation which is really cool. There was also this weird bug where objects would disappear when you switched them around but after a bunch of changes in my code I finally fixed the bug. I also fixed other bugs like water kind of acting weird with the boat spawned which too took quite a bit of time to fix. Next I want to do some scene polish like better background, etc and then finally audio. I might also work some more on the object collision physics since I intentionally kept them really simple but I might not. Depends on how lazy I am I guess.
I have made a ton of progress since the last devlog. First I added a simple but good looking sky shader which has clouds and a sun, and then hooked up textures on the loaded models so they aren’t just basic colors anymore. And I also added support for loading your own .glb models and they’ll work in the sim. Relatively small changes but they made the scene look a whole lot better and more interactive. Audio was the biggest change and took the most time, but it was also the most fun. There are multiple layers to it, like the general ambience is pretty much layered water sounds like water flowing sounds, foam sound, lapping sound, bubbles, etc that crossfade based on how the fluid is moving. External objects also create sounds like you can hear them splash in and out of the water or when heavy stuff sinks there is kind of a low rumble. There’s also sounds for water splashing on itself, objects colliding around with other objects, etc. There is also a cool underwater effect where if the camera is inside the water stuff get’s muffled and stuff which is really cool. What’s good is that everything is driven by the physics so everything is dynamic and nothing is being faked. Like each sound is created for a reason. After that I added wind to the sim. Like wind is created using gusts which are scheduled procedurally, so you get calm stretches and then a burst of air. I also added another interaction too. You can now create vortexes using V + left click which is kind of fun and adds more interactivity. I also added sculpting to the terrain. Now you can change the terrain to your liking by using different brush modes like: raise, lower, smoothen, flatten. I also optimized particles check with the terrain especially after stuff had become more dynamic though that was pretty easy to do. Some other small polishes I did was to clean up the settings panel thing among other small stuff. The sim is basically feature complete at this point, so next up is cleaning up the UI and then creating a good README.
This is the final dev log. Like I said in the last devlog, the sim was basically feature complete so this dev log is mostly the cleanup and little UI improvements. I cleaned up a bunch of code by like removing dead code that had jut been sitting and I improved how the controls panel looks. Other than that I wrote the README and finalized the repo by adding stuff like the license and I also added a cool looking favicon. And with that, the project is now complete.
Ships:
Well I made a fluid simulation that runs completely on the GPU using WebGPU. Since everything happens on the gpu, like from the physics to the rendering, it can handle tens of thousands of particles in real time in the browser without having performance issues. What was challenging for me was moving everything over to WebGPU since before I was just using plain Three.js and stuff. It’s completely different from WebGL and I had to refactor a lot of code, especially how the sim was structured, and then setting up the rendering system. The other big challenge was just making the water actually look convincing. That took quite a while and a lot of tweaking to make it look at least somewhat realistic. Honestly pretty much how the entire thing turned out. The audio reacts to the physics, the water looks good (or acceptable at the very least), objects float and sink, you can sculpt the terrain, then there are wind gusts and you can interact with the water. Every little thing comes together in a way I’m really happy with. Like this project was just a simple particle test I was making just for fun but in the end I actually enjoyed making and playing around with it. Just open the web page. You’ll need a browser with WebGPU support to run it and the controls are pretty much on the screen. You can adjust sliders and stuff and pretty much play around with everything, including adding your own .glb models. Audio might not play immediately since it takes some time to load in the background....
|
1793055138.3999908
|
1793141538.3999908
|
|
64566
|
Aniverse by @Obito | Stardance
|
Obito
|
1
|
3.6
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-22T10:25:07Z", "hours": 2.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "i created a webos named Aniverse which is in the theme of Obito uchiha and the major problem i faced during this the deploying it as it open smoothly as a html in my browser but when i deployed it into a website its backgroud goes white which made me more frustated. But, finally i made it.", "repo": "https://github.com/tharunkumarCYSEC/aniverse-project-", "demo": "https://aniverse-project.vercel.app/"}]...
|
[{"post_id": 72581, "ts": "202 [{"post_id": 72581, "ts": "2026-09-23T08:48:55Z", "hours": 0.4878, "text": "finally in my urge to rush in the rewrote the code manually , my coding hits the sky rocket. however, i,m now done with my styles."}, {"post_id": 72571, "ts": "2026-09-23T08:09:12Z", "hours": 1.1133, "text": "Naah bro! I finally rewrote the full code of my html file and i also add some new features ideas to this file. its totally fine for me to add some new it really great. The only thing that sucks is hackatime tracker tracking the less time than the actual time i spend (It shows 1.06hours but logged for 3 hours)"}, {"post_id": 72123, "ts": "2026-09-22T07:17:48Z", "hours": 0.2583, "text": "Done! Finally, I made it. Cleaned up the code, pushed everything over to GitHub, and got it fully deployed live on Vercel. Added the README and double-checked all the links. Super hyped with how this turned out, check out the demo"}, {"post_id": 72120, "ts": "2026-09-22T06:55:20Z", "hours": 0.2511, "text": "Spent today grinding out the actual functionality. Added drag-and-drop windows, a persistent top bar, real-time clock, and some slick app shortcuts. CSS styling took forever to get looking clean, but the Obito vibe is finally coming together."}, {"post_id": 72117, "ts": "2026-09-22T06:20:09Z", "hours": 1.1831, "text": "Yo! Started working on my own web-based OS themed entirely around Obito Uchiha. Got the base HTML, CSS, and JS boilerplate ready and started messing around with the desktop layout and styling to get that aesthetic right."}]...
|
Title: Aniverse by @Obito | Stardance
Devlogs:
Yo Title: Aniverse by @Obito | Stardance
Devlogs:
Yo! Started working on my own web-based OS themed entirely around Obito Uchiha. Got the base HTML, CSS, and JS boilerplate ready and started messing around with the desktop layout and styling to get that aesthetic right.
Spent today grinding out the actual functionality. Added drag-and-drop windows, a persistent top bar, real-time clock, and some slick app shortcuts. CSS styling took forever to get looking clean, but the Obito vibe is finally coming together.
Done! Finally, I made it. Cleaned up the code, pushed everything over to GitHub, and got it fully deployed live on Vercel. Added the README and double-checked all the links. Super hyped with how this turned out, check out the demo
Naah bro! I finally rewrote the full code of my html file and i also add some new features ideas to this file. its totally fine for me to add some new it really great. The only thing that sucks is hackatime tracker tracking the less time than the actual time i spend (It shows 1.06hours but logged for 3 hours)
finally in my urge to rush in the rewrote the code manually , my coding hits the sky rocket. however, i,m now done with my styles.
Ships:
i created a webos named Aniverse which is in the theme of Obito uchiha and the major problem i faced during this the deploying it as it open smoothly as a html in my browser but when i deployed it into a website its backgroud goes white which made me more frustated. But, finally i made it....
|
1792965093.475433
|
1793051493.475433
|
|
64435
|
Attendance tracker by @aryanbhatnagar | Stardance
|
aryanbhatnagar
|
1
|
2.0
|
3
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-22T09:37:13Z", "hours": 2.0, "multiplier": 1.95, "payout": 3, "blessing": "neutral", "text": "An attendance calculator in which you just enter number of lectures you have attended and total number of lectures held. The website will calculate your attendance and will also give you the number of lectures you can bunk to maintain a specific percentage of attendance. How to run Enter number of lectures attended. Enter number of total lectures held. Enter percentage of attendance you want to maintain. Click “Calculate Attendance”. The website gives you - Attendance in percentage. If your attendance is below required attendance , it gives you the amount of lectures you need to attend to achieve the desired attendance. If your attendance is above required attendance, it gives you the number of lectures you can bunk to maintain that much attendance.", "repo": "https://github.com/aryanbhatnagar0102/Attendance_Calculator", "demo": "https://attendance-calculator-five.vercel.app/"}]...
|
[{"post_id": 72140, "ts": "202 [{"post_id": 72140, "ts": "2026-09-22T09:27:30Z", "hours": 1.7317, "text": "It is an attendance tracker which calculates your attendance and tells you the number of bunks you have. I have completed it and deployed it."}]...
|
Title: Attendance tracker by @aryanbhatnagar | Sta Title: Attendance tracker by @aryanbhatnagar | Stardance
Devlogs:
It is an attendance tracker which calculates your attendance and tells you the number of bunks you have. I have completed it and deployed it.
Ships:
An attendance calculator in which you just enter number of lectures you have attended and total number of lectures held. The website will calculate your attendance and will also give you the number of lectures you can bunk to maintain a specific percentage of attendance. How to run Enter number of lectures attended. Enter number of total lectures held. Enter percentage of attendance you want to maintain. Click “Calculate Attendance”. The website gives you - Attendance in percentage. If your attendance is below required attendance , it gives you the amount of lectures you need to attend to achieve the desired attendance. If your attendance is above required attendance, it gives you the number of lectures you can bunk to maintain that much attendance....
|
1792965074.8928692
|
1793051474.8928692
|
|
64269
|
Pocket Screw by @Tennis-Legend | Stardance
|
Tennis-Legend
|
1
|
2.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-22T07:26:49Z", "hours": 2.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a Python Slack bot with three commands: /clock, /remindme, and /whatstheweather. The hardest part was getting each command to work properly and making sure the bot could respond to users through DMs. I also had to work out how to keep the bot running when my laptop isn’t on, which meant setting it up on a cloud host. I’m most proud of having three different useful commands working together in one bot. I also added error handling for things like missing commands, invalid reminder times and weather requests that don’t work. To test it, use /clock, /remindme 1 test reminder, or /whatstheweather Sydney in Slack. The bot will respond through DMs, which can be found under Activities.", "repo": "https://github.com/tennis-legend1/Slack-Bot", "demo": "https://hackclub.enterprise.slack.com/archives/C0P5NE354"}]...
|
[{"post_id": 72124, "ts": "202 [{"post_id": 72124, "ts": "2026-09-22T07:24:15Z", "hours": 0.3458, "text": "Devlog 3 Went through the pain of trying to hsot it 24/7, but got there! Added README.md and other files that I needed."}, {"post_id": 71668, "ts": "2026-09-21T08:33:30Z", "hours": 0.8911, "text": "Devlog 2 Once /clock was working, I started adding the other two commands. I wanted each command to do something different so the bot would meet the requirement of having at least three functions rather than having three commands that were basically the same. The first one I added was /remindme. The command takes a number of minutes followed by some text, for example /remindme 5 Finish my homework. I used split(maxsplit=1) so that the first part can be treated as the time while everything after it stays as the reminder message. For the actual delay, I used Python’s threading.Timer. This lets the bot continue running normally while it waits for the reminder. When the timer finishes, the bot sends a DM to the person who created the reminder. I then added /weather. Instead of using an API that needs an account/API key, I used the free wttr.in service. The city is taken directly from what the user types after the command and the response is sent back to the person as a DM. After adding both commands, I tested different inputs, including leaving out the city for the weather command and entering something that wasn’t a number for the reminder. This helped me add some basic messages for incorrect input instead of letting the program crash."}, {"post_id": 71593, "ts": "2026-09-21T03:48:49Z", "hours": 0.8636, "text": "Devlog 1 I started by getting the basic Slack Bolt app running through Socket Mode. I chose Socket Mode because I wanted to be able to test the bot directly from my computer without having to set up a public server first. For my first actual command, I made /clock. I wanted this to be slightly more useful than just displaying the computer’s time, so I used Slack’s user information to find the timezone of whoever ran the command. This means the command doesn’t need a timezone written into the code and should work for different users. I had to use users_info to get the user’s profile and then use the tz value from it. After getting the timezone, Python’s zoneinfo module can convert the current time to the correct local time. I tested the command in Slack and checked that the time it returned matched my timezone. The ‘hard’ part was getting the bot to actually give the time, but it turns out it was giving it to me after all, I was just looking in the wrong spot 😆."}]...
|
Title: Pocket Screw by @Tennis-Legend | Stardance
Title: Pocket Screw by @Tennis-Legend | Stardance
Devlogs:
Devlog 1 I started by getting the basic Slack Bolt app running through Socket Mode. I chose Socket Mode because I wanted to be able to test the bot directly from my computer without having to set up a public server first. For my first actual command, I made /clock. I wanted this to be slightly more useful than just displaying the computer’s time, so I used Slack’s user information to find the timezone of whoever ran the command. This means the command doesn’t need a timezone written into the code and should work for different users. I had to use users_info to get the user’s profile and then use the tz value from it. After getting the timezone, Python’s zoneinfo module can convert the current time to the correct local time. I tested the command in Slack and checked that the time it returned matched my timezone. The ‘hard’ part was getting the bot to actually give the time, but it turns out it was giving it to me after all, I was just looking in the wrong spot 😆.
Devlog 2 Once /clock was working, I started adding the other two commands. I wanted each command to do something different so the bot would meet the requirement of having at least three functions rather than having three commands that were basically the same. The first one I added was /remindme. The command takes a number of minutes followed by some text, for example /remindme 5 Finish my homework. I used split(maxsplit=1) so that the first part can be treated as the time while everything after it stays as the reminder message. For the actual delay, I used Python’s threading.Timer. This lets the bot continue running normally while it waits for the reminder. When the timer finishes, the bot sends a DM to the person who created the reminder. I then added /weather. Instead of using an API that needs an account/API key, I used the free wttr.in service. The city is taken directly from what the user types after the command and the response is sent back to the person as a DM. After adding both commands, I tested different inputs, including leaving out the city for the weather command and entering something that wasn’t a number for the reminder. This helped me add some basic messages for incorrect input instead of letting the program crash.
Devlog 3 Went through the pain of trying to hsot it 24/7, but got there! Added README.md and other files that I needed.
Ships:
I made a Python Slack bot with three commands: /clock, /remindme, and /whatstheweather. The hardest part was getting each command to work properly and making sure the bot could respond to users through DMs. I also had to work out how to keep the bot running when my laptop isn’t on, which meant setting it up on a cloud host. I’m most proud of having three different useful commands working together in one bot. I also added error handling for things like missing commands, invalid reminder times and weather requests that don’t work. To test it, use /clock, /remindme 1 test reminder, or /whatstheweather Sydney in Slack. The bot will respond through DMs, which can be found under Activities....
|
1792965057.0486307
|
1793051457.0486307
|
|
59674
|
my APOD site by @lokeshh_rao1 | Stardance
|
lokeshh_rao1
|
1
|
2.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-22T07:02:43Z", "hours": 2.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a nasa image fetching website… The most challenging and the part I feed good that i made is date logger which enables us to view data from previous days… :)", "repo": "https://github.com/Loks1601/NASA-APOD", "demo": "https://loks1601.github.io/NASA-APOD/"}]...
|
[{"post_id": 69510, "ts": "202 [{"post_id": 69510, "ts": "2026-09-17T06:36:43Z", "hours": 0.6089, "text": "So for the next good feature of my website, I figured out to add a date explorer to explore the nasa image data from every day from 16/06/1995"}, {"post_id": 65280, "ts": "2026-09-10T09:31:41Z", "hours": 0.5264, "text": "Completed the basic website following the tutorial and have brushed up wit the basics of java script and css…"}, {"post_id": 65175, "ts": "2026-09-10T03:44:58Z", "hours": 0.7103, "text": "Completed the setup following the tutorial and started with java script drafting…"}]...
|
Title: my APOD site by @lokeshh_rao1 | Stardance
Title: my APOD site by @lokeshh_rao1 | Stardance
Devlogs:
Completed the setup following the tutorial and started with java script drafting…
Completed the basic website following the tutorial and have brushed up wit the basics of java script and css…
So for the next good feature of my website, I figured out to add a date explorer to explore the nasa image data from every day from 16/06/1995
Ships:
I made a nasa image fetching website… The most challenging and the part I feed good that i made is date logger which enables us to view data from previous days… :)...
|
1793008230.537051
|
1793094630.537051
|
|
34552
|
PocketXI by @abeermaheshwari09 | Stardance
|
abeermaheshwari09
|
1
|
21.35
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-22T05:31:44Z", "hours": 21.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "This was initially a school project that had the basic functionality of a football game (local multiplayer / 2 player mode) with little to no other features. I transformed it into a way better game than it was before by adding an online database for account and career saving, online multiplayer, and a massive menu theme refresh, with a few accessibility features as well. In my 2nd last devlog, the web version had a mouse positioning mismatch, which took me ages to fix as it was due to pyautogui messing with the resolutions, however this led to another bug where fade in-out transitions were freezing the game on browser. I had to use AI to fix this as I spent over two hours essentially messing up my code. I am proud of the cloud hosted services that my game provides as they are very fast and seamless (even though it’s hosted on a free oracle compute instance!), while also being stored, and communicated securely (via hashing, cryptography and cloudflare tunneling). To test the project, you can simply go to the demo website linked, or clone the repository. If cloning the repo, make sure python (duh), pygame, and cryptography libraries are installed.", "repo": "https://github.com/Abeer-Maheshwari/PocketXI-Dev", "demo": "https://abeer-maheshwari.github.io/PocketXI-Dev/"}]...
|
[{"post_id": 72162, "ts": "202 [{"post_id": 72162, "ts": "2026-09-22T10:52:58Z", "hours": 0.3483, "text": "Adblock blocks outgoing connection (required for communicating to cloud db as I’m using a free domain from duckdns). Added notification to inform user to disable it. (works afterwards)"}, {"post_id": 72096, "ts": "2026-09-22T05:08:07Z", "hours": 5.0622, "text": "BUG FIXES + CLOUD DB UPDATE Bug Fixes: Fixed mouse positioning issue in browsers Fixed multiplayer rooms not being hosted on browser Removed Transitions on browser as they were extremely buggy. Move locally hosted data to a cloud-hosted DB Updated Readme Fixed Transitions freezing on browser. Used AI to fix as it was driving me nuts. Fixed resolution mismatch between browser and desktop game versions Added player markers onscreen for multiplayer (and local) so that it is easier to identify your sprite. Hopefully Ready to Ship!"}, {"post_id": 69131, "ts": "2026-09-16T13:16:54Z", "hours": 5.4778, "text": "MASSIVE QOL + BUG FIXES UPDATE New features: Settings now saves locally, and doesn’t reset everytime the program is launcher - Autosaves on click New colour palette Scaled match timer to 90 minutes (still 5 minutes irl), and increments instead of counting down. Fade-in/out transitions between screens and proper loading icon for starting a match, Controls/Keybinds in pause menu and settings menu Can now toggle AI on/off for each player New font (claude font cause it looks sick) Dynamic window sizing (hopefully) Updated Scoreboard / HUD - more readable/better colour palette Updated pause menu - includes game controls Added Bugs to fix later Bug fixes: Web WASM fixed - cloudflare tunnelling on vps Fixed notification bugs Fixed missing icon for return buttons (rendered arrow now) pygbag now uses hidpi on browsers and pygame uses hidpi on windows (sadly not macos because pygame) Now uses vsync Utilises Doublebuf for opengl or hwsurface hopefully 1080p instead of 720p. Upcoming Features Massive graphics overhaul (and animations) Massive audio overhaul More settings such as graphics and keybind remapping More multiplayer QOL updates. Move locally hosted data to a cloud DB."}, {"post_id": 48451, "ts": "2026-08-16T20:01:29Z", "hours": 6.5867, "text": "ONLINE MULTIPLAYER UPDATE!!! Added room based multiplayer system. Added Features: relay server is hosted on an free oracle vps room based -> multiple sessions can be running at the same time supports both web and desktop version of the game can join other people’s rooms via a 4 letter code game data is saved on both user profiles. Next update: move all user data from being stored locally to a cloud hosted db. fix pause menu not syncing between players (multiplayer) fix exit match not working on multiplayer few more, qol bug fixes"}, {"post_id": 46800, "ts": "2026-08-14T09:40:14Z", "hours": 0.6881, "text": "Fixed stuttering audio by forcing sample rate to 24khz. Fixed audio slider not working and some other minor bugs."}, {"post_id": 46473, "ts": "2026-08-13T18:26:59Z", "hours": 0.9603, "text": "Added support for pygbag so that the game can be hosted on github. Sound disabled as it was stuttering in the web build. Demo link will be published soon."}, {"post_id": 46183, "ts": "2026-08-13T07:10:18Z", "hours": 1.9819, "text": "Updated Login, Main Menu, and Pause Menu Screens so that they look more readable and usable."}, {"post_id": 45268, "ts": "2026-08-11T16:52:07Z", "hours": 0.3728, "text": "Button hover effect added, working volume/AI difficulty sliders. Also added working pause menu (placeholder)."}]...
|
Title: PocketXI by @abeermaheshwari09 | Stardance
Title: PocketXI by @abeermaheshwari09 | Stardance
Devlogs:
Button hover effect added, working volume/AI difficulty sliders. Also added working pause menu (placeholder).
Updated Login, Main Menu, and Pause Menu Screens so that they look more readable and usable.
Added support for pygbag so that the game can be hosted on github. Sound disabled as it was stuttering in the web build. Demo link will be published soon.
Fixed stuttering audio by forcing sample rate to 24khz. Fixed audio slider not working and some other minor bugs.
ONLINE MULTIPLAYER UPDATE!!! Added room based multiplayer system. Added Features: relay server is hosted on an free oracle vps room based -> multiple sessions can be running at the same time supports both web and desktop version of the game can join other people’s rooms via a 4 letter code game data is saved on both user profiles. Next update: move all user data from being stored locally to a cloud hosted db. fix pause menu not syncing between players (multiplayer) fix exit match not working on multiplayer few more, qol bug fixes
MASSIVE QOL + BUG FIXES UPDATE New features: Settings now saves locally, and doesn’t reset everytime the program is launcher - Autosaves on click New colour palette Scaled match timer to 90 minutes (still 5 minutes irl), and increments instead of counting down. Fade-in/out transitions between screens and proper loading icon for starting a match, Controls/Keybinds in pause menu and settings menu Can now toggle AI on/off for each player New font (claude font cause it looks sick) Dynamic window sizing (hopefully) Updated Scoreboard / HUD - more readable/better colour palette Updated pause menu - includes game controls Added Bugs to fix later Bug fixes: Web WASM fixed - cloudflare tunnelling on vps Fixed notification bugs Fixed missing icon for return buttons (rendered arrow now) pygbag now uses hidpi on browsers and pygame uses hidpi on windows (sadly not macos because pygame) Now uses vsync Utilises Doublebuf for opengl or hwsurface hopefully 1080p instead of 720p. Upcoming Features Massive graphics overhaul (and animations) Massive audio overhaul More settings such as graphics and keybind remapping More multiplayer QOL updates. Move locally hosted data to a cloud DB.
BUG FIXES + CLOUD DB UPDATE Bug Fixes: Fixed mouse positioning issue in browsers Fixed multiplayer rooms not being hosted on browser Removed Transitions on browser as they were extremely buggy. Move locally hosted data to a cloud-hosted DB Updated Readme Fixed Transitions freezing on browser. Used AI to fix as it was driving me nuts. Fixed resolution mismatch between browser and desktop game versions Added player markers onscreen for multiplayer (and local) so that it is easier to identify your sprite. Hopefully Ready to Ship!
Adblock blocks outgoing connection (required for communicating to cloud db as I’m using a free domain from duckdns). Added notification to inform user to disable it. (works afterwards)
Ships:
This was initially a school project that had the basic functionality of a football game (local multiplayer / 2 player mode) with little to no other features. I transformed it into a way better game than it was before by adding an online database for account and career saving, online multiplayer, and a massive menu theme refresh, with a few accessibility features as well. In my 2nd last devlog, the web version had a mouse positioning mismatch, which took me ages to fix as it was due to pyautogui messing with the resolutions, however this led to another bug where fade in-out transitions were freezing the game on browser. I had to use AI to fix this as I spent over two hours essentially messing up my code. I am proud of the cloud hosted services that my game provides as they are very fast and seamless (even though it’s hosted on a free oracle compute instance!), while also being stored, and communicated securely (via hashing, cryptography and cloudflare tunneling). To test the project, you can simply go to the demo website linked, or clone the repository. If cloning the repo, make sure python (duh), pygame, and cryptography libraries are installed....
|
1793004500.7850492
|
1793090900.7850492
|
|
25597
|
System_way by @Just | Stardance
|
Just
|
1
|
53.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-22T04:04:06Z", "hours": 53.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "#System way V1 ##I made a pygame program made to make designing systems such as those in programs easier to make and see. ##The problems it solves: illustrating systems understanding connections Helping explain programs to others ##What were some challenges : Time contrates There were major bugs that seemed impossible to resolve exporting a pygame project to a website for the first time ###But I proud that I persisted and made a prototype of a project that may develop even more. Things to know: The controls are on the github readme", "repo": "https://github.com/justboxedhats/system_way", "demo": "https://justboxedhats.github.io/system_way/"}]...
|
[{"post_id": 72078, "ts": "202 [{"post_id": 72078, "ts": "2026-09-22T03:47:55Z", "hours": 2.535, "text": "Devlog #8 I finally got the web version to work correctly!!! I’m going to go to sleep now. Thank you for you time. And have a nice day!"}, {"post_id": 71413, "ts": "2026-09-20T19:41:15Z", "hours": 10.4003, "text": "#Develog 7 I have started to develop the web version of the program. At another point in time, there should be another executable version that has more features. But i ran out of time so i will be submitting the web version soon ( hopefully ). Developments: fixed a bud with node coalitions a text editing bug that reset a node’s text and more bugs What next? : get the web version running properly set up github sites ship the project Thank you for your time, have a nice day."}, {"post_id": 58459, "ts": "2026-08-30T21:32:55Z", "hours": 7.6028, "text": "Develog #6 Progress: I have gotten the text editing tool to work for the most part but with plenty of bugs and I added to ability to import images and scroll through them (shown in the video bellow). What is next? What I need to work on now is a lot of bug fixing, adding image nodes, adding images to saves, fixing collision pan bug and developing a web version or a exe file to ship the project."}, {"post_id": 52704, "ts": "2026-08-23T00:12:26Z", "hours": 4.7392, "text": "Develop #5 I added the ability to change the fonts and size of the text. Furthermore, the camera can now be panned using a mouse rather than arrow keys! As well I think I may ship the project after adding the ability to modify the text of nodes and importing images into a project. Thank you for your time, Have a Nice day!"}, {"post_id": 44818, "ts": "2026-08-10T20:51:33Z", "hours": 3.705, "text": "Devlog #4 I FINALLY HAVE THE SAVE SYSTEM WORKING !! oh and here is a silly doodle I drew."}, {"post_id": 44212, "ts": "2026-08-09T20:29:18Z", "hours": 8.1317, "text": "Devlog # 3 UPDATED UI/VISUALS AND ADDED CONNECTION TOOLS. To start, a version of the project code can now be found at the projects github page and I wasn’t able to finish the project in the timeline that I set out for myself(8/3 - 8/8) because of how long programing takes. Now what I need to work on : - adding a system for typing text - fixing the file system - adding the system for images - having the nodes(The squares with text and connections) resize . That’s all, thank you for your time and have a nice day."}, {"post_id": 43141, "ts": "2026-08-08T07:38:33Z", "hours": 6.9506, "text": "dev log #2 ( technically the third) HUGE BACKEND DEVELOPMENTS! I had developed a solution to gain greater control over squares(that are objects) and removed a huge inefficiency problem where several objects were made every frame (fun fact: This issue creates THOUSANDS of objects VERY fast.). And all it took was 6 hours… just 6… Anyways, what I intend to work on now is to add tools for the user( such as adding a connection between text) and fixing importing and saving systems. Thank you for you time, have a nice day."}, {"post_id": 41803, "ts": "2026-08-06T07:19:35Z", "hours": 6.81, "text": "Develog 1 (YAY): Made early UI elements and started work on developing project save files #Developments : -added lines - added squares -added buttons - added multiple states -added lines #Challenges - not sure how to make squares draggable - taking far too long to place squares by adjusting values - generating way too many objects #Future Development -figuring out how to use python pickle in order to make, save and export files - improving squares class to be more efficient and controllable. Thank you for your time; Have a nice day."}, {"post_id": 39927, "ts": "2026-08-03T07:39:14Z", "hours": 2.1061, "text": "#YAY I made a document!# I wrote a short 2 page overview of a program that is intended to help design systems."}]...
|
Title: System_way by @Just | Stardance
Devlogs:
# Title: System_way by @Just | Stardance
Devlogs:
#YAY I made a document!# I wrote a short 2 page overview of a program that is intended to help design systems.
Develog 1 (YAY): Made early UI elements and started work on developing project save files #Developments : -added lines - added squares -added buttons - added multiple states -added lines #Challenges - not sure how to make squares draggable - taking far too long to place squares by adjusting values - generating way too many objects #Future Development -figuring out how to use python pickle in order to make, save and export files - improving squares class to be more efficient and controllable. Thank you for your time; Have a nice day.
dev log #2 ( technically the third) HUGE BACKEND DEVELOPMENTS! I had developed a solution to gain greater control over squares(that are objects) and removed a huge inefficiency problem where several objects were made every frame (fun fact: This issue creates THOUSANDS of objects VERY fast.). And all it took was 6 hours… just 6… Anyways, what I intend to work on now is to add tools for the user( such as adding a connection between text) and fixing importing and saving systems. Thank you for you time, have a nice day.
Devlog # 3 UPDATED UI/VISUALS AND ADDED CONNECTION TOOLS. To start, a version of the project code can now be found at the projects github page and I wasn’t able to finish the project in the timeline that I set out for myself(8/3 - 8/8) because of how long programing takes. Now what I need to work on : - adding a system for typing text - fixing the file system - adding the system for images - having the nodes(The squares with text and connections) resize . That’s all, thank you for your time and have a nice day.
Devlog #4 I FINALLY HAVE THE SAVE SYSTEM WORKING !! oh and here is a silly doodle I drew.
Develop #5 I added the ability to change the fonts and size of the text. Furthermore, the camera can now be panned using a mouse rather than arrow keys! As well I think I may ship the project after adding the ability to modify the text of nodes and importing images into a project. Thank you for your time, Have a Nice day!
Develog #6 Progress: I have gotten the text editing tool to work for the most part but with plenty of bugs and I added to ability to import images and scroll through them (shown in the video bellow). What is next? What I need to work on now is a lot of bug fixing, adding image nodes, adding images to saves, fixing collision pan bug and developing a web version or a exe file to ship the project.
#Develog 7 I have started to develop the web version of the program. At another point in time, there should be another executable version that has more features. But i ran out of time so i will be submitting the web version soon ( hopefully ). Developments: fixed a bud with node coalitions a text editing bug that reset a node’s text and more bugs What next? : get the web version running properly set up github sites ship the project Thank you for your time, have a nice day.
Devlog #8 I finally got the web version to work correctly!!! I’m going to go to sleep now. Thank you for you time. And have a nice day!
Ships:
#System way V1 ##I made a pygame program made to make designing systems such as those in programs easier to make and see. ##The problems it solves: illustrating systems understanding connections Helping explain programs to others ##What were some challenges : Time contrates There were major bugs that seemed impossible to resolve exporting a pygame project to a website for the first time ###But I proud that I persisted and made a prototype of a project that may develop even more. Things to know: The controls are on the github readme...
|
1793008223.5410736
|
1793094623.5410736
|
|
61256
|
keltime v3 by @desibanana | Stardance
|
desibanana
|
1
|
25.76
|
106
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-22T03:59:52Z", "hours": 11.0, "multiplier": 9.85, "payout": 106, "blessing": "neutral", "text": "Hi, this is my personal website’s 3rd version! Visit me: keltime.nekoweb.org After going through so much trial and error with v2, I had a vague idea of what I wanted for the landing page and for the main page of this version. However, I couldn’t make up my mind for the visual aesthetic of the pages, and thus took a long time researching and studying other people’s code. The most challenging part was implementing the calendar “date” you see at the top right corner. This was a baby made from javascript using arrays and the Date() function. I had a lot of trouble getting the code to actually update in real time. I really value the “physical” part of websites, which mainly includes the hovering and clicking actions of the site. Headers, the calendar, images, etc. mostly all have hover animations. Next, I plan on implementing a satisfying “clicking” sound when things are clicked. Overall, I’m definitely the most proud of my main page’s calendar date script that shows the date, day, month, and year in real time. Thank you so much for reading!", "repo": "https://github.com/moldy-banana/keltime-v3", "demo": "https://keltime.nekoweb.org"}]...
|
[{"post_id": 82781, "ts": "202 [{"post_id": 82781, "ts": "2026-10-25T20:22:10Z", "hours": 1.9119, "text": "write a list I made a “listography” for my website using grids. Because of this, this page is basically mobile friendly!! yay!"}, {"post_id": 80551, "ts": "2026-10-18T04:27:22Z", "hours": 1.2758, "text": "site map visit me: keltime.nekoweb.org song rec: Bobby - Phoebe Bridgers I’ve always procrastinated making a site map. I have one now. WOW!! I couldn’t get the “tree” to work for all of the links for a good 10 minutes. I figured out that using the element can make every white space count, so everything could be spaced correctly."}, {"post_id": 80429, "ts": "2026-10-17T16:44:17Z", "hours": 5.1844, "text": "Linking up! + new diary post 🔗 📝 visit my website: keltime.nekoweb.org New links page for website I’ve collected along the way. It was surprisingly difficult to get everything in line for how simple this page looks. I had trouble with the “luminaries” section because the flexbox wasn’t working my way. It’s still a little jank. Otherwise, I finished a diary entry and did some other maintanaince around the site."}, {"post_id": 78206, "ts": "2026-10-09T23:37:01Z", "hours": 1.055, "text": "reviewing them albums + QOL💿 visit me at: keltime.nekoweb.org ➡️ Today we added FOUR new album reviews! WOW!!! On the menu: Lost Weekend - Phoebe Bridgers, Do That Again - Malcolm Todd, Pylon - beabadoobee, and You Seem Pretty Sad For A Girl So In Love - Olivia Rodrigo. QOL in the /music page? I was afraid the text walls were hogging and bloating up the whole page, so I set them to overflow-y: scroll; . I would love if the scrollbars would only show on hover and not interfere with the text, but I haven’t figured that out yet."}, {"post_id": 77998, "ts": "2026-10-09T04:14:02Z", "hours": 3.7631, "text": "🎇 where’d all the time go? got caught up writing a blog post about music videos read the post at: keltime.nekoweb.org/blog I recently consumed many music videos from Audrey Hobert and Malcolm Todd. They’re good. 10/10 would watch again. I mainly wrote and analysed Eve’s new music video and its lyrics. The song is called AIYOU , and if you like emotional/indie/jpop I would recommend you listen."}, {"post_id": 76307, "ts": "2026-10-03T04:32:51Z", "hours": 1.2058, "text": "🕸️ web your rings and ring your webs 💍 visit me at keltime.nekoweb.org ! autumn song recs: Chest Pain (I Love) - Malcom Todd + Cico Buff - Cocteau Twins + 休日 - The Charm Park after being super busy im back!! to add a designated page for my webrings instead of just dumping them in my links page (which I will also redo)- this is the basic structure for now while i’ll add some decorations soon 🇹🇩"}, {"post_id": 74756, "ts": "2026-09-28T04:48:27Z", "hours": 0.3667, "text": "🐛 bug fixes bugs fix bugs 🐛 visit me at: https://keltime.nekoweb.org ! Song Rec(s): Malcom In The Middle - Malcom Todd and Motion Sickness - Phoebe Bridgers Fixed minor bugs in the website- such as the guestbook link not working (accidentally wrote the link with a “www.” prefix) and the link to my site button (destroyed my button displayed on other sites that hotlinked)"}, {"post_id": 72067, "ts": "2026-09-22T03:19:46Z", "hours": 4.3222, "text": "v3 main home page completed!! what joy :’D visit me at keltime.nekoweb.org now!! 🐦 After much deliberation and headache, I was able to push through and finish up the rest of the home page… the images can be hovered over to change their color filters. ⭐ An issue with the /about page has been fixed. Before, the main container would slide out of place on smaller screens, something I didn’t notice until a few days ago. Now after changing the css from “row wrap” to “row nowrap”, the issue is resolved."}, {"post_id": 70795, "ts": "2026-09-19T19:38:58Z", "hours": 5.0167, "text": "Working on the main home page of v3… Progress has been really slow, but I have implemented a navigation bar with a dropdown menu, a working day-date display (with javascript date) and added a marquee with marquee3k on github + an image of joke bear… how cute! I’m actually so done tho idk what to do with the big gaping empty hole but at least everything looks aight…"}, {"post_id": 66410, "ts": "2026-09-12T07:14:04Z", "hours": 1.4264, "text": "incredibly indecisive happenings over a new v3 layout I started work on this landing page but it does not match my vision at all. I’ll try something different tomorrow. The empty space on the right needs to be filled somehow."}]...
|
Title: keltime v3 by @desibanana | Stardance
Devl Title: keltime v3 by @desibanana | Stardance
Devlogs:
incredibly indecisive happenings over a new v3 layout I started work on this landing page but it does not match my vision at all. I’ll try something different tomorrow. The empty space on the right needs to be filled somehow.
Working on the main home page of v3… Progress has been really slow, but I have implemented a navigation bar with a dropdown menu, a working day-date display (with javascript date) and added a marquee with marquee3k on github + an image of joke bear… how cute! I’m actually so done tho idk what to do with the big gaping empty hole but at least everything looks aight…
v3 main home page completed!! what joy :’D visit me at keltime.nekoweb.org now!! 🐦 After much deliberation and headache, I was able to push through and finish up the rest of the home page… the images can be hovered over to change their color filters. ⭐ An issue with the /about page has been fixed. Before, the main container would slide out of place on smaller screens, something I didn’t notice until a few days ago. Now after changing the css from “row wrap” to “row nowrap”, the issue is resolved.
🐛 bug fixes bugs fix bugs 🐛 visit me at: https://keltime.nekoweb.org ! Song Rec(s): Malcom In The Middle - Malcom Todd and Motion Sickness - Phoebe Bridgers Fixed minor bugs in the website- such as the guestbook link not working (accidentally wrote the link with a “www.” prefix) and the link to my site button (destroyed my button displayed on other sites that hotlinked)
🕸️ web your rings and ring your webs 💍 visit me at keltime.nekoweb.org ! autumn song recs: Chest Pain (I Love) - Malcom Todd + Cico Buff - Cocteau Twins + 休日 - The Charm Park after being super busy im back!! to add a designated page for my webrings instead of just dumping them in my links page (which I will also redo)- this is the basic structure for now while i’ll add some decorations soon 🇹🇩
🎇 where’d all the time go? got caught up writing a blog post about music videos read the post at: keltime.nekoweb.org/blog I recently consumed many music videos from Audrey Hobert and Malcolm Todd. They’re good. 10/10 would watch again. I mainly wrote and analysed Eve’s new music video and its lyrics. The song is called AIYOU , and if you like emotional/indie/jpop I would recommend you listen.
reviewing them albums + QOL💿 visit me at: keltime.nekoweb.org ➡️ Today we added FOUR new album reviews! WOW!!! On the menu: Lost Weekend - Phoebe Bridgers, Do That Again - Malcolm Todd, Pylon - beabadoobee, and You Seem Pretty Sad For A Girl So In Love - Olivia Rodrigo. QOL in the /music page? I was afraid the text walls were hogging and bloating up the whole page, so I set them to overflow-y: scroll; . I would love if the scrollbars would only show on hover and not interfere with the text, but I haven’t figured that out yet.
Linking up! + new diary post 🔗 📝 visit my website: keltime.nekoweb.org New links page for website I’ve collected along the way. It was surprisingly difficult to get everything in line for how simple this page looks. I had trouble with the “luminaries” section because the flexbox wasn’t working my way. It’s still a little jank. Otherwise, I finished a diary entry and did some other maintanaince around the site.
site map visit me: keltime.nekoweb.org song rec: Bobby - Phoebe Bridgers I’ve always procrastinated making a site map. I have one now. WOW!! I couldn’t get the “tree” to work for all of the links for a good 10 minutes. I figured out that using the element can make every white space count, so everything could be spaced correctly.
write a list I made a “listography” for my website using grids. Because of this, this page is basically mobile friendly!! yay!
Ships:
Hi, this is my personal website’s 3rd version! Visit me: keltime.nekoweb.org After going through so much trial and error with v2, I had a vague idea of what I wanted for the landing page and for the main page of this version. However, I couldn’t make up my mind for the visual aesthetic of the pages, and thus took a long time researching and studying other people’s code. The most challenging part was implementing the calendar “date” you see at the top right corner. This was a baby made from javascript using arrays and the Date() function. I had a lot of trouble getting the code to actually update in real time. I really value the “physical” part of websites, which mainly includes the hovering and clicking actions of the site. Headers, the calendar, images, etc. mostly all have hover animations. Next, I plan on implementing a satisfying “clicking” sound when things are clicked. Overall, I’m definitely the most proud of my main page’s calendar date script that shows the date, day, month, and year in real time. Thank you so much for reading!...
|
1793055319.8652174
|
1793141719.8652174
|
|
56000
|
Raylibstein by @syntaxbrew_dev | Stardance
|
syntaxbrew_dev
|
1
|
21.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-22T03:24:07Z", "hours": 21.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a Wolfenstein-inspired 3D raycaster built from scratch using C++ and Raylib! I personally found the math and geometry behind the 3D rendering logic the most complicated portion of the project, but it certainly felt rewarding when my code actually worked and didn’t crash! I’m proud of the fact that while creating this project, I was simultaneously improving my C++ knowledge, graphics programming concepts, and low level programming skills, all in one month. I’m also proud of how I still persevered even when things were confusing or didn’t make sense. To test my project, people can simply use the web-playable version. If they want to run it locally, they must clone the repo, install CMake, Ninja, use a valid C++ compiler, and build/run the project.", "repo": "https://github.com/SyntaxBrew/raylibstein", "demo": "https://syntaxbrew.github.io/raylibstein/"}]...
|
[{"post_id": 72064, "ts": "202 [{"post_id": 72064, "ts": "2026-09-22T03:13:15Z", "hours": 1.9558, "text": "Today’s the day I ship, I finally released a web-port version of my raycasting engine, and created a detailed README on the Github repo. To do this, I had to use a tool called emsdk which allowed me to convert all my C++/raylib code into Web Assembly + HTML code! I now have live web page up and running using GitHub pages & actions, and I debugged any issues that arose (such as the mouse not properly locking to the screen)"}, {"post_id": 71515, "ts": "2026-09-20T23:47:53Z", "hours": 6.0028, "text": "This took a while, but I successfully added texture rendering to walls, alongside solid roof and floor colors. To do this, I created my own MapTexture class which extracted pixel data from a loaded image.For each ray that fired, its final hit position was mapped to a specific pixel from that texture. (using some row and column calcuations) Some things I also did: Added support for multiple wall types Added noclip toggle, zooming in/out controls Optimized shading calculations for walls Fixed raycasting bug dealing with negative coordinates"}, {"post_id": 60019, "ts": "2026-09-02T03:44:58Z", "hours": 6.4308, "text": "Today I finished implementing the core rendering loop for my 3D C++ raycasting engine and also added player-wall collision detction! In summary, for every column of your screen, a ray is fired to draw a single vertical strip of a specific size based on how far that ray travels. Then all these strips are combined to form a 3D scene. I also added shading to specific sides of walls. I then learned how to fix edge distortions (fish-eye correction) and uneven ray distributions using math + geometry. I also spent ALOT OF MY TIME trying to fix a bug where the player could clip into a corner and get stuck inside, which got very annoying to debug. But I eventually solved it by checking for wall overlaps across the player’s every possible movement position."}, {"post_id": 58293, "ts": "2026-08-30T17:49:25Z", "hours": 6.3406, "text": "I have started working on my new pseudo-3D raycaster project. Using raylib and C++, so far I have created the basic boilerplate code for the main window rendering loop for a basic 2D map. But most importantly during this first session, I created a basic, but working raycasting system which used an algorithm called DDA. (grid-traversal algorithm)To implement it, I worked through the underlying math and logic behind the algorithm, and went through some examples before implementing the code myself. I faced many bugs while coding it and it took a lot of trial and error before I finally had it working.. . The CastRay() function I created allows rays to traverse efficiently across grid cells, skipping over unnecessary positions and without missing any collisions. For the next dev log, I hope to have completed the actual Player object + movement + collision detection, and implement the 3D rendering loop that constructs the 3D scene using my CastRay function."}]...
|
Title: Raylibstein by @syntaxbrew_dev | Stardance
Title: Raylibstein by @syntaxbrew_dev | Stardance
Devlogs:
I have started working on my new pseudo-3D raycaster project. Using raylib and C++, so far I have created the basic boilerplate code for the main window rendering loop for a basic 2D map. But most importantly during this first session, I created a basic, but working raycasting system which used an algorithm called DDA. (grid-traversal algorithm)To implement it, I worked through the underlying math and logic behind the algorithm, and went through some examples before implementing the code myself. I faced many bugs while coding it and it took a lot of trial and error before I finally had it working.. . The CastRay() function I created allows rays to traverse efficiently across grid cells, skipping over unnecessary positions and without missing any collisions. For the next dev log, I hope to have completed the actual Player object + movement + collision detection, and implement the 3D rendering loop that constructs the 3D scene using my CastRay function.
Today I finished implementing the core rendering loop for my 3D C++ raycasting engine and also added player-wall collision detction! In summary, for every column of your screen, a ray is fired to draw a single vertical strip of a specific size based on how far that ray travels. Then all these strips are combined to form a 3D scene. I also added shading to specific sides of walls. I then learned how to fix edge distortions (fish-eye correction) and uneven ray distributions using math + geometry. I also spent ALOT OF MY TIME trying to fix a bug where the player could clip into a corner and get stuck inside, which got very annoying to debug. But I eventually solved it by checking for wall overlaps across the player’s every possible movement position.
This took a while, but I successfully added texture rendering to walls, alongside solid roof and floor colors. To do this, I created my own MapTexture class which extracted pixel data from a loaded image.For each ray that fired, its final hit position was mapped to a specific pixel from that texture. (using some row and column calcuations) Some things I also did: Added support for multiple wall types Added noclip toggle, zooming in/out controls Optimized shading calculations for walls Fixed raycasting bug dealing with negative coordinates
Today’s the day I ship, I finally released a web-port version of my raycasting engine, and created a detailed README on the Github repo. To do this, I had to use a tool called emsdk which allowed me to convert all my C++/raylib code into Web Assembly + HTML code! I now have live web page up and running using GitHub pages & actions, and I debugged any issues that arose (such as the mouse not properly locking to the screen)
Ships:
I made a Wolfenstein-inspired 3D raycaster built from scratch using C++ and Raylib! I personally found the math and geometry behind the 3D rendering logic the most complicated portion of the project, but it certainly felt rewarding when my code actually worked and didn’t crash! I’m proud of the fact that while creating this project, I was simultaneously improving my C++ knowledge, graphics programming concepts, and low level programming skills, all in one month. I’m also proud of how I still persevered even when things were confusing or didn’t make sense. To test my project, people can simply use the web-playable version. If they want to run it locally, they must clone the repo, install CMake, Ninja, use a valid C++ compiler, and build/run the project....
|
1793004800.4771707
|
1793091200.4771707
|
|
55569
|
Codsworth by @Coffe404 | Stardance
|
Coffe404
|
1
|
0.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-22T03:13:45Z", "hours": 0.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "This is a little Slack Bot created for curiosity and learning. Since this was my first time trying to run something in Nest and running it 24/7 it was difficult to me to get all of the keys and stf. I loved making this out because it gave me some ideas for JARVIS and running it from every place. That’s oll for my project! :D PD: Take a walk sir!", "repo": "https://github.com/SovietCoffe404/SlackBot-Codsworth-HC-project", "demo": "https://hackclub.enterprise.slack.com/archives/C0P5NE354"}]...
|
[{"post_id": 72053, "ts": "202 [{"post_id": 72053, "ts": "2026-09-22T02:49:05Z", "hours": 0.3219, "text": "Hii! Well, this is my 1st Devlog for the Bot. This project is so fun and also it gave me an idea for my JARVIS project ;D This bot only has basic stuff but I think it’s funny Some of the functions are this : /codsworth-help /codsworth-joke /codsworth-ping /codsworth-catfact That’s all folks! Hope this isn’t my last devlog for stardance🥀🥀 Love u guys! Stay tuned"}]...
|
Title: Codsworth by @Coffe404 | Stardance
Devlogs Title: Codsworth by @Coffe404 | Stardance
Devlogs:
Hii! Well, this is my 1st Devlog for the Bot. This project is so fun and also it gave me an idea for my JARVIS project ;D This bot only has basic stuff but I think it’s funny Some of the functions are this : /codsworth-help /codsworth-joke /codsworth-ping /codsworth-catfact That’s all folks! Hope this isn’t my last devlog for stardance🥀🥀 Love u guys! Stay tuned
Ships:
This is a little Slack Bot created for curiosity and learning. Since this was my first time trying to run something in Nest and running it 24/7 it was difficult to me to get all of the keys and stf. I loved making this out because it gave me some ideas for JARVIS and running it from every place. That’s oll for my project! :D PD: Take a walk sir!...
|
1793004481.9555974
|
1793090881.9555974
|
|
64660
|
Some dumb thing by @sometimesmycodeworks | Stardan Some dumb thing by @sometimesmycodeworks | Stardance...
|
sometimesmycodeworks
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-22T01:49:58Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made absolutely nothing. I needed a ship (pending is okay) in unified for auditing an app Hack CLub is running, so I put this here. I might DM a SW to kindly ask them to reject this project sometime, but until then DON’T review this.", "repo": "", "demo": ""}]...
|
[{"post_id": 72040, "ts": "202 [{"post_id": 72040, "ts": "2026-09-22T01:47:08Z", "hours": 0.9147, "text": "Did absolutely nothing"}]...
|
Title: Some dumb thing by @sometimesmycodeworks | Title: Some dumb thing by @sometimesmycodeworks | Stardance
Devlogs:
Did absolutely nothing
Ships:
I made absolutely nothing. I needed a ship (pending is okay) in unified for auditing an app Hack CLub is running, so I put this here. I might DM a SW to kindly ask them to reject this project sometime, but until then DON’T review this....
|
1792965103.7259443
|
1793051503.7259443
|
|
64646
|
personal website by @aashvik | Stardance
|
aashvik
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-22T01:41:31Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "What did I make? I made my main personal website page with my Mii, info, links, and time zone clock What was challenging? Getting the custom cursor and CSS to work consistently lol", "repo": "https://github.com/koditra/personal-website", "demo": "https://koditra.github.io/personal-website/"}]...
|
[{"post_id": 72037, "ts": "202 [{"post_id": 72037, "ts": "2026-09-22T01:20:39Z", "hours": 0.2944, "text": "Main page + custom cursor!!! I finished the main page for my personal website!!! :D I reused the same custom mouse CSS from my projects page, and I also used my favorite CSS that i learned from a friend. The main page has my Mii, a little about me, my projects link, GitHub, and a San Jose clock! Im done!!!! Oh also ig i made a readme too"}, {"post_id": 72028, "ts": "2026-09-22T00:58:15Z", "hours": 0.4411, "text": "I made the css and code for my projects page!!! :D"}]...
|
Title: personal website by @aashvik | Stardance
D Title: personal website by @aashvik | Stardance
Devlogs:
I made the css and code for my projects page!!! :D
Main page + custom cursor!!! I finished the main page for my personal website!!! :D I reused the same custom mouse CSS from my projects page, and I also used my favorite CSS that i learned from a friend. The main page has my Mii, a little about me, my projects link, GitHub, and a San Jose clock! Im done!!!! Oh also ig i made a readme too
Ships:
What did I make? I made my main personal website page with my Mii, info, links, and time zone clock What was challenging? Getting the custom cursor and CSS to work consistently lol...
|
1792965102.0062532
|
1793051502.0062532
|
|
19331
|
Platformer Game by @Livvy | Stardance
|
Livvy
|
3
|
15.0
|
188
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-22T00:51:31Z", "hours": 10.0, "multiplier": 9.82, "payout": 121, "blessing": "neutral", "text": "I completed a game where you jump through obstacles and change gravity to move through each level. As an astronaut, you use a paint gun to change your gravity based on the corresponding color. I’m proud of this being my first big project in java and HTML and CSS, and that this was my first time using VS Code. Also the paint mechanics working was a big accomplishment. A struggle was getting the flag to work after something I added along the way caused a bug and I didn’t realize to way later. It took a while but I got it working! I hope everyone enjoys the project.", "repo": "https://github.com/oliviasophia67/Paint-Gravity-Platformer", "demo": "https://oliviasophia67.github.io/Paint-Gravity-Platformer/"}, {"ship_num": 2, "ts": "2026-07-13T20:43:26Z", "hours": 0.0, "multiplier": 17.21, "payout": 7, "blessing": "neutral", "text": "I made a Platformer Game where you are an astronaut and must navigate through caves to reach the flag. I’m very proud of the graphics and how much I’ve learned when it comes to coding in javascript, html, and css. I am also happy that this finally forced me to get better at using github to place the project into and make it easier to submit into stardance.", "repo": "https://github.com/oliviasophia67/Paint-Gravity-Platformer", "demo": "https://oliviasophia67.github.io/Paint-Gravity-Platformer/"}, {"ship_num": 3, "ts": "2026-06-29T21:09:31Z", "hours": 5.0, "multiplier": 13.29, "payout": 60, "blessing": "neutral", "text": "The project I worked on was a platformer game where you are an astronaut that paints to flip gravity by walking on it, to make its way out of a alien cave. Challenges for this project were honestly finding a way to start the project, as this was one of my first coding projects in JavaScript. Also part of what I struggled with was connecting the project to Hackatime and github to connect it to Stardance. Another thing that was difficult was adding in a level selection and menu with a tracker to keep track of the stars collected on each level. A couple things that I think went very well with this project was the graphics such as the astronauts paint gun, and the background along with the flag. I’m also happy about how the paint turned out with flipping gravity and its graphics.", "repo": "https://github.com/oliviasophia67/Paint-Gravity-Platformer", "demo": "https://oliviasophia67.github.io/Paint-Gravity-Platformer/"}]...
|
[{"post_id": 72014, "ts": "202 [{"post_id": 72014, "ts": "2026-09-22T00:36:16Z", "hours": 4.8328, "text": "Final Devlog Number 9!!! :) So this is the final devlog for the game, all bugs are fixed and the game is finished (for now) I may still work on some things in my spare time but since school started up it been hard to find the time to work on it. It is completed with levels, star completion, ghost racing, achievements, and smooth gameplay. I hope that all of you enjoy the project. I enjoyed working on this a lot. Thanks for all the support I got in the process!"}, {"post_id": 33175, "ts": "2026-07-22T20:49:21Z", "hours": 1.8244, "text": "Devlog 8 - Fixed All Issues! So like I described in my last devlog, I had a major issue that was continuing to pop up, and no matter what I did it was still there. Pretty much the issue was that the whole game froze when touching the flag, and it was caused because I forgot to define one of my variables correctly. The problem was that once I finally fixed this, I had to fix the issues I cause in the process of fixing this, such as the timer no longer working. Besides this I spent some time starting to make an achievements page, to show progress throughout the game."}, {"post_id": 32673, "ts": "2026-07-21T23:51:49Z", "hours": 2.5392, "text": "Bad News :( Devlog 7……. So I have spent the last day none stop working on a bug that I accidently made I think when adding in the timer, but honestly nothing I’ve tried has worked yet. I tried so many different ideas and asked anyone who knows coding but nothing has worked. pretty much the issue is that the astronaut freezes when touching the flag and nothing in the game works. I tried adding in a try …… catch function around the code where it shows what happens when you touch the flag and exactly what error happened, but for this nothing showed up, and in any debugger I try it sees nothing wrong with the code. I’ll add in a screenshot of what it looks like when it freezes, (ignore some parts at the top, I know they overlap) If anyone has an idea of what’s wrong I could really use it. Thanks y’all!"}, {"post_id": 31969, "ts": "2026-07-20T19:56:53Z", "hours": 1.0725, "text": "Paint Gravity Game Devlog! progress I made was I fixed the trajectory lines to show where the paint will end up going, along with this I worked on the tracking for the stars that you collect each level. Now there is a counter along with the total amount of possible stars, to show the progress made in the game. next i’m gonna make the grpahics on the menu and start menu much better."}, {"post_id": 27903, "ts": "2026-07-13T20:34:52Z", "hours": 0.3642, "text": "Another Devlog! I already have shipped this project once, and probably will again soon, but for now heres an update on what I worked on. Not much time was physically spent in the project, but in learning more about coding in java (which is what this project was for me), which for today took me more like an hour than what was logged. Specifically I learned more about the way to make the gun follow the mouse, and working on some of the graphics, such as the background behind the cave walls move. I also tried to think of more ideas, maybe a trajectory dots to show where the paint will go, I would like some advice or commets of what to add."}, {"post_id": 18660, "ts": "2026-06-29T20:59:57Z", "hours": 0.3661, "text": "This is now officially the last devlog I shall post for this project. First off I made most of the additions I said I would, specifically added in the waterfalls to remove paint, and worked on graphics, especially the background. Now I shall ship the project for rating, as well I added in a demo url to the info so people can now officially try it! I will start working on a new project soon, hopefully a longer and harder one."}, {"post_id": 14105, "ts": "2026-06-23T02:36:31Z", "hours": 0.5003, "text": "One of the last devlogs (hopefully) for this project. this will be a fairly short log, just describing the updates I’ve made to my game. Firstly, the changes I made was I added in a main menu with a title page and a way to go to level selection, to access levels as you unlock them. I also fixed some graphics such as the paint gun and the tutorial on the first and second levels to play the game. I made the paint even better as now it drips onto the ceiling, instead of the paint being the same anywhere it is. In this project I have been using HTML and JavaScript in VS code, so here’s an overview of what the code is composed of and what I used to program the game. Major types of functions that will be needed for coding this type of game is a draw function, which as it describes, draws the map, the game loop function and the load level function. Each of these or general loading for the game, along with functions that derive from variables. Making sure variables were defined correctly was also a main part of it. Only other thing I would like is some smaller details to add into the game. Some I was thinking of is maybe instead of just spikes have mini spikes fly across the amp in a timely order, maybe add a waterfall to some levels that when paint is shot through it it washes away, maybe a star rating system or stars to collect in the level, along with possibly making the background more fun and engaging. I would love some other ideas too!"}, {"post_id": 12936, "ts": "2026-06-21T05:28:28Z", "hours": 2.4497, "text": "This is another devlog I’ve posted for this project and I’m almost finished. I definitely fixed the graphics for the game, turning the white box into an astronaut, turning green half circles to plants, and made the theme of a alien cave (or tried to). Here’s the list of what I worked on recently: Obviously I mainly worked on graphics including the change to a pixel art theme, creating the flag and aura around it, made the paint drip to make it look more like paint gravity, and added a tutorial to learn the game along with controls at the top. Another main thing was the death mechanisms. I made spikes into the the levels that increase in difficulty as the levels continue, along with adding a reset button. At first the levels were also slightly simple as there was no limit to the ammo, which I now added to keep the levels hard, and make the game into a puzzle. There is a couple more things I need to add before posting this project for rating which is just to make the astronaut hold a paint gun (which I somehow forgot) and to add a menu for the levels of the game."}, {"post_id": 12300, "ts": "2026-06-20T02:06:08Z", "hours": 1.2378, "text": "First Devlog! So I just recently started working on this new platformer game in VS Code, and here’s what I’ve coded so far. Main thing I began were the basics. I set up the controls for the player, and added an ending goal to bring the player to the next level. I also added in platforms to jump on, and the animation for a paint gun that the player will shoot to win levels. Next I will be adding, gravity mechanics to the paint to change the gravity, making the spikes kill the player and force them to restart the level, and lastly work on the scene and art of the game."}]...
|
Title: Platformer Game by @Livvy | Stardance
Devl Title: Platformer Game by @Livvy | Stardance
Devlogs:
First Devlog! So I just recently started working on this new platformer game in VS Code, and here’s what I’ve coded so far. Main thing I began were the basics. I set up the controls for the player, and added an ending goal to bring the player to the next level. I also added in platforms to jump on, and the animation for a paint gun that the player will shoot to win levels. Next I will be adding, gravity mechanics to the paint to change the gravity, making the spikes kill the player and force them to restart the level, and lastly work on the scene and art of the game.
This is another devlog I’ve posted for this project and I’m almost finished. I definitely fixed the graphics for the game, turning the white box into an astronaut, turning green half circles to plants, and made the theme of a alien cave (or tried to). Here’s the list of what I worked on recently: Obviously I mainly worked on graphics including the change to a pixel art theme, creating the flag and aura around it, made the paint drip to make it look more like paint gravity, and added a tutorial to learn the game along with controls at the top. Another main thing was the death mechanisms. I made spikes into the the levels that increase in difficulty as the levels continue, along with adding a reset button. At first the levels were also slightly simple as there was no limit to the ammo, which I now added to keep the levels hard, and make the game into a puzzle. There is a couple more things I need to add before posting this project for rating which is just to make the astronaut hold a paint gun (which I somehow forgot) and to add a menu for the levels of the game.
One of the last devlogs (hopefully) for this project. this will be a fairly short log, just describing the updates I’ve made to my game. Firstly, the changes I made was I added in a main menu with a title page and a way to go to level selection, to access levels as you unlock them. I also fixed some graphics such as the paint gun and the tutorial on the first and second levels to play the game. I made the paint even better as now it drips onto the ceiling, instead of the paint being the same anywhere it is. In this project I have been using HTML and JavaScript in VS code, so here’s an overview of what the code is composed of and what I used to program the game. Major types of functions that will be needed for coding this type of game is a draw function, which as it describes, draws the map, the game loop function and the load level function. Each of these or general loading for the game, along with functions that derive from variables. Making sure variables were defined correctly was also a main part of it. Only other thing I would like is some smaller details to add into the game. Some I was thinking of is maybe instead of just spikes have mini spikes fly across the amp in a timely order, maybe add a waterfall to some levels that when paint is shot through it it washes away, maybe a star rating system or stars to collect in the level, along with possibly making the background more fun and engaging. I would love some other ideas too!
This is now officially the last devlog I shall post for this project. First off I made most of the additions I said I would, specifically added in the waterfalls to remove paint, and worked on graphics, especially the background. Now I shall ship the project for rating, as well I added in a demo url to the info so people can now officially try it! I will start working on a new project soon, hopefully a longer and harder one.
Another Devlog! I already have shipped this project once, and probably will again soon, but for now heres an update on what I worked on. Not much time was physically spent in the project, but in learning more about coding in java (which is what this project was for me), which for today took me more like an hour than what was logged. Specifically I learned more about the way to make the gun follow the mouse, and working on some of the graphics, such as the background behind the cave walls move. I also tried to think of more ideas, maybe a trajectory dots to show where the paint will go, I would like some advice or commets of what to add.
Paint Gravity Game Devlog! progress I made was I fixed the trajectory lines to show where the paint will end up going, along with this I worked on the tracking for the stars that you collect each level. Now there is a counter along with the total amount of possible stars, to show the progress made in the game. next i’m gonna make the grpahics on the menu and start menu much better.
Bad News :( Devlog 7……. So I have spent the last day none stop working on a bug that I accidently made I think when adding in the timer, but honestly nothing I’ve tried has worked yet. I tried so many different ideas and asked anyone who knows coding but nothing has worked. pretty much the issue is that the astronaut freezes when touching the flag and nothing in the game works. I tried adding in a try …… catch function around the code where it shows what happens when you touch the flag and exactly what error happened, but for this nothing showed up, and in any debugger I try it sees nothing wrong with the code. I’ll add in a screenshot of what it looks like when it freezes, (ignore some parts at the top, I know they overlap) If anyone has an idea of what’s wrong I could really use it. Thanks y’all!
Devlog 8 - Fixed All Issues! So like I described in my last devlog, I had a major issue that was continuing to pop up, and no matter what I did it was still there. Pretty much the issue was that the whole game froze when touching the flag, and it was caused because I forgot to define one of my variables correctly. The problem was that once I finally fixed this, I had to fix the issues I cause in the process of fixing this, such as the timer no longer working. Besides this I spent some time starting to make an achievements page, to show progress throughout the game.
Final Devlog Number 9!!! :) So this is the final devlog for the game, all bugs are fixed and the game is finished (for now) I may still work on some things in my spare time but since school started up it been hard to find the time to work on it. It is completed with levels, star completion, ghost racing, achievements, and smooth gameplay. I hope that all of you enjoy the project. I enjoyed working on this a lot. Thanks for all the support I got in the process!
Ships:
The project I worked on was a platformer game where you are an astronaut that paints to flip gravity by walking on it, to make its way out of a alien cave. Challenges for this project were honestly finding a way to start the project, as this was one of my first coding projects in JavaScript. Also part of what I struggled with was connecting the project to Hackatime and github to connect it to Stardance. Another thing that was difficult was adding in a level selection and menu with a tracker to keep track of the stars collected on each level. A couple things that I think went very well with this project was the graphics such as the astronauts paint gun, and the background along with the flag. I’m also happy about how the paint turned out with flipping gravity and its graphics.
I made a Platformer Game where you are an astronaut and must navigate through caves to reach the flag. I’m very proud of the graphics and how much I’ve learned when it comes to coding in javascript, html, and css. I am also happy that this finally forced me to get better at using github to place the project into and make it easier to submit into stardance.
I completed a game where you jump through obstacles and change gravity to move through each level. As an astronaut, you use a paint gun to change your gravity based on the corresponding color. I’m proud of this being my first big project in java and HTML and CSS, and that this was my first time using VS Code. Also the paint mechanics working was a big accomplishment. A struggle was getting the flag to work after something I added along the way caused a bug and I didn’t realize to way later. It took a while but I got it working! I hope everyone enjoys the project....
|
1792976047.781964
|
1793062447.781964
|
|
26398
|
200 MPH Drone RTOS by @Guagyyy | Stardance
|
Guagyyy
|
2
|
139.02
|
2267
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-22T00:49:05Z", "hours": 106.0, "multiplier": 19.18, "payout": 2024, "blessing": "neutral", "text": "200 MPH Drone RTOS: How it went Simulation to Silicon! When I published the first major update for this project at the 15-hour mark, I essentially had a proof-of-concept. I had managed to write a custom hybrid cooperative/preemptive scheduler and get an ARM Cortex-M7 (on the STM32f756VGTx) assembly context switcher functioning inside the Renode simulator. Although this looked like a massive leap, the project had barely started. Over 100 hours of development have gone into this project since then. The transition from a simulated kernel to a bare-metal flight controller capable of keeping a 200 MPH drone in the air required stripping the system down to its bare components, rewriting the memory architecture, and debugging some of the most frustrating hardware faults I have ever encountered-especially whenever the project just crashed, leaving me no traces as to what went wrong. Software Limitations The biggest turning point was realizing that software simulation can only take you so far. Renode is an amazing tool, but it hid a massive amount of race conditions and timing flaws that only exposed themselves when I finally flashed the code to physical STM32F756 Nucleo board. Sometimes, the MCU would have to reboot every 2 seconds. I spent dozens of hours tracking down massive architectural bugs. One of the worst was a context-switching fault where floating-point math was corrupting the return address in the CPU registers, causing the processor to execute raw garbage data. To fix this, I had to completely restructure the boot sequence and overhaul the memory management. I moved away from static arrays to a dynamic per-task stack allocation system, and implemented a dual-guard memory system. Arguably, this was the most important change as it allowed me to debug tasks way quicker as I instantly could know when the canary values were corrupted. Overhauling the Data Pipelines In order to avoid the 10ms delay of my original blocking pipline (for data transfer), I entirely rewrote the hardware data pipelines multiple times to use a semi-blocking, circular Direct Memory Access (DMA) architecture. Instead of the processor handling the data transfer, the hardware itself moves the bytes from the sensors directly into memory in the background. The DMA streams now trigger precise interrupts at the halfway and full-transfer points, allowing the RTOS to safely parse incoming radio packets and sensor reads without ever risking data overwrites or blocking the main flight loop. Building a Flight Controller I integrated Betaflight’s Actual Rates algorithm with custom expo curves, ensuring that physical stick inputs map perfectly to target velocities. I built a custom SPI driver to pull 24-bit raw pressure and temperature data from a BMP390 barometer, passing it through hypsometric formulas to calculate altitude. For video and telemetry, I moved away from raw UART strings and implemented native MSP DisplayPort communication (for true digital Walksnail Avatar connection). I also built an interactive USB command-line interface. Instead of having to recompile and re-flash the firmware every time a PID value needs to be adjusted, I can plug into the board, pull up a terminal, and manually tune gains, remap CRSF radio channels, or adjust IMU orientation offsets in real time. Final Version The last few weeks have been about refinement and consistency, removing race conditions and overall polishing the code. Now that the RTOS is fully functional, the only things to add are extra features, like a permanent + more expanded CLI, as well as finishing the external RM and linking the ESC drivers. As these are pretty insignificant, I have linked the source of this shipment to the Github project rather than a specific release so that I can update these during review!", "repo": "https://github.com/Guag914/200-MPH-Drone-RTOS/", "demo": "https://github.com/Guag914/200-MPH-Drone-RTOS#interactive--simulation-demo"}, {"ship_num": 2, "ts": "2026-07-15T04:02:12Z", "hours": 15.0, "multiplier": 16.44, "payout": 243, "blessing": "neutral", "text": "Phase 1 (The Custom RTOS Kernel) I am building a custom FPV drone from scratch with my friend in an attempt to achieve 200 mph . At those speeds, standard super loops are far too slow, as a single microsecond of lag means the drone travels feet before making a PID correction. To solve this, I built a custom, hybrid cooperative/preemptive Real-Time Operating System (RTOS) from scratch for the ARM Cortex-M7 (STM32F7)! What Was Challenging? The absolute hardest part of this phase was writing the low-level assembly context switcher ( PendSV_Handler.S ). Hacking the ARM Cortex-M7 registers to physically hot-swap stack pointers ( PSP ) mid-execution without crashing the CPU or corrupting the program state was a massive headache. I had to ensure that when an asynchronous preemption event fires, the assembly code perfectly preserves the execution registers ( R4-R11 plus the hardware-stacked registers), jumps to the high-priority task, and then seamlessly restores the background task right where it left off. Getting the compiler-enforced task overloading working so the kernel cleanly separates periodic tasks from raw interrupts was another huge hurdle, but it makes the whole codebase infinitely more robust. Want to Test It or Write Your Own Tasks? You don’t need physical hardware to watch this run! I’ve packaged the entire project with a Renode simulation script. You can run the interactive emulator with a single command to see the preemption scheduler hijack our counter task live, or you can jump into the user sandbox file and write your own custom tasks. Check out the GitHub Repository to Run the Demo! The README has a quick 5-minute setup guide to get you compiling and simulating your own code in no time.", "repo": "https://github.com/Guag914/200-MPH-Drone-RTOS/", "demo": "https://github.com/Guag914/200-MPH-Drone-RTOS#interactive--simulation-demo"}]...
|
[{"post_id": 82549, "ts": "202 [{"post_id": 82549, "ts": "2026-10-25T06:23:47Z", "hours": 9.7414, "text": "I spent the past week fixing timing issues on the hardware and getting the simulation environment back into a usable state. Although it isn’t 100% yet, I managed to fix a lot of underlying bugs causing the program to fail on actual hardware. Serial Communication and DMA The biggest issue was that manual USART transfers were completely blocking the system. Printing alone was taking around 95 percent of the total execution time. This was destroying the preempt speed and causing weird timing bugs across the board. I rewrote the USART printing logic to offload everything to a background circular DMA task instead. While I was working on the serial connections, I also fixed the UART mapping bugs and moved all logging over to UART4 so it stops fighting with the GPS module on USART3. I also went through stm32f7xx_it.c and fixed the rest of the extern “C” methods. They were previously commented out, which was silently causing their respective DMA HALs to fail. Moving them to the correct user code sections fixed the issue entirely. Simulation Environment and Tooling On the software side, the simulation startup in the HAL was broken and preventing the virtual boards from properly configuring and running. I fixed the initialization sequence so the simulations actually boot correctly now. To make starting the environment even easier for new users, I updated both the run.sh and run.bat scripts with installers that automatically download Renode. This skips the manual installation step completely and gets the simulation running much faster."}, {"post_id": 78931, "ts": "2026-10-12T02:34:08Z", "hours": 8.2783, "text": "Although I haven’t been able to make much progress on the project due to school over the past weeks I did manage to make some substantial project mostly with the scheduler, allowing for fairly good performance on my STM Nucleo boards, rather than it just crashing instantly. 1. Issues with the Old Design The flight controller’s RTOS scheduler wasn’t working under real hardware timing because global variables like currTaskIndex, topOfStack, and excReturn were being modified from multiple entry points simultaneously. Yield calls, interrupt handlers, and the main task-selection logic were all making independent writes to the same shared task control blocks. Whenever a hardware interrupt fired mid-write, stack pointers and exception return values were saved into the wrong taskControlBlocks slot. This created edge cases where preempted tasks were silently double-queued, state tracking completely desynchronized, and time-critical hardware events were dropped during flight. 2. Centralizing Context Switches in PendSV To eliminate these race conditions, all state-selection decisions were moved out of individual execution contexts and consolidated into decideNextTask(), which now runs exclusively inside the PendSV assembly handler. Functions like yieldCurrentTask(), decideNextInterruptTask(), and decideNextScheduledTask() no longer touch global scheduler state or choose which task runs next; they simply update local status flags like TaskState::BLOCKED or TaskState::READY inside brief __disable_irq() critical sections and trigger PendSV using SCB_ICSR_PENDSVSET_Msk. When PendSV fires, decideNextTask() saves outgoingSP and outgoingExcReturn to the active block, sets RUNNING tasks to READY, and runs a two-pass check over taskControlBlocks[]—evaluating high-priority TaskType::INTERRUPT tasks first, then TaskType::SCHEDULED tasks, and falling back to index 0 for idle. Since PendSV is the only place allowed to modify currTaskIndex, concurrent state corruption is structurally impossible."}, {"post_id": 71997, "ts": "2026-09-21T23:26:43Z", "hours": 7.2761, "text": "For the past couple weeks I have been mostly refining small bugs, which were originally rendering the RTOS usless, as well as refactoring the code for simplicity rather than elegancy. 1. Transition to Actual Hardware Renode is great for simulation, but it ended up hiding a bunch of race conditions in the population methods and the main scheduler that led to no code actually running during the IRQ handler calls. I spent a lot of time securing those resources and finally got the scheduler mostly finished up. Also, I decided to just take out the double preempts entirely since they were adding way too much complexity for absolutely zero speed benefits in practice (plus they were creating detrimental but rare race conditions). 2. Code Refactor To make things run a bit more consistent, I restructured how the control loops operate. I ended up merging the dShotGeneration task with the parent IMU control loop, so now everything from reading the sensors to pushing motor commands happens in one clean sequence (rather than including an unnecessary preempt). I also built out a brand new CRSF control loop to handle all the radio parsing and state machine updates in its own dedicated space (just for consistency). Lastly, while doing a final pass on the code, I realized that in my dShotGeneration helper, I had forgot to scale the values by a factor of 1/2000, as the inputs require the value to be between 0 and 1 (not 0 and 2000). 3. Final DMA Iteration The biggest relief was finally getting rid of the old blocking USART system. I finally transitioned away from manually handling the streaming by polling flags in a loop, which was tying up the processor way more than it should have. Everything has been converted over to a blocking DMA system, so the hardware can just handle all the memory transfers in the background while the CPU focuses on actually keeping the drone in the air. Overall, I think that this will be the final iteration of the RTOS DMA pipeline, as now that it is solid and works with all the edge cases, theres no need to change it. 4. Timeline With almost all the major bugs fixed, I am going to ship the project! While it is not 100% done, it will likely be as close as it will get during the timeframe of the Stardance hackathon, and with it so close, theres no reason not to ship. Anyway, I will keep the source as the main project rather than a release, so if I do end up fixing any major bugs, they will get patched either before or during project review (besides most of these bugs are only detectable on actual hardware). I will most likely finish the RTOS in the next couple weeks (by the end of October), and will finish the drivers for the ESC and RM by latest end of November (for more timing refer to the README). Thanks to everyone who supported me throughout this project (hopefully me and my friend can get this drone flying in another Hack Club Hackathon!)."}, {"post_id": 63202, "ts": "2026-09-06T21:25:57Z", "hours": 9.6606, "text": "1. Scheduler Hardening and Task Discovery Spent part of this session making the RTOS scheduler itself more robust. I added a findTaskByName() function so interrupt-driven task lookups happen dynamically instead of relying on hardcoded task indices, which was a fragile setup just waiting to break the moment task registration order changed. Alongside that, I wrapped every one of those lookups with lambdas that throw a proper warning if a task can’t be found, so a missing task fails loudly instead of silently dereferencing a null pointer somewhere downstream. 2. Blocking vs Non-Blocking Scheduled Tasks After a lot of painful debugging, I traced a string of issues (including interrupt tasks silently failing to fire and scheduled tasks stepping on each other) back to non-blocking statements I’d introduced inside scheduled tasks in the previous devlog. I ended up taking those out and reverting scheduled tasks fully back to blocking, which is genuinely what the scheduled zone was designed for in the first place: tasks that don’t need to run in polynomial time and can safely block without putting the drone at risk of crashing. Once that was sorted, I converted the raw USART byte-pushing into a blocking DMA system instead, so streaming is handled by DMA hardware rather than manually pushed byte-by-byte over USART. 3. Flight Loop Refactor and VTX Communication On the flight logic side, I refactored flightLoop() to use lambdas and a state machine so I would never have to yield in the middle of my tasks (which was used previousely for zeroing motor outputs). I also converted the error handling into a proper state machine, so different types of warnings can be caught and handled distinctly instead of lumping every issue into one path, and turned on full debug printing whenever the system is running. Last but not least, I built out a dedicated injector for respondToVTX so I can properly test and simulate VTX communication going forward. 4. Real Hardware Testing Since, I am almost 100% done with the RTOS I bought two NUCLEO-F756ZG’s which will serve as testing the 100% production code rather than the simulation version. I bought two so that one of the boards will be running the real RTOS code, testing DMA reading from USART, SPI, and emitting real motor signals, while the second will be emulating all of my peripherals. When the boards come, if the code does work, it will also mean that the real PCB’s will also work when my friend finishes with them. 5. Next Steps As of now there are a few issues with the double preempt system (for the interrupt tasks) I designed a while back, so I will need to debug that before they arrive. Right now before the boards arrive, I will be finishing up the RTOS blocking DMA pipelines (stripping out IRQ, removing NVIC etc. for scheduled tasks), and performing a bunch of baseline testing in order to prove that the RTOS is capable of flying an actual drone!"}, {"post_id": 52761, "ts": "2026-08-23T03:11:04Z", "hours": 9.6356, "text": "1. CLI Upgrades and Channel Mapping Over the past 5 days, I knocked out some major quality-of-life upgrades for the flight controller. I added customizable channel mapping for CRSF directly through the CLI. By utilizing a combination of references and pointers, I was able to point a volatile alias to certain channel mappings, allowing for completely customizable CRSF channels. While I was in the CLI logic, I also added the ability to configure custom IMU orientations around the z-axis, making it way easier to mount the board in different directions without having to recompile the firmware. 2. DMA Pipeline Fixes and Baro Optimization A big chunk of this session went into debugging and refactoring the hardware data pipelines. I adjusted the ADC population pipeline in order to fix some stream parsing issues, and gave the barometer a massive overhaul. The baro now uses a non-blocking, non-circular DMA setup that relies on a semi-interrupt-driven task call rather than a continuous loop. This enabled me to yield in the middle of the function, and call back later as soon as DMA is finished transferring. I also fixed a massive bug in the DMA setup: the DMA_SxCR_HTIE and DMA_SxCR_TCIE flags were accidentally enabled for the GPS and OSD ring buffers, which would have crashed the whole RTOS by firing unhandled interrupts, causing default HAL and IRQ handlers to run. 3. Walksnail Two-Way Communication Finally, I built out the respondToVTX task to get the drone properly communicating with the Walksnail VTX. Instead of just blindly sending video data out, this sets up true two-way communication over asynchronous UART. By writing a persistent byte-by-byte state machine, the flight controller can now safely parse incoming requests from the VTX without dropping half-packets, allowing me to send back live stick positions and armed status for the OSD menus. The only thing left to do now is handle persistent CLI storage, the logToBlackBox task, integrating the semi-interrupt pipeline with telemetryTX and the OSD, and a few other system tweaks. After that the RTOS will be 100% ready to fly the actual drone."}, {"post_id": 49360, "ts": "2026-08-18T04:16:35Z", "hours": 4.0211, "text": "Complete RTOS Overhaul, Circular DMA Pipelines, and CPU Abort Fixes This update focuses on fine-tuning the RTOS, organizing the scheduler, and rewriting microcontroller memory handling. Renode’s simulated DMA restrictions make software-only pipeline testing nearly impossible, so I plan to buy a physical dev board and Raspberry Pi to validate on silicon. While the Git diff might not look massive, the architecture has evolved from a blocking system to a true preemptive RTOS with precise polynomial timing. 1. Reworking DMA Flow & Standardizing Ring Buffers Sensor and receiver data pipelines are now driven by circular DMA, enabling non-blocking, high-frequency transfers with response times as fast as 0.3 ms (without printToUSART enabled). Everything now relies on ring buffers. Instead of generating complete packets instantly, mock injectors stream bytes directly into the buffers while updating the simulated NDTR register to mirror hardware behavior. if ( byteIdx >= frameLen ) { byteIdx = 0 ; } crsfRingBuffer [ head ] = frameBuf [ byteIdx ++ ]; head = ( head + 1 ) % CRSF_RING_BUFFER_SIZE ; currentBoardConfig . crsf_dma_stream -> NDTR = CRSF_RING_BUFFER_SIZE - head ; Feeding bytes incrementally moves the write head gradually, ensuring the simulation mimics a physical UART and allowing population functions to safely pull data within interrupt locks. 2. DMA Interrupts for Safe Parsing To prevent data overwrites, DMA streams trigger interrupts at the halfway (HTIE) and full-transfer (TCIE) points to queue tasks. Because registers like LISR are read-only in hardware, I implemented a software mock flag system (mock_LISR) for simulation: extern \"C\" void DMA1_Stream0_IRQHandler ( void ) { #ifdef SIMULATION uint32_t flags = mock_LISR ; mock_LISR = 0 ; #else uint32_t flags = DMA1 -> LISR ; #endif if ( flags & DMA_LISR_HTIF0 ) { DMA1 -> LIFCR = DMA_LIFCR_CHTIF0 ; decideNextInterruptTask ( & taskControlBlocks [ 1 ]); } } Functions safely extract data with interrupts disabled, ensuring the CPU never blocks waiting for peripheral transfers. 3. Assembly Bugs & CPU Aborts Debugging nested hardware interrupts exposed massive faults: The context-switching bug: FPU usage or large stack frames corrupted the return address, causing the CPU to execute BX LR with garbage data. Fixed in PendSV_Handler.S by explicitly storing excReturn inside the TaskControlBlock rather than relying on stacked registers. Second, a 0x00000000 Null Return Crash: Scheduled tasks attempted to return natively, popping 0x00000000 from the zero-initialized Link Register and causing a fetch fault. Every task now runs inside an infinite while(true) loop calling yieldCurrentTask() . 4. Clock PLLs & Hardware Re-routing After configuring the STM32CubeMX PLL for a 25 MHz HSE clock, the MCU runs at its full 216 MHz. I added a standardized initSystemGPIOClocks() function to enable peripheral clocks consistently. I also moved motor 3 from TIM1 to TIM4, synchronizing it with the 216MHz clock and freeing up a TIM1 DMA stream exclusively for the upcoming BlackBox logging. Future Updates With the core RTOS stabilized, development shifts to flight-facing systems: hooking the SPI pipeline to the video overlay for live OSD goggle telemetry, adding permanent flash storage for PID tunes/configs, exposing MCU controls via CLI, supporting programmable transmitter bind buttons, building a desktop GUI, and using the freed TIM1 DMA for BlackBox logging. Below, I have attached a screenshot of every single task working, and outputting values in the simulation, something that wasn’t possible for the interrupt tasks until now."}, {"post_id": 48647, "ts": "2026-08-17T03:57:01Z", "hours": 9.6761, "text": "1. Reworking the DMA Flow for Speed So, a lot has been going on lately, starting with a massive rework of the entire DMA flow. The functions are now entirely populated by circular DMA, which is a huge upgrade for the system’s overall performance. This architectural change allows for completely non-blocking, high-frequency calls, hitting response times as fast as 0.03 milliseconds. It basically means the whole data pipeline is significantly faster, and much more responsive than it was in previous versions. 2. Standardizing Ring Buffers and Mock Injectors To make everything more reliable, the DMA now follows a very specific and predictable pattern for both scheduled and interrupt tasks. Everything relies on ring buffers now, whether they are being injected by actual hardware (or simulated) DMA or by my custom simulation scripts. I also reworked the mock injectors so they no longer just return a pre-formatted packet. Instead, they write directly into the ring buffer, which lets me test the exact same parsing pipeline in software, simulating the hardware flow almost exactly like Renode (if only they would ever fix that USART DMA bug…). 3. Assembly BX LR Bug + STMCubeMX Clock PLL I also finally solved the long term BX LR return bug that I literally spent over 20 hours trying to find. Whenever tasks used the FPU or had slightly larger stacks, the return address in the r0 register would just get completely corrupted by the extra data. I fixed this by storing the return address in a dedicated uint value instead of blindly trusting the registers to hold it. That fix alone allowed me to safely re-add telemetryTX and make a bunch of other function logic much more robust. On top of that, I went into STM32CubeMX and reworked the clock PLL manually (it took over 3 hours to solve by hand). By feeding in a 25 MHz HSE clock, I managed to unlock the MCU’s internal clocks to run at their full 216 MHz.I also took some time to clean up the codebase to improve overall readability and commenting. 4. DMA Interrupts for Safe Parsing Another feature is that DMA now triggers interrupts when the ring buffers hit exactly halfway and when they are fully populated. This gives me the time to parse all the incoming values safely without having the risk about data getting overwritten by the next DMA pass before I am done reading it. I set up the IRQ handlers in the code to call the interrupt methods automatically, which ensures the CPU stays completely unblocked and free to handle other flight control tasks almost all the time (overall decreasing headroom). 5. Current Status: NVIC Bug Sadly, the code is actually not functional right now because the NVIC and IRQ pipeline is malfunctioning and just refusing to call the interrupts for reasons I cannot figure out yet. Because of this, I am holding off on pushing the code until I can track down the bug, give everything a final polish, and run some benchmark testing (since I don’t want to commit broken code). Also, sorry for promising a commit a day or two after my last devlog. I got super busy, especially with vacation, but I will try my best to get this sorted. Depending on how long it takes to figure out this NVIC issue, the next commit might drop anywhere from tomorrow to a few weeks from now."}, {"post_id": 41654, "ts": "2026-08-06T00:44:12Z", "hours": 9.5336, "text": "This week was heavily focused on the fine tuning and organization of the RTOS. I spent numerous hours of research and untangling environment setups. I originally tried to build out a complete framework for the drone code without relying on any simulation code, but Renode’s restrictions, specifically with its ability to perform DMA requests, quickly made it clear that path was impossible. To fix this I’m looking into picking up a dev board and a Raspberry Pi so I can test and debug everything on an actual MCU before finally moving the codebase over to the drone. Even though the git won’t look a whole lot different and not a lot of actual code changed, getting these configs finalized (especially in STM32CubeMX) in was a huge step forward for the project. I expect to commit the next version of the code either today or tomorrow, with improvements specifically in TelemetryTX, BlackBoxLogging, and a few other minor changes!"}, {"post_id": 37983, "ts": "2026-07-31T02:30:16Z", "hours": 8.6756, "text": "Major Architecture Upgrade : OSD, Betaflight Rates & Build System Refactor 1. OSD, DMA + SYS First off on the hardware side, I added native MSP-based OSD support for Walksnail video transmitters, built the SPI barometer driver for altitude tracking, and spun up a low-level health task that constantly monitors MPU registers and stack usage in the background. On top of that, I finally fixed the DMA stream conflicts (mainly in STMCubeMX) between TIM1 DShot motor outputs , ADC1, and SPI peripherals, so everything runs without collisions now. 2. SYS Health + Debugging I also implemented a few other low level tasks, allowing me to monitor system health, based upon ram usage and storage used. This task prints out the amount at which each tasks stack is being used, allowing me to effectively debug whether a task was actually overflowing, vs an unrestricted read/write. Furthermore, the original canary values that I used, were completely replaced as they in fact were causing some of the “stack overflow” bugs (via unrestricted reads/write every 1 ms in SysTick_Handler ). 3. Betaflight Rates + CLI Update For flight feel, I implemented Betaflight’s Actual Rates algorithm with custom expo curves, so stick inputs map to target angular velocities with center-stick precision. I also completely separated serial communications by moving the interactive CLI to USART1 (accessible via nc -C localhost 1234 in terminal) and pushing system logs to USART3. Additionally, I removed the old telemetryTX task because its unauthorized reads/writes were completely breaking the RTOS scheduler, and expanded the CLI with a ton of commands for live sensor readings and more PID tuning. Speaking of which, I am planning to create a persistent file in /bin/ , allowing for rates to be stored between runs, rather than being reset each during runtime, and having to be manually configured through the CLI. 4. Overhauled Building Workflow Finally, I overhauled the whole developer workflow and build automation setup. The build.sh and build.bat scripts now auto-configure custom CMake profiles and generate a full disassembly file in /bin/ after every build for fast low-level debugging, while run.sh and run.bat automatically launch the right terminal windows on launch. 5. Future Additions: I’m planning to build a closed-loop Renode simulation matrix to stream hardware data into every peripheral externally, letting me run 100% real production code during SIL testing! For this, I will utilize the currently blank simulate.py as well as certain commands in simulate.resc to create properly formatted dynamic buffers(which are not directly injected into the code), allowing me to properly test the DMA drivers, and many of the memory management helpers."}, {"post_id": 35605, "ts": "2026-07-27T04:22:30Z", "hours": 9.44, "text": "Over the last few days, I wrapped up two major tasks for the flight controller’s core sensor and telemetry stack: the on-screen display (OSD) renderer and the BMP390 barometer subsystem. The OSD engine is now fully hooked up to the state system, giving real-time visual downlinks for critical metrics like flight battery voltage, active flight modes, and height statistics over UART. To keep the execution completely non-blocking, all frame updates are dispatched asynchronously, preventing rendering delays from hindering the performance of the high-frequency control loops. On the barometer side, I implemented altitude tracking using Bosch’s BMP390 sensor over SPI with non-blocking DMA burst transfers. In the 50Hz task loop, incoming 24-bit raw pressure and temperature bytes are assembled and passed through the hypsometric formula to calculate smooth, relative height above ground level (AGL). Although the barometer task is a bit flawed due to floating point register stack errors with the header and end canary values, they don’t seem to be affecting the system in anyway (nor is any data being corrupted). I will find a way to fix these issues before the next commit, as well as the race condition in the interrupt tasks in the next Github commit. After that, it is just system polish and extensive testing before the RTOS will be complete!"}, {"post_id": 33865, "ts": "2026-07-24T04:03:21Z", "hours": 7.1808, "text": "1. Fixing the Stack Overflows at Boot After an entire 25-hour debugging period across 4 days, the RTOS kernel is finally done (for the scheduled tasks). I tracked down a silent bug where several critical scheduled tasks—like powerManagement , lowLevelFailSafe , and telemetryTX —were crashing the MCU on boot. The issue came down to a boot-time dependency lock: tasks were trying to poll hardware registers (like UART TX flags) and read shared drone state variables before the peripherals or producer tasks had time to initialize on Tick 0. By adding an initial yieldCurrentTask() right at the top of these methods, Task Phase Alignment was officially added. This gives the hardware a full cycle to stabilize, preventing buffer overflows and eliminating the cascading task state corruptions that were locking up the scheduler. 2. Custom Stack Sizing & Real-Time Guard Checks Alongside the scheduler fix, I pushed major upgrades to memory safety and task management. Instead of assigning a static stack array to every task, I transitioned to dynamic per-task stack allocations during initialization ( new (std::nothrow) ). Heavy string-parsing and math tasks get larger stacks, while simple toggle tasks stay lightweight. To catch memory issues before they corrupt the heap, I implemented a custom dual guarding system: 0xDEADBEEF is appended at the bottom of the stack to catch standard stack overflows, while a new 0xBEEFCAFE canary value is written to the very top index ( stackSizeWords ) to instantly flag memory breaches in the SysTick_Handler . Furthermore, I refactored powerManagement to use ADC2 in Circular DMA Mode, writing battery telemetry directly to RAM in the background for zero CPU overhead. 3. Transitioning to Walksnail Avatar HD Looking ahead, my and my friend are officially transitioning our existing analog video setup over to a fully integrated Walksnail Avatar HD digital ecosystem. Rather than keeping my custom telemetry task ( telemetryTX ) with heavy string formatting over raw UART, Walksnail allows me to stream standard MSP (MultiWii Serial Protocol) DisplayPort frames straight to the VTX. The Walksnail system will serve as our primary onboard logging source, giving us full OSD telemetry, high-framerate HD video, and precise blackbox data logging. With the RTOS core now stable and non-blocking, our next focus shifts toward “premium” flight controller features, e.g. including custom RC stick expo curves, an expanded USB CLI, and an integrated simulator interface."}, {"post_id": 32665, "ts": "2026-07-21T23:24:15Z", "hours": 9.0794, "text": "I just finished expanding the RTOS architecture, filling out all of the scheduled background tasks to handle real-time flight telemetry, peripheral hardware, and terminal configuration. On the telemetry side, I built out telemetryTX to package battery, status, and GPS data into standard CRSF frames over UART, alongside an NMEA gpsParser that decodes $GNGGA and $GNRMC sentences for live location fixes. I also made powerManagement into its own standalone task so ADC voltage and current metrics can feed into the failsafe logic and telemetry concurrently. To make bench testing and tuning significantly easier, I added usbCLI over USART1, giving me a full interactive shell to tweak PID gains (Kp, Ki, Kd), dump raw IMU data, and inspect hardware states on the fly without needing to reflash firmware. To keep the physical quad safe and responsive during flight, I added updatePeripherals for LED status patterns and buzzer warnings, along with a dedicated Independent Watchdog (IWDG) task running as a low-priority fail-safe to trigger hardware MCU resets if the scheduler ever freezes. On the project structure side, CMake now routes all output binaries straight into a clean ./bin/ directory so nobody has to compile the source manually just to run the .elf target in Renode. I also introduced a -DENABLE_DEBUG flag, allowing me to cleanly toggle between complete USART log prints across every loop or a blank terminal environment meant purely for the CLI shell. While all the background subsystems and scheduled task priorities are fully mapped out, I’m currently figuring out a few lingering RTOS bugs—specifically around stack allocation, causing stack overflow flags on certain scheduled tasks, along with scheduling starvation where context switching isn’t releasing task blocks properly. Because I want to ensure the scheduler kernel is 100% complete before pushing broken stack frames to the main branch, the GitHub repository will be updated with the complete, bug-fixed code later today. Everything is moving in the right direction, and getting these background tasks finalized brings me one step closer to full flight hardware deployment!"}, {"post_id": 31067, "ts": "2026-07-19T04:58:26Z", "hours": 2.5139, "text": "I’ve spent the last 20 hours of coding basically staring at bare-metal memory allocations and tracking down why the drone’s context switcher was triggering CPU drops under the Renode simulation environment. Moving away from manual Python injection scripts to a cleaner C++ conditional compilation framework using CMake was supposed to simplify the testing layout, but instead, it exposed structural design flaws in how the scheduler kernel boots up. Running a multi-sample sensorCalibration() routine at cold boot was forcing hidden task yields before the OS kernel was fully mapped out, which was throwing unmapped register address errors and wiping out index-0 entries. To solve this, I decoupled the entire state machine sequence so that hardware allocations, peripheral registers, and core tracking counters now clear before any operational loops drop into the registry. I also added a critical rtosStarted gatekeeper flag to yieldCurrentTask() so calibration math runs cleanly in sequence without triggering early PendSV handler switches. On top of that, the task stack pointers are completely realigned. The assembly context swapper now maps a precise 32-word boundary allocation utilizing 0xFFFFFFFD as a basic exception return code, which completely eliminates the data corruption that was misaligning our Process Stack Pointer. With the fundamental kernel stabilized, I shifted entirely into clean architecture organization. The massive, cluttered code blocks have been split up into independent tracking files (BufferPopulation.cpp, Tasks.cpp, and SimInjector.cpp). High-speed SPI reads for the IMU, UART ring buffers for decoding CRSF radio channel frames, battery ADC sampling, and DShot600 motor output mixers are now fully broken out and functional. There is still a nagging preemption lockout issue inside the simulator where a single interrupt task attempts to starve out the other concurrent loops during a millisecond window, but the baseline operating system is locked in, meaning I can confidently verify the PID flight mixing tables and safety code blocks safely before the code ever touches a physical quadcopter. If you would like to run your own tasks, I also added support in the .bat and .sh files to build code for the simulation (flag=sim), user task code (flag=user), and actual drone upload code (no flags). Example MacOS Commands: ./build.sh sim ./build.sh user ./build.sh This makes it so that I don’t have to constantly modify code to run either the user tasks or simulation code, instead using a flag. Overall, this RTOS is not done yet, however, I plan to add the rest of the scheduled tasks later today, and fixing the sole bug keeping this simulation back! I expect a full ship to be comming out in the next week or so, along with all ESC, RM, and TM code complete!"}, {"post_id": 30963, "ts": "2026-07-18T23:42:07Z", "hours": 9.2461, "text": "I’ve been doing a lot of debugging for the RTOS scheduler inside the simulation environment, and it’s been very difficult for me to identify many bugs in teh core architecture of my tasks. Moving away from Python scripts to a cleaner C++ conditional compilation framework using CMake was supposed to simplify things, but instead, it exposed some nasty architectural bugs in how tasks and context switching interact. There has also been a massive priority inversion and preemption lockup where the CRSF parsing loop completely starves out the lower-priority threads. Also, running a raw sensor calibration loop at boot was forcing thread switches before the OS kernel was even fully initialized, completely corrupting task indexes, throwing null pointer warnings, and leaving half of my PID calculations at zero. Still working on many fixes, but it has been a lot of work (9 hours), but I hope to get the full RTOS with at least bare minimum flight tasks out by tomorrow! The GitHub repo still won’t be fully up-to-date until these structural bugs are figured out, but I plan to push the corrected scheduler files and mock drivers very soon. The screenshot below shows an image of the CRSF task completely dominating, without any processes interrupting it."}, {"post_id": 30245, "ts": "2026-07-17T17:45:35Z", "hours": 9.5911, "text": "I just wrapped up the core architecture of the drone’s flight controller, including mapping out all 7 interrupt methods into a far more optimized RTOS scheduler. The updated version makes use of a FIFO stack, to keep track of nested interrupts. I also protected the main code from data corruption during pendSV switches by enabling and disabling irq in certain areas of vulnerable code. Other small changes to the assembly to save floating point registers as well as better memory allocation was also done in this update. From high-speed IMU sensor integration and state estimation calculations to CRSF packet decoding and DShot motor generation, the essential tasks are fully written and compiled. I’ve officially shifted gears into the testing phase, working on simulated environments to debug DMA transfers, registers, and the flight state machine’s arming sequences. As of now, I am writing python scripts by hand, in order to inject “dummy” values into the GPIO, SPI, and USART registers in order to populate the buffers, and simulate the calculations. As the code is becoming longer and longer, I will try to refactor a lot of the files into smaller more organized portions, to increase readability (often I have a hard time traversing everything). Note: The current code pushed to GitHub isn’t quite the latest since I’m in the middle of troubleshooting a few simulation-specific register bugs, but I wanted to get this update out to meet the 10-hour devlog requirement on Stardance. Everything is moving in the right direction, and having a virtual environment all working means I can safely verify the PID mixer and safety flags before this code ever touches a physical quad. This officially marks the end of both phases 2 and 3, and now its a matter of finishing extra scheduled telemetry tasks (e.g. OSD and EdgeTX logging), but I estimate that the flight controller portion of the code (around 60% of all logic in the drone) will be done between now and Sunday, July 19th! I will also post a much more in depth devlog about how the methods work, as well as an updated README.md on Github ASAP."}, {"post_id": 28703, "ts": "2026-07-15T03:44:43Z", "hours": 1.4603, "text": "To make my hybrid RTOS accessible and easy to test, I designed a modular sandbox task registry system that isolates the core kernel from custom user code. Developers can write standard non-returning tasks in an isolated file ( User_Tasks/user_tasks.cpp ), while the kernel exposes a registration hook that allocates a dedicated 1024-word stack space. This decoupling means anyone can plug in their own cooperative or preemptive tasks, set execution periods or trigger bounds, and run them instantly on our virtual STM32F7 without risking memory corruption or touching the underlying context-switching assembly. For more information on how to make your own tasks refer to the README.md ."}, {"post_id": 28651, "ts": "2026-07-15T01:05:47Z", "hours": 1.0922, "text": "I just updated a few build files and restructured the project, so code and simulation separation would be better. I also added a few executable files (build.sh, run.bat, and run.sh) to easily compile and run the project."}, {"post_id": 28615, "ts": "2026-07-14T23:38:20Z", "hours": 5.5942, "text": "I finally reached a massive milestone with the kernel architecture and got the scheduler firing exactly how it needs to. Even though I thought the RTOS portion was completely wrapped up a bit ago, now it is officially done. I ended up doing a massive revamp on how scheduled tasks execute, routing them through PendSV so that the background worker states get completely backed up and saved by my assembly code just like the preemptive ones. I also cleaned up the initialization API by throwing in an overloaded function to separate timed loops from raw hardware events (the interrupt tasks). Overall most of the testing logic is now gone, and now the system is being more and more focused on the actual drone tasks. On the hardware side of things, I built out the actual drone tasks and the underlying SPI and UART DMA drivers that populate my local data packets. Even though they are not in use right now as all the tasks (which are not fully completed) require the support of each other for full testing. With the core OS completely checked off, the focus is shifting entirely over to the actual flight control logic. Over the next couple of days, I’m going to wrap up the final flight controller tasks, and get the core stabilization algorithms running. Once the flight controller application layer is fully put together, I’m moving straight onto building out complete simulations for the receiver, transmitter, and finally the ESC modules to get the whole drone network interacting together!"}, {"post_id": 27365, "ts": "2026-07-12T21:17:48Z", "hours": 3.8289, "text": "I finally finished the most difficult part of the project so far and got a hybrid cooperative/preemptive scheduler running from scratch. After a ton of debugging with the assembly memory layout, the core RTOS kernel shell is officially stable, verified inside the Renode simulator, and completely ready to handle flight data. The architecture divides the CPU’s brain into two execution pathways to maximize calculation speeds while keeping latency near zero. Standard background tasks, like handling low-priority peripheral updates, run sequentially inside a cooperative loop based on their relative priority. They execute and then drop out without wasting an overhead time. But for high-priority hardware event such as a critical radio packet arriving over UART or raw sensor data from the IMU, the system completely bypasses the standard queue. It pulls a physical hardware lever (PendSV) that forces an instant stack swap. When an interrupt task fires through PendSV, the CPU pauses the background scheduled loop, and my assembly code packs up the core registers, saves that exact memory address to RAM, and hot-swaps the Process Stack Pointer to launch the interrupt task. Right now, there is just a dummy delay loop inside the interrupt task to visually show the execution break in the console logs. Once it finishes printing, it hits a yield function that throws the assembly switch backward, pops the background registers, and hands control straight back to the flight loop. The repository currenly has a lot of diagnostic test code because I needed to prove the pointer indirection and stack-faking logic worked without blowing up the memory alignment. Now that the plumbing is completely verified, the next step is to strip out the test code and start writing the actual flight infrastructure. I am moving straight into coding the PID control loops, signal mixers, Kalman filters, and live motor generation."}, {"post_id": 26996, "ts": "2026-07-12T03:54:25Z", "hours": 2.8228, "text": "I finally added minimum task scheduling for the RTOS. I had originally designed a simple kernel to create a buffer of scheduled tasks in QEMU, but after learning that the simulation didn’t actually support the specific MCU that my friend and I are using for the real drone, I had to pivot. I switched over to using STM32CubeMX for the actual bare-metal configuration and Renode to handle running the emulation. Right now, the kernel just executes a task based on a basic timing loop and priority, waits for it to completely finish, and then moves on to the next task. To be honest, it isn’t super useful yet because it only covers tasks in what I call the “scheduled zone” of the drone. This includes background stuff like blackbox flight data management, but it leaves out the most critical parts like the PID control loops and streaming real-time UART data from the IMU. Those features need to fire their own asynchronous interrupt signals at the highest possible hardware priority so they can instantly pause the optional background tasks and execute the critical code that actually keeps the drone stable and flying. Next up, I need to write a short piece of assembly to handle saving the current CPU state and registers of whatever task is currently running when an interrupt hits. It shouldn’t be too bad since it will only take about 30 lines of code. I know I haven’t been posting devlogs for the past couple of weeks even though I’ve been grinding on this, but that’s mostly because we spent a ton of time initially planning out the architecture of the drone. We wanted to map out the software boundaries early so my friend and I could go our separate ways working on different systems without having massive merge conflicts later on."}]...
|
Title: 200 MPH Drone RTOS by @Guagyyy | Stardance
Title: 200 MPH Drone RTOS by @Guagyyy | Stardance
Devlogs:
I finally added minimum task scheduling for the RTOS. I had originally designed a simple kernel to create a buffer of scheduled tasks in QEMU, but after learning that the simulation didn’t actually support the specific MCU that my friend and I are using for the real drone, I had to pivot. I switched over to using STM32CubeMX for the actual bare-metal configuration and Renode to handle running the emulation. Right now, the kernel just executes a task based on a basic timing loop and priority, waits for it to completely finish, and then moves on to the next task. To be honest, it isn’t super useful yet because it only covers tasks in what I call the “scheduled zone” of the drone. This includes background stuff like blackbox flight data management, but it leaves out the most critical parts like the PID control loops and streaming real-time UART data from the IMU. Those features need to fire their own asynchronous interrupt signals at the highest possible hardware priority so they can instantly pause the optional background tasks and execute the critical code that actually keeps the drone stable and flying. Next up, I need to write a short piece of assembly to handle saving the current CPU state and registers of whatever task is currently running when an interrupt hits. It shouldn’t be too bad since it will only take about 30 lines of code. I know I haven’t been posting devlogs for the past couple of weeks even though I’ve been grinding on this, but that’s mostly because we spent a ton of time initially planning out the architecture of the drone. We wanted to map out the software boundaries early so my friend and I could go our separate ways working on different systems without having massive merge conflicts later on.
I finally finished the most difficult part of the project so far and got a hybrid cooperative/preemptive scheduler running from scratch. After a ton of debugging with the assembly memory layout, the core RTOS kernel shell is officially stable, verified inside the Renode simulator, and completely ready to handle flight data. The architecture divides the CPU’s brain into two execution pathways to maximize calculation speeds while keeping latency near zero. Standard background tasks, like handling low-priority peripheral updates, run sequentially inside a cooperative loop based on their relative priority. They execute and then drop out without wasting an overhead time. But for high-priority hardware event such as a critical radio packet arriving over UART or raw sensor data from the IMU, the system completely bypasses the standard queue. It pulls a physical hardware lever (PendSV) that forces an instant stack swap. When an interrupt task fires through PendSV, the CPU pauses the background scheduled loop, and my assembly code packs up the core registers, saves that exact memory address to RAM, and hot-swaps the Process Stack Pointer to launch the interrupt task. Right now, there is just a dummy delay loop inside the interrupt task to visually show the execution break in the console logs. Once it finishes printing, it hits a yield function that throws the assembly switch backward, pops the background registers, and hands control straight back to the flight loop. The repository currenly has a lot of diagnostic test code because I needed to prove the pointer indirection and stack-faking logic worked without blowing up the memory alignment. Now that the plumbing is completely verified, the next step is to strip out the test code and start writing the actual flight infrastructure. I am moving straight into coding the PID control loops, signal mixers, Kalman filters, and live motor generation.
I finally reached a massive milestone with the kernel architecture and got the scheduler firing exactly how it needs to. Even though I thought the RTOS portion was completely wrapped up a bit ago, now it is officially done. I ended up doing a massive revamp on how scheduled tasks execute, routing them through PendSV so that the background worker states get completely backed up and saved by my assembly code just like the preemptive ones. I also cleaned up the initialization API by throwing in an overloaded function to separate timed loops from raw hardware events (the interrupt tasks). Overall most of the testing logic is now gone, and now the system is being more and more focused on the actual drone tasks. On the hardware side of things, I built out the actual drone tasks and the underlying SPI and UART DMA drivers that populate my local data packets. Even though they are not in use right now as all the tasks (which are not fully completed) require the support of each other for full testing. With the core OS completely checked off, the focus is shifting entirely over to the actual flight control logic. Over the next couple of days, I’m going to wrap up the final flight controller tasks, and get the core stabilization algorithms running. Once the flight controller application layer is fully put together, I’m moving straight onto building out complete simulations for the receiver, transmitter, and finally the ESC modules to get the whole drone network interacting together!
I just updated a few build files and restructured the project, so code and simulation separation would be better. I also added a few executable files (build.sh, run.bat, and run.sh) to easily compile and run the project.
To make my hybrid RTOS accessible and easy to test, I designed a modular sandbox task registry system that isolates the core kernel from custom user code. Developers can write standard non-returning tasks in an isolated file ( User_Tasks/user_tasks.cpp ), while the kernel exposes a registration hook that allocates a dedicated 1024-word stack space. This decoupling means anyone can plug in their own cooperative or preemptive tasks, set execution periods or trigger bounds, and run them instantly on our virtual STM32F7 without risking memory corruption or touching the underlying context-switching assembly. For more information on how to make your own tasks refer to the README.md .
I just wrapped up the core architecture of the drone’s flight controller, including mapping out all 7 interrupt methods into a far more optimized RTOS scheduler. The updated version makes use of a FIFO stack, to keep track of nested interrupts. I also protected the main code from data corruption during pendSV switches by enabling and disabling irq in certain areas of vulnerable code. Other small changes to the assembly to save floating point registers as well as better memory allocation was also done in this update. From high-speed IMU sensor integration and state estimation calculations to CRSF packet decoding and DShot motor generation, the essential tasks are fully written and compiled. I’ve officially shifted gears into the testing phase, working on simulated environments to debug DMA transfers, registers, and the flight state machine’s arming sequences. As of now, I am writing python scripts by hand, in order to inject “dummy” values into the GPIO, SPI, and USART registers in order to populate the buffers, and simulate the calculations. As the code is becoming longer and longer, I will try to refactor a lot of the files into smaller more organized portions, to increase readability (often I have a hard time traversing everything). Note: The current code pushed to GitHub isn’t quite the latest since I’m in the middle of troubleshooting a few simulation-specific register bugs, but I wanted to get this update out to meet the 10-hour devlog requirement on Stardance. Everything is moving in the right direction, and having a virtual environment all working means I can safely verify the PID mixer and safety flags before this code ever touches a physical quad. This officially marks the end of both phases 2 and 3, and now its a matter of finishing extra scheduled telemetry tasks (e.g. OSD and EdgeTX logging), but I estimate that the flight controller portion of the code (around 60% of all logic in the drone) will be done between now and Sunday, July 19th! I will also post a much more in depth devlog about how the methods work, as well as an updated README.md on Github ASAP.
I’ve been doing a lot of debugging for the RTOS scheduler inside the simulation environment, and it’s been very difficult for me to identify many bugs in teh core architecture of my tasks. Moving away from Python scripts to a cleaner C++ conditional compilation framework using CMake was supposed to simplify things, but instead, it exposed some nasty architectural bugs in how tasks and context switching interact. There has also been a massive priority inversion and preemption lockup where the CRSF parsing loop completely starves out the lower-priority threads. Also, running a raw sensor calibration loop at boot was forcing thread switches before the OS kernel was even fully initialized, completely corrupting task indexes, throwing null pointer warnings, and leaving half of my PID calculations at zero. Still working on many fixes, but it has been a lot of work (9 hours), but I hope to get the full RTOS with at least bare minimum flight tasks out by tomorrow! The GitHub repo still won’t be fully up-to-date until these structural bugs are figured out, but I plan to push the corrected scheduler files and mock drivers very soon. The screenshot below shows an image of the CRSF task completely dominating, without any processes interrupting it.
I’ve spent the last 20 hours of coding basically staring at bare-metal memory allocations and tracking down why the drone’s context switcher was triggering CPU drops under the Renode simulation environment. Moving away from manual Python injection scripts to a cleaner C++ conditional compilation framework using CMake was supposed to simplify the testing layout, but instead, it exposed structural design flaws in how the scheduler kernel boots up. Running a multi-sample sensorCalibration() routine at cold boot was forcing hidden task yields before the OS kernel was fully mapped out, which was throwing unmapped register address errors and wiping out index-0 entries. To solve this, I decoupled the entire state machine sequence so that hardware allocations, peripheral registers, and core tracking counters now clear before any operational loops drop into the registry. I also added a critical rtosStarted gatekeeper flag to yieldCurrentTask() so calibration math runs cleanly in sequence without triggering early PendSV handler switches. On top of that, the task stack pointers are completely realigned. The assembly context swapper now maps a precise 32-word boundary allocation utilizing 0xFFFFFFFD as a basic exception return code, which completely eliminates the data corruption that was misaligning our Process Stack Pointer. With the fundamental kernel stabilized, I shifted entirely into clean architecture organization. The massive, cluttered code blocks have been split up into independent tracking files (BufferPopulation.cpp, Tasks.cpp, and SimInjector.cpp). High-speed SPI reads for the IMU, UART ring buffers for decoding CRSF radio channel frames, battery ADC sampling, and DShot600 motor output mixers are now fully broken out and functional. There is still a nagging preemption lockout issue inside the simulator where a single interrupt task attempts to starve out the other concurrent loops during a millisecond window, but the baseline operating system is locked in, meaning I can confidently verify the PID flight mixing tables and safety code blocks safely before the code ever touches a physical quadcopter. If you would like to run your own tasks, I also added support in the .bat and .sh files to build code for the simulation (flag=sim), user task code (flag=user), and actual drone upload code (no flags). Example MacOS Commands: ./build.sh sim ./build.sh user ./build.sh This makes it so that I don’t have to constantly modify code to run either the user tasks or simulation code, instead using a flag. Overall, this RTOS is not done yet, however, I plan to add the rest of the scheduled tasks later today, and fixing the sole bug keeping this simulation back! I expect a full ship to be comming out in the next week or so, along with all ESC, RM, and TM code complete!
I just finished expanding the RTOS architecture, filling out all of the scheduled background tasks to handle real-time flight telemetry, peripheral hardware, and terminal configuration. On the telemetry side, I built out telemetryTX to package battery, status, and GPS data into standard CRSF frames over UART, alongside an NMEA gpsParser that decodes $GNGGA and $GNRMC sentences for live location fixes. I also made powerManagement into its own standalone task so ADC voltage and current metrics can feed into the failsafe logic and telemetry concurrently. To make bench testing and tuning significantly easier, I added usbCLI over USART1, giving me a full interactive shell to tweak PID gains (Kp, Ki, Kd), dump raw IMU data, and inspect hardware states on the fly without needing to reflash firmware. To keep the physical quad safe and responsive during flight, I added updatePeripherals for LED status patterns and buzzer warnings, along with a dedicated Independent Watchdog (IWDG) task running as a low-priority fail-safe to trigger hardware MCU resets if the scheduler ever freezes. On the project structure side, CMake now routes all output binaries straight into a clean ./bin/ directory so nobody has to compile the source manually just to run the .elf target in Renode. I also introduced a -DENABLE_DEBUG flag, allowing me to cleanly toggle between complete USART log prints across every loop or a blank terminal environment meant purely for the CLI shell. While all the background subsystems and scheduled task priorities are fully mapped out, I’m currently figuring out a few lingering RTOS bugs—specifically around stack allocation, causing stack overflow flags on certain scheduled tasks, along with scheduling starvation where context switching isn’t releasing task blocks properly. Because I want to ensure the scheduler kernel is 100% complete before pushing broken stack frames to the main branch, the GitHub repository will be updated with the complete, bug-fixed code later today. Everything is moving in the right direction, and getting these background tasks finalized brings me one step closer to full flight hardware deployment!
1. Fixing the Stack Overflows at Boot After an entire 25-hour debugging period across 4 days, the RTOS kernel is finally done (for the scheduled tasks). I tracked down a silent bug where several critical scheduled tasks—like powerManagement , lowLevelFailSafe , and telemetryTX —were crashing the MCU on boot. The issue came down to a boot-time dependency lock: tasks were trying to poll hardware registers (like UART TX flags) and read shared drone state variables before the peripherals or producer tasks had time to initialize on Tick 0. By adding an initial yieldCurrentTask() right at the top of these methods, Task Phase Alignment was officially added. This gives the hardware a full cycle to stabilize, preventing buffer overflows and eliminating the cascading task state corruptions that were locking up the scheduler. 2. Custom Stack Sizing & Real-Time Guard Checks Alongside the scheduler fix, I pushed major upgrades to memory safety and task management. Instead of assigning a static stack array to every task, I transitioned to dynamic per-task stack allocations during initialization ( new (std::nothrow) ). Heavy string-parsing and math tasks get larger stacks, while simple toggle tasks stay lightweight. To catch memory issues before they corrupt the heap, I implemented a custom dual guarding system: 0xDEADBEEF is appended at the bottom of the stack to catch standard stack overflows, while a new 0xBEEFCAFE canary value is written to the very top index ( stackSizeWords ) to instantly flag memory breaches in the SysTick_Handler . Furthermore, I refactored powerManagement to use ADC2 in Circular DMA Mode, writing battery telemetry directly to RAM in the background for zero CPU overhead. 3. Transitioning to Walksnail Avatar HD Looking ahead, my and my friend are officially transitioning our existing analog video setup over to a fully integrated Walksnail Avatar HD digital ecosystem. Rather than keeping my custom telemetry task ( telemetryTX ) with heavy string formatting over raw UART, Walksnail allows me to stream standard MSP (MultiWii Serial Protocol) DisplayPort frames straight to the VTX. The Walksnail system will serve as our primary onboard logging source, giving us full OSD telemetry, high-framerate HD video, and precise blackbox data logging. With the RTOS core now stable and non-blocking, our next focus shifts toward “premium” flight controller features, e.g. including custom RC stick expo curves, an expanded USB CLI, and an integrated simulator interface.
Over the last few days, I wrapped up two major tasks for the flight controller’s core sensor and telemetry stack: the on-screen display (OSD) renderer and the BMP390 barometer subsystem. The OSD engine is now fully hooked up to the state system, giving real-time visual downlinks for critical metrics like flight battery voltage, active flight modes, and height statistics over UART. To keep the execution completely non-blocking, all frame updates are dispatched asynchronously, preventing rendering delays from hindering the performance of the high-frequency control loops. On the barometer side, I implemented altitude tracking using Bosch’s BMP390 sensor over SPI with non-blocking DMA burst transfers. In the 50Hz task loop, incoming 24-bit raw pressure and temperature bytes are assembled and passed through the hypsometric formula to calculate smooth, relative height above ground level (AGL). Although the barometer task is a bit flawed due to floating point register stack errors with the header and end canary values, they don’t seem to be affecting the system in anyway (nor is any data being corrupted). I will find a way to fix these issues before the next commit, as well as the race condition in the interrupt tasks in the next Github commit. After that, it is just system polish and extensive testing before the RTOS will be complete!
Major Architecture Upgrade : OSD, Betaflight Rates & Build System Refactor 1. OSD, DMA + SYS First off on the hardware side, I added native MSP-based OSD support for Walksnail video transmitters, built the SPI barometer driver for altitude tracking, and spun up a low-level health task that constantly monitors MPU registers and stack usage in the background. On top of that, I finally fixed the DMA stream conflicts (mainly in STMCubeMX) between TIM1 DShot motor outputs , ADC1, and SPI peripherals, so everything runs without collisions now. 2. SYS Health + Debugging I also implemented a few other low level tasks, allowing me to monitor system health, based upon ram usage and storage used. This task prints out the amount at which each tasks stack is being used, allowing me to effectively debug whether a task was actually overflowing, vs an unrestricted read/write. Furthermore, the original canary values that I used, were completely replaced as they in fact were causing some of the “stack overflow” bugs (via unrestricted reads/write every 1 ms in SysTick_Handler ). 3. Betaflight Rates + CLI Update For flight feel, I implemented Betaflight’s Actual Rates algorithm with custom expo curves, so stick inputs map to target angular velocities with center-stick precision. I also completely separated serial communications by moving the interactive CLI to USART1 (accessible via nc -C localhost 1234 in terminal) and pushing system logs to USART3. Additionally, I removed the old telemetryTX task because its unauthorized reads/writes were completely breaking the RTOS scheduler, and expanded the CLI with a ton of commands for live sensor readings and more PID tuning. Speaking of which, I am planning to create a persistent file in /bin/ , allowing for rates to be stored between runs, rather than being reset each during runtime, and having to be manually configured through the CLI. 4. Overhauled Building Workflow Finally, I overhauled the whole developer workflow and build automation setup. The build.sh and build.bat scripts now auto-configure custom CMake profiles and generate a full disassembly file in /bin/ after every build for fast low-level debugging, while run.sh and run.bat automatically launch the right terminal windows on launch. 5. Future Additions: I’m planning to build a closed-loop Renode simulation matrix to stream hardware data into every peripheral externally, letting me run 100% real production code during SIL testing! For this, I will utilize the currently blank simulate.py as well as certain commands in simulate.resc to create properly formatted dynamic buffers(which are not directly injected into the code), allowing me to properly test the DMA drivers, and many of the memory management helpers.
This week was heavily focused on the fine tuning and organization of the RTOS. I spent numerous hours of research and untangling environment setups. I originally tried to build out a complete framework for the drone code without relying on any simulation code, but Renode’s restrictions, specifically with its ability to perform DMA requests, quickly made it clear that path was impossible. To fix this I’m looking into picking up a dev board and a Raspberry Pi so I can test and debug everything on an actual MCU before finally moving the codebase over to the drone. Even though the git won’t look a whole lot different and not a lot of actual code changed, getting these configs finalized (especially in STM32CubeMX) in was a huge step forward for the project. I expect to commit the next version of the code either today or tomorrow, with improvements specifically in TelemetryTX, BlackBoxLogging, and a few other minor changes!
1. Reworking the DMA Flow for Speed So, a lot has been going on lately, starting with a massive rework of the entire DMA flow. The functions are now entirely populated by circular DMA, which is a huge upgrade for the system’s overall performance. This architectural change allows for completely non-blocking, high-frequency calls, hitting response times as fast as 0.03 milliseconds. It basically means the whole data pipeline is significantly faster, and much more responsive than it was in previous versions. 2. Standardizing Ring Buffers and Mock Injectors To make everything more reliable, the DMA now follows a very specific and predictable pattern for both scheduled and interrupt tasks. Everything relies on ring buffers now, whether they are being injected by actual hardware (or simulated) DMA or by my custom simulation scripts. I also reworked the mock injectors so they no longer just return a pre-formatted packet. Instead, they write directly into the ring buffer, which lets me test the exact same parsing pipeline in software, simulating the hardware flow almost exactly like Renode (if only they would ever fix that USART DMA bug…). 3. Assembly BX LR Bug + STMCubeMX Clock PLL I also finally solved the long term BX LR return bug that I literally spent over 20 hours trying to find. Whenever tasks used the FPU or had slightly larger stacks, the return address in the r0 register would just get completely corrupted by the extra data. I fixed this by storing the return address in a dedicated uint value instead of blindly trusting the registers to hold it. That fix alone allowed me to safely re-add telemetryTX and make a bunch of other function logic much more robust. On top of that, I went into STM32CubeMX and reworked the clock PLL manually (it took over 3 hours to solve by hand). By feeding in a 25 MHz HSE clock, I managed to unlock the MCU’s internal clocks to run at their full 216 MHz.I also took some time to clean up the codebase to improve overall readability and commenting. 4. DMA Interrupts for Safe Parsing Another feature is that DMA now triggers interrupts when the ring buffers hit exactly halfway and when they are fully populated. This gives me the time to parse all the incoming values safely without having the risk about data getting overwritten by the next DMA pass before I am done reading it. I set up the IRQ handlers in the code to call the interrupt methods automatically, which ensures the CPU stays completely unblocked and free to handle other flight control tasks almost all the time (overall decreasing headroom). 5. Current Status: NVIC Bug Sadly, the code is actually not functional right now because the NVIC and IRQ pipeline is malfunctioning and just refusing to call the interrupts for reasons I cannot figure out yet. Because of this, I am holding off on pushing the code until I can track down the bug, give everything a final polish, and run some benchmark testing (since I don’t want to commit broken code). Also, sorry for promising a commit a day or two after my last devlog. I got super busy, especially with vacation, but I will try my best to get this sorted. Depending on how long it takes to figure out this NVIC issue, the next commit might drop anywhere from tomorrow to a few weeks from now.
Complete RTOS Overhaul, Circular DMA Pipelines, and CPU Abort Fixes This update focuses on fine-tuning the RTOS, organizing the scheduler, and rewriting microcontroller memory handling. Renode’s simulated DMA restrictions make software-only pipeline testing nearly impossible, so I plan to buy a physical dev board and Raspberry Pi to validate on silicon. While the Git diff might not look massive, the architecture has evolved from a blocking system to a true preemptive RTOS with precise polynomial timing. 1. Reworking DMA Flow & Standardizing Ring Buffers Sensor and receiver data pipelines are now driven by circular DMA, enabling non-blocking, high-frequency transfers with response times as fast as 0.3 ms (without printToUSART enabled). Everything now relies on ring buffers. Instead of generating complete packets instantly, mock injectors stream bytes directly into the buffers while updating the simulated NDTR register to mirror hardware behavior. if ( byteIdx >= frameLen ) { byteIdx = 0 ; } crsfRingBuffer [ head ] = frameBuf [ byteIdx ++ ]; head = ( head + 1 ) % CRSF_RING_BUFFER_SIZE ; currentBoardConfig . crsf_dma_stream -> NDTR = CRSF_RING_BUFFER_SIZE - head ; Feeding bytes incrementally moves the write head gradually, ensuring the simulation mimics a physical UART and allowing population functions to safely pull data within interrupt locks. 2. DMA Interrupts for Safe Parsing To prevent data overwrites, DMA streams trigger interrupts at the halfway (HTIE) and full-transfer (TCIE) points to queue tasks. Because registers like LISR are read-only in hardware, I implemented a software mock flag system (mock_LISR) for simulation: extern "C" void DMA1_Stream0_IRQHandler ( void ) { #ifdef SIMULATION uint32_t flags = mock_LISR ; mock_LISR = 0 ; #else uint32_t flags = DMA1 -> LISR ; #endif if ( flags & DMA_LISR_HTIF0 ) { DMA1 -> LIFCR = DMA_LIFCR_CHTIF0 ; decideNextInterruptTask ( & taskControlBlocks [ 1 ]); } } Functions safely extract data with interrupts disabled, ensuring the CPU never blocks waiting for peripheral transfers. 3. Assembly Bugs & CPU Aborts Debugging nested hardware interrupts exposed massive faults: The context-switching bug: FPU usage or large stack frames corrupted the return address, causing the CPU to execute BX LR with garbage data. Fixed in PendSV_Handler.S by explicitly storing excReturn inside the TaskControlBlock rather than relying on stacked registers. Second, a 0x00000000 Null Return Crash: Scheduled tasks attempted to return natively, popping 0x00000000 from the zero-initialized Link Register and causing a fetch fault. Every task now runs inside an infinite while(true) loop calling yieldCurrentTask() . 4. Clock PLLs & Hardware Re-routing After configuring the STM32CubeMX PLL for a 25 MHz HSE clock, the MCU runs at its full 216 MHz. I added a standardized initSystemGPIOClocks() function to enable peripheral clocks consistently. I also moved motor 3 from TIM1 to TIM4, synchronizing it with the 216MHz clock and freeing up a TIM1 DMA stream exclusively for the upcoming BlackBox logging. Future Updates With the core RTOS stabilized, development shifts to flight-facing systems: hooking the SPI pipeline to the video overlay for live OSD goggle telemetry, adding permanent flash storage for PID tunes/configs, exposing MCU controls via CLI, supporting programmable transmitter bind buttons, building a desktop GUI, and using the freed TIM1 DMA for BlackBox logging. Below, I have attached a screenshot of every single task working, and outputting values in the simulation, something that wasn’t possible for the interrupt tasks until now.
1. CLI Upgrades and Channel Mapping Over the past 5 days, I knocked out some major quality-of-life upgrades for the flight controller. I added customizable channel mapping for CRSF directly through the CLI. By utilizing a combination of references and pointers, I was able to point a volatile alias to certain channel mappings, allowing for completely customizable CRSF channels. While I was in the CLI logic, I also added the ability to configure custom IMU orientations around the z-axis, making it way easier to mount the board in different directions without having to recompile the firmware. 2. DMA Pipeline Fixes and Baro Optimization A big chunk of this session went into debugging and refactoring the hardware data pipelines. I adjusted the ADC population pipeline in order to fix some stream parsing issues, and gave the barometer a massive overhaul. The baro now uses a non-blocking, non-circular DMA setup that relies on a semi-interrupt-driven task call rather than a continuous loop. This enabled me to yield in the middle of the function, and call back later as soon as DMA is finished transferring. I also fixed a massive bug in the DMA setup: the DMA_SxCR_HTIE and DMA_SxCR_TCIE flags were accidentally enabled for the GPS and OSD ring buffers, which would have crashed the whole RTOS by firing unhandled interrupts, causing default HAL and IRQ handlers to run. 3. Walksnail Two-Way Communication Finally, I built out the respondToVTX task to get the drone properly communicating with the Walksnail VTX. Instead of just blindly sending video data out, this sets up true two-way communication over asynchronous UART. By writing a persistent byte-by-byte state machine, the flight controller can now safely parse incoming requests from the VTX without dropping half-packets, allowing me to send back live stick positions and armed status for the OSD menus. The only thing left to do now is handle persistent CLI storage, the logToBlackBox task, integrating the semi-interrupt pipeline with telemetryTX and the OSD, and a few other system tweaks. After that the RTOS will be 100% ready to fly the actual drone.
1. Scheduler Hardening and Task Discovery Spent part of this session making the RTOS scheduler itself more robust. I added a findTaskByName() function so interrupt-driven task lookups happen dynamically instead of relying on hardcoded task indices, which was a fragile setup just waiting to break the moment task registration order changed. Alongside that, I wrapped every one of those lookups with lambdas that throw a proper warning if a task can’t be found, so a missing task fails loudly instead of silently dereferencing a null pointer somewhere downstream. 2. Blocking vs Non-Blocking Scheduled Tasks After a lot of painful debugging, I traced a string of issues (including interrupt tasks silently failing to fire and scheduled tasks stepping on each other) back to non-blocking statements I’d introduced inside scheduled tasks in the previous devlog. I ended up taking those out and reverting scheduled tasks fully back to blocking, which is genuinely what the scheduled zone was designed for in the first place: tasks that don’t need to run in polynomial time and can safely block without putting the drone at risk of crashing. Once that was sorted, I converted the raw USART byte-pushing into a blocking DMA system instead, so streaming is handled by DMA hardware rather than manually pushed byte-by-byte over USART. 3. Flight Loop Refactor and VTX Communication On the flight logic side, I refactored flightLoop() to use lambdas and a state machine so I would never have to yield in the middle of my tasks (which was used previousely for zeroing motor outputs). I also converted the error handling into a proper state machine, so different types of warnings can be caught and handled distinctly instead of lumping every issue into one path, and turned on full debug printing whenever the system is running. Last but not least, I built out a dedicated injector for respondToVTX so I can properly test and simulate VTX communication going forward. 4. Real Hardware Testing Since, I am almost 100% done with the RTOS I bought two NUCLEO-F756ZG’s which will serve as testing the 100% production code rather than the simulation version. I bought two so that one of the boards will be running the real RTOS code, testing DMA reading from USART, SPI, and emitting real motor signals, while the second will be emulating all of my peripherals. When the boards come, if the code does work, it will also mean that the real PCB’s will also work when my friend finishes with them. 5. Next Steps As of now there are a few issues with the double preempt system (for the interrupt tasks) I designed a while back, so I will need to debug that before they arrive. Right now before the boards arrive, I will be finishing up the RTOS blocking DMA pipelines (stripping out IRQ, removing NVIC etc. for scheduled tasks), and performing a bunch of baseline testing in order to prove that the RTOS is capable of flying an actual drone!
For the past couple weeks I have been mostly refining small bugs, which were originally rendering the RTOS usless, as well as refactoring the code for simplicity rather than elegancy. 1. Transition to Actual Hardware Renode is great for simulation, but it ended up hiding a bunch of race conditions in the population methods and the main scheduler that led to no code actually running during the IRQ handler calls. I spent a lot of time securing those resources and finally got the scheduler mostly finished up. Also, I decided to just take out the double preempts entirely since they were adding way too much complexity for absolutely zero speed benefits in practice (plus they were creating detrimental but rare race conditions). 2. Code Refactor To make things run a bit more consistent, I restructured how the control loops operate. I ended up merging the dShotGeneration task with the parent IMU control loop, so now everything from reading the sensors to pushing motor commands happens in one clean sequence (rather than including an unnecessary preempt). I also built out a brand new CRSF control loop to handle all the radio parsing and state machine updates in its own dedicated space (just for consistency). Lastly, while doing a final pass on the code, I realized that in my dShotGeneration helper, I had forgot to scale the values by a factor of 1/2000, as the inputs require the value to be between 0 and 1 (not 0 and 2000). 3. Final DMA Iteration The biggest relief was finally getting rid of the old blocking USART system. I finally transitioned away from manually handling the streaming by polling flags in a loop, which was tying up the processor way more than it should have. Everything has been converted over to a blocking DMA system, so the hardware can just handle all the memory transfers in the background while the CPU focuses on actually keeping the drone in the air. Overall, I think that this will be the final iteration of the RTOS DMA pipeline, as now that it is solid and works with all the edge cases, theres no need to change it. 4. Timeline With almost all the major bugs fixed, I am going to ship the project! While it is not 100% done, it will likely be as close as it will get during the timeframe of the Stardance hackathon, and with it so close, theres no reason not to ship. Anyway, I will keep the source as the main project rather than a release, so if I do end up fixing any major bugs, they will get patched either before or during project review (besides most of these bugs are only detectable on actual hardware). I will most likely finish the RTOS in the next couple weeks (by the end of October), and will finish the drivers for the ESC and RM by latest end of November (for more timing refer to the README). Thanks to everyone who supported me throughout this project (hopefully me and my friend can get this drone flying in another Hack Club Hackathon!).
Although I haven’t been able to make much progress on the project due to school over the past weeks I did manage to make some substantial project mostly with the scheduler, allowing for fairly good performance on my STM Nucleo boards, rather than it just crashing instantly. 1. Issues with the Old Design The flight controller’s RTOS scheduler wasn’t working under real hardware timing because global variables like currTaskIndex, topOfStack, and excReturn were being modified from multiple entry points simultaneously. Yield calls, interrupt handlers, and the main task-selection logic were all making independent writes to the same shared task control blocks. Whenever a hardware interrupt fired mid-write, stack pointers and exception return values were saved into the wrong taskControlBlocks slot. This created edge cases where preempted tasks were silently double-queued, state tracking completely desynchronized, and time-critical hardware events were dropped during flight. 2. Centralizing Context Switches in PendSV To eliminate these race conditions, all state-selection decisions were moved out of individual execution contexts and consolidated into decideNextTask(), which now runs exclusively inside the PendSV assembly handler. Functions like yieldCurrentTask(), decideNextInterruptTask(), and decideNextScheduledTask() no longer touch global scheduler state or choose which task runs next; they simply update local status flags like TaskState::BLOCKED or TaskState::READY inside brief __disable_irq() critical sections and trigger PendSV using SCB_ICSR_PENDSVSET_Msk. When PendSV fires, decideNextTask() saves outgoingSP and outgoingExcReturn to the active block, sets RUNNING tasks to READY, and runs a two-pass check over taskControlBlocks[]—evaluating high-priority TaskType::INTERRUPT tasks first, then TaskType::SCHEDULED tasks, and falling back to index 0 for idle. Since PendSV is the only place allowed to modify currTaskIndex, concurrent state corruption is structurally impossible.
I spent the past week fixing timing issues on the hardware and getting the simulation environment back into a usable state. Although it isn’t 100% yet, I managed to fix a lot of underlying bugs causing the program to fail on actual hardware. Serial Communication and DMA The biggest issue was that manual USART transfers were completely blocking the system. Printing alone was taking around 95 percent of the total execution time. This was destroying the preempt speed and causing weird timing bugs across the board. I rewrote the USART printing logic to offload everything to a background circular DMA task instead. While I was working on the serial connections, I also fixed the UART mapping bugs and moved all logging over to UART4 so it stops fighting with the GPS module on USART3. I also went through stm32f7xx_it.c and fixed the rest of the extern “C” methods. They were previously commented out, which was silently causing their respective DMA HALs to fail. Moving them to the correct user code sections fixed the issue entirely. Simulation Environment and Tooling On the software side, the simulation startup in the HAL was broken and preventing the virtual boards from properly configuring and running. I fixed the initialization sequence so the simulations actually boot correctly now. To make starting the environment even easier for new users, I updated both the run.sh and run.bat scripts with installers that automatically download Renode. This skips the manual installation step completely and gets the simulation running much faster.
Ships:
Phase 1 (The Custom RTOS Kernel) I am building a custom FPV drone from scratch with my friend in an attempt to achieve 200 mph . At those speeds, standard super loops are far too slow, as a single microsecond of lag means the drone travels feet before making a PID correction. To solve this, I built a custom, hybrid cooperative/preemptive Real-Time Operating System (RTOS) from scratch for the ARM Cortex-M7 (STM32F7)! What Was Challenging? The absolute hardest part of this phase was writing the low-level assembly context switcher ( PendSV_Handler.S ). Hacking the ARM Cortex-M7 registers to physically hot-swap stack pointers ( PSP ) mid-execution without crashing the CPU or corrupting the program state was a massive headache. I had to ensure that when an asynchronous preemption event fires, the assembly code perfectly preserves the execution registers ( R4-R11 plus the hardware-stacked registers), jumps to the high-priority task, and then seamlessly restores the background task right where it left off. Getting the compiler-enforced task overloading working so the kernel cleanly separates periodic tasks from raw interrupts was another huge hurdle, but it makes the whole codebase infinitely more robust. Want to Test It or Write Your Own Tasks? You don’t need physical hardware to watch this run! I’ve packaged the entire project with a Renode simulation script. You can run the interactive emulator with a single command to see the preemption scheduler hijack our counter task live, or you can jump into the user sandbox file and write your own custom tasks. Check out the GitHub Repository to Run the Demo! The README has a quick 5-minute setup guide to get you compiling and simulating your own code in no time.
200 MPH Drone RTOS: How it went Simulation to Silicon! When I published the first major update for this project at the 15-hour mark, I essentially had a proof-of-concept. I had managed to write a custom hybrid cooperative/preemptive scheduler and get an ARM Cortex-M7 (on the STM32f756VGTx) assembly context switcher functioning inside the Renode simulator. Although this looked like a massive leap, the project had barely started. Over 100 hours of development have gone into this project since then. The transition from a simulated kernel to a bare-metal flight controller capable of keeping a 200 MPH drone in the air required stripping the system down to its bare components, rewriting the memory architecture, and debugging some of the most frustrating hardware faults I have ever encountered-especially whenever the project just crashed, leaving me no traces as to what went wrong. Software Limitations The biggest turning point was realizing that software simulation can only take you so far. Renode is an amazing tool, but it hid a massive amount of race conditions and timing flaws that only exposed themselves when I finally flashed the code to physical STM32F756 Nucleo board. Sometimes, the MCU would have to reboot every 2 seconds. I spent dozens of hours tracking down massive architectural bugs. One of the worst was a context-switching fault where floating-point math was corrupting the return address in the CPU registers, causing the processor to execute raw garbage data. To fix this, I had to completely restructure the boot sequence and overhaul the memory management. I moved away from static arrays to a dynamic per-task stack allocation system, and implemented a dual-guard memory system. Arguably, this was the most important change as it allowed me to debug tasks way quicker as I instantly could know when the canary values were corrupted. Overhauling the Data Pipelines In order to avoid the 10ms delay of my original blocking pipline (for data transfer), I entirely rewrote the hardware data pipelines multiple times to use a semi-blocking, circular Direct Memory Access (DMA) architecture. Instead of the processor handling the data transfer, the hardware itself moves the bytes from the sensors directly into memory in the background. The DMA streams now trigger precise interrupts at the halfway and full-transfer points, allowing the RTOS to safely parse incoming radio packets and sensor reads without ever risking data overwrites or blocking the main flight loop. Building a Flight Controller I integrated Betaflight’s Actual Rates algorithm with custom expo curves, ensuring that physical stick inputs map perfectly to target velocities. I built a custom SPI driver to pull 24-bit raw pressure and temperature data from a BMP390 barometer, passing it through hypsometric formulas to calculate altitude. For video and telemetry, I moved away from raw UART strings and implemented native MSP DisplayPort communication (for true digital Walksnail Avatar connection). I also built an interactive USB command-line interface. Instead of having to recompile and re-flash the firmware every time a PID value needs to be adjusted, I can plug into the board, pull up a terminal, and manually tune gains, remap CRSF radio channels, or adjust IMU orientation offsets in real time. Final Version The last few weeks have been about refinement and consistency, removing race conditions and overall polishing the code. Now that the RTOS is fully functional, the only things to add are extra features, like a permanent + more expanded CLI, as well as finishing the external RM and linking the ESC drivers. As these are pretty insignificant, I have linked the source of this shipment to the Github project rather than a specific release so that I can update these during review!...
|
1792993800.8647993
|
1793080200.8647993
|
|
19984
|
FRC Rebuilt inspired robot by @Carson | Stardance
|
Carson
|
1
|
73.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-22T00:36:13Z", "hours": 73.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "This is the cad for an FRC bot I designed for this years game Rebuilt one in which you shoot as many balls as you can into a big basket. I’m really proud of the whole thing honestly, its the first large and cohesive thing I’ve ever designed and I think it turned out pretty well. I’m especially proud of the shooter, scoring manipulators are always fun to make! I will say the process did not go without its hiccups, to be honest I only discovered the derrived tool like halfway through, that was rough but I finished it none the less and if you want to try it out just click the button below.", "repo": "https://github.com/CKFlare/FRC-Rebuilt-robot-CAD", "demo": "https://cad.onshape.com/documents/ef90526955e2c1079c0c9faf/w/03993b2fa40710a1deb74a90/e/58e238fa26bdce46de7e348d?renderMode=0&uiState=6aa8a33892df8e4b39a6d890"}]...
|
[{"post_id": 72006, "ts": "202 [{"post_id": 72006, "ts": "2026-09-22T00:09:47Z", "hours": 5.7989, "text": "Devlog 10 I have done a lot since the last devlog and this is my final log before shipping, I’m very exited. completed pocketed everything assigned materials to a few things I missed finished organizing every part studio used in the final assembly prepared my repository and wrote a readme a bunch of other random stuff created an assembly to display balls in the path they would take from the intake to the shooter Sadly the robot is still way overweight, its like 200 pounds but I’m just going to leave it for now. its just a pet project. Stardance has been AWESOME and I’m really glad I was able to participate, thank you everyone!! Until next time Hack Clubbers!"}, {"post_id": 66957, "ts": "2026-09-12T22:59:45Z", "hours": 8.2739, "text": "Devlog 9 Completed re-added power chain to design added hopper element to cover power chain added camera mounts that work on the robot added belt between feeding path and conveyor belt because apparently it previousley had no way to spin went through half of the part studios and asemblys to organize them them added material and appearence to all parts without them. added radio and RSL (robot safety light) issues its very boring sifting through everything you’ve done, naming and grouping it all the cover for the power chain clips through the power chain’s pulley I’ve worked on it most of today and honestly Its come very far, I think I’m finally almost done."}, {"post_id": 63954, "ts": "2026-09-08T01:29:06Z", "hours": 7.5053, "text": "Devlog 8 completed I added mounts for all floating parts added a wall to funnel balls into the main feeding path added all timing belts to roller floor created baseplate and added main electronics added fasteners fixed miscelaneous issues issues my load times are taking longer and longer honestly the sticky streak has really motivated me, for the past 8 days i’ve managed to squeeze in at least 15 minutes each night."}, {"post_id": 46915, "ts": "2026-08-14T13:37:44Z", "hours": 6.6797, "text": "Devlog 7 completed made a cover for the PIcam I would use for PhotonVision, changed a few things on shooter to reduce height many odd jobs that I honestly cant remember Issues I keep getting this “Operation failed because it would create cyclical references : Part Studio 2 Copy 1 <- Part Studio 1.” error while trying to derive my reference sketch from another document and I honestly don’t know how to fix it I’ve had to go for multiple weeks without working on this project because I didn’t have access to a computer and now I’m struggling to get any real progress done, I’m almost done though I mainly just have to do a bunch more annoying jobs like pocketing all of the sheets, adding the electronics and designing a hopper, which shouldn’t be too bad, its just a few sheets of polycarbonate"}, {"post_id": 30307, "ts": "2026-07-17T19:19:03Z", "hours": 12.6442, "text": "devlog 6 completed redid turret mounting plate reworked feeding path make base of roller floor indexer miscelaneous changes It really doesn’t look like much but, I’ve done a lot, I’ve been focusing on making something very simple that would work, I’m creating most of the parts that will be used and just not pocketing them or fully doing the assemblies or even adding mounting holes tbh, but I am making sure nothing clips and that all of the subsystems fit together and work in tandem."}, {"post_id": 26152, "ts": "2026-07-10T19:36:49Z", "hours": 9.0636, "text": "Devlog 5 completed added energy chain for turret created basic intake started mount for intake Issues I’m kind of scatter brained and did not complete last logs to due list before starting the intake I’m extending about .05 further from my robot perimeter than is allowed, its finneeeee I think the intake wont actually be able to come back into the robot because the kicker bar descends too low while being stowed it weighs WAY too much the intake is very simple a rack and pinion sends it out then the kicker bars drop down because there will be a piece of surgical tubing tensioning them, pulling it down. then whenever the driver presses the assigned button two neo vortex’s will spin a set of rollers that will grab the balls press them against the kicker bars and shoot them into the hopper. it is just shy of a 5 ball wide intake which should allow for pretty high throughput. the energy chain assembly for the turret is also very simple. there is a freely spinning constant force spring attached to a bracket which pulls the bracket away from the shooter, the energy chain just loops through the bracket. total current weight with bumpers: 129 lbs"}, {"post_id": 24938, "ts": "2026-07-08T20:24:44Z", "hours": 4.61, "text": "Devlog 4 completed added structural support removed problem of turret scraping feeding path plates added indexing roller to top of belt sandwich entrance, will connect via belt to main indexing system added all fasteners to the superstructure, bolts, nuts, rivets etc fixed random errors changed which side the belts are located on the feeding path to allow for better packaging assigned materials and appearances to parts organized and named features in assemblies and part studios issues my pocketing feature script is tweaking out, I still heven’t a clue what the problem is clipping, per usual I didnt account for the size of another part and they ended up occupying the same space, to be honest I just chamfered the edge of a plate to remove one of these issues. but hey it worked. I have no time :( its been ages since I’ve been able to seroiusley spend time on this project, my summer has been really busy, there was one week where I cadded not even for 1 minute D: today was honestly really boring I was mostly just polishing up previous work, I’m almost done with the superstructure. the only things left to do is to implement a system to keep my power chain out of the way from tangling, that will be very simple, I also would like to add a set of compliant wheels to that vertical shaft on the right to funnel the balls from that side into the turret, then I think I just need to tighten it up before I will move onto either the intake or main indexer. until next time!"}, {"post_id": 14055, "ts": "2026-06-23T01:10:26Z", "hours": 8.9728, "text": "Devlog 3 -changed the backplate on shooter - fixed clipping - created a very rudimentary feeding path, needs a LOT more work i wasted a lot of time on the feeding path, changing belt positions ironing out belt lengths and pitch, I originally was using 5 mm but I couldn’t get the right lengths so I switched to 3mm. I also didn’t now how I was going to mount it so I spent a while figuring that out. I’m using a belt on the top and bottom of the balls to funnel them into an array of compliant wheels that sends it up into the shooter"}, {"post_id": 11503, "ts": "2026-06-18T19:59:30Z", "hours": 4.0336, "text": "Yesterday I quickly knocked out the chassis and timelapsed me planning out the superstructure on paper. Today I designed the turret and I modified the shooter such that it can be mounted to the turret, this took longer than anticipated but oh well. my Laptop is so slow that Onshape crashed the whole computer like 3 times while making the turret, I suppose I have to keep my documents small. I’ve decided on a 30’’ by 25” chassis for this robot. This is to allow an intake about as wide as 5 balls, as well I did a rough estimate of my ball capacity based on rough numbers and it should be able to hold a maximum of about 80 balls. The drivetrain consists of SDS MK5Is powered by 8 Neo Vortexes."}, {"post_id": 10224, "ts": "2026-06-16T21:04:49Z", "hours": 5.6606, "text": "over the past few days I worked on my launcher for this years game piece, fuel (little yellow balls). I spent about an hour designing a carriage style hood so “it would be packaged better” but then realized it would add about 2 inches to the back and be heavier, so I reworked how the hood moves up and down by moving the rack onto the dynamic portion and the pinion onto the static part. the hood has an adjustable angle of about 25 degrees up to 60 degrees so weather we’re passing from the other alliance zone or butted against the hub we should be able to shoot. combined the 2 neo vortexes powering the flywheel achieve about 13,000 RPM so it can really lob balls."}]...
|
Title: FRC Rebuilt inspired robot by @Carson | Sta Title: FRC Rebuilt inspired robot by @Carson | Stardance
Devlogs:
over the past few days I worked on my launcher for this years game piece, fuel (little yellow balls). I spent about an hour designing a carriage style hood so “it would be packaged better” but then realized it would add about 2 inches to the back and be heavier, so I reworked how the hood moves up and down by moving the rack onto the dynamic portion and the pinion onto the static part. the hood has an adjustable angle of about 25 degrees up to 60 degrees so weather we’re passing from the other alliance zone or butted against the hub we should be able to shoot. combined the 2 neo vortexes powering the flywheel achieve about 13,000 RPM so it can really lob balls.
Yesterday I quickly knocked out the chassis and timelapsed me planning out the superstructure on paper. Today I designed the turret and I modified the shooter such that it can be mounted to the turret, this took longer than anticipated but oh well. my Laptop is so slow that Onshape crashed the whole computer like 3 times while making the turret, I suppose I have to keep my documents small. I’ve decided on a 30’’ by 25” chassis for this robot. This is to allow an intake about as wide as 5 balls, as well I did a rough estimate of my ball capacity based on rough numbers and it should be able to hold a maximum of about 80 balls. The drivetrain consists of SDS MK5Is powered by 8 Neo Vortexes.
Devlog 3 -changed the backplate on shooter - fixed clipping - created a very rudimentary feeding path, needs a LOT more work i wasted a lot of time on the feeding path, changing belt positions ironing out belt lengths and pitch, I originally was using 5 mm but I couldn’t get the right lengths so I switched to 3mm. I also didn’t now how I was going to mount it so I spent a while figuring that out. I’m using a belt on the top and bottom of the balls to funnel them into an array of compliant wheels that sends it up into the shooter
Devlog 4 completed added structural support removed problem of turret scraping feeding path plates added indexing roller to top of belt sandwich entrance, will connect via belt to main indexing system added all fasteners to the superstructure, bolts, nuts, rivets etc fixed random errors changed which side the belts are located on the feeding path to allow for better packaging assigned materials and appearances to parts organized and named features in assemblies and part studios issues my pocketing feature script is tweaking out, I still heven’t a clue what the problem is clipping, per usual I didnt account for the size of another part and they ended up occupying the same space, to be honest I just chamfered the edge of a plate to remove one of these issues. but hey it worked. I have no time :( its been ages since I’ve been able to seroiusley spend time on this project, my summer has been really busy, there was one week where I cadded not even for 1 minute D: today was honestly really boring I was mostly just polishing up previous work, I’m almost done with the superstructure. the only things left to do is to implement a system to keep my power chain out of the way from tangling, that will be very simple, I also would like to add a set of compliant wheels to that vertical shaft on the right to funnel the balls from that side into the turret, then I think I just need to tighten it up before I will move onto either the intake or main indexer. until next time!
Devlog 5 completed added energy chain for turret created basic intake started mount for intake Issues I’m kind of scatter brained and did not complete last logs to due list before starting the intake I’m extending about .05 further from my robot perimeter than is allowed, its finneeeee I think the intake wont actually be able to come back into the robot because the kicker bar descends too low while being stowed it weighs WAY too much the intake is very simple a rack and pinion sends it out then the kicker bars drop down because there will be a piece of surgical tubing tensioning them, pulling it down. then whenever the driver presses the assigned button two neo vortex’s will spin a set of rollers that will grab the balls press them against the kicker bars and shoot them into the hopper. it is just shy of a 5 ball wide intake which should allow for pretty high throughput. the energy chain assembly for the turret is also very simple. there is a freely spinning constant force spring attached to a bracket which pulls the bracket away from the shooter, the energy chain just loops through the bracket. total current weight with bumpers: 129 lbs
devlog 6 completed redid turret mounting plate reworked feeding path make base of roller floor indexer miscelaneous changes It really doesn’t look like much but, I’ve done a lot, I’ve been focusing on making something very simple that would work, I’m creating most of the parts that will be used and just not pocketing them or fully doing the assemblies or even adding mounting holes tbh, but I am making sure nothing clips and that all of the subsystems fit together and work in tandem.
Devlog 7 completed made a cover for the PIcam I would use for PhotonVision, changed a few things on shooter to reduce height many odd jobs that I honestly cant remember Issues I keep getting this “Operation failed because it would create cyclical references : Part Studio 2 Copy 1 <- Part Studio 1.” error while trying to derive my reference sketch from another document and I honestly don’t know how to fix it I’ve had to go for multiple weeks without working on this project because I didn’t have access to a computer and now I’m struggling to get any real progress done, I’m almost done though I mainly just have to do a bunch more annoying jobs like pocketing all of the sheets, adding the electronics and designing a hopper, which shouldn’t be too bad, its just a few sheets of polycarbonate
Devlog 8 completed I added mounts for all floating parts added a wall to funnel balls into the main feeding path added all timing belts to roller floor created baseplate and added main electronics added fasteners fixed miscelaneous issues issues my load times are taking longer and longer honestly the sticky streak has really motivated me, for the past 8 days i’ve managed to squeeze in at least 15 minutes each night.
Devlog 9 Completed re-added power chain to design added hopper element to cover power chain added camera mounts that work on the robot added belt between feeding path and conveyor belt because apparently it previousley had no way to spin went through half of the part studios and asemblys to organize them them added material and appearence to all parts without them. added radio and RSL (robot safety light) issues its very boring sifting through everything you’ve done, naming and grouping it all the cover for the power chain clips through the power chain’s pulley I’ve worked on it most of today and honestly Its come very far, I think I’m finally almost done.
Devlog 10 I have done a lot since the last devlog and this is my final log before shipping, I’m very exited. completed pocketed everything assigned materials to a few things I missed finished organizing every part studio used in the final assembly prepared my repository and wrote a readme a bunch of other random stuff created an assembly to display balls in the path they would take from the intake to the shooter Sadly the robot is still way overweight, its like 200 pounds but I’m just going to leave it for now. its just a pet project. Stardance has been AWESOME and I’m really glad I was able to participate, thank you everyone!! Until next time Hack Clubbers!
Ships:
This is the cad for an FRC bot I designed for this years game Rebuilt one in which you shoot as many balls as you can into a big basket. I’m really proud of the whole thing honestly, its the first large and cohesive thing I’ve ever designed and I think it turned out pretty well. I’m especially proud of the shooter, scoring manipulators are always fun to make! I will say the process did not go without its hiccups, to be honest I only discovered the derrived tool like halfway through, that was rough but I finished it none the less and if you want to try it out just click the button below....
|
1793008110.2275367
|
1793094510.2275367
|
|
33463
|
My Personal site! by @GigiOP817 | Stardance
|
GigiOP817
|
2
|
20.0
|
13
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-22T00:33:27Z", "hours": 2.0, "multiplier": 8.54, "payout": 13, "blessing": "neutral", "text": "I coded a personal website using HTML, CSS, and a bit of JS. This website includes my hobbies, a short paragraph about me, and my interests. It also has a contacts page that leads you to my social media and my Github repository. Overall, this project was my first ever coding project and it was really fun to do. I did face obstacles throughout the entire making of this personal website, but I made sure to tackle them efficiently. Sometimes, I’d just delete the wrong code and mess up entire hours of work. It was sure a rough process fixing all the mistakes and restoring the old code back to normal. I am proud of finishing this website, so that now people can view it! When I look back on all the versions of my website from the very first in a workshop, to this final version that I am shipping, I get reminded on how much I’ve learned throughout this project. I did use help from AI because it was my first type coding, and I didn’t know how to turn my ideas into proper lines of code. All the ideas and everything else is completely original. If you do view my website, I would appreciate it if you can give me some feedback on my social media or anywhere else. Thank you! :D", "repo": "https://github.com/GigiOP817/MY-personal-Website", "demo": "https://gigiop817.github.io/MY-personal-Website/"}, {"ship_num": 2, "ts": "2026-09-19T23:52:17Z", "hours": 18.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I coded a personal site that is great if you’d like to get to know me. It was a bit hard to kickstart the whole process since it was my first time coding. However, I had a lot of fun and learned so much about writing HTML and CSS along the way. It was quite a journey, and I love seeing how my website evolved from the initial workshop version to this final version that I’m shipping. I faced a lot of obstacles while creating this site. Sometimes the background wouldn’t appear on the page; other times, I’d make mistakes and change the wrong lines of code. There was even a time when I accidentally deleted a huge chunk of code and had to redo most of the pages. Even with all of these setbacks, I overcame them, and I’m happy that I can finally release this website for everyone to see. I did not use any AI to write my code, but I did use AI to fix the grammar and punctuation in this text. It would be awesome if you checked out my new website! :D", "repo": "https://github.com/GigiOP817/MY-personal-Website", "demo": "https://gigiop817.github.io/MY-personal-Website/"}]...
|
[{"post_id": 71996, "ts": "202 [{"post_id": 71996, "ts": "2026-09-21T23:21:32Z", "hours": 0.2594, "text": "I fixed up the problem of my other pages not opening from the Interests page. I just had to redo the code for that specific section."}, {"post_id": 71289, "ts": "2026-09-20T16:08:28Z", "hours": 0.9828, "text": "There were still some problems present since I didn’t change the code properly after moving the files, so I fixed those problems up. I also made sure that the demo link worked, and my project is ready to ship again! :D"}, {"post_id": 71160, "ts": "2026-09-20T11:32:08Z", "hours": 0.2758, "text": "I fixed up all the errors and deleted the unused photos in my files. I also made folders for all the files to make them look neat and organized."}, {"post_id": 70822, "ts": "2026-09-19T20:32:09Z", "hours": 1.0442, "text": "I’m finally done with my personal website and I just finished up the README. It was kind of complicated, but I was able to finish things up! This is just a little snippet, but there’s more to it below."}, {"post_id": 66933, "ts": "2026-09-12T22:10:04Z", "hours": 5.9147, "text": "I basically to a long break from coding and didn’t write any dev-logs for any of the work that I did, but now I’m basically done with my website. I fixed up all the bugs that were present through out the code and website. I also finished my contacts page just now, so all I have to do is review over everything and make a new read me."}, {"post_id": 47195, "ts": "2026-08-14T22:52:47Z", "hours": 1.3186, "text": "Devlog - 6 Today and yesterday, I decided to change up my about me page because it was looking too plain. I decided that I will add a button next to my OC and when you click it, the information about me will appear. I’m also planning on adding an audio file that will play when you click on the button. The audio file will read out the words in the text box. I changed the background of the page too. I did come across a problem though, no matter what I tried; the button is there, but when click it; it just disappears and no text comes on. I will work on this problem tomorrow."}, {"post_id": 44939, "ts": "2026-08-11T01:08:26Z", "hours": 2.165, "text": "Devlog - 5 Major work completed today! I finished the Interests Page on my personal website over the course of 2 days. (I forgot to write a devlog and commit yesterday). I was able to add a “Favorites” section where I would list some of my favorite things. I also created a “Hobbies” section which has photos of 6 of my hobbies. I did come a across a problem where changing a part of my code (the div) accidentally changed the box on another page. Once it looked good on one page, it changed everything opn the other because I forgot to label which page the box was in. I was bale to solve that problem by creating some new code for my about me page. Finishing the hobbies section wasn’t that hard beause I just had to add some photos and make sure they form a grid. Overall, very productive day."}, {"post_id": 43696, "ts": "2026-08-09T03:13:55Z", "hours": 2.0939, "text": "Devlog - 4 Today was a very productive day because I finished the About Me section of my website. I was able to add an image of my OC which was created by my best friend. I also added a div which would house the information for the about me section. I was having trouble adjusting the appearance of the content inside the div, but i was able to fix it with a bit of research. Another problem that I came across was changing the background because my code space was acting up whenever I’d input the URL for the image. I was also able to fix that problem, but I don’t know how I did it. Next up, I’ll be working on my interests page and tweaking my code up a bit more."}, {"post_id": 42735, "ts": "2026-08-07T16:29:40Z", "hours": 2.0211, "text": "I forgot to post a devlog yesterday. I made huge changes to my personal site, especially with the homepage and changed a lot of things up with the about me page. My homepage background looks great as well as the title. I added a navigation bar at the top that will take you to either the about me, interests, or contacts page. I was experimenting with the second page because I wanted there to be a split screen with one side have my oc and the having the info."}, {"post_id": 37337, "ts": "2026-07-30T00:02:55Z", "hours": 1.1786, "text": "It’s been about 2 weeks since I picked up my personal site, but now I’m back into the flow. Today, I decided to change a bunch of the looks for my site because it was looking too plain. I’ve decided to make 2 different pages: 1 homepage and 1 page that will house information about me. I changed the backgrounds of both pages, but couldn’t really finish, so I’ll pick it up tomorrow. I’m trying to make the pages more space themed to match the vibe. The background images are photos of outer space (one even from NASA). I will begin working on my homepage to include directions that will lead towards the About Me page. Tomorrow’s work mostly consists of CSS and making the site look appealing. :P"}, {"post_id": 29146, "ts": "2026-07-15T20:35:30Z", "hours": 1.9319, "text": "Today, I started working on a Personal Site which I begun during a Stardance workshop. This is my first time coding and trying to create a website so it’s a bit basic. I used index.html and CSS to build it. This is the first version of my personal site. :D"}]...
|
Title: My Personal site! by @GigiOP817 | Stardance Title: My Personal site! by @GigiOP817 | Stardance
Devlogs:
Today, I started working on a Personal Site which I begun during a Stardance workshop. This is my first time coding and trying to create a website so it’s a bit basic. I used index.html and CSS to build it. This is the first version of my personal site. :D
It’s been about 2 weeks since I picked up my personal site, but now I’m back into the flow. Today, I decided to change a bunch of the looks for my site because it was looking too plain. I’ve decided to make 2 different pages: 1 homepage and 1 page that will house information about me. I changed the backgrounds of both pages, but couldn’t really finish, so I’ll pick it up tomorrow. I’m trying to make the pages more space themed to match the vibe. The background images are photos of outer space (one even from NASA). I will begin working on my homepage to include directions that will lead towards the About Me page. Tomorrow’s work mostly consists of CSS and making the site look appealing. :P
I forgot to post a devlog yesterday. I made huge changes to my personal site, especially with the homepage and changed a lot of things up with the about me page. My homepage background looks great as well as the title. I added a navigation bar at the top that will take you to either the about me, interests, or contacts page. I was experimenting with the second page because I wanted there to be a split screen with one side have my oc and the having the info.
Devlog - 4 Today was a very productive day because I finished the About Me section of my website. I was able to add an image of my OC which was created by my best friend. I also added a div which would house the information for the about me section. I was having trouble adjusting the appearance of the content inside the div, but i was able to fix it with a bit of research. Another problem that I came across was changing the background because my code space was acting up whenever I’d input the URL for the image. I was also able to fix that problem, but I don’t know how I did it. Next up, I’ll be working on my interests page and tweaking my code up a bit more.
Devlog - 5 Major work completed today! I finished the Interests Page on my personal website over the course of 2 days. (I forgot to write a devlog and commit yesterday). I was able to add a “Favorites” section where I would list some of my favorite things. I also created a “Hobbies” section which has photos of 6 of my hobbies. I did come a across a problem where changing a part of my code (the div) accidentally changed the box on another page. Once it looked good on one page, it changed everything opn the other because I forgot to label which page the box was in. I was bale to solve that problem by creating some new code for my about me page. Finishing the hobbies section wasn’t that hard beause I just had to add some photos and make sure they form a grid. Overall, very productive day.
Devlog - 6 Today and yesterday, I decided to change up my about me page because it was looking too plain. I decided that I will add a button next to my OC and when you click it, the information about me will appear. I’m also planning on adding an audio file that will play when you click on the button. The audio file will read out the words in the text box. I changed the background of the page too. I did come across a problem though, no matter what I tried; the button is there, but when click it; it just disappears and no text comes on. I will work on this problem tomorrow.
I basically to a long break from coding and didn’t write any dev-logs for any of the work that I did, but now I’m basically done with my website. I fixed up all the bugs that were present through out the code and website. I also finished my contacts page just now, so all I have to do is review over everything and make a new read me.
I’m finally done with my personal website and I just finished up the README. It was kind of complicated, but I was able to finish things up! This is just a little snippet, but there’s more to it below.
I fixed up all the errors and deleted the unused photos in my files. I also made folders for all the files to make them look neat and organized.
There were still some problems present since I didn’t change the code properly after moving the files, so I fixed those problems up. I also made sure that the demo link worked, and my project is ready to ship again! :D
I fixed up the problem of my other pages not opening from the Interests page. I just had to redo the code for that specific section.
Ships:
I coded a personal site that is great if you’d like to get to know me. It was a bit hard to kickstart the whole process since it was my first time coding. However, I had a lot of fun and learned so much about writing HTML and CSS along the way. It was quite a journey, and I love seeing how my website evolved from the initial workshop version to this final version that I’m shipping. I faced a lot of obstacles while creating this site. Sometimes the background wouldn’t appear on the page; other times, I’d make mistakes and change the wrong lines of code. There was even a time when I accidentally deleted a huge chunk of code and had to redo most of the pages. Even with all of these setbacks, I overcame them, and I’m happy that I can finally release this website for everyone to see. I did not use any AI to write my code, but I did use AI to fix the grammar and punctuation in this text. It would be awesome if you checked out my new website! :D
I coded a personal website using HTML, CSS, and a bit of JS. This website includes my hobbies, a short paragraph about me, and my interests. It also has a contacts page that leads you to my social media and my Github repository. Overall, this project was my first ever coding project and it was really fun to do. I did face obstacles throughout the entire making of this personal website, but I made sure to tackle them efficiently. Sometimes, I’d just delete the wrong code and mess up entire hours of work. It was sure a rough process fixing all the mistakes and restoring the old code back to normal. I am proud of finishing this website, so that now people can view it! When I look back on all the versions of my website from the very first in a workshop, to this final version that I am shipping, I get reminded on how much I’ve learned throughout this project. I did use help from AI because it was my first type coding, and I didn’t know how to turn my ideas into proper lines of code. All the ideas and everything else is completely original. If you do view my website, I would appreciate it if you can give me some feedback on my social media or anywhere else. Thank you! :D...
|
1793004857.3676822
|
1793091257.3676822
|