|
9633
|
3D Physics Simulator by @leonardo_g_bracciale | St 3D Physics Simulator by @leonardo_g_bracciale | Stardance...
|
leonardo_g_bracciale
|
1
|
16.0
|
129
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-26T22:20:58Z", "hours": 16.0, "multiplier": 11.71, "payout": 129, "blessing": "neutral", "text": "This is my first ever project. Over the last year I have taken multiple coursera courses on creating AI/ML models so I really wanted to add that in this project. This was inspired by a youtube video of something similar made in C++. It is quite elementary compared to some other projects on here, but I am proud regardless.", "repo": "https://github.com/Optifrost/GravSim", "demo": "https://github.com/Optifrost/GravSim/releases/tag/v1.1.0"}]...
|
[{"post_id": 16531, "ts": "202 [{"post_id": 16531, "ts": "2026-06-26T21:53:37Z", "hours": 14.5742, "text": "This may be my last update to the project but since last post I have added full 3d functionalities, a black hole mode, the ability to add “photons”, particle trails, the ability to select an object, and have debugged a number of problems surrounding mathematical computation errors with numbers becoming too large to support."}, {"post_id": 3616, "ts": "2026-06-06T16:49:50Z", "hours": 0.9944, "text": "Currently focused on adapting the original 2d design into a 3d version with support for photons. Trying to make the simulation as accurate and realistic as possible."}]...
|
Title: 3D Physics Simulator by @leonardo_g_braccia Title: 3D Physics Simulator by @leonardo_g_bracciale | Stardance
Devlogs:
Currently focused on adapting the original 2d design into a 3d version with support for photons. Trying to make the simulation as accurate and realistic as possible.
This may be my last update to the project but since last post I have added full 3d functionalities, a black hole mode, the ability to add “photons”, particle trails, the ability to select an object, and have debugged a number of problems surrounding mathematical computation errors with numbers becoming too large to support.
Ships:
This is my first ever project. Over the last year I have taken multiple coursera courses on creating AI/ML models so I really wanted to add that in this project. This was inspired by a youtube video of something similar made in C++. It is quite elementary compared to some other projects on here, but I am proud regardless....
|
1793090984.5006156
|
1793177384.5006156
|
|
9645
|
Sprite Stacker by @badNam3 | Stardance
|
badNam3
|
1
|
2.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-07T10:05:42Z", "hours": 2.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a simple godot plugin, it wasn’t too difficult, but I did learn from it. This plugin should make it easier to work with sprite stacking which is a technique which allows for 3D environments in 2D games, I think its an underused style, with this plugin I was hoping to show people this style. This is still a very limited plugin, and I might come back to update it. currently it allows for a basic object which can be rotated along the Y-axis, it doesn’t allow for animations, and may start lagging after a while, This project was mostly a proof of concept, but I’m still want to see what people can create with it.", "repo": "https://github.com/frogeR1st/Sprite-Stacker", "demo": "https://github.com/frogeR1st/Sprite-Stacker/blob/main/sprite_stacker%20V02.zip"}]...
|
[{"post_id": 4118, "ts": "2026 [{"post_id": 4118, "ts": "2026-06-07T09:51:18Z", "hours": 1.4703, "text": "I added an icon to the node, and tried to use the rendering server, it didn’t work it was much worse performance, but the sprite version still works"}, {"post_id": 3508, "ts": "2026-06-06T14:09:41Z", "hours": 0.6506, "text": "Currently working on a new plugin for godot, here’s a result of what you can currently do with it this plugin will allow the developer to easily use sprite stacking in their projects Currently its very basic, it allows for rotation, but only in the Y axis, it’s also not optimized well and may start lagging for larger projects"}]...
|
Title: Sprite Stacker by @badNam3 | Stardance
Dev Title: Sprite Stacker by @badNam3 | Stardance
Devlogs:
Currently working on a new plugin for godot, here’s a result of what you can currently do with it this plugin will allow the developer to easily use sprite stacking in their projects Currently its very basic, it allows for rotation, but only in the Y axis, it’s also not optimized well and may start lagging for larger projects
I added an icon to the node, and tried to use the rendering server, it didn’t work it was much worse performance, but the sprite version still works
Ships:
I made a simple godot plugin, it wasn’t too difficult, but I did learn from it. This plugin should make it easier to work with sprite stacking which is a technique which allows for 3D environments in 2D games, I think its an underused style, with this plugin I was hoping to show people this style. This is still a very limited plugin, and I might come back to update it. currently it allows for a basic object which can be rotated along the Y-axis, it doesn’t allow for animations, and may start lagging after a while, This project was mostly a proof of concept, but I’m still want to see what people can create with it....
|
1793141772.1764948
|
1793228172.1764948
|
|
9648
|
TO-DO CLI by @Greg_ios | Stardance
|
Greg_ios
|
1
|
3.0
|
6
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-28T08:47:39Z", "hours": 3.0, "multiplier": 2.49, "payout": 6, "blessing": "neutral", "text": "To Do CLI is a minimalist, file-based command-line todo manager designed for developers who want to manage tasks without leaving the terminal. It offers a lot of features such as Basic to do list commands, Filter tasks based on label and many more.", "repo": "https://github.com/travletothefurureprogramming/To-Do-CLI", "demo": "https://github.com/travletothefurureprogramming/To-Do-CLI/releases/tag/Release_3"}]...
|
[{"post_id": 17472, "ts": "202 [{"post_id": 17472, "ts": "2026-06-28T08:34:31Z", "hours": 0.5011, "text": "This is the last Devlog before ship. I have done some final changes for functionality but the biggest one is that from now you can filter your tasks based on labels. Also the labels you create are stored into a settings file."}, {"post_id": 16214, "ts": "2026-06-26T10:46:51Z", "hours": 0.4597, "text": "From now the to do cli suppourts labels!"}, {"post_id": 4467, "ts": "2026-06-07T19:54:41Z", "hours": 0.6711, "text": "Add pending tasks and clear all commands and also add priority variable for Tasks. Finally I post the new release on github!!"}, {"post_id": 3463, "ts": "2026-06-06T12:39:49Z", "hours": 0.2892, "text": "Make a clean readme and finalize the release!"}, {"post_id": 3455, "ts": "2026-06-06T12:18:13Z", "hours": 0.32, "text": "Complete the basic logic!"}, {"post_id": 3447, "ts": "2026-06-06T11:57:24Z", "hours": 0.2797, "text": "Making the basic loop"}]...
|
Title: TO-DO CLI by @Greg_ios | Stardance
Devlogs Title: TO-DO CLI by @Greg_ios | Stardance
Devlogs:
Making the basic loop
Complete the basic logic!
Make a clean readme and finalize the release!
Add pending tasks and clear all commands and also add priority variable for Tasks. Finally I post the new release on github!!
From now the to do cli suppourts labels!
This is the last Devlog before ship. I have done some final changes for functionality but the biggest one is that from now you can filter your tasks based on labels. Also the labels you create are stored into a settings file.
Ships:
To Do CLI is a minimalist, file-based command-line todo manager designed for developers who want to manage tasks without leaving the terminal. It offers a lot of features such as Basic to do list commands, Filter tasks based on label and many more....
|
1793083731.3639863
|
1793170131.3639863
|
|
9658
|
My first slack bot! by @rafif21 | Stardance
|
rafif21
|
1
|
2.41
|
4
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-13T15:51:48Z", "hours": 2.0, "multiplier": 2.15, "payout": 4, "blessing": "neutral", "text": "I built Fidev Bot, a Slack bot designed to provide useful developer commands directly inside Slack. The bot currently supports several slash commands such as /fidev-joke and /fidev-catfact, with more utilities planned in the future. I also created a dedicated landing page to showcase available commands and make the bot easier for users to understand. The most challenging part was connecting the Slack API, handling commands, and making sure the bot could run continuously even when my local machine was offline. I am proud of creating a complete Slack bot system with both backend functionality and a modern frontend interface. To test the project, invite the bot to a Slack workspace and try the available slash commands.", "repo": "https://github.com/rafif2112/slack-bot", "demo": "https://hackclub.enterprise.slack.com/archives/C0BAGCDJ24S"}]...
|
[{"post_id": 8768, "ts": "2026 [{"post_id": 8768, "ts": "2026-06-14T16:05:38Z", "hours": 0.4108, "text": "Fidev Bot: Improving Slack Demo Experience I improved the Fidev Bot demo experience by creating a dedicated Slack channel where users can directly try the bot commands. Previously, the project focused on building the bot functionality and command showcase UI. Now, users can interact with the bot directly inside Slack and test how the commands work. I also made sure the bot is properly connected and ready to be used in a real Slack environment. Next, I will continue improving Fidev Bot by adding more useful commands and integrating an AI Assistant."}, {"post_id": 8111, "ts": "2026-06-13T15:18:54Z", "hours": 1.3586, "text": "Fidev Bot: Building the Command Showcase UI 🚀 Today I continued improving my Slack Bot project, Fidev Bot, by building a dedicated UI to showcase the available commands. Previously, the bot was already working with its backend logic, but I wanted to create a better experience for users by providing a clear way to understand what the bot can do before using it in Slack. What I Built I created a modern landing page section that displays all available Slack Bot commands in an organized and interactive layout. Users can now easily see: Available slash commands Command descriptions How each feature works Technical Implementation For the frontend, I used: React Tailwind CSS Modern component-based UI structure I focused on creating a clean developer-tool style interface with: Responsive layouts Simple command cards Developer-friendly design Why I Made This Although the Slack Bot functionality was already running, I realized that good tools also need good documentation and presentation. This UI helps users understand the bot’s capabilities without needing to test every command manually. What’s Next? The next improvement I plan to add is integrating an AI Assistant into Fidev Bot. The goal is to make the bot smarter by allowing users to interact with AI-powered features directly inside Slack, making it more useful as a developer productivity tool."}, {"post_id": 6935, "ts": "2026-06-11T16:59:40Z", "hours": 0.4233, "text": "🎉 Mission Accomplished: My First Slack Bot is Officially Live! After getting everything configured, I’m super excited to share that my Slack Bot is fully functional and successfully shipped! 🚀 I built a set of slash commands (/fidev) to make the bot interactive and fun. Here is what it can do now: /fidev-ping to check the latency. /fidev-quote to get a daily dose of inspiration (it even greeted me and repeated my message before dropping a great quote by Colin R. Davis!). /fidev-catfact & /fidev-joke for some random fun. /fidev-echo to mirror back messages and /fidev-help to show all available features. Seeing the bot respond instantly in the chat after fixing the earlier setup issues feels amazing. Huge thanks to the community for pointing me in the right direction. Time to move on to the next build! 🤖💻🔥"}, {"post_id": 6223, "ts": "2026-06-10T13:45:16Z", "hours": 0.3475, "text": "🚀 Just started working on my first Slack Bot! Today, I officially kicked off my new mission project: a Slack Bot that will be up and running 24/7! I’ve successfully set up the project on Hackatime (slack-bot) and started configuring the deployment settings on Nest. Hit a quick roadblock early on with a Slack OAuth installation error (“slack-bot doesn’t have a bot user to install”), but after diving into the Slack Developer Portal and configuring the App Home features, everything is back on track. Ready to write some code and bring this bot to life! 🔥"}]...
|
Title: My first slack bot! by @rafif21 | Stardance Title: My first slack bot! by @rafif21 | Stardance
Devlogs:
🚀 Just started working on my first Slack Bot! Today, I officially kicked off my new mission project: a Slack Bot that will be up and running 24/7! I’ve successfully set up the project on Hackatime (slack-bot) and started configuring the deployment settings on Nest. Hit a quick roadblock early on with a Slack OAuth installation error (“slack-bot doesn’t have a bot user to install”), but after diving into the Slack Developer Portal and configuring the App Home features, everything is back on track. Ready to write some code and bring this bot to life! 🔥
🎉 Mission Accomplished: My First Slack Bot is Officially Live! After getting everything configured, I’m super excited to share that my Slack Bot is fully functional and successfully shipped! 🚀 I built a set of slash commands (/fidev) to make the bot interactive and fun. Here is what it can do now: /fidev-ping to check the latency. /fidev-quote to get a daily dose of inspiration (it even greeted me and repeated my message before dropping a great quote by Colin R. Davis!). /fidev-catfact & /fidev-joke for some random fun. /fidev-echo to mirror back messages and /fidev-help to show all available features. Seeing the bot respond instantly in the chat after fixing the earlier setup issues feels amazing. Huge thanks to the community for pointing me in the right direction. Time to move on to the next build! 🤖💻🔥
Fidev Bot: Building the Command Showcase UI 🚀 Today I continued improving my Slack Bot project, Fidev Bot, by building a dedicated UI to showcase the available commands. Previously, the bot was already working with its backend logic, but I wanted to create a better experience for users by providing a clear way to understand what the bot can do before using it in Slack. What I Built I created a modern landing page section that displays all available Slack Bot commands in an organized and interactive layout. Users can now easily see: Available slash commands Command descriptions How each feature works Technical Implementation For the frontend, I used: React Tailwind CSS Modern component-based UI structure I focused on creating a clean developer-tool style interface with: Responsive layouts Simple command cards Developer-friendly design Why I Made This Although the Slack Bot functionality was already running, I realized that good tools also need good documentation and presentation. This UI helps users understand the bot’s capabilities without needing to test every command manually. What’s Next? The next improvement I plan to add is integrating an AI Assistant into Fidev Bot. The goal is to make the bot smarter by allowing users to interact with AI-powered features directly inside Slack, making it more useful as a developer productivity tool.
Fidev Bot: Improving Slack Demo Experience I improved the Fidev Bot demo experience by creating a dedicated Slack channel where users can directly try the bot commands. Previously, the project focused on building the bot functionality and command showcase UI. Now, users can interact with the bot directly inside Slack and test how the commands work. I also made sure the bot is properly connected and ready to be used in a real Slack environment. Next, I will continue improving Fidev Bot by adding more useful commands and integrating an AI Assistant.
Ships:
I built Fidev Bot, a Slack bot designed to provide useful developer commands directly inside Slack. The bot currently supports several slash commands such as /fidev-joke and /fidev-catfact, with more utilities planned in the future. I also created a dedicated landing page to showcase available commands and make the bot easier for users to understand. The most challenging part was connecting the Slack API, handling commands, and making sure the bot could run continuously even when my local machine was offline. I am proud of creating a complete Slack bot system with both backend functionality and a modern frontend interface. To test the project, invite the bot to a Slack workspace and try the available slash commands....
|
1793109341.1994772
|
1793195741.1994772
|
|
9664
|
"ssssss"-Pad by @huzia | Stardance
|
huzia
|
1
|
8.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-25T18:03:15Z", "hours": 8.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "“sssssss”-Pad is a macropad on which you can play snake :))) I poured my genshin hours into this, it was very challenging especially the firmware. Other than that, once I used the wrong display screen for the project and had to change it just before finishing it off and writing the README 😭 anddd the CAD part was mostly straight forward but god the screw holes…. All in all I loved making this project and would love to make more interesting hardware stuff in the future!", "repo": "https://github.com/who-zia/ssssssPad", "demo": ""}]...
|
[{"post_id": 15782, "ts": "202 [{"post_id": 15782, "ts": "2026-06-25T17:32:51Z", "hours": 6.1828, "text": "#2 finished with the case and firmware(done using kmk, used github documentaries) we’re done with pretty much everything and the only stuff that is left is writing the readme and checking everything out once, finalizing and shipping the project"}, {"post_id": 5825, "ts": "2026-06-09T19:22:46Z", "hours": 2.045, "text": "macropad on which i should be able to play snake within these ~2 hrs i made the pcb(in kicad obv 😭) and got it to as shown in the ss, so the keys will act as movement controls (or up down left right) the oled screen will display the game next time it will be case designing (i hope so) !!"}]...
|
Title: "ssssss"-Pad by @huzia | Stardance
Title: "ssssss"-Pad by @huzia | Stardance
Devlogs:
macropad on which i should be able to play snake within these ~2 hrs i made the pcb(in kicad obv 😭) and got it to as shown in the ss, so the keys will act as movement controls (or up down left right) the oled screen will display the game next time it will be case designing (i hope so) !!
#2 finished with the case and firmware(done using kmk, used github documentaries) we’re done with pretty much everything and the only stuff that is left is writing the readme and checking everything out once, finalizing and shipping the project
Ships:
“sssssss”-Pad is a macropad on which you can play snake :))) I poured my genshin hours into this, it was very challenging especially the firmware. Other than that, once I used the wrong display screen for the project and had to change it just before finishing it off and writing the README 😭 anddd the CAD part was mostly straight forward but god the screw holes…. All in all I loved making this project and would love to make more interesting hardware stuff in the future!...
|
1793123706.5701306
|
1793210106.5701306
|
|
9703
|
Loodo-New Social Media by @Huroli | Stardance
|
Huroli
|
1
|
3.28
|
20
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-06T16:18:08Z", "hours": 1.0, "multiplier": 16.22, "payout": 20, "blessing": "neutral", "text": "Built Loodo, a next-generation social media platform designed for creators, developers, artists, and communities. Unlike traditional social networks, Loodo supports not only images and videos but also source code files, development projects, documents, and even 3D models. The biggest challenge was designing a platform flexible enough to support many different content types while keeping the user experience simple and intuitive. We also focused on creating a foundation that can eventually combine content sharing, community building, and creator monetization in a single ecosystem. I’m most proud of the platform’s versatility. Whether you’re a developer sharing code, an artist showcasing artwork, or a 3D creator publishing models, Loodo aims to give everyone a place to share and grow. To test the project, create an GitHub account, download the frontend project, now you can explore the finished pages.", "repo": "https://github.com/Huroli/Loodo", "demo": "https://loodo-puce.vercel.app/"}]...
|
[{"post_id": 10193, "ts": "202 [{"post_id": 10193, "ts": "2026-06-16T20:07:51Z", "hours": 0.5903, "text": "I wrote a small piece of code to prevent idle socket connections from dropping immediately when the server wakes up from sleep; instead, it continues searching the database for 30 seconds. This way, you can now register and use the site even when I’m not actively using it."}, {"post_id": 5191, "ts": "2026-06-08T21:47:17Z", "hours": 0.8439, "text": "Now you can login or register. Backend is not perfect but this is what you’d expect to be from 1 developer working on this project."}, {"post_id": 3723, "ts": "2026-06-06T19:28:11Z", "hours": 0.4289, "text": "Backend is now available. (In a short time it will be work on the live site.) https://github.com/Huroli/Loodo-Backend"}, {"post_id": 3628, "ts": "2026-06-06T17:22:03Z", "hours": 0.4164, "text": "Now you can go and inspect the finished pages. https://loodo-puce.vercel.app/"}, {"post_id": 3584, "ts": "2026-06-06T16:14:14Z", "hours": 0.2747, "text": "GitHub Page Open!"}, {"post_id": 3555, "ts": "2026-06-06T15:30:18Z", "hours": 0.3758, "text": "Made trailer for the site. (Turkish voiceover/Other will come) https://drive.google.com/file/d/1SjC4mKoK9J_ANVP28CM7r9WPlGAWkidk/view?usp=sharing"}, {"post_id": 3501, "ts": "2026-06-06T13:55:45Z", "hours": 0.6117, "text": "Connected backend-frontend. Made a basic login page."}]...
|
Title: Loodo-New Social Media by @Huroli | Stardan Title: Loodo-New Social Media by @Huroli | Stardance
Devlogs:
Connected backend-frontend. Made a basic login page.
Made trailer for the site. (Turkish voiceover/Other will come) https://drive.google.com/file/d/1SjC4mKoK9J_ANVP28CM7r9WPlGAWkidk/view?usp=sharing
GitHub Page Open!
Now you can go and inspect the finished pages. https://loodo-puce.vercel.app/
Backend is now available. (In a short time it will be work on the live site.) https://github.com/Huroli/Loodo-Backend
Now you can login or register. Backend is not perfect but this is what you’d expect to be from 1 developer working on this project.
I wrote a small piece of code to prevent idle socket connections from dropping immediately when the server wakes up from sleep; instead, it continues searching the database for 30 seconds. This way, you can now register and use the site even when I’m not actively using it.
Ships:
Built Loodo, a next-generation social media platform designed for creators, developers, artists, and communities. Unlike traditional social networks, Loodo supports not only images and videos but also source code files, development projects, documents, and even 3D models. The biggest challenge was designing a platform flexible enough to support many different content types while keeping the user experience simple and intuitive. We also focused on creating a foundation that can eventually combine content sharing, community building, and creator monetization in a single ecosystem. I’m most proud of the platform’s versatility. Whether you’re a developer sharing code, an artist showcasing artwork, or a 3D creator publishing models, Loodo aims to give everyone a place to share and grow. To test the project, create an GitHub account, download the frontend project, now you can explore the finished pages....
|
1793119746.1517348
|
1793206146.1517348
|
|
9706
|
Snake by @Harshita | Stardance
|
Harshita
|
1
|
5.0
|
5
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-10T07:58:07Z", "hours": 5.0, "multiplier": 1.01, "payout": 5, "blessing": "neutral", "text": "I made a snake game it was challenging as it was my first time making a project i didn’t know anything about coding and used my brothers laptop to make it it was fun and frustrating and the final online version is moving slower than expected but it is still working none the less hope you enjoy it byee!!", "repo": "https://github.com/lekhrajsingh3251-lab/Fast-Snake", "demo": "https://edroth.itch.io/fast-snek"}]...
|
[{"post_id": 6097, "ts": "2026 [{"post_id": 6097, "ts": "2026-06-10T07:53:32Z", "hours": 0.9011, "text": "Snake devlog 3 : it was soo difficult to host it i have finally done everything on this project and will start a descent one now"}, {"post_id": 6055, "ts": "2026-06-10T05:27:54Z", "hours": 1.3597, "text": "Dev log 2: i added a game over screen and an homepage screen now for this project i am wrapping up because i want to transfer over to unity to make games this game is just a super fast version of an endless snake game where the snake doesn’t increase in size but the goal is to keep increasing the score without going out of bounds like subway surfer"}, {"post_id": 4740, "ts": "2026-06-08T05:43:39Z", "hours": 2.7981, "text": "Am i doing something wrong? I wanted to make something on my own then i learned python and pygame yesterday so i thought to make chess but it got too complicated so i settled on making this snake game to get used to coding. I can make it by searching on google for various things like how to load an image with python and pygame and how to rotate image but when looking back at it i won’t remember much when making something again i would have to search again So am i doing something wrong or is this how programming usually is Anyways i made the movement of snake possible added rotation of its sprite and added a score on the corner although there a no apple to increase the score yet :). Byee!!"}]...
|
Title: Snake by @Harshita | Stardance
Devlogs:
Am Title: Snake by @Harshita | Stardance
Devlogs:
Am i doing something wrong? I wanted to make something on my own then i learned python and pygame yesterday so i thought to make chess but it got too complicated so i settled on making this snake game to get used to coding. I can make it by searching on google for various things like how to load an image with python and pygame and how to rotate image but when looking back at it i won’t remember much when making something again i would have to search again So am i doing something wrong or is this how programming usually is Anyways i made the movement of snake possible added rotation of its sprite and added a score on the corner although there a no apple to increase the score yet :). Byee!!
Dev log 2: i added a game over screen and an homepage screen now for this project i am wrapping up because i want to transfer over to unity to make games this game is just a super fast version of an endless snake game where the snake doesn’t increase in size but the goal is to keep increasing the score without going out of bounds like subway surfer
Snake devlog 3 : it was soo difficult to host it i have finally done everything on this project and will start a descent one now
Ships:
I made a snake game it was challenging as it was my first time making a project i didn’t know anything about coding and used my brothers laptop to make it it was fun and frustrating and the final online version is moving slower than expected but it is still working none the less hope you enjoy it byee!!...
|
1793065844.87854
|
1793152244.87854
|
|
9712
|
RanDK Bot by @RanDK | Stardance
|
RanDK
|
1
|
1.65
|
2
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-06T16:02:38Z", "hours": 1.0, "multiplier": 2.15, "payout": 2, "blessing": "neutral", "text": "I Follow the Tutorial, changed only the commands prefix to make sure its not colliding with anyone elses command. I refactor the project after that, since the tutorial is a simple all in one file code, and i just want to make it more manageable by refactoring it into manageble chunks. Waited a few minutes to get the Nest Server to host the Bot, the deployment is smooth successful. Now the bot should run 24/7. For the Demo Link, i linked it to my github account since for now theres no website for this project.", "repo": "https://github.com/RKPYI/slackbot", "demo": "https://hackclub.enterprise.slack.com/archives/C0B8BPMDAMD"}]...
|
[{"post_id": 3894, "ts": "2026 [{"post_id": 3894, "ts": "2026-06-07T00:04:21Z", "hours": 0.6503, "text": "[DOCUMENTATION] I’m upgrading the documentation for my RanDK Slack Bot by writing a comprehensive, production-ready README file from scratch. The default tutorial notes were scattered, so I wanted to create a clear guide that details our /rdk-* slash commands, the exact Slack API scopes needed, and a step-by-step local setup process. I also mapped out a dedicated troubleshooting matrix for common Bolt framework errors and added production hosting instructions for running it 24/7 as a systemd service on Nest. P.S. The bot is live on the server! Feel free to try it in HackClub Slack"}, {"post_id": 3557, "ts": "2026-06-06T15:38:32Z", "hours": 0.4736, "text": "[REFACTOR] I’m refactoring my RanDK Bot to break apart that giant, messy index.js file from the default tutorial. Cramming the bot config, external API calls, and individual commands into one place made the code a total headache to expand and super easy to accidentally break. I split everything into dedicated folders for configs, services, and controllers, turning the main file into a clean switchboard that just links them together. Now, if one command goes down, the rest of the bot stays online 24/7 on Nest, making it way easier to safely add fun new features in the future. P.S. The bot is live on the server! Feel free to try it in HackClub Slack /rdk-ping /rdk-joke /rdk-catfact"}, {"post_id": 3513, "ts": "2026-06-06T14:21:19Z", "hours": 0.3889, "text": "v0.0.0 Waiting for Nest Hosting approval…"}]...
|
Title: RanDK Bot by @RanDK | Stardance
Devlogs:
v Title: RanDK Bot by @RanDK | Stardance
Devlogs:
v0.0.0 Waiting for Nest Hosting approval…
[REFACTOR] I’m refactoring my RanDK Bot to break apart that giant, messy index.js file from the default tutorial. Cramming the bot config, external API calls, and individual commands into one place made the code a total headache to expand and super easy to accidentally break. I split everything into dedicated folders for configs, services, and controllers, turning the main file into a clean switchboard that just links them together. Now, if one command goes down, the rest of the bot stays online 24/7 on Nest, making it way easier to safely add fun new features in the future. P.S. The bot is live on the server! Feel free to try it in HackClub Slack /rdk-ping /rdk-joke /rdk-catfact
[DOCUMENTATION] I’m upgrading the documentation for my RanDK Slack Bot by writing a comprehensive, production-ready README file from scratch. The default tutorial notes were scattered, so I wanted to create a clear guide that details our /rdk-* slash commands, the exact Slack API scopes needed, and a step-by-step local setup process. I also mapped out a dedicated troubleshooting matrix for common Bolt framework errors and added production hosting instructions for running it 24/7 as a systemd service on Nest. P.S. The bot is live on the server! Feel free to try it in HackClub Slack
Ships:
I Follow the Tutorial, changed only the commands prefix to make sure its not colliding with anyone elses command. I refactor the project after that, since the tutorial is a simple all in one file code, and i just want to make it more manageable by refactoring it into manageble chunks. Waited a few minutes to get the Nest Server to host the Bot, the deployment is smooth successful. Now the bot should run 24/7. For the Demo Link, i linked it to my github account since for now theres no website for this project....
|
1793134032.7799013
|
1793220432.7799013
|
|
9731
|
waifmark-2 by @qb | Stardance
|
qb
|
1
|
25.88
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-04T02:30:20Z", "hours": 23.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Waifmark 2 is now public. This is a benchmarking utility for local (V)LLMs testing their local agentic and roleplay/persona capabilities, built using vllm on python. Waifmark 1 had existed before this, but this was my first attempt automating any kind of LLM behaviour and that was certainly challenging. Another important aspect with this benchmark was that since local AI is being used, cost isn’t a primary concern but rather response time. This led to a entire process of figuring out how to inject end-of-reasoning traces directly into the LLM but it was honestly too difficult and inconsistent to evaluate in the end. Similarly, manually reviewing over 200 flagged tasks was a pain and introduces a systematic uncertainty that is myself reviewing these questions that are mostly arbitrary rather than discrete (i.e. questions having multiple possible answers, being on a spectrum rather than definitive wrong/correct). In the end however, I feel like I’ve not made a niche benchmark but actually also a fully open-source benchmarking utility for people to play around with, test with their own test-bank and evaluate local large language models to find the one best tailored for their unique use cases. To test Waifmark 2, note that the github site is just a static site and you cannot directly benchmark from there. Follow the instructions on the static site / or README.md on github to run correctly.", "repo": "https://github.com/qubixal/waifmark", "demo": "https://qubixal.github.io/waifmark/"}]...
|
[{"post_id": 62549, "ts": "202 [{"post_id": 62549, "ts": "2026-09-06T00:15:24Z", "hours": 1.2206, "text": "As requested, README has been updated and rewritten by a human. There are also now three ways to install - directly through PyPI by doing pip install waifmark, or downloading waifmark-macos.zip and unzipping. there’s not a lot otherwise to say about this devlog"}, {"post_id": 61482, "ts": "2026-09-04T12:51:23Z", "hours": 0.4283, "text": "it was found that I accidentally committed using personal details and a local email. The gh repo has been wiped and recreated; here’s proof of the original repo and work. Thank you reviewers for your understanding."}, {"post_id": 61333, "ts": "2026-09-04T06:14:17Z", "hours": 1.23, "text": "Waifmark 2 has been updated with a new UI! After criticisms of the previous UI being too AI, I’ve refactored it with a cleaner, pastel aesthetic. I kinda like it! tell me what i should change next -»> (readme has been humanified too…)"}, {"post_id": 61239, "ts": "2026-09-04T02:23:29Z", "hours": 1.2233, "text": "after ~18 hours over two days of benchmarking, 17 models were evaluated on the waifmark 2 benchmark. (💢💢💢 benchmarking time got recorded to root ~/ and so I can’t include in this project time) Final findings: 1: higher param models like Qwen3.5 9B and Gemma 4 12B are able to score high despite their low Q3 quants, with only their speed dragging them down 2: Nanbeige 4.2 3B and Granite 4.2 8B at Q4 are not considered to be mainstream open models (i.e. competing with Qwen or Gemma), but scored incredibly well given their small size. The only downside came with unoptimised runs and thinking traces inflating the time/response metric. 3: every AI lab except for Liquid (LFM) saw a direct proportionality trend, that for a higher score a higher time/response is required. 4: As a larger portion of the benchmark is now tied to Agentic tasks in a sandbox, there is a much larger variance in the distribution of scores with more recent models scoring comparatively higher, with less models scoring in-between compared to Waifmark 1. The Pareto Frontier for Waifmark is: Qwen3.5 9B (89%) -> LFM2.5 2.6B (55%) -> Ling 3.0 Tiny (35%) ->Qwen3 4B Instruct 2507 (21%). Now, the issues faced: UI issues from the refactor to FastAPI + frontend; fixed with page indexing. During benchmarking, many models timed out due to unstable mlx weights, a corrupted test bank during Day 4 with 6 times the number of actual roleplay scenarios caused a benchmark time of over 12 hours; once I realised the mistake at the end (due to ~600+ tasks that had to be reviewed) I reran the benchmark with the correct test bank (which had also been recently changed to 1/3 agentic + 2/3 roleplay, and consists of 4 times more questions than Waifmark 1. over 260+ out of ~600 total tasks had to be re-reviewed by a human, as the LLM-as-a-Judge flagged the answer. Most were agentic tasks that the benchmarked LLM did not provide an answer to but had demonstrated steps in its reasoning, with toolcall accuracies above 0%. This took a significant portion of my time to audit all scores. See images for results, or navigate to: https://qubixal.github.io/waifmark/chart.html"}, {"post_id": 60212, "ts": "2026-09-02T13:12:39Z", "hours": 3.8194, "text": "finally, benchmarking has begun. The benchmark was re-evaluated meticulously based on Qwen3.5-4B as a ~50% guideline for benchmarking. Then, I set up my now dead macbook pro (dead display, dead battery) to a portable monitor to use as basically a cloud server and started benchmarking. This is the fourth night of trying (after benchmarking failed over the night due to the computer not plugging in and losing all charge (day 1), automation logic not working (day 2), LFM weights getting stuck (day 3) so hopefully it works today with the 17 consecutive models to be benchmarked. using 17 models, including: MiniCPM5-1B (0.57GB) LFM2.5-2.6B GGUF (1.59GB) Granite3B (2.09G8) G9V3 (1.77GB) Nanbeige (2.50GB) Granite8B (4.98GB) Ling(4.58GB) Falcon (4.28GB) LFM8B (4.51GB) Gemma E2B(4.04GB) Gemma E4B (4.79GB) Gemma12B (5.30GB) Qwen3.5-9B (4.35GB) Qwen3-4B-2507 (2.1GB) Qwen3.5-2B (1.60GB) Qwen3.5-4B (2.83GB) DeepSeek-R1-Qwen3-8B (4.29GB) Note, all models were selected to fit within 6-8GB vram total so it could be evaluated on my local hardware."}, {"post_id": 58584, "ts": "2026-08-31T01:39:24Z", "hours": 3.0928, "text": "devlog 4 - UI refactor streamlit was replaced with FastAPI + a frontend and i think it looks much better than previously now. issues + features: hugging face’s api (i.e. HfApi.list_models() was not filtered correctly during search) direct model import based on local dir is now possible openrouter judge was outdated and replaced, now user-configurable install now possible in a oneliner pip install -r requirements.txt && waifmark if a benchmark was cancelled, previously a bg server process vLLM workers would leak; instead process groups (start_new_session=True) and os.killpg gets rid of all processes when a session is ended. streamlit ran CORS and XSRF disabled; rebound to localhost"}, {"post_id": 19866, "ts": "2026-07-01T08:52:48Z", "hours": 5.715, "text": "devlog 3: it’s been even longer but I’ve finally done enough to call this a “devlog”. basically everything has been fully rewritten in python. A few (quite detrimental) bug fixes are: nonexistent error recovery system (i.e. pausing benchmark + invalid responses) scoring rubric weights ignored in prompt sent to judge save files mislabelling A/B scoring only having one slider for better model several UI patches (floating navbar -> broken margins) added leaderboard from the original index.html currently visible on the github under “Leaderboard”, displaying top scores. To work on: largely inconsistent and seemingly inflated scoring check if benchmark can actually be completed, finalise benchmarking criteria + process benchmark the rest of the models i hope this can be done within 2 more devlogs. Image 1: much more simplified run system (compared to before). Image 2: the og graph, now in v2!"}, {"post_id": 5576, "ts": "2026-06-09T12:41:48Z", "hours": 6.1856, "text": "Dev2 It’s been so long but the UI looks a little better now (?) The process has been basically fully streamlined: HF model download -> pick quant/download type Benchmarking -> start server -> run benchmark, score/100 evaluation, ETA and live console monitoring Result auditing (Will continue to work on this) -> human review responses flagged by LLM judge Results showcase/leaderboard -> WIP Progress related to benchmarking: 3x question count compared to Waifmark 1 ~2x faster parallel automated scoring memory system (short/long ctx), agentic toolcalling (basic file reading/shell/research) functions fully implemented as part of local agentic benchmarking."}, {"post_id": 3503, "ts": "2026-06-06T13:57:19Z", "hours": 3.0169, "text": "Devlog 0.1 (For a future project.) I’m trying out LLM benchmarking on my M1 Macbook Pro that probably needs a break! Prior to Stardance - Waifmark 1 was a benchmark testing local agentic capabilities and speech persona of small locally hosted (V)LLMs. However, my benchmarking process for Waifmark 1 was unstandardised and troublesome, and I kept all the data in excel out of all places. Current stage - Waifmark 2 is in the works. The benchmark is now evaluated by an LLM-as-a-Judge that can flag and pass low-confidence outputs for human review (as is industry standard). Using the wonderful streamlit library I built a basic app that can download you a model from hf, serve the model and benchmark it in 3 steps. Unfortunately I cannot show any more behind the process as of now, but I’m very excited to join Stardance and to see what changes can be observed moving from Waifmark 1 -> 2!"}]...
|
Title: waifmark-2 by @qb | Stardance
Devlogs:
Dev Title: waifmark-2 by @qb | Stardance
Devlogs:
Devlog 0.1 (For a future project.) I’m trying out LLM benchmarking on my M1 Macbook Pro that probably needs a break! Prior to Stardance - Waifmark 1 was a benchmark testing local agentic capabilities and speech persona of small locally hosted (V)LLMs. However, my benchmarking process for Waifmark 1 was unstandardised and troublesome, and I kept all the data in excel out of all places. Current stage - Waifmark 2 is in the works. The benchmark is now evaluated by an LLM-as-a-Judge that can flag and pass low-confidence outputs for human review (as is industry standard). Using the wonderful streamlit library I built a basic app that can download you a model from hf, serve the model and benchmark it in 3 steps. Unfortunately I cannot show any more behind the process as of now, but I’m very excited to join Stardance and to see what changes can be observed moving from Waifmark 1 -> 2!
Dev2 It’s been so long but the UI looks a little better now (?) The process has been basically fully streamlined: HF model download -> pick quant/download type Benchmarking -> start server -> run benchmark, score/100 evaluation, ETA and live console monitoring Result auditing (Will continue to work on this) -> human review responses flagged by LLM judge Results showcase/leaderboard -> WIP Progress related to benchmarking: 3x question count compared to Waifmark 1 ~2x faster parallel automated scoring memory system (short/long ctx), agentic toolcalling (basic file reading/shell/research) functions fully implemented as part of local agentic benchmarking.
devlog 3: it’s been even longer but I’ve finally done enough to call this a “devlog”. basically everything has been fully rewritten in python. A few (quite detrimental) bug fixes are: nonexistent error recovery system (i.e. pausing benchmark + invalid responses) scoring rubric weights ignored in prompt sent to judge save files mislabelling A/B scoring only having one slider for better model several UI patches (floating navbar -> broken margins) added leaderboard from the original index.html currently visible on the github under “Leaderboard”, displaying top scores. To work on: largely inconsistent and seemingly inflated scoring check if benchmark can actually be completed, finalise benchmarking criteria + process benchmark the rest of the models i hope this can be done within 2 more devlogs. Image 1: much more simplified run system (compared to before). Image 2: the og graph, now in v2!
devlog 4 - UI refactor streamlit was replaced with FastAPI + a frontend and i think it looks much better than previously now. issues + features: hugging face’s api (i.e. HfApi.list_models() was not filtered correctly during search) direct model import based on local dir is now possible openrouter judge was outdated and replaced, now user-configurable install now possible in a oneliner pip install -r requirements.txt && waifmark if a benchmark was cancelled, previously a bg server process vLLM workers would leak; instead process groups (start_new_session=True) and os.killpg gets rid of all processes when a session is ended. streamlit ran CORS and XSRF disabled; rebound to localhost
finally, benchmarking has begun. The benchmark was re-evaluated meticulously based on Qwen3.5-4B as a ~50% guideline for benchmarking. Then, I set up my now dead macbook pro (dead display, dead battery) to a portable monitor to use as basically a cloud server and started benchmarking. This is the fourth night of trying (after benchmarking failed over the night due to the computer not plugging in and losing all charge (day 1), automation logic not working (day 2), LFM weights getting stuck (day 3) so hopefully it works today with the 17 consecutive models to be benchmarked. using 17 models, including: MiniCPM5-1B (0.57GB) LFM2.5-2.6B GGUF (1.59GB) Granite3B (2.09G8) G9V3 (1.77GB) Nanbeige (2.50GB) Granite8B (4.98GB) Ling(4.58GB) Falcon (4.28GB) LFM8B (4.51GB) Gemma E2B(4.04GB) Gemma E4B (4.79GB) Gemma12B (5.30GB) Qwen3.5-9B (4.35GB) Qwen3-4B-2507 (2.1GB) Qwen3.5-2B (1.60GB) Qwen3.5-4B (2.83GB) DeepSeek-R1-Qwen3-8B (4.29GB) Note, all models were selected to fit within 6-8GB vram total so it could be evaluated on my local hardware.
after ~18 hours over two days of benchmarking, 17 models were evaluated on the waifmark 2 benchmark. (💢💢💢 benchmarking time got recorded to root ~/ and so I can’t include in this project time) Final findings: 1: higher param models like Qwen3.5 9B and Gemma 4 12B are able to score high despite their low Q3 quants, with only their speed dragging them down 2: Nanbeige 4.2 3B and Granite 4.2 8B at Q4 are not considered to be mainstream open models (i.e. competing with Qwen or Gemma), but scored incredibly well given their small size. The only downside came with unoptimised runs and thinking traces inflating the time/response metric. 3: every AI lab except for Liquid (LFM) saw a direct proportionality trend, that for a higher score a higher time/response is required. 4: As a larger portion of the benchmark is now tied to Agentic tasks in a sandbox, there is a much larger variance in the distribution of scores with more recent models scoring comparatively higher, with less models scoring in-between compared to Waifmark 1. The Pareto Frontier for Waifmark is: Qwen3.5 9B (89%) -> LFM2.5 2.6B (55%) -> Ling 3.0 Tiny (35%) ->Qwen3 4B Instruct 2507 (21%). Now, the issues faced: UI issues from the refactor to FastAPI + frontend; fixed with page indexing. During benchmarking, many models timed out due to unstable mlx weights, a corrupted test bank during Day 4 with 6 times the number of actual roleplay scenarios caused a benchmark time of over 12 hours; once I realised the mistake at the end (due to ~600+ tasks that had to be reviewed) I reran the benchmark with the correct test bank (which had also been recently changed to 1/3 agentic + 2/3 roleplay, and consists of 4 times more questions than Waifmark 1. over 260+ out of ~600 total tasks had to be re-reviewed by a human, as the LLM-as-a-Judge flagged the answer. Most were agentic tasks that the benchmarked LLM did not provide an answer to but had demonstrated steps in its reasoning, with toolcall accuracies above 0%. This took a significant portion of my time to audit all scores. See images for results, or navigate to: https://qubixal.github.io/waifmark/chart.html
Waifmark 2 has been updated with a new UI! After criticisms of the previous UI being too AI, I’ve refactored it with a cleaner, pastel aesthetic. I kinda like it! tell me what i should change next -»> (readme has been humanified too…)
it was found that I accidentally committed using personal details and a local email. The gh repo has been wiped and recreated; here’s proof of the original repo and work. Thank you reviewers for your understanding.
As requested, README has been updated and rewritten by a human. There are also now three ways to install - directly through PyPI by doing pip install waifmark, or downloading waifmark-macos.zip and unzipping. there’s not a lot otherwise to say about this devlog
Ships:
Waifmark 2 is now public. This is a benchmarking utility for local (V)LLMs testing their local agentic and roleplay/persona capabilities, built using vllm on python. Waifmark 1 had existed before this, but this was my first attempt automating any kind of LLM behaviour and that was certainly challenging. Another important aspect with this benchmark was that since local AI is being used, cost isn’t a primary concern but rather response time. This led to a entire process of figuring out how to inject end-of-reasoning traces directly into the LLM but it was honestly too difficult and inconsistent to evaluate in the end. Similarly, manually reviewing over 200 flagged tasks was a pain and introduces a systematic uncertainty that is myself reviewing these questions that are mostly arbitrary rather than discrete (i.e. questions having multiple possible answers, being on a spectrum rather than definitive wrong/correct). In the end however, I feel like I’ve not made a niche benchmark but actually also a fully open-source benchmarking utility for people to play around with, test with their own test-bank and evaluate local large language models to find the one best tailored for their unique use cases. To test Waifmark 2, note that the github site is just a static site and you cannot directly benchmark from there. Follow the instructions on the static site / or README.md on github to run correctly....
|
1793083927.8434818
|
1793170327.8434818
|
|
9734
|
BROS by @Berke | Stardance
|
Berke
|
1
|
6.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-23T15:08:57Z", "hours": 6.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I developed a Operating System from scrath with Rust and ASM. 19k lines of code was hand writen and the rest are AI genereted by Opencode cli. I put 4 years of work on this project. You can just read the devlog to understand", "repo": "https://github.com/berkeoruc/berkeos", "demo": "https://berke.berkeai.com/projects/bros-os"}]...
|
[{"post_id": 9884, "ts": "2026 [{"post_id": 9884, "ts": "2026-06-16T11:11:45Z", "hours": 2.0575, "text": "Bros OS Devlog #1 – 4 Years, 95k Lines, and a Filesystem Named After My Girlfriend So here’s the thing. Four years ago I sat down and thought, ‘Yeah, I’ll just write my own operating system.’ You know, casually. Like one does. Fast forward to today: I’m knee-deep in 95,122 lines of Rust, running my own kernel on a custom CPU I named BROS HM-1 (2 cores @ 2.4 GHz, because why not), booting with my own fork of GRUB, and managing files on a filesystem named after my girlfriend. It’s been a ride. This is Bros OS v1.1.2C – a proprietary x86_64 operating system built from scratch in Rust (no_std). And yeah, it’s closed source. I’ll get to why. The BerkeOS -> Bros OS Story Originally this was BerkeOS on GitHub. People started stealing the repo – cloning it, stripping the credits, and passing it off as their own work. Happened more than once. So I pulled it down and took everything private. That’s really the only reason Bros OS is closed source. Not because I’m a gatekeeper, but because a few bad actors ruined it for everyone. The code’s still alive, still growing – just on my machine now. There’s also a pending Turkish patent application covering the filesystem and boot process. What’s Actually In This Thing? Monolithic kernel, 513 Rust source files, no_std bare metal. Brosh shell – 185+ commands, pipes, redirection, job control. You can almost forget you’re not in bash. Almost. DefneFS v3.2.3 – custom FS with ATA PIO, AHCI, NVMe, SATA. Full partition manager, VFS layer, disk quotas. Drives: Alpha://, Beta://, Gamma://. Full network stack – TCP/IP, UDP, ICMP, ARP, DHCP, DNS, HTTP, NAT, routing, tunneling. All hand-written. Modular graphics – VGA, framebuffer, VESA, double buffering, font rendering, BMP image support. Retro aesthetic, fully intentional. USB XHCI driver – works on real hardware. Plug in a keyboard and it just works. Virtual memory, ELF loader, SMP, ACPI, crypto (AES128/SHA256/MD5), crash dumps, cron/at scheduler, init system, Deno text editor. BAHAR Bootloader I forked GRUB2 – the entire thing – just to change one line of code. Somewhere deep in grub-core/kern/main.c, I swapped ‘Welcome to GRUB!’ for ‘Welcome to BAHAR!’. Overengineered? Absolutely. Worth it? 100%. It’s technically a custom bootloader now. Don’t @ me. DefneFS – Yeah, It’s Named After Her Defne is my girlfriend. She sat through four years of me yelling at linker errors, celebrating page fault fixes like I won the lottery, and explaining what a context switch is for the 50th time. She never once told me to stop. The filesystem is the heart of any operating system, and she’s the heart of this project. Seemed fair. She genuinely liked the idea too. That helped. How It Was Built OS Dev Wiki carried me through the first two years. Absolute goldmine. Rust no_std on bare metal – no allocator, no standard library, no println!. You build everything from the ground up, then rebuild it because you did it wrong the first time. Dev setup: OpenCode (Sisyphus) handles orchestration. Local Ollama serves MiniMax 2.5 and DeepSeek for code gen. About 18,739 lines (19.7%) are mine – hand-written, reviewed, finessed. The rest is AI-assisted but I read every single line before it hit the codebase. Nothing went in on autopilot. Best part about local models: you can retry 50 times without burning API credits. Worst part: prompt engineering becomes a second full-time job. Four years. 95k lines. One very patient girlfriend. And I feel like I’m just getting started. OS dev is a treadmill that never stops. But honestly? I wouldn’t have it any other way. – Berke"}, {"post_id": 9809, "ts": "2026-06-16T07:46:34Z", "hours": 3.6828, "text": "BROS Operating Systems UI/UX"}]...
|
Title: BROS by @Berke | Stardance
Devlogs:
BROS O Title: BROS by @Berke | Stardance
Devlogs:
BROS Operating Systems UI/UX
Bros OS Devlog #1 – 4 Years, 95k Lines, and a Filesystem Named After My Girlfriend So here’s the thing. Four years ago I sat down and thought, ‘Yeah, I’ll just write my own operating system.’ You know, casually. Like one does. Fast forward to today: I’m knee-deep in 95,122 lines of Rust, running my own kernel on a custom CPU I named BROS HM-1 (2 cores @ 2.4 GHz, because why not), booting with my own fork of GRUB, and managing files on a filesystem named after my girlfriend. It’s been a ride. This is Bros OS v1.1.2C – a proprietary x86_64 operating system built from scratch in Rust (no_std). And yeah, it’s closed source. I’ll get to why. The BerkeOS -> Bros OS Story Originally this was BerkeOS on GitHub. People started stealing the repo – cloning it, stripping the credits, and passing it off as their own work. Happened more than once. So I pulled it down and took everything private. That’s really the only reason Bros OS is closed source. Not because I’m a gatekeeper, but because a few bad actors ruined it for everyone. The code’s still alive, still growing – just on my machine now. There’s also a pending Turkish patent application covering the filesystem and boot process. What’s Actually In This Thing? Monolithic kernel, 513 Rust source files, no_std bare metal. Brosh shell – 185+ commands, pipes, redirection, job control. You can almost forget you’re not in bash. Almost. DefneFS v3.2.3 – custom FS with ATA PIO, AHCI, NVMe, SATA. Full partition manager, VFS layer, disk quotas. Drives: Alpha://, Beta://, Gamma://. Full network stack – TCP/IP, UDP, ICMP, ARP, DHCP, DNS, HTTP, NAT, routing, tunneling. All hand-written. Modular graphics – VGA, framebuffer, VESA, double buffering, font rendering, BMP image support. Retro aesthetic, fully intentional. USB XHCI driver – works on real hardware. Plug in a keyboard and it just works. Virtual memory, ELF loader, SMP, ACPI, crypto (AES128/SHA256/MD5), crash dumps, cron/at scheduler, init system, Deno text editor. BAHAR Bootloader I forked GRUB2 – the entire thing – just to change one line of code. Somewhere deep in grub-core/kern/main.c, I swapped ‘Welcome to GRUB!’ for ‘Welcome to BAHAR!’. Overengineered? Absolutely. Worth it? 100%. It’s technically a custom bootloader now. Don’t @ me. DefneFS – Yeah, It’s Named After Her Defne is my girlfriend. She sat through four years of me yelling at linker errors, celebrating page fault fixes like I won the lottery, and explaining what a context switch is for the 50th time. She never once told me to stop. The filesystem is the heart of any operating system, and she’s the heart of this project. Seemed fair. She genuinely liked the idea too. That helped. How It Was Built OS Dev Wiki carried me through the first two years. Absolute goldmine. Rust no_std on bare metal – no allocator, no standard library, no println!. You build everything from the ground up, then rebuild it because you did it wrong the first time. Dev setup: OpenCode (Sisyphus) handles orchestration. Local Ollama serves MiniMax 2.5 and DeepSeek for code gen. About 18,739 lines (19.7%) are mine – hand-written, reviewed, finessed. The rest is AI-assisted but I read every single line before it hit the codebase. Nothing went in on autopilot. Best part about local models: you can retry 50 times without burning API credits. Worst part: prompt engineering becomes a second full-time job. Four years. 95k lines. One very patient girlfriend. And I feel like I’m just getting started. OS dev is a treadmill that never stops. But honestly? I wouldn’t have it any other way. – Berke
Ships:
I developed a Operating System from scrath with Rust and ASM. 19k lines of code was hand writen and the rest are AI genereted by Opencode cli. I put 4 years of work on this project. You can just read the devlog to understand...
|
1793134351.943621
|
1793220751.943621
|
|
9735
|
Custom Text-Based Shell by @Greg_ios | Stardance
|
Greg_ios
|
1
|
3.0
|
35
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-02T17:59:00Z", "hours": 3.0, "multiplier": 13.12, "payout": 35, "blessing": "neutral", "text": "A lightweight Python-based shell for Windows with Git-aware prompts, system monitoring, file management, process utilities, and productivity shortcuts.", "repo": "https://github.com/travletothefurureprogramming/Text_Based_Shell/", "demo": "https://github.com/travletothefurureprogramming/Text_Based_Shell/releases/tag/Release"}]...
|
[{"post_id": 5451, "ts": "2026 [{"post_id": 5451, "ts": "2026-06-09T07:32:02Z", "hours": 0.3789, "text": "Add network information command and enhance help documentation. Also add find command to search for files"}, {"post_id": 4394, "ts": "2026-06-07T18:30:20Z", "hours": 0.3275, "text": "Making the github release and a better README.md"}, {"post_id": 4371, "ts": "2026-06-07T17:56:55Z", "hours": 0.5197, "text": "Make better command manage"}, {"post_id": 3791, "ts": "2026-06-06T20:53:51Z", "hours": 0.6039, "text": "Add suppourt for more commands and background git check for current branch"}, {"post_id": 3761, "ts": "2026-06-06T20:13:57Z", "hours": 0.5753, "text": "Make fully commands suppourt"}, {"post_id": 3726, "ts": "2026-06-06T19:28:46Z", "hours": 0.2958, "text": "Making the basic interface and cd commands"}]...
|
Title: Custom Text-Based Shell by @Greg_ios | Star Title: Custom Text-Based Shell by @Greg_ios | Stardance
Devlogs:
Making the basic interface and cd commands
Make fully commands suppourt
Add suppourt for more commands and background git check for current branch
Make better command manage
Making the github release and a better README.md
Add network information command and enhance help documentation. Also add find command to search for files
Ships:
A lightweight Python-based shell for Windows with Git-aware prompts, system monitoring, file management, process utilities, and productivity shortcuts....
|
1793112513.372759
|
1793198913.372759
|
|
9739
|
Whimsyboard by @hrushal | Stardance
|
hrushal
|
1
|
17.4
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-16T13:41:11Z", "hours": 16.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "WhimsyBoard is a 4*3 Macropad with a Rotary encoder and a oled screen mapped for the optimal Music control, programming and automation macros in mind. The board allows you to have two Dynamic macros to record and play. The board also has the 12th key (bottom right) set to move layer for more customization without ruining the original layout The name comes from people calling my whimsical and the logo is just a svg from svgrepo that reminds me of my blahaj plush The board has some Sabrina Carpenter and Tate McRae lyrics sprinked in since they are the artists i listed to most while making this The hardest part for me was EVERYTHING except the schematics making the schematic was almost peaceful except finding footprints and importing them Routing the pcb is an art IT took my atleast 5 revision on lapse and outside of it to Get a decent routing and i had to remap the pins enough times to make everything look presentable CAD was genuine hell since it was my first time and i didnt know much abt the fusion eventually shifted to onshape aft learning basics from trying and failing in fusion Decided to make an open case since its alr very packed and i want the Copper Text to shine", "repo": "https://github.com/Hrushal-Nikhare/Whimsyboard", "demo": ""}]...
|
[{"post_id": 48809, "ts": "202 [{"post_id": 48809, "ts": "2026-08-17T10:55:47Z", "hours": 1.4, "text": "NEW CASE Whimsyboard got audited and it was pointed out that the case couldnt hold the pcb in but i really love having the copper being exposed w the silkscreens so the Grid was a NO what i did instead was Extruded all interior edges by 2mm and curved them so the pcb CANNOT fall out and now isnt just dependent on the cable to stay in place Also added a lot of curves cuz i learnt and figured out some cad"}, {"post_id": 9925, "ts": "2026-06-16T13:17:20Z", "hours": 7.3619, "text": "Whimsy board IS FINALLY COMPLETE Firmware was honestly hell with the build times and sparse (im also not that smart) and sometimes confusing QMK documentation CAD WAS HELLLL Took so long to even understand how to even start but eventually moved to onshape which was MUCH easier Schematic was the best and the most delulu stage imagining your board and how simple it is to make smth like this and then you find out why they cost so much aft PCB routing is a diff hell i have a new sense of appreciation for every single pcb that exists so simply w no vias"}, {"post_id": 6363, "ts": "2026-06-10T18:33:00Z", "hours": 8.7442, "text": "Done w the physical board and design added A shark cuz my ikea plush whimsy cuz ppl call me that and then some song lyrics which i love as a bonus 😭 currently is a 3*4 matrix of switches w a rotary encoder and a oled display Top section of the encoder and two keys are gonna be reserved for playing music"}]...
|
Title: Whimsyboard by @hrushal | Stardance
Devlog Title: Whimsyboard by @hrushal | Stardance
Devlogs:
Done w the physical board and design added A shark cuz my ikea plush whimsy cuz ppl call me that and then some song lyrics which i love as a bonus 😭 currently is a 3*4 matrix of switches w a rotary encoder and a oled display Top section of the encoder and two keys are gonna be reserved for playing music
Whimsy board IS FINALLY COMPLETE Firmware was honestly hell with the build times and sparse (im also not that smart) and sometimes confusing QMK documentation CAD WAS HELLLL Took so long to even understand how to even start but eventually moved to onshape which was MUCH easier Schematic was the best and the most delulu stage imagining your board and how simple it is to make smth like this and then you find out why they cost so much aft PCB routing is a diff hell i have a new sense of appreciation for every single pcb that exists so simply w no vias
NEW CASE Whimsyboard got audited and it was pointed out that the case couldnt hold the pcb in but i really love having the copper being exposed w the silkscreens so the Grid was a NO what i did instead was Extruded all interior edges by 2mm and curved them so the pcb CANNOT fall out and now isnt just dependent on the cable to stay in place Also added a lot of curves cuz i learnt and figured out some cad
Ships:
WhimsyBoard is a 4*3 Macropad with a Rotary encoder and a oled screen mapped for the optimal Music control, programming and automation macros in mind. The board allows you to have two Dynamic macros to record and play. The board also has the 12th key (bottom right) set to move layer for more customization without ruining the original layout The name comes from people calling my whimsical and the logo is just a svg from svgrepo that reminds me of my blahaj plush The board has some Sabrina Carpenter and Tate McRae lyrics sprinked in since they are the artists i listed to most while making this The hardest part for me was EVERYTHING except the schematics making the schematic was almost peaceful except finding footprints and importing them Routing the pcb is an art IT took my atleast 5 revision on lapse and outside of it to Get a decent routing and i had to remap the pins enough times to make everything look presentable CAD was genuine hell since it was my first time and i didnt know much abt the fusion eventually shifted to onshape aft learning basics from trying and failing in fusion Decided to make an open case since its alr very packed and i want the Copper Text to shine...
|
1793130942.182806
|
1793217342.182806
|
|
9748
|
My first slack bot! by @yassinbs | Stardance
|
yassinbs
|
1
|
0.29
|
1
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-06T15:28:35Z", "hours": 0.0, "multiplier": 2.57, "payout": 1, "blessing": "neutral", "text": "I built a custom Slack bot called Helloking Bot using Node.js, Slack Bolt, and Socket Mode. The bot includes several slash commands such as /helloking, /helloking-joke, /helloking-catfact, /helloking-quote, /helloking-roll, and /helloking-coinflip. The most challenging part was deploying the bot so it would stay online 24/7 and configuring it to run on a remote server. I also had to learn how to work with GitHub, environment variables, Linux commands, and systemd services. I’m most proud of organizing the project into multiple command files instead of putting everything in one file. This made the code cleaner, easier to read, and easier to maintain as I added more features. ChatGPT helped teach me the basics of Slack bot development and suggested using a modular file structure, which improved the overall quality of the project. To test the bot, use any of the following slash commands in Slack: /helloking /helloking-joke /helloking-catfact /helloking-quote /helloking-roll /helloking-coinflip The bot is deployed on a Nest VM and runs 24/7, even when my laptop is turned off.", "repo": "https://github.com/guccmanegu-eng/slack-bothelloking", "demo": "https://hackclub.enterprise.slack.com/archives/C0B8Q9N50T0"}]...
|
[{"post_id": 4108, "ts": "2026 [{"post_id": 4108, "ts": "2026-06-07T09:34:57Z", "hours": 0.2853, "text": "Added 2 more commands, advice and dogfact. Also fixed the project test link, as it was app.slack.com, now turned it into a testing channel link."}, {"post_id": 3494, "ts": "2026-06-06T13:38:06Z", "hours": 0.31, "text": "Trying to make a Slack bot, without useless functions, but with very handy functions."}]...
|
Title: My first slack bot! by @yassinbs | Stardanc Title: My first slack bot! by @yassinbs | Stardance
Devlogs:
Trying to make a Slack bot, without useless functions, but with very handy functions.
Added 2 more commands, advice and dogfact. Also fixed the project test link, as it was app.slack.com, now turned it into a testing channel link.
Ships:
I built a custom Slack bot called Helloking Bot using Node.js, Slack Bolt, and Socket Mode. The bot includes several slash commands such as /helloking, /helloking-joke, /helloking-catfact, /helloking-quote, /helloking-roll, and /helloking-coinflip. The most challenging part was deploying the bot so it would stay online 24/7 and configuring it to run on a remote server. I also had to learn how to work with GitHub, environment variables, Linux commands, and systemd services. I’m most proud of organizing the project into multiple command files instead of putting everything in one file. This made the code cleaner, easier to read, and easier to maintain as I added more features. ChatGPT helped teach me the basics of Slack bot development and suggested using a modular file structure, which improved the overall quality of the project. To test the bot, use any of the following slash commands in Slack: /helloking /helloking-joke /helloking-catfact /helloking-quote /helloking-roll /helloking-coinflip The bot is deployed on a Nest VM and runs 24/7, even when my laptop is turned off....
|
1793098083.3789394
|
1793184483.3789394
|
|
9756
|
tinystudio by @ratmuds | Stardance
|
ratmuds
|
1
|
109.8
|
2123
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-14T02:08:29Z", "hours": 108.0, "multiplier": 19.71, "payout": 2123, "blessing": "neutral", "text": "I made a game engine that I tried to make the UI look nice and feel accessible. I wanted to design it around what I liked about other game engines like Roblox Studio and Godot, and try and make it as easy as possible to make prototypes of games quickly. The decision to not let any 3D imports was intentional to keep the engine style of more retro, as you can see by the rendering style. Instead, you can fuse and subtract shapes together with CSG. The flow editor state machines fully work, and was inspired by Playmaker. The scripting system is a little bit janky sometimes but it somewhat works. The scripting system has a basic scheduler and profiler similar to Roblox’s Luau scheduler but without the complexity of CPU budget. The engine uses a custom ECS that uses Svelte Runes to provide reactivity to the engine sidebars and editor. There is also a basic UI system, and physics. There are three demo projects to try out too.", "repo": "https://github.com/ratmuds/tinystudio", "demo": "https://tinystudio.ratmud.studio/"}]...
|
[{"post_id": 69622, "ts": "202 [{"post_id": 69622, "ts": "2026-09-17T13:08:36Z", "hours": 1.7972, "text": "Redid UI styling to feel more blocky I rewrote the UI to look less bubbly I guess, now it looks more like lego and stuff and more space for work instead of tons of padding"}, {"post_id": 67806, "ts": "2026-09-14T01:58:45Z", "hours": 5.0589, "text": "Finalized Project I added a projects manager and generally just cleaned up the repository. Then created three basic demos, like a basic moon landing game, a very basic parkour game, and a physics sandbox. And finished the README"}, {"post_id": 48210, "ts": "2026-08-16T14:44:47Z", "hours": 4.7264, "text": "Scope Leaking Bug Fixed, Mouse Input, Scripting Improvements, ECS & Events Scripting Improvements and Fixes, Cameras There was an issue where I used a single variable to hold the last used scope before and forgot to change it to support multiple scripts. That is fixed now and scopes aren’t mixed weirdly anymore. There is now mouse functions and events Events can be called like part.physics:on(\"touched\") instead of part:on(\"Physics.touched\") for clarity Cameras are added, game wide function to change active camera, and camera system that updates the camera things bidirectionally supporting multiple camera types."}, {"post_id": 46256, "ts": "2026-08-13T11:31:38Z", "hours": 5.1194, "text": "Script Scheduling Engine Revamp The entire scripting engine has been redone. It was a lot of cascading changes again, with now each “Scope” having it’s own scheduler. A “scope” is a single logic component that gets attached to entities. How it works now The scheduler handles the Lua engine stuff. It wraps the main script around into a coroutine automatically now, and extracts the coroutine into a thread. It then creates a scheduler job object, pending into the queue. The scheduler then gets stepped, and initializes the jobs into the main queue and steps them. By stepping them, it resumes the coroutine until the script either ends or manually pauses the coroutine itself (usually done with a predefined “wait” function). I think this is very similar to how Roblox handles it’s script scheduler, although Roblox’s is of course much more complicated. Handling the events and callbacks was much more difficult though. Each of those ALSO need it’s own thread to run to access coroutine related functions and to access data (otherwise very weird errors will happen, like calling code over a boundary or something). This all gets added as a scheduler job, and that allows us to record telemetry data. Eventually, threads can be assigned a “budget”, where they can be stalled if they consume more than the allotted time or even do things like infinite loop detection, etc. There was just generally tedious work that was annoying."}, {"post_id": 45759, "ts": "2026-08-12T13:35:44Z", "hours": 5.3428, "text": "Added CSG Operations I added CSG operations, using the Manifold library. It makes it a bit simpler, making watertight meshes and giving back the geometry for me to make a custom mesh in ThreeJS. The reason it took so long was because I had to add cascading changes to a lot of the data structures to support this custom geometry. I also added a little loading thing at the bottom right for CSG operations. As of right now Union and Subtract are supported. Materials are not preserved as of right now, due to the simplistic way I’m handling materials but when I finish building out the materials system I basically just need to get the triangle references out of Manifold and relink them to the correct materials."}, {"post_id": 40725, "ts": "2026-08-04T13:16:47Z", "hours": 5.4036, "text": "Engine Events System & Starting Significant Scheduler Engine Revamp So I made the events system. It works by a class on the JavaScript (engine) layer, and is attached to all entities. There are a couple of functions: on: fires on event once: fires on event only once off: clears event callback clear: clears all callbacks Other entities are allowed to access another entitys events, being able to listen or even emit. A game architecture could work like having “manager” entities at the top level of the game which hold different events. For example, an “InventoryManager” entity could have an event for when an item is picked up, it itself can listen to it, as well as any other things that may find it useful. I’ve also cleaned up the code, and now there is a “game” reference. Eventually, it will have access to more things but as of right now you can access an “inputManager” which holds functions and events for user inputs. It works by attaching a metatable to it and exposing global hidden functions to call to my JavaScript engine code. But a huge problem showed up, the way I was running scripts. Before I thought just a simple coroutine running with a timeout for delays was just fine, but I was super wrong. If a callback from an event is fired and the function wants to do something, like call an external function or wait, it completely breaks. Why? I didn’t know and it took me a lot of time to find out. It’s because the callbacks aren’t a coroutine too. This is when I realized why something like Roblox has a full blown scheduler. So I’ve been planning and starting on the scheduler engine. It has to handle a lot of stuff, including managing when scripts run, including WHEN they want to run (next frame, in 3 seconds, etc) and track if they are causing issues by keeping track of their budget. Everything will need to be in a coroutine coordinated by the scheduler. Including callbacks from events too. It’s going to be pretty complicated I think, requiring a rewrite of the entire scripting system. I also just encountered a lot of bugs. And I fixed the errors from Wasmoon including the entire JS stacktrace for no reason too."}, {"post_id": 39522, "ts": "2026-08-02T15:10:03Z", "hours": 4.0047, "text": "Scripting System Affecting the Game Scripts now can change parts. There are getEntityById and getEntityByName functions now, and a bunch of metatables and stuff to get it working. Now you can query for an entity, and then modify it’s component data with metatables. For example to access or set the position of a part, you can do part.transform.position . The transform finds the transform component and position finds the data entry of position inside the component. This is all done on runtime, with component queries happening dynamically so no manual programming for new components is required. This may affect performance a little bit though. There is a custom Vector3 object now too. Error messages are also now a little less vague but still pretty confusing. I don’t know how to solve that."}, {"post_id": 38632, "ts": "2026-08-01T04:02:22Z", "hours": 6.7036, "text": "Logic & Scripting Prototype Working this was so difficult basically a TON of things needed to be changed for this to work. i had to rework the entire scripting system. i had to also think about how the system is going to work the system i landed on, basically is you can create nodes in the state machine editor, and attach scripts on those states. instead of scripts, im calling the whole package of state machine + scripts a “Logic”. i havent reflected the name everywhere else yet though, and that is probably going to take a really long time as its a major architectural shift that i didn’t plan for beforehand. i made custom nodes in the editor as you can see, a start, end and the script node. there is now a nice dropdown to select the script (a searchbar will be added later) and you can create new scripts. i fixed the code editor to actually load/save code properly. i had to redo how it saved data, so i could communicate the scripts, nodes, connections, etc all to the ScriptingSystem, which starts off at the “Start” node and steps the state once, going into the first node. This part of the code is an absolute MESS. i had a ton of bugs to fix, including state and Svelte firing state over and over again for some reason, Lua issues, dealing with coroutines, dealing with external functions which would change the state and exit the code, etc To add the script, there is now a “Add component” button which you can select the script and select the logic. The state machine handles direct to end, looping nodes, multiple handles, infinite loops going into other nodes, etc. At the end of the video, you can see that i created two states and the second state had two outputs, and the path is a 50/50 random decided by the Lua code to loop back into the first state or exit. Overall, this was really tiring and I’m glad it’s done. The amount of time thinking and debugging isn’t included in the time tracked so yeah :("}, {"post_id": 36862, "ts": "2026-07-29T06:06:34Z", "hours": 2.8403, "text": "Scripting System I added Svelte Flow and the Monaco editor Basically, I think that the system will work mainly off of state machines. Each state will have an attached script. The scripts can decide when to change states. For example, the scripting for a bee in a game could have states for wandering, eating, etc and the scripts handle only it’s own state which could make the code a little cleaner. I also tried making the script editor to look really good. I spent a bunch of time trying to add LSPs and intellisense/autocomplete and syntax and formatting but honestly I give up for now."}, {"post_id": 36780, "ts": "2026-07-29T01:39:01Z", "hours": 3.6069, "text": "Fixed Constraints Getting constraints working was super annoying. Basically, there is a problem where the engine is built around models, and you can spawn in multiple models. When models are spawned in, the parts inside are cloned including their IDs to not lose reference, but this comes with the huge issue as in the backend, the engine actually flattens this structure for more efficient processing of entities, meaning that there will be multiple entities sharing IDs, which is really bad. But creating new IDs is also a huge problem because when we reference it, the ID is not final and changes all the time on load. So instead it does <model_id>:<entity_id>, for targeting. The constraint creator lets you select two points (snapping will be added in the future) and it creates a constraint. This is later processed by the PhysicsSystem detecting the ConstraintComponent. Later there will be debug viewer for constraints. Anyway it was just a lot of annoying work."}, {"post_id": 36178, "ts": "2026-07-28T03:01:00Z", "hours": 1.4972, "text": "Opening Tabs Working There is now a flow for opening and creating tabs, now new tabs can be created and new models in the same way. Opening a tab that is already open just switches to it."}, {"post_id": 35581, "ts": "2026-07-27T03:36:46Z", "hours": 5.8286, "text": "Runtime working This took so long There was just so many things that just weren’t working well together. Especially the data loading code. I initially just made the code use and modify the gameData directly, meaning that if I stop and play again the game would not reset and would probably completely break. But cloning is so difficult. Since the gameData is pretty complicated with nested classes and data, simply JSON.stringify and parse, and even structuredClone didn’t work. I had to use a function to manually copy a lot of things which was really annoying. Another thing that was weird was that parts would only have physics if it was dictated by the parent model, which wasn’t what I wanted. Now there is a function to flatten models, since I want them to kind of just be fancy folders at the end of the day anyway. There was just generally a lot of rework to get everything working, with systems and components working now with a setup phase, and a general frame tick function for systems to process. I also had to add dirty flags to all ComponentDataEntries so other components actually notice changes by OTHER components which was so annoying :(("}, {"post_id": 32943, "ts": "2026-07-22T12:52:14Z", "hours": 3.2719, "text": "Model Thumbnails, Better Highlighting, Reactivity, Sidebar, etc The models now have a place to store a thumbnail, and on save, it autogenerates a new thumbnail. It creates a new ThreeJS scene in the background and adds all the entities to it. For now it only cares about the Transform component, so that’s why all the parts don’t have the correct colors. The face highlighting also is fixed to use ThreeJS’s Line2 so an adjustable line thickness can be used. The face edge highlights are now thicker and a lot easier to see. Reactivity is now fixed, so dragging an object in the editor updates the UI, and the other way around. In the video, you can also see the “–” when multiple objects were selected. It means they have unique values, but they can still be all updated. The system works by storing all seen components in a JS map, and then only filtering for components that appear in ALL of the selected parts. I might change that functionality later but it works for now. I also added the sidebar to the model workspace. I also did work on the ECS system and just engine code in general."}, {"post_id": 32397, "ts": "2026-07-21T15:37:04Z", "hours": 3.5475, "text": "Fixed ECS Data Storage and UI Displays ECS Data I got the UI to display the data for the ECS components. I had some weird bugs, also I messed up earlier on the code to store the data entries for the components (stores things like data type and stuff) and then now it displays on the sidebar. For now I temporarily disabled the code to handle multiple different objects that could have differing component values or different components altogether, because it was causing a bunch of problems cuz the code is not great :("}, {"post_id": 31028, "ts": "2026-07-19T02:40:47Z", "hours": 4.5597, "text": "Started Data and ECS Code I started working on the ECS system, and now the parts spawned are “entities” and they have “components” like a mesh, a transform, and a physics component. The components are queried and cached by the game engine and passed to the “systems” that actually do work with the component data of the entity. I also dealt with a stupid tab bug :((( And generally other engine code."}, {"post_id": 15172, "ts": "2026-06-24T17:28:53Z", "hours": 3.5117, "text": "Worked on Model tab and Working on Refactoring Backend & Renderer Component There’s now a model tab, also I made some more animations and things to make the app more fun to use. I’m also in the process of rebuilding the data types and completely redoing the reusable Renderer component since it was an absolute disaster before."}, {"post_id": 14600, "ts": "2026-06-23T19:23:32Z", "hours": 6.5047, "text": "Completely Revamped UI and Working On Refactoring Entire Engine I really tried making the UI look a lot nicer than the generic UI it was before, and I think it looks pretty nice. I might need to simplify some stuff, but I spent a long time trying to make the UI more welcoming and easy to use and for the UI to seem more playful in a way I guess, than the more mono font boring gray it was last time. I also have started on completely refactoring the engine. The previous data stores and data types were too limiting and I made some bad decisions early on so starting from scratch is kind of necessary"}, {"post_id": 11366, "ts": "2026-06-18T16:29:57Z", "hours": 1.5181, "text": "Added constraints, which took a while because the way I store objects just isn’t sustainable I’m going to redo the entire architechure of this app, mostly the backend because it’s just such a mess. I’ve been piling on features and the technical debt and poor early decisions are catching up to me and it’s making development slower so I’m going to start refactoring a lot of stuff. This should mean everything will be less buggy and make it faster for me to develop new features Now that I know how the app will be I can make smarter decisions"}, {"post_id": 10184, "ts": "2026-06-16T20:00:27Z", "hours": 4.2217, "text": "Reworked script system for better and easier scripting and added some basic part modification functions Basically, before you would need to type something like find(“stud”):setVelocity({10, 10, 10}) or something like that, but with metatables Metatables are kind of weird, but they basically let me return a special object from the find() function, and modify that object to override functions and add new ones. For example, you can override the metatable of custom Vector3 objects to handle addition, so you can do v1 + v2 instead of addVectors(v1, v2) and it’s a lot cleaner and straightforward. This means injecting a bunch of Lua code to set these metatables, and exposing global functions from JS to handle the metatable calls. I also added some event handling (very basic for now) but you can see in the video the part moving from me using WASD You can also see a ton of errors, and I’m trying to fix those right now. I really don’t know why they are here"}, {"post_id": 8431, "ts": "2026-06-14T00:48:37Z", "hours": 3.4253, "text": "Part sidebar shows parent/child relationships now (also had to change backend) I also got save data to serialize, but loading seems to break the other components that rely on the state I also added the cool little part add thing. I changed the font of the app too and stuff. I tried different search things but this one from shadcn-svelte seemed to work the best. I also picked the Lyra theme from shadcn-svelte"}, {"post_id": 8181, "ts": "2026-06-13T17:01:57Z", "hours": 6.7944, "text": "It’s been a while, I kind of forgot to log in the middle I reimplemented parts of the backend to support play testing and handling the state of the current game, keeping track of parts and bodies and scripts Added physics engine (Rapier), requiring keeping track of colliders and physics bodies. Right now only convex meshes for performance meaning concave colliders might be a little broken for now so I plan to add something like VHACD or a more modern alternative to split up complicated meshes into smaller convex and simplified colliders. Added Wasmoon (Lua interpreter) and CodeMirror 6 (code editor component) and some old language parser for Lua to be supported properly, this was also a challenge because Wasmoon just wants to run all the code in one go, so instead there has to be a coroutine setup where the code returns back out temporarily (with a custom wait function that utilized the coroutine function) where then my code ticks every frame to tick the code (while loop) again and also adds the delay if applicable The renderer also needed a few tweaks to get this to work properly Also something kind of weird was I couldn’t get the playTest state to update and propagate throughout the application (thats why the top bar button doesn’t work for now) and honestly I have no idea why and I spent a lot of time debugging it"}, {"post_id": 7159, "ts": "2026-06-11T23:12:48Z", "hours": 0.8367, "text": "Can now apply textures to objects with a new Texture Studio tab :) It’s still really buggy and doesn’t work on CSG objects. It also ignores the coplanar face detection I have right now for simplicity so it only works on ThreeJS primitive face groups as of right now."}, {"post_id": 6571, "ts": "2026-06-11T01:16:28Z", "hours": 2.0747, "text": "I added the framework of a UV atlas editor, and also the painting studio for the texture editor I’m working on the texture system. I’m still working on UVs. It’s honestly really complicated, I have no idea so far how to make it intuitive for users. Auto unwrapping it would not give easy to use results because most assets in this engine are going to be simple. Showing all the vertices on a single atlas also would be very overwhelming. I’m trying to figure something out. It could be determined on a face by face basis, but some faces could be super super weird due to imported meshes or weird CSG operations, which would lead to a mess of a UV unwrap I’m also going to make an editor to assemble the texture atlases by stitching together the individual smaller textures."}, {"post_id": 5862, "ts": "2026-06-09T20:15:37Z", "hours": 2.4597, "text": "Finally got the world studio to work properly, it was because I didn’t assign an ID to the spawned objects And I added the premade things in the scene also be added to the store"}, {"post_id": 5285, "ts": "2026-06-09T00:22:45Z", "hours": 1.6897, "text": "I finally got model saving to sort of work. This required revamping the backend stores to support multiple tabs, and updating the sidebar to actually use the correct tab state data."}, {"post_id": 5199, "ts": "2026-06-08T21:54:17Z", "hours": 0.5725, "text": "Moved 3D rendering code to be shared between both studios via creating a component that applies the shading and stuff and exposing the scene for the individual studios to add objects And added an isolation mode that allows the user to focus a single object or group of objects (whatever the user is selecting) and pressing i to toggle. Useful for like creating constraints and stuff more easily"}, {"post_id": 4853, "ts": "2026-06-08T11:54:31Z", "hours": 0.6908, "text": "Transform controls (now can switch to rotate and scale) And basic undo/redo system that basically just takes the ThreeJS properties and saves it and reapplies it back on undo And delete"}, {"post_id": 4609, "ts": "2026-06-07T23:55:10Z", "hours": 1.5267, "text": "Face selection (took so long) and with face selection I added constraint creation system that just creates a constraint in the center of the faces selected I had to add another face renderer, and then also refactor the stores and how I stored data to get this to work and to keep track of faces selected and stuff which took a long time"}, {"post_id": 4556, "ts": "2026-06-07T22:02:26Z", "hours": 1.1836, "text": "The CSG works really well now. Union operations now maintain materials by keeping track of the mesh IDs and then reassigning the materials afterwards manually. Also some clean up and general improvement"}, {"post_id": 4504, "ts": "2026-06-07T20:51:13Z", "hours": 0.3275, "text": "I’ve fixed the face selection code to check the dot product of the faces to make sure they are actually coplanar. I also added some cleanup functions to perform after the CSG operations to clean up geometry to make it more usable"}, {"post_id": 4494, "ts": "2026-06-07T20:31:36Z", "hours": 1.1086, "text": "Face detection and highlighting working This was pretty complicated because 3D objects are made up of triangles, but the user probably does NOT want to select triangles, but the faces themselves. So basically, I got the face the raycast hit, and then looped through all the triangles of the mesh they are hovering and got the vertex indices and got their positions and turned that into a normal and compared it with the other faces and decided if the normals were close enough"}, {"post_id": 4361, "ts": "2026-06-07T17:35:23Z", "hours": 1.2006, "text": "Added retro shader that quantizes the colors to look more like a limited color space Fixed CSG errors and fixed gizmo disappearing over and over again Added another render pass and raycast to add outline to hovered objects"}, {"post_id": 4305, "ts": "2026-06-07T15:51:36Z", "hours": 0.5503, "text": "I switched the CSG library to Manifold3D and it’s better but the meshes are a bit weird. Hopefully I’ll figure it out later. Also for some reason selection of these meshes and their transform gizmos are really difficult and buggy so I have to fix that. Also I know that there are errors I’m going to fix that now"}, {"post_id": 4280, "ts": "2026-06-07T15:18:31Z", "hours": 1.0586, "text": "CSG is being very annoying. I’m using three-bvh-csg but it’s not really what I need I think. There’s some subtraction artifacts, and most importantly, materials are not preserved I think I’m going to switch to a different library because this one isn’t really working great for me but it is pretty nice and simple"}, {"post_id": 4244, "ts": "2026-06-07T14:14:51Z", "hours": 0.9067, "text": "Added multi part select. Trying to debug why CSG operations not working I honestly don’t know what’s wrong because I followed the example code from the library but it’s not working :("}, {"post_id": 4189, "ts": "2026-06-07T12:39:07Z", "hours": 0.9372, "text": "The sidebars are now synced, but I still need to make them sync correctly to the current tab. Right now they sync exclusively to the model studio. The raycasting & selection of parts work now and I fixed the tabs to not unload and reload on each tab switch which caused data sync issues and lag and instead all tabs stay loaded."}, {"post_id": 4157, "ts": "2026-06-07T11:23:44Z", "hours": 0.7944, "text": "I made the part selected have an outline and made the gizmo work, but currently I can’t select other parts for some reason and I’ve just been debugging that"}, {"post_id": 3649, "ts": "2026-06-06T17:48:15Z", "hours": 1.8894, "text": "I started work on the “World Studio” and “Model Studio” of this game engine/fantasy console. The model studio is where you create the models that you drag into the world studio. I’ve added a gizmo and a way to place the parts and also made a more stylized rendering thing to make it feel more retro in a way."}, {"post_id": 3482, "ts": "2026-06-06T13:13:24Z", "hours": 0.41, "text": "I started the project and installed SvelteKit and added ThreeJS"}]...
|
Title: tinystudio by @ratmuds | Stardance
Devlogs Title: tinystudio by @ratmuds | Stardance
Devlogs:
I started the project and installed SvelteKit and added ThreeJS
I started work on the “World Studio” and “Model Studio” of this game engine/fantasy console. The model studio is where you create the models that you drag into the world studio. I’ve added a gizmo and a way to place the parts and also made a more stylized rendering thing to make it feel more retro in a way.
I made the part selected have an outline and made the gizmo work, but currently I can’t select other parts for some reason and I’ve just been debugging that
The sidebars are now synced, but I still need to make them sync correctly to the current tab. Right now they sync exclusively to the model studio. The raycasting & selection of parts work now and I fixed the tabs to not unload and reload on each tab switch which caused data sync issues and lag and instead all tabs stay loaded.
Added multi part select. Trying to debug why CSG operations not working I honestly don’t know what’s wrong because I followed the example code from the library but it’s not working :(
CSG is being very annoying. I’m using three-bvh-csg but it’s not really what I need I think. There’s some subtraction artifacts, and most importantly, materials are not preserved I think I’m going to switch to a different library because this one isn’t really working great for me but it is pretty nice and simple
I switched the CSG library to Manifold3D and it’s better but the meshes are a bit weird. Hopefully I’ll figure it out later. Also for some reason selection of these meshes and their transform gizmos are really difficult and buggy so I have to fix that. Also I know that there are errors I’m going to fix that now
Added retro shader that quantizes the colors to look more like a limited color space Fixed CSG errors and fixed gizmo disappearing over and over again Added another render pass and raycast to add outline to hovered objects
Face detection and highlighting working This was pretty complicated because 3D objects are made up of triangles, but the user probably does NOT want to select triangles, but the faces themselves. So basically, I got the face the raycast hit, and then looped through all the triangles of the mesh they are hovering and got the vertex indices and got their positions and turned that into a normal and compared it with the other faces and decided if the normals were close enough
I’ve fixed the face selection code to check the dot product of the faces to make sure they are actually coplanar. I also added some cleanup functions to perform after the CSG operations to clean up geometry to make it more usable
The CSG works really well now. Union operations now maintain materials by keeping track of the mesh IDs and then reassigning the materials afterwards manually. Also some clean up and general improvement
Face selection (took so long) and with face selection I added constraint creation system that just creates a constraint in the center of the faces selected I had to add another face renderer, and then also refactor the stores and how I stored data to get this to work and to keep track of faces selected and stuff which took a long time
Transform controls (now can switch to rotate and scale) And basic undo/redo system that basically just takes the ThreeJS properties and saves it and reapplies it back on undo And delete
Moved 3D rendering code to be shared between both studios via creating a component that applies the shading and stuff and exposing the scene for the individual studios to add objects And added an isolation mode that allows the user to focus a single object or group of objects (whatever the user is selecting) and pressing i to toggle. Useful for like creating constraints and stuff more easily
I finally got model saving to sort of work. This required revamping the backend stores to support multiple tabs, and updating the sidebar to actually use the correct tab state data.
Finally got the world studio to work properly, it was because I didn’t assign an ID to the spawned objects And I added the premade things in the scene also be added to the store
I added the framework of a UV atlas editor, and also the painting studio for the texture editor I’m working on the texture system. I’m still working on UVs. It’s honestly really complicated, I have no idea so far how to make it intuitive for users. Auto unwrapping it would not give easy to use results because most assets in this engine are going to be simple. Showing all the vertices on a single atlas also would be very overwhelming. I’m trying to figure something out. It could be determined on a face by face basis, but some faces could be super super weird due to imported meshes or weird CSG operations, which would lead to a mess of a UV unwrap I’m also going to make an editor to assemble the texture atlases by stitching together the individual smaller textures.
Can now apply textures to objects with a new Texture Studio tab :) It’s still really buggy and doesn’t work on CSG objects. It also ignores the coplanar face detection I have right now for simplicity so it only works on ThreeJS primitive face groups as of right now.
It’s been a while, I kind of forgot to log in the middle I reimplemented parts of the backend to support play testing and handling the state of the current game, keeping track of parts and bodies and scripts Added physics engine (Rapier), requiring keeping track of colliders and physics bodies. Right now only convex meshes for performance meaning concave colliders might be a little broken for now so I plan to add something like VHACD or a more modern alternative to split up complicated meshes into smaller convex and simplified colliders. Added Wasmoon (Lua interpreter) and CodeMirror 6 (code editor component) and some old language parser for Lua to be supported properly, this was also a challenge because Wasmoon just wants to run all the code in one go, so instead there has to be a coroutine setup where the code returns back out temporarily (with a custom wait function that utilized the coroutine function) where then my code ticks every frame to tick the code (while loop) again and also adds the delay if applicable The renderer also needed a few tweaks to get this to work properly Also something kind of weird was I couldn’t get the playTest state to update and propagate throughout the application (thats why the top bar button doesn’t work for now) and honestly I have no idea why and I spent a lot of time debugging it
Part sidebar shows parent/child relationships now (also had to change backend) I also got save data to serialize, but loading seems to break the other components that rely on the state I also added the cool little part add thing. I changed the font of the app too and stuff. I tried different search things but this one from shadcn-svelte seemed to work the best. I also picked the Lyra theme from shadcn-svelte
Reworked script system for better and easier scripting and added some basic part modification functions Basically, before you would need to type something like find(“stud”):setVelocity({10, 10, 10}) or something like that, but with metatables Metatables are kind of weird, but they basically let me return a special object from the find() function, and modify that object to override functions and add new ones. For example, you can override the metatable of custom Vector3 objects to handle addition, so you can do v1 + v2 instead of addVectors(v1, v2) and it’s a lot cleaner and straightforward. This means injecting a bunch of Lua code to set these metatables, and exposing global functions from JS to handle the metatable calls. I also added some event handling (very basic for now) but you can see in the video the part moving from me using WASD You can also see a ton of errors, and I’m trying to fix those right now. I really don’t know why they are here
Added constraints, which took a while because the way I store objects just isn’t sustainable I’m going to redo the entire architechure of this app, mostly the backend because it’s just such a mess. I’ve been piling on features and the technical debt and poor early decisions are catching up to me and it’s making development slower so I’m going to start refactoring a lot of stuff. This should mean everything will be less buggy and make it faster for me to develop new features Now that I know how the app will be I can make smarter decisions
Completely Revamped UI and Working On Refactoring Entire Engine I really tried making the UI look a lot nicer than the generic UI it was before, and I think it looks pretty nice. I might need to simplify some stuff, but I spent a long time trying to make the UI more welcoming and easy to use and for the UI to seem more playful in a way I guess, than the more mono font boring gray it was last time. I also have started on completely refactoring the engine. The previous data stores and data types were too limiting and I made some bad decisions early on so starting from scratch is kind of necessary
Worked on Model tab and Working on Refactoring Backend & Renderer Component There’s now a model tab, also I made some more animations and things to make the app more fun to use. I’m also in the process of rebuilding the data types and completely redoing the reusable Renderer component since it was an absolute disaster before.
Started Data and ECS Code I started working on the ECS system, and now the parts spawned are “entities” and they have “components” like a mesh, a transform, and a physics component. The components are queried and cached by the game engine and passed to the “systems” that actually do work with the component data of the entity. I also dealt with a stupid tab bug :((( And generally other engine code.
Fixed ECS Data Storage and UI Displays ECS Data I got the UI to display the data for the ECS components. I had some weird bugs, also I messed up earlier on the code to store the data entries for the components (stores things like data type and stuff) and then now it displays on the sidebar. For now I temporarily disabled the code to handle multiple different objects that could have differing component values or different components altogether, because it was causing a bunch of problems cuz the code is not great :(
Model Thumbnails, Better Highlighting, Reactivity, Sidebar, etc The models now have a place to store a thumbnail, and on save, it autogenerates a new thumbnail. It creates a new ThreeJS scene in the background and adds all the entities to it. For now it only cares about the Transform component, so that’s why all the parts don’t have the correct colors. The face highlighting also is fixed to use ThreeJS’s Line2 so an adjustable line thickness can be used. The face edge highlights are now thicker and a lot easier to see. Reactivity is now fixed, so dragging an object in the editor updates the UI, and the other way around. In the video, you can also see the “–” when multiple objects were selected. It means they have unique values, but they can still be all updated. The system works by storing all seen components in a JS map, and then only filtering for components that appear in ALL of the selected parts. I might change that functionality later but it works for now. I also added the sidebar to the model workspace. I also did work on the ECS system and just engine code in general.
Runtime working This took so long There was just so many things that just weren’t working well together. Especially the data loading code. I initially just made the code use and modify the gameData directly, meaning that if I stop and play again the game would not reset and would probably completely break. But cloning is so difficult. Since the gameData is pretty complicated with nested classes and data, simply JSON.stringify and parse, and even structuredClone didn’t work. I had to use a function to manually copy a lot of things which was really annoying. Another thing that was weird was that parts would only have physics if it was dictated by the parent model, which wasn’t what I wanted. Now there is a function to flatten models, since I want them to kind of just be fancy folders at the end of the day anyway. There was just generally a lot of rework to get everything working, with systems and components working now with a setup phase, and a general frame tick function for systems to process. I also had to add dirty flags to all ComponentDataEntries so other components actually notice changes by OTHER components which was so annoying :((
Opening Tabs Working There is now a flow for opening and creating tabs, now new tabs can be created and new models in the same way. Opening a tab that is already open just switches to it.
Fixed Constraints Getting constraints working was super annoying. Basically, there is a problem where the engine is built around models, and you can spawn in multiple models. When models are spawned in, the parts inside are cloned including their IDs to not lose reference, but this comes with the huge issue as in the backend, the engine actually flattens this structure for more efficient processing of entities, meaning that there will be multiple entities sharing IDs, which is really bad. But creating new IDs is also a huge problem because when we reference it, the ID is not final and changes all the time on load. So instead it does <model_id>:<entity_id>, for targeting. The constraint creator lets you select two points (snapping will be added in the future) and it creates a constraint. This is later processed by the PhysicsSystem detecting the ConstraintComponent. Later there will be debug viewer for constraints. Anyway it was just a lot of annoying work.
Scripting System I added Svelte Flow and the Monaco editor Basically, I think that the system will work mainly off of state machines. Each state will have an attached script. The scripts can decide when to change states. For example, the scripting for a bee in a game could have states for wandering, eating, etc and the scripts handle only it’s own state which could make the code a little cleaner. I also tried making the script editor to look really good. I spent a bunch of time trying to add LSPs and intellisense/autocomplete and syntax and formatting but honestly I give up for now.
Logic & Scripting Prototype Working this was so difficult basically a TON of things needed to be changed for this to work. i had to rework the entire scripting system. i had to also think about how the system is going to work the system i landed on, basically is you can create nodes in the state machine editor, and attach scripts on those states. instead of scripts, im calling the whole package of state machine + scripts a “Logic”. i havent reflected the name everywhere else yet though, and that is probably going to take a really long time as its a major architectural shift that i didn’t plan for beforehand. i made custom nodes in the editor as you can see, a start, end and the script node. there is now a nice dropdown to select the script (a searchbar will be added later) and you can create new scripts. i fixed the code editor to actually load/save code properly. i had to redo how it saved data, so i could communicate the scripts, nodes, connections, etc all to the ScriptingSystem, which starts off at the “Start” node and steps the state once, going into the first node. This part of the code is an absolute MESS. i had a ton of bugs to fix, including state and Svelte firing state over and over again for some reason, Lua issues, dealing with coroutines, dealing with external functions which would change the state and exit the code, etc To add the script, there is now a “Add component” button which you can select the script and select the logic. The state machine handles direct to end, looping nodes, multiple handles, infinite loops going into other nodes, etc. At the end of the video, you can see that i created two states and the second state had two outputs, and the path is a 50/50 random decided by the Lua code to loop back into the first state or exit. Overall, this was really tiring and I’m glad it’s done. The amount of time thinking and debugging isn’t included in the time tracked so yeah :(
Scripting System Affecting the Game Scripts now can change parts. There are getEntityById and getEntityByName functions now, and a bunch of metatables and stuff to get it working. Now you can query for an entity, and then modify it’s component data with metatables. For example to access or set the position of a part, you can do part.transform.position . The transform finds the transform component and position finds the data entry of position inside the component. This is all done on runtime, with component queries happening dynamically so no manual programming for new components is required. This may affect performance a little bit though. There is a custom Vector3 object now too. Error messages are also now a little less vague but still pretty confusing. I don’t know how to solve that.
Engine Events System & Starting Significant Scheduler Engine Revamp So I made the events system. It works by a class on the JavaScript (engine) layer, and is attached to all entities. There are a couple of functions: on: fires on event once: fires on event only once off: clears event callback clear: clears all callbacks Other entities are allowed to access another entitys events, being able to listen or even emit. A game architecture could work like having “manager” entities at the top level of the game which hold different events. For example, an “InventoryManager” entity could have an event for when an item is picked up, it itself can listen to it, as well as any other things that may find it useful. I’ve also cleaned up the code, and now there is a “game” reference. Eventually, it will have access to more things but as of right now you can access an “inputManager” which holds functions and events for user inputs. It works by attaching a metatable to it and exposing global hidden functions to call to my JavaScript engine code. But a huge problem showed up, the way I was running scripts. Before I thought just a simple coroutine running with a timeout for delays was just fine, but I was super wrong. If a callback from an event is fired and the function wants to do something, like call an external function or wait, it completely breaks. Why? I didn’t know and it took me a lot of time to find out. It’s because the callbacks aren’t a coroutine too. This is when I realized why something like Roblox has a full blown scheduler. So I’ve been planning and starting on the scheduler engine. It has to handle a lot of stuff, including managing when scripts run, including WHEN they want to run (next frame, in 3 seconds, etc) and track if they are causing issues by keeping track of their budget. Everything will need to be in a coroutine coordinated by the scheduler. Including callbacks from events too. It’s going to be pretty complicated I think, requiring a rewrite of the entire scripting system. I also just encountered a lot of bugs. And I fixed the errors from Wasmoon including the entire JS stacktrace for no reason too.
Added CSG Operations I added CSG operations, using the Manifold library. It makes it a bit simpler, making watertight meshes and giving back the geometry for me to make a custom mesh in ThreeJS. The reason it took so long was because I had to add cascading changes to a lot of the data structures to support this custom geometry. I also added a little loading thing at the bottom right for CSG operations. As of right now Union and Subtract are supported. Materials are not preserved as of right now, due to the simplistic way I’m handling materials but when I finish building out the materials system I basically just need to get the triangle references out of Manifold and relink them to the correct materials.
Script Scheduling Engine Revamp The entire scripting engine has been redone. It was a lot of cascading changes again, with now each “Scope” having it’s own scheduler. A “scope” is a single logic component that gets attached to entities. How it works now The scheduler handles the Lua engine stuff. It wraps the main script around into a coroutine automatically now, and extracts the coroutine into a thread. It then creates a scheduler job object, pending into the queue. The scheduler then gets stepped, and initializes the jobs into the main queue and steps them. By stepping them, it resumes the coroutine until the script either ends or manually pauses the coroutine itself (usually done with a predefined “wait” function). I think this is very similar to how Roblox handles it’s script scheduler, although Roblox’s is of course much more complicated. Handling the events and callbacks was much more difficult though. Each of those ALSO need it’s own thread to run to access coroutine related functions and to access data (otherwise very weird errors will happen, like calling code over a boundary or something). This all gets added as a scheduler job, and that allows us to record telemetry data. Eventually, threads can be assigned a “budget”, where they can be stalled if they consume more than the allotted time or even do things like infinite loop detection, etc. There was just generally tedious work that was annoying.
Scope Leaking Bug Fixed, Mouse Input, Scripting Improvements, ECS & Events Scripting Improvements and Fixes, Cameras There was an issue where I used a single variable to hold the last used scope before and forgot to change it to support multiple scripts. That is fixed now and scopes aren’t mixed weirdly anymore. There is now mouse functions and events Events can be called like part.physics:on("touched") instead of part:on("Physics.touched") for clarity Cameras are added, game wide function to change active camera, and camera system that updates the camera things bidirectionally supporting multiple camera types.
Finalized Project I added a projects manager and generally just cleaned up the repository. Then created three basic demos, like a basic moon landing game, a very basic parkour game, and a physics sandbox. And finished the README
Redid UI styling to feel more blocky I rewrote the UI to look less bubbly I guess, now it looks more like lego and stuff and more space for work instead of tons of padding
Ships:
I made a game engine that I tried to make the UI look nice and feel accessible. I wanted to design it around what I liked about other game engines like Roblox Studio and Godot, and try and make it as easy as possible to make prototypes of games quickly. The decision to not let any 3D imports was intentional to keep the engine style of more retro, as you can see by the rendering style. Instead, you can fuse and subtract shapes together with CSG. The flow editor state machines fully work, and was inspired by Playmaker. The scripting system is a little bit janky sometimes but it somewhat works. The scripting system has a basic scheduler and profiler similar to Roblox’s Luau scheduler but without the complexity of CPU budget. The engine uses a custom ECS that uses Svelte Runes to provide reactivity to the engine sidebars and editor. There is also a basic UI system, and physics. There are three demo projects to try out too....
|
1793152304.6322353
|
1793238704.6322353
|
|
9775
|
FRC Strat Extension by @Scrax99 | Stardance
|
Scrax99
|
1
|
4.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-16T07:25:00Z", "hours": 4.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made an extension that helps a user find stats on an First Robotics Team by simply entering their number and getting all the stats they will need. I made this after seeing the need on our scouting team from getting bogged down by switching in between so many different tabs while scouting. I hope that this will speed up our workflow and hope to make this a tool for teams around the globe. I used A.I. for some parts of the code and troubleshooting as this was the first project I’ve made of this type and I really needed the help. Thanks to all of you for following along on this journey :)", "repo": "https://github.com/scraxx99/FRCextension", "demo": "https://github.com/scraxx99/FRCextension/releases/tag/ScoutBuddyV1"}]...
|
[{"post_id": 9801, "ts": "2026 [{"post_id": 9801, "ts": "2026-06-16T07:22:26Z", "hours": 0.6153, "text": "Finished work on the project and have final working version. I learned a whole bunch from this project that I’ll carry with me on my future projects."}, {"post_id": 6119, "ts": "2026-06-10T09:08:51Z", "hours": 1.52, "text": "Alright after a bit more work (and absolutely no issues ;) ) i have my working demo. I’m pretty proud of myself for not using A.I. for everything. I only used it when i faced issues (definitely did not face issues where the popup was so small you couldn’t see it) After I fix this buggy piece of software, I’ll port it to chrome so normal people can use it (not that firefox users aren’t normal) Current Features —————> User enters the number of their team and gets *The name of the team *The Rookie Year *The headquartered Area of the team *A photo of the team robot On the right hand side using the previously entered team number it displays *All events team went to during this season *The 5 most recent matches *The score from said matches and which alliance the team was on *The link to the match video Future Goals and Features —————> *Win or Loss (I’m dumb I remembered to add this while typing this up) *Statbotics stats like EPA and expected win or lose next match (have to learn Statbotics API) *Cooler Color scheme (I’m a fudgin child ) Notes ———––> Still learning a lot and have a lot more to learn, but this is prob gonna be one of the most useful projects that I build. I have to learn how to use the statbotics api, but shouldn’t be that hard since I already mastered TBA’s. I’m gonna start asking for feedback and adding more stuff to it. P.S. getting this authenticated on the extension store is gonna SUCK. Alright thank you for listening, and the featured team is the World Champ team 4414 High Tide. My team was in their division at worlds and we lowkey felt the aura."}, {"post_id": 5680, "ts": "2026-06-09T15:41:59Z", "hours": 0.7647, "text": "Alright this time the MVP is actually done. After a whole lot of dumb mistakes and other mishaps that I had to fix with the help of Mr. GPT (GASP!!! I know, AI right, but this my first time working on a project like this and I needed the help especially since I’m making this for firefox and have much less resources available. Current Features ––––––––––> The user enters a team number and gets a reply with team name, rookie year, and headquarters location (Superuseful I knowwwww) I hope to add more strat stuff in the future for my team’s strat team. Future Features and Goals ———–> *Get rid of headquarters location (Not super useful) *Add district (Helpful) *Add Epa (VERY IMPORTANT) *Add 5 past match scores *Add a photo of latest robot (helps user get a grasp on score) Notes —————> I think i’m actually learning on this project, and I’m trying to use A.I. for help instead of code generation. Doing a somewhat good job of that. The project is turning out pretty well and will get some feedback after about 5 more hours of development from an actual strat person that isn’t me. I think there’s a paradox where when a person is designing something they find it easier to use as they are used to the controls and thats why they should have another human being test it out to tell them what’s wrong so i’m gonna do that (holy yap) Thank you for tagging along and listening to this madman talk. Todays demo features team 7769 THE CREW!!!!"}, {"post_id": 4979, "ts": "2026-06-08T17:03:10Z", "hours": 1.2503, "text": "After about an Hour of work the MVP bare bones version of this extension is finished! Currently the only functionality is that it finds a picture of FRC team 4188 (totally not biased) and displays it. The U.I. is completely bare, and I made so many dumb mistakes while building that I had to use A.I. for (Not Proud of a year error :( in the slightest) Future Features to Work on ———––> Variable Team input (VERY IMPORTANT) *Specific Match Stats *Pretty Maybe???? Notes —————––> I think that I am making good progress on this extension, but I’ll let you judge. I’m a strat bug so I thought this would help me and those in the FIRST Community. I’ve attached a video demo at the bottom of the post. I’m kinda embarrassed it took me this long only for it to have a one button feature, but hey! I’m learning. Thank you for listening to my rant, that’s all. Bye !!!!"}]...
|
Title: FRC Strat Extension by @Scrax99 | Stardance Title: FRC Strat Extension by @Scrax99 | Stardance
Devlogs:
After about an Hour of work the MVP bare bones version of this extension is finished! Currently the only functionality is that it finds a picture of FRC team 4188 (totally not biased) and displays it. The U.I. is completely bare, and I made so many dumb mistakes while building that I had to use A.I. for (Not Proud of a year error :( in the slightest) Future Features to Work on ———––> Variable Team input (VERY IMPORTANT) *Specific Match Stats *Pretty Maybe???? Notes —————––> I think that I am making good progress on this extension, but I’ll let you judge. I’m a strat bug so I thought this would help me and those in the FIRST Community. I’ve attached a video demo at the bottom of the post. I’m kinda embarrassed it took me this long only for it to have a one button feature, but hey! I’m learning. Thank you for listening to my rant, that’s all. Bye !!!!
Alright this time the MVP is actually done. After a whole lot of dumb mistakes and other mishaps that I had to fix with the help of Mr. GPT (GASP!!! I know, AI right, but this my first time working on a project like this and I needed the help especially since I’m making this for firefox and have much less resources available. Current Features ––––––––––> The user enters a team number and gets a reply with team name, rookie year, and headquarters location (Superuseful I knowwwww) I hope to add more strat stuff in the future for my team’s strat team. Future Features and Goals ———–> *Get rid of headquarters location (Not super useful) *Add district (Helpful) *Add Epa (VERY IMPORTANT) *Add 5 past match scores *Add a photo of latest robot (helps user get a grasp on score) Notes —————> I think i’m actually learning on this project, and I’m trying to use A.I. for help instead of code generation. Doing a somewhat good job of that. The project is turning out pretty well and will get some feedback after about 5 more hours of development from an actual strat person that isn’t me. I think there’s a paradox where when a person is designing something they find it easier to use as they are used to the controls and thats why they should have another human being test it out to tell them what’s wrong so i’m gonna do that (holy yap) Thank you for tagging along and listening to this madman talk. Todays demo features team 7769 THE CREW!!!!
Alright after a bit more work (and absolutely no issues ;) ) i have my working demo. I’m pretty proud of myself for not using A.I. for everything. I only used it when i faced issues (definitely did not face issues where the popup was so small you couldn’t see it) After I fix this buggy piece of software, I’ll port it to chrome so normal people can use it (not that firefox users aren’t normal) Current Features —————> User enters the number of their team and gets *The name of the team *The Rookie Year *The headquartered Area of the team *A photo of the team robot On the right hand side using the previously entered team number it displays *All events team went to during this season *The 5 most recent matches *The score from said matches and which alliance the team was on *The link to the match video Future Goals and Features —————> *Win or Loss (I’m dumb I remembered to add this while typing this up) *Statbotics stats like EPA and expected win or lose next match (have to learn Statbotics API) *Cooler Color scheme (I’m a fudgin child ) Notes ———––> Still learning a lot and have a lot more to learn, but this is prob gonna be one of the most useful projects that I build. I have to learn how to use the statbotics api, but shouldn’t be that hard since I already mastered TBA’s. I’m gonna start asking for feedback and adding more stuff to it. P.S. getting this authenticated on the extension store is gonna SUCK. Alright thank you for listening, and the featured team is the World Champ team 4414 High Tide. My team was in their division at worlds and we lowkey felt the aura.
Finished work on the project and have final working version. I learned a whole bunch from this project that I’ll carry with me on my future projects.
Ships:
I made an extension that helps a user find stats on an First Robotics Team by simply entering their number and getting all the stats they will need. I made this after seeing the need on our scouting team from getting bogged down by switching in between so many different tabs while scouting. I hope that this will speed up our workflow and hope to make this a tool for teams around the globe. I used A.I. for some parts of the code and troubleshooting as this was the first project I’ve made of this type and I really needed the help. Thanks to all of you for following along on this journey :)...
|
1793083657.7742379
|
1793170057.7742379
|
|
9777
|
AI_boat_pilot by @LatvianCrow | Stardance
|
LatvianCrow
|
1
|
10.0
|
86
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-05T07:16:41Z", "hours": 10.0, "multiplier": 9.03, "payout": 86, "blessing": "neutral", "text": "I made an ml-agent controlled boat, it’s trained to collect and fire 5 fireworks.", "repo": "https://github.com/viestursgaming03-hash/AI_Boat_Pilot", "demo": "https://play.unity.com/api/v1/games/game/81b66972-070b-4e3a-aad4-b6f1f9ef8bb7/build/latest/frame"}]...
|
[{"post_id": 39840, "ts": "202 [{"post_id": 39840, "ts": "2026-08-03T03:01:29Z", "hours": 1.4883, "text": "Added progress text to show how many fireworks are left until the goal is reached"}, {"post_id": 22168, "ts": "2026-07-04T14:21:45Z", "hours": 8.0522, "text": "Adding fireworks that shoot out when the boat reaches the goal."}]...
|
Title: AI_boat_pilot by @LatvianCrow | Stardance
Title: AI_boat_pilot by @LatvianCrow | Stardance
Devlogs:
Adding fireworks that shoot out when the boat reaches the goal.
Added progress text to show how many fireworks are left until the goal is reached
Ships:
I made an ml-agent controlled boat, it’s trained to collect and fire 5 fireworks....
|
1793098328.5984163
|
1793184728.5984163
|
|
9798
|
My first slack bot! (Venix) by @Vensin | Stardance
|
Vensin
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-06T19:39:27Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Venix is a Slack bot built with Node.js and Slack Bolt that lets users search for anime and characters using the Jikan API. It provides interactive Slack commands like anime search, character lookup, and random anime generation with structured results, images, and buttons for deeper details.", "repo": "https://github.com/vxnsin/venix-slack-bot/", "demo": "https://slack.com/oauth/v2/authorize?client_id=11297794727586.11301418048804&scope=chat:write,commands&user_scope="}]...
|
[{"post_id": 3715, "ts": "2026 [{"post_id": 3715, "ts": "2026-06-06T19:23:36Z", "hours": 0.9472, "text": "Devlog – Venix Slack Bot I’ve been working on this project quite a bit recently and testing different ideas for how to structure a Slack bot that connects with the Jikan API. At this point, the core features are basically done. The three main commands are now finished: /anime-search lets you search for anime and shows detailed information like rating, episodes, status, genres, and the cover image. /character-search returns a list of characters based on the query, ordered by relevance, with the ability to open detailed views through interactive buttons. /random-anime generates a random anime recommendation, currently filtered to prefer higher-rated entries and formatted with key information. Right now the project is in a stable state where all core functionality is working as intended. The interaction flow with Slack blocks and buttons is also in place. Next step will likely be improving the architecture. After that I plan to run it on a Raspberry Pi for always-on hosting."}]...
|
Title: My first slack bot! (Venix) by @Vensin | St Title: My first slack bot! (Venix) by @Vensin | Stardance
Devlogs:
Devlog – Venix Slack Bot I’ve been working on this project quite a bit recently and testing different ideas for how to structure a Slack bot that connects with the Jikan API. At this point, the core features are basically done. The three main commands are now finished: /anime-search lets you search for anime and shows detailed information like rating, episodes, status, genres, and the cover image. /character-search returns a list of characters based on the query, ordered by relevance, with the ability to open detailed views through interactive buttons. /random-anime generates a random anime recommendation, currently filtered to prefer higher-rated entries and formatted with key information. Right now the project is in a stable state where all core functionality is working as intended. The interaction flow with Slack blocks and buttons is also in place. Next step will likely be improving the architecture. After that I plan to run it on a Raspberry Pi for always-on hosting.
Ships:
Venix is a Slack bot built with Node.js and Slack Bolt that lets users search for anime and characters using the Jikan API. It provides interactive Slack commands like anime search, character lookup, and random anime generation with structured results, images, and buttons for deeper details....
|
1793123571.422938
|
1793209971.422938
|
|
9808
|
aero-deuce by @zemu | Stardance
|
zemu
|
1
|
10.0
|
174
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-08T02:18:32Z", "hours": 10.0, "multiplier": 17.74, "payout": 174, "blessing": "neutral", "text": "I made Aero-Deuce, a 12-billion parameter AI language model that runs locally on consumer hardware. It’s an instruction-following chatbot fine-tuned and post-trained from Google’s Gemma 4 12B using a technique called QLoRA with the Muon optimizer. It’s a relatively new approach that applies matrix orthogonalization to keep the training efficient. The whole model was trained on 30,000 instruction-following examples across 2,000 steps, going from a loss of 3.82 down to 0.57. The final model is exported in three formats: a GGUF file (~7GB) that works with anything supporting llama.cpp (LM Studio, Ollama, GPT4All), an MLX version optimized for Apple Silicon, and the raw LoRA adapter for anyone who wants to merge it or fine-tune further. I also built a live API endpoint on Modal with streaming support, so anyone can chat with it through a web interface. It's named \"Aero-Deuce\" because deuce means two, and this is my second attempt at LLMs, my first being a 300m custom model with some weird architecture, and I didn't have the funds to get that one off the ground. The most challenging part was the training pipeline itself. I started on Modal with spot GPUs, which meant my training kept getting preempted. I had to build robust checkpoint resumption just to survive it. Then I switched to Lightning AI for the second half. The base model uses a \"unified\" architecture (gemma4_unified) that most tooling didn't support — PEFT didn't recognize it, MLX couldn't run it, so I had to manually strip multimodal weights, rename parameter keys, and patch configs to make it work everywhere. Exporting to GGUF required building llama.cpp from source. The HuggingFace uploads stalled repeatedly. There were a lot of nights where nothing worked and I had to dig through error logs at 2am. I'm proud that it actually works end to end. A 12B model that you can download as a single 7GB file and run on a MacBook Air — that's real. The training converged well, the model follows instructions properly, it identifies itself as Aero-Deuce instead of claiming to be Gemma. I built the entire pipeline from scratch: data loading with loss masking, the Muon optimizer implementation, dual-optimizer parameter partitioning, checkpoint resumption, the export pipeline, and the inference API. It's not a notebook tutorial — it's a real system. To test it: go to the live demo at https://aero-deuce-lander.vercel.app, or download the GGUF from huggingface.co/ZeZZm/aero-deuce-GGUF and open it in LM Studio or GPT4All. If you're on a Mac, you can run pip install mlx-lm and use python -m mlx_lm.generate --model ZeZZm/aero-deuce-MLX --prompt \"anything\". The code is at github.com/Ryz3nPlayZ/aero-deuce. Everything is Apache 2.0. Thanks!", "repo": "https://github.com/Ryz3nPlayZ/aero-deuce", "demo": "https://aero-deuce-lander.vercel.app/"}]...
|
[{"post_id": 4671, "ts": "2026 [{"post_id": 4671, "ts": "2026-06-08T02:15:16Z", "hours": 0.3186, "text": "finished landing page"}, {"post_id": 4650, "ts": "2026-06-08T01:48:45Z", "hours": 2.0606, "text": "adapter, gguf, and mlx (q4) all on huggingface I made a simple landing page hosted custom inference endpoint (might not work very well because im broke) should be able to run through services like Ollama and llama.cpp locally"}, {"post_id": 4501, "ts": "2026-06-07T20:43:42Z", "hours": 3.5564, "text": "I made a custom AI model called Aero-Deuce. it’s based on Google’s Gemma 4 12B, but we fine-tuned/post-trained it using a technique called QLoRA with a custom optimizer called Muon. the idea was to make a small, efficient instruction-following model that runs locally on consumer hardware. we trained it on 30,000 instruction-following examples for 2,000 steps. the training loss dropped from 3.82 to 0.57. it runs at about 14-16 tokens per second on a MacBook Air M5. the model is exported in three formats: a raw LoRA adapter (for merging with the base model), a GGUF file (runs in llama.cpp, LM Studio, Ollama, etc.), and an MLX version (optimized for Apple Silicon). all three will be on HuggingFace soon. the code is on GitHub. still need to benchmark it against the base model and submit it to the HuggingFace leaderboard. code: github.com/Ryz3nPlayZ/aero-deuce adapter: huggingface.co/ZeZZm/aero-deuce gguf: huggingface.co/ZeZZm/aero-deuce-GGUF mlx: huggingface.co/ZeZZm/aero-deuce-MLX"}, {"post_id": 3750, "ts": "2026-06-06T19:59:48Z", "hours": 3.9292, "text": "45% of the way done with test post training run but im already broke"}]...
|
Title: aero-deuce by @zemu | Stardance
Devlogs:
4 Title: aero-deuce by @zemu | Stardance
Devlogs:
45% of the way done with test post training run but im already broke
I made a custom AI model called Aero-Deuce. it’s based on Google’s Gemma 4 12B, but we fine-tuned/post-trained it using a technique called QLoRA with a custom optimizer called Muon. the idea was to make a small, efficient instruction-following model that runs locally on consumer hardware. we trained it on 30,000 instruction-following examples for 2,000 steps. the training loss dropped from 3.82 to 0.57. it runs at about 14-16 tokens per second on a MacBook Air M5. the model is exported in three formats: a raw LoRA adapter (for merging with the base model), a GGUF file (runs in llama.cpp, LM Studio, Ollama, etc.), and an MLX version (optimized for Apple Silicon). all three will be on HuggingFace soon. the code is on GitHub. still need to benchmark it against the base model and submit it to the HuggingFace leaderboard. code: github.com/Ryz3nPlayZ/aero-deuce adapter: huggingface.co/ZeZZm/aero-deuce gguf: huggingface.co/ZeZZm/aero-deuce-GGUF mlx: huggingface.co/ZeZZm/aero-deuce-MLX
adapter, gguf, and mlx (q4) all on huggingface I made a simple landing page hosted custom inference endpoint (might not work very well because im broke) should be able to run through services like Ollama and llama.cpp locally
finished landing page
Ships:
I made Aero-Deuce, a 12-billion parameter AI language model that runs locally on consumer hardware. It’s an instruction-following chatbot fine-tuned and post-trained from Google’s Gemma 4 12B using a technique called QLoRA with the Muon optimizer. It’s a relatively new approach that applies matrix orthogonalization to keep the training efficient. The whole model was trained on 30,000 instruction-following examples across 2,000 steps, going from a loss of 3.82 down to 0.57. The final model is exported in three formats: a GGUF file (~7GB) that works with anything supporting llama.cpp (LM Studio, Ollama, GPT4All), an MLX version optimized for Apple Silicon, and the raw LoRA adapter for anyone who wants to merge it or fine-tune further. I also built a live API endpoint on Modal with streaming support, so anyone can chat with it through a web interface. It's named "Aero-Deuce" because deuce means two, and this is my second attempt at LLMs, my first being a 300m custom model with some weird architecture, and I didn't have the funds to get that one off the ground. The most challenging part was the training pipeline itself. I started on Modal with spot GPUs, which meant my training kept getting preempted. I had to build robust checkpoint resumption just to survive it. Then I switched to Lightning AI for the second half. The base model uses a "unified" architecture (gemma4_unified) that most tooling didn't support — PEFT didn't recognize it, MLX couldn't run it, so I had to manually strip multimodal weights, rename parameter keys, and patch configs to make it work everywhere. Exporting to GGUF required building llama.cpp from source. The HuggingFace uploads stalled repeatedly. There were a lot of nights where nothing worked and I had to dig through error logs at 2am. I'm proud that it actually works end to end. A 12B model that you can download as a single 7GB file and run on a MacBook Air — that's real. The training converged well, the model follows instructions properly, it identifies itself as Aero-Deuce instead of claiming to be Gemma. I built the entire pipeline from scratch: data loading with loss masking, the Muon optimizer implementation, dual-optimizer parameter partitioning, checkpoint resumption, the export pipeline, and the inference API. It's not a notebook tutorial — it's a real system. To test it: go to the live demo at https://aero-deuce-lander.vercel.app, or download the GGUF from huggingface.co/ZeZZm/aero-deuce-GGUF and open it in LM Studio or GPT4All. If you're on a Mac, you can run pip install mlx-lm and use python -m mlx_lm.generate --model ZeZZm/aero-deuce-MLX --prompt "anything". The code is at github.com/Ryz3nPlayZ/aero-deuce. Everything is Apache 2.0. Thanks!...
|
1793119738.0474172
|
1793206138.0474172
|
|
9821
|
savora by @tanushree | Stardance
|
tanushree
|
1
|
2.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-01T16:02:49Z", "hours": 2.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I built Savora, an AI-powered pantry management web app that helps users organize ingredients, reduce food waste, and discover recipes based on what they already have. The app includes pantry tracking, recipe generation pages, ingredient management, and recipe saving features with a clean, responsive interface. The most challenging part was connecting all the pages together, managing the data flow, and preparing the project for deployment on GitHub Pages. I also learned about project structure, GitHub, hosting, and why API keys should never be exposed in frontend code. I’m proud that this is one of my largest web projects so far. I designed and built the interface myself and learned a lot while debugging and improving the user experience. To test the project: open the homepage, navigate between the Pantry, Ingredients, and Recipes pages, add ingredients, and explore the interface. The AI recipe generation is currently a placeholder because the API key has been removed before publishing for security reasons.", "repo": "https://github.com/tanushree-99/savora", "demo": "https://tanushree-99.github.io/savora/savora/"}]...
|
[{"post_id": 38031, "ts": "202 [{"post_id": 38031, "ts": "2026-07-31T05:50:58Z", "hours": 2.2194, "text": "Today I worked on improving the Savora AI Pantry app. I redesigned the UI, added recipe saving functionality, improved the pantry and recipe pages, fixed several layout issues, and connected the different pages together. I also worked on integrating AI recipe generation and spent time debugging API issues and refining the overall user experience. The app is becoming more polished and easier to use."}]...
|
Title: savora by @tanushree | Stardance
Devlogs:
Title: savora by @tanushree | Stardance
Devlogs:
Today I worked on improving the Savora AI Pantry app. I redesigned the UI, added recipe saving functionality, improved the pantry and recipe pages, fixed several layout issues, and connected the different pages together. I also worked on integrating AI recipe generation and spent time debugging API issues and refining the overall user experience. The app is becoming more polished and easier to use.
Ships:
I built Savora, an AI-powered pantry management web app that helps users organize ingredients, reduce food waste, and discover recipes based on what they already have. The app includes pantry tracking, recipe generation pages, ingredient management, and recipe saving features with a clean, responsive interface. The most challenging part was connecting all the pages together, managing the data flow, and preparing the project for deployment on GitHub Pages. I also learned about project structure, GitHub, hosting, and why API keys should never be exposed in frontend code. I’m proud that this is one of my largest web projects so far. I designed and built the interface myself and learned a lot while debugging and improving the user experience. To test the project: open the homepage, navigate between the Pantry, Ingredients, and Recipes pages, add ingredients, and explore the interface. The AI recipe generation is currently a placeholder because the API key has been removed before publishing for security reasons....
|
1793141708.2921965
|
1793228108.2921965
|
|
9822
|
Among Us Bot by @nish24 | Stardance
|
nish24
|
1
|
4.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-07T06:28:15Z", "hours": 4.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made an Among Use Style Multiplayer Slack Bot game. Where the host can start game with /fn-imposter than players who wanna play clicks join game button to join the game. Only host can start the game if there are less than 4 player the remaining space will be filled by bots. As host starts the game you get your role and tasks in DM than you have to submit the report. Than discussion based on all players submissions that who can be imposter than voting. If you are imposter you have to try to convince other player you are crewmate and accuse other crewmate and vote him out. If you are crewmate you have to find the imposter. The major difficulty I got is in reducing the spamminess and learning the slack api. It’s a facinating journey.", "repo": "https://github.com/KingNish24/gameBot", "demo": "https://hackclub.enterprise.slack.com/archives/C0B9KNUSD7S"}]...
|
[{"post_id": 3614, "ts": "2026 [{"post_id": 3614, "ts": "2026-06-06T16:46:42Z", "hours": 0.8008, "text": "Devlog 2 of my Among US game Thanks to Nayte and keerthi for Feedback. Yeah, So, people have complained that its too much spammy. So, i added threads and editing previous messages to make it less spammy and do not fill any channel with just bot spam. Feedback and suggestions welcome. Changelog reduced spam ( 0775387 ) Added rule and less spammy ( cf5735e ) added threading ( 560a532 ) added joined people mention ( 6a21fd4 )"}, {"post_id": 3526, "ts": "2026-06-06T14:39:13Z", "hours": 3.2653, "text": "Hey, Everyone So, I am working on an Among Us style game played entirely inside Slack. Players join a lobby in a channel, get assigned roles (crewmate/impostor), receive mission scenarios via DM, submit observations, discuss and vote to eject the impostor. Bot players (AI) fill empty slots when fewer than 4 humans join. You can try it in slack using command /fn-imposter Please try and Give review. So, currently I have created a basic bot. In next version I want to make game more interesting by adding more roles, more better tasks, way to identify the imposter and more variant of games."}]...
|
Title: Among Us Bot by @nish24 | Stardance
Devlog Title: Among Us Bot by @nish24 | Stardance
Devlogs:
Hey, Everyone So, I am working on an Among Us style game played entirely inside Slack. Players join a lobby in a channel, get assigned roles (crewmate/impostor), receive mission scenarios via DM, submit observations, discuss and vote to eject the impostor. Bot players (AI) fill empty slots when fewer than 4 humans join. You can try it in slack using command /fn-imposter Please try and Give review. So, currently I have created a basic bot. In next version I want to make game more interesting by adding more roles, more better tasks, way to identify the imposter and more variant of games.
Devlog 2 of my Among US game Thanks to Nayte and keerthi for Feedback. Yeah, So, people have complained that its too much spammy. So, i added threads and editing previous messages to make it less spammy and do not fill any channel with just bot spam. Feedback and suggestions welcome. Changelog reduced spam ( 0775387 ) Added rule and less spammy ( cf5735e ) added threading ( 560a532 ) added joined people mention ( 6a21fd4 )
Ships:
I made an Among Use Style Multiplayer Slack Bot game. Where the host can start game with /fn-imposter than players who wanna play clicks join game button to join the game. Only host can start the game if there are less than 4 player the remaining space will be filled by bots. As host starts the game you get your role and tasks in DM than you have to submit the report. Than discussion based on all players submissions that who can be imposter than voting. If you are imposter you have to try to convince other player you are crewmate and accuse other crewmate and vote him out. If you are crewmate you have to find the imposter. The major difficulty I got is in reducing the spamminess and learning the slack api. It’s a facinating journey....
|
1793138151.8608077
|
1793224551.8608077
|
|
9826
|
Anything AI by @THEbluefirestudios | Stardance
|
THEbluefirestudios
|
1
|
5.0
|
46
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-11T13:39:14Z", "hours": 5.0, "multiplier": 9.67, "payout": 46, "blessing": "neutral", "text": "An LLM wrapper that uses multiple open source AIs to make something that is as good as big AI like Claude, and ChatGPT", "repo": "https://github.com/THEbluefirestudios/anything-ai", "demo": "https://github.com/THEbluefirestudios/anything-ai/releases"}]...
|
[{"post_id": 6166, "ts": "2026 [{"post_id": 6166, "ts": "2026-06-10T11:30:10Z", "hours": 1.5317, "text": "Damn man…. so much for adding chat history and long term memory…. Today I spent 1 and a half hours adding them, the memory is stored in Anything AI\\memory and chats are stored in Anything AI\\chats . I also switched the sorter AI to deepseek-ai/DeepSeek-R1-Distill-Llama-70B coz llama was hallucinating a LOT, ill be releasing another beta soon….."}, {"post_id": 5522, "ts": "2026-06-09T10:24:06Z", "hours": 1.0064, "text": "I’m regretting making a TUI instead of a GUI. I made it so because i wanted to save time and focus on the important stuff, and cause i was lazy, but it turned out to be a mistake. Today I spent nearly an hour trying to fix terminal formatting issues like shown in the attached screenshot (sorry for low resolution) , it got so bad that I just ended making my own input() function instead. Truly an experience, anyways, Anything has entered beta! The full proper official ship will come soon!"}, {"post_id": 4827, "ts": "2026-06-08T10:42:23Z", "hours": 0.6256, "text": "Now I have created the logo for Anything AI, so it will be definitely out soon! I hope this project gets high ratings! Lapse: https://lapse.hackclub.com/timelapse/kOucepr-Hpub"}, {"post_id": 4808, "ts": "2026-06-08T09:52:08Z", "hours": 0.4364, "text": "YESS, attach file works! It currently supports .txt, .csv, .docx, .pptx, .xlsx and code files like .py, .kt, .java, .cpp and, obviously image files, the ones supported by PIL :). Anything AI will be finished soon!"}, {"post_id": 4792, "ts": "2026-06-08T09:00:53Z", "hours": 0.6258, "text": "Today I’m working on adding more modalities to my AI, more specifically, giving it the ability to read text, documents and code files alongside the already implemented image file. To do this I’m migrating from pick_image_file() to just pick_file() As of now, the pick_file() function is done and i need to add functions for parsing the returned filepath to data the AI can read. I also ran out of free credits on Hugging Face so i created an extra account. :("}, {"post_id": 4139, "ts": "2026-06-07T10:35:45Z", "hours": 0.3117, "text": "OK, so terminal commands work! I also fixed the jank bug that caused issues with displaying text after addingf an image to a prompt. Things seem to be going well! I’m gonna make myself a bowl of maggi now >. <"}, {"post_id": 4122, "ts": "2026-06-07T09:55:20Z", "hours": 0.3342, "text": "Ok so, I know this is a project I started before Stardance on May 25 2026 and have worked for hours on this, and its almost ship ready, I’ve added everything I want like multimodal input, file generation, etc. As of now, I’m giving it the ability to run terminal commands and do some bugfixing before shipping it as an .exe"}]...
|
Title: Anything AI by @THEbluefirestudios | Starda Title: Anything AI by @THEbluefirestudios | Stardance
Devlogs:
Ok so, I know this is a project I started before Stardance on May 25 2026 and have worked for hours on this, and its almost ship ready, I’ve added everything I want like multimodal input, file generation, etc. As of now, I’m giving it the ability to run terminal commands and do some bugfixing before shipping it as an .exe
OK, so terminal commands work! I also fixed the jank bug that caused issues with displaying text after addingf an image to a prompt. Things seem to be going well! I’m gonna make myself a bowl of maggi now >. <
Today I’m working on adding more modalities to my AI, more specifically, giving it the ability to read text, documents and code files alongside the already implemented image file. To do this I’m migrating from pick_image_file() to just pick_file() As of now, the pick_file() function is done and i need to add functions for parsing the returned filepath to data the AI can read. I also ran out of free credits on Hugging Face so i created an extra account. :(
YESS, attach file works! It currently supports .txt, .csv, .docx, .pptx, .xlsx and code files like .py, .kt, .java, .cpp and, obviously image files, the ones supported by PIL :). Anything AI will be finished soon!
Now I have created the logo for Anything AI, so it will be definitely out soon! I hope this project gets high ratings! Lapse: https://lapse.hackclub.com/timelapse/kOucepr-Hpub
I’m regretting making a TUI instead of a GUI. I made it so because i wanted to save time and focus on the important stuff, and cause i was lazy, but it turned out to be a mistake. Today I spent nearly an hour trying to fix terminal formatting issues like shown in the attached screenshot (sorry for low resolution) , it got so bad that I just ended making my own input() function instead. Truly an experience, anyways, Anything has entered beta! The full proper official ship will come soon!
Damn man…. so much for adding chat history and long term memory…. Today I spent 1 and a half hours adding them, the memory is stored in Anything AI\memory and chats are stored in Anything AI\chats . I also switched the sorter AI to deepseek-ai/DeepSeek-R1-Distill-Llama-70B coz llama was hallucinating a LOT, ill be releasing another beta soon…..
Ships:
An LLM wrapper that uses multiple open source AIs to make something that is as good as big AI like Claude, and ChatGPT...
|
1793105699.6747031
|
1793192099.6747031
|
|
9831
|
Tuff Top by @Spaagz | Stardance
|
Spaagz
|
1
|
26.21
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-16T18:54:56Z", "hours": 16.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Watch this video to get a better idea of what it does, my description doesnt do it justice: https://www.youtube.com/watch?v=HbPldsK_V3k I made TuffTop which is a python program for linux that turns anything TUFF by mimicking those phonk edits that were popular ~8 months ago, and have since then long died in the mud. I made sure it is very customisable, you can change fonts, music, icons and the various phrases on screen. You can also turn things off in the handy config. Built with PyQt6 for drawing the overlay windows, PIL for image grayscaling effects and screenshot support on Wayland. I also use mpg123 for music and Evdev for input capturing This is my first real python project, please share any constructive criticism you may have as I want to improve!", "repo": "https://github.com/Spaagz/tuff-top", "demo": "https://github.com/Spaagz/tuff-top/releases/latest"}]...
|
[{"post_id": 17774, "ts": "202 [{"post_id": 17774, "ts": "2026-06-28T18:25:02Z", "hours": 3.2769, "text": "4 BLUE SQUARES UPDATE COMPLETE! This means that windows support is a thing now! Defender didn’t flag the exe yet , I can only hope and pray that it stays this way since pyinstaller builds are notorious for being flagged by defender Currently this just uses the same py file as on linux as the script itself is cross compatible, only the binaries have to be made per system which saves me time at the expense of the program being ever so slightly larger. Overlays and background bounces are also included in the new builds Full changelog and downloads here wait… I’m going to have to make another showcase video ament I?"}, {"post_id": 12783, "ts": "2026-06-20T22:04:59Z", "hours": 2.2578, "text": "I may have gone overboard on the svg overlay idea… Absolutely everything is randomized: The channel icon, the background gradient FOR the icon, like and dislike amount, channel name - heck I even made the progress bar random. (Im not going to animate it though). It will be in the next build once I have polished it up a bit more. Also, I have one question to you people: should I make a random video title appear as well? This will require another txt config file which might overwhelm new users so I dont know if its worth it. Aaaaand if you dont care for it you can also turn it off. also now I know how to use markdown formatting in my devlogs… Could you tell?"}, {"post_id": 12660, "ts": "2026-06-20T18:03:56Z", "hours": 0.6064, "text": "Added an experimental youtube shorts style overlay Its off by default because I want to figure out how to randomize like numbers, channel username and profile picture, however currently it just uses a hardcoded png"}, {"post_id": 12523, "ts": "2026-06-20T13:25:10Z", "hours": 4.0731, "text": "I have created a new release of the program that doesnt depend on mpg123 and doesnt create and destroy a qt app every single trigger. I have also added a couple new config options and QoL improvements: This means that compatibility should be greatly improved and performance should be better. I have managed to run the script in a vm and it seems to work out of the box on the latest version of KDE plasma."}, {"post_id": 10122, "ts": "2026-06-16T18:42:27Z", "hours": 0.7589, "text": "Most people dont use linux, so I made a showcase so people can preview the project easier! https://youtu.be/HbPldsK_V3k I know, the video is quite shoddy, I was kinda doing my homework at the same time ¯ _ (ツ)_/¯ In the 45 min tracked I setup paths relative to the script so now it works as a compiled pyinstaller binary. If you want to, you can click and run now instead of messing with python stuff. https://github.com/Spaagz/tuff-top"}, {"post_id": 8972, "ts": "2026-06-14T22:44:36Z", "hours": 1.8533, "text": "Added random phrases to the top of the screen using a randomised selection of fonts from a folder"}, {"post_id": 8403, "ts": "2026-06-13T23:34:00Z", "hours": 0.6964, "text": "Icons now scale according to aspect ratio instead of being squished into a uniform box. Heres a preview of the whole abomination in action:"}, {"post_id": 8351, "ts": "2026-06-13T21:34:29Z", "hours": 5.0408, "text": "The Youtube Shorts™ experience 🔥 Black bars can now be added to the sides to mimic a phone aspect ratio, this is configurable. More music and icons have been added as well. Ive also setup a github for this at: github.com/Spaagz/tuff-top Plans: a fake likes and comments overlay random text to accompany the icon Figure out a way to release this as a linux executable"}, {"post_id": 5047, "ts": "2026-06-08T18:24:34Z", "hours": 4.9244, "text": "Progress update! The project is Linux only now. Pynput doesnt work on wayland and while I could have it detect your platform and use a different input capturing method based on that, It’s not one of my priorities Anyways, I have finished some things up: Input detection works using evdev, I listen for mouse clicks and decide if it is “tuff” based on a % value set in the config, you can also configure how many seconds the icon stays on screen for. Icons are automatically selected from an icons directory and shuffled randomly - They do repeat sometimes but I feel that makes it funnier. This works for the phonk music too. I don’t know if this is optimal (please do say so if there are any better ways), Currently it spawns a mpg123 subprocess and then terminates it after the interval so you don’t have to cut your clips to length. The icon also now bounces randomly as if it were audio reactive but it actually isn’t Next: Make the screen grayscale. It makes it MUCH more funny but I don’t know how to do this in pyqt6, and also if it will work on wayland (Please tell me someone) Add black bars to mimic the aspect ratio of a vertical phone screen I want to setup a github for this but since I’m stupid I have actually never used it."}, {"post_id": 4170, "ts": "2026-06-07T12:03:06Z", "hours": 0.4686, "text": "Got the bounce animation working. So far I am just using the nerd emoji for my icon Trigger logic is the next thing to be done, but I’m unsure of how to go about it as I’m on Wayland which I heard doesn’t like capturing input if an app isn’t in focus. I didn’t put this in my first devlog, the goal is to interrupt gameplay at notable moments to cause an annoying fullscreen animation that works in any game or application. This is inspired by the Minecraft mod “Tuffcraft” and the one in gd that does the same thing yes I know this meme genre is long dead but idrc"}, {"post_id": 4146, "ts": "2026-06-07T11:01:09Z", "hours": 2.2386, "text": "Got transparent overlays working!"}]...
|
Title: Tuff Top by @Spaagz | Stardance
Devlogs:
G Title: Tuff Top by @Spaagz | Stardance
Devlogs:
Got transparent overlays working!
Got the bounce animation working. So far I am just using the nerd emoji for my icon Trigger logic is the next thing to be done, but I’m unsure of how to go about it as I’m on Wayland which I heard doesn’t like capturing input if an app isn’t in focus. I didn’t put this in my first devlog, the goal is to interrupt gameplay at notable moments to cause an annoying fullscreen animation that works in any game or application. This is inspired by the Minecraft mod “Tuffcraft” and the one in gd that does the same thing yes I know this meme genre is long dead but idrc
Progress update! The project is Linux only now. Pynput doesnt work on wayland and while I could have it detect your platform and use a different input capturing method based on that, It’s not one of my priorities Anyways, I have finished some things up: Input detection works using evdev, I listen for mouse clicks and decide if it is “tuff” based on a % value set in the config, you can also configure how many seconds the icon stays on screen for. Icons are automatically selected from an icons directory and shuffled randomly - They do repeat sometimes but I feel that makes it funnier. This works for the phonk music too. I don’t know if this is optimal (please do say so if there are any better ways), Currently it spawns a mpg123 subprocess and then terminates it after the interval so you don’t have to cut your clips to length. The icon also now bounces randomly as if it were audio reactive but it actually isn’t Next: Make the screen grayscale. It makes it MUCH more funny but I don’t know how to do this in pyqt6, and also if it will work on wayland (Please tell me someone) Add black bars to mimic the aspect ratio of a vertical phone screen I want to setup a github for this but since I’m stupid I have actually never used it.
The Youtube Shorts™ experience 🔥 Black bars can now be added to the sides to mimic a phone aspect ratio, this is configurable. More music and icons have been added as well. Ive also setup a github for this at: github.com/Spaagz/tuff-top Plans: a fake likes and comments overlay random text to accompany the icon Figure out a way to release this as a linux executable
Icons now scale according to aspect ratio instead of being squished into a uniform box. Heres a preview of the whole abomination in action:
Added random phrases to the top of the screen using a randomised selection of fonts from a folder
Most people dont use linux, so I made a showcase so people can preview the project easier! https://youtu.be/HbPldsK_V3k I know, the video is quite shoddy, I was kinda doing my homework at the same time ¯ _ (ツ)_/¯ In the 45 min tracked I setup paths relative to the script so now it works as a compiled pyinstaller binary. If you want to, you can click and run now instead of messing with python stuff. https://github.com/Spaagz/tuff-top
I have created a new release of the program that doesnt depend on mpg123 and doesnt create and destroy a qt app every single trigger. I have also added a couple new config options and QoL improvements: This means that compatibility should be greatly improved and performance should be better. I have managed to run the script in a vm and it seems to work out of the box on the latest version of KDE plasma.
Added an experimental youtube shorts style overlay Its off by default because I want to figure out how to randomize like numbers, channel username and profile picture, however currently it just uses a hardcoded png
I may have gone overboard on the svg overlay idea… Absolutely everything is randomized: The channel icon, the background gradient FOR the icon, like and dislike amount, channel name - heck I even made the progress bar random. (Im not going to animate it though). It will be in the next build once I have polished it up a bit more. Also, I have one question to you people: should I make a random video title appear as well? This will require another txt config file which might overwhelm new users so I dont know if its worth it. Aaaaand if you dont care for it you can also turn it off. also now I know how to use markdown formatting in my devlogs… Could you tell?
4 BLUE SQUARES UPDATE COMPLETE! This means that windows support is a thing now! Defender didn’t flag the exe yet , I can only hope and pray that it stays this way since pyinstaller builds are notorious for being flagged by defender Currently this just uses the same py file as on linux as the script itself is cross compatible, only the binaries have to be made per system which saves me time at the expense of the program being ever so slightly larger. Overlays and background bounces are also included in the new builds Full changelog and downloads here wait… I’m going to have to make another showcase video ament I?
Ships:
Watch this video to get a better idea of what it does, my description doesnt do it justice: https://www.youtube.com/watch?v=HbPldsK_V3k I made TuffTop which is a python program for linux that turns anything TUFF by mimicking those phonk edits that were popular ~8 months ago, and have since then long died in the mud. I made sure it is very customisable, you can change fonts, music, icons and the various phrases on screen. You can also turn things off in the handy config. Built with PyQt6 for drawing the overlay windows, PIL for image grayscaling effects and screenshot support on Wayland. I also use mpg123 for music and Evdev for input capturing This is my first real python project, please share any constructive criticism you may have as I want to improve!...
|
1793112749.361294
|
1793199149.361294
|
|
9835
|
micro_os by @wilrakov | Stardance
|
wilrakov
|
1
|
15.76
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-17T18:33:06Z", "hours": 10.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "🚀 Shipped PicoOS! A minimalist, retro-styled OS for the Raspberry Pi Pico 2 (RP2350) written in MicroPython. Key elements: Combines MS-DOS simplicity with Unix-like control (CLI). True KISS/Suckless architecture: New commands are just modular scripts added to /bin . Implements custom piping ( | ) and redirections ( > , >> ) by elegantly overriding native print() and input() in RAM. 👉 Test it online with the Wokwi simulator! (Note: The simulator is a bit slow due to the RP2350 emulation, but it runs blazing fast on real hardware!)", "repo": "https://github.com/wilrak0v/PicoOS", "demo": "https://wokwi.com/projects/467100122244304897"}]...
|
[{"post_id": 17146, "ts": "202 [{"post_id": 17146, "ts": "2026-06-27T20:42:27Z", "hours": 2.1261, "text": "Abandoning LVGL After extensive testing aimed at achieving a smooth user experience, I unfortunately didn’t succeed. I believe the main issue stems from the fact that LVGL relies on significant abstraction layers designed to simplify and optimize UI creation. However, it isn’t optimized for a full-fledged graphical OS capable of handling video games. So, I decided to change my approach. WilUI After much thought, I decided to create my own graphics library: WilUI (yes, I’m a megalomaniac 😂). It uses double buffering in PSRAM (the ESP32’s external RAM, ranging from a few MBs to more, depending on the configuration). It then renders the screen using one or two internal RAM buffers; each of these buffers holds 48 lines of the display. Thanks to this, I managed to jump from under 10 fps to around 26 fps. I achieve this speed using full refreshes, so in theory, the actual performance should be smoother; I won’t be doing a full refresh every time, but rather partial refreshes on the areas that have changed. The library isn’t really fully underway yet—I’ve mostly handled the framebuffer management so far, while the UI components and other features still need to be built… But I wanted to say I’d created a UI library anyway 😅 The new TODO list dirty rects basic UI components text rendering basic window manager (SOWM) -> desktops + status bar + simple windows wilra0v, btw"}, {"post_id": 16201, "ts": "2026-06-26T10:15:22Z", "hours": 3.1658, "text": "A functional multitasking system!!! I coded the micro_os base, including FreeRTOS and LVGL to handle multitasking and provide a nice display. Everything went smoothly at first, adding LVGL and esp-idf to good tools for using a screen. The beginning of the problems Once the LVGL task was able to display text, I thought everything was ready to start the window manager and desktop for this OS. But… in the end, I had synchronization issues since the tasks run in parallel. Fortunately, I found the problem fairly quickly and was able to fix it. So, in the end, the base works without any problems. What’s already there For now, there’s almost nothing, just a status bar and 3 virtual workspaces with custom themes for the windows, etc. You can also switch between light and dark themes. What I’m going to do now I’m going to continue working on the basic display by dynamically showing and hiding the status bar. Next, I’d like to add a small dock like on macOS. Finally, I’d like to make the status bar dynamic so that it displays the name of the application in focus and also allows me to add and remove icons on the fly. Thanks for reading, wilrak0v, btw"}, {"post_id": 14494, "ts": "2026-06-23T17:06:54Z", "hours": 0.4694, "text": "🚀 Major Pivot: From PicoOS to micro_os I’m officially moving away from MicroPython for my OS development. While it was a great way to prototype, it’s time to get closer to the metal. Say hello to micro_os — a complete, lightweight, and graphical operating system built from scratch. To kick things off, I have just initialized the project entirely in C using the ESP-IDF framework. The goal is to build a fast, minimalist, and efficient system, focusing on the ESP32 first, with plans to port it to the Raspberry Pi Pico later on. Time to write some real firmware. Stay tuned for updates! 💻🛠️"}, {"post_id": 10799, "ts": "2026-06-17T18:29:35Z", "hours": 0.3575, "text": "Prepare to the first ship So I created the github repo, and I made a small test with wokwi simulator but it doesn´t work very well, I have to find a better way to run my OS on the Internet."}, {"post_id": 8041, "ts": "2026-06-13T12:33:20Z", "hours": 2.7528, "text": "Devlog PicoOS #3: Colors, SDK, and an Alternative C Kernel What is New Application Library (SDK) To stop rewriting core system code for every new feature, PicoOS now features a minimalist SDK. This application library standardizes how programs interface with the OS for rendering and input handling, making the codebase modular. ANSI Color Support PicoOS now supports standard ANSI color escape sequences. This brings color to the terminal interface without bloating the system, allowing for better visual hierarchy and cleaner error reporting. Technical Friction: Refactoring the ls Command Integrating older, hardcoded features into the new standardized SDK proved to be a real headache. The biggest friction happened while adapting the ls command to the new library. Originally, the file listing system was deeply intertwined with the main loop and bypassed any formal API. Forcing it to fit into the new application structure broke the output formatting and data piping. It took a lot of tedious refactoring to abstract the file system calls into the SDK so that ls could run as a standard, isolated application while maintaining its output format. Future Roadmap Text Editor: poe The next native tool will be poe (PicoOS Editor). This minimalist text editor will run directly on top of the SDK, allowing basic file editing on the go. Parallel Track: A C Version The MicroPython version is not going anywhere and will remain active. However, as a C developer who loves low-level programming, a parallel version of PicoOS written entirely in C will start soon. This alternative kernel will run closer to the metal, offering absolute memory control, optimal performance on the RP2350, and a pure bare-metal experience."}, {"post_id": 5699, "ts": "2026-06-09T16:16:34Z", "hours": 0.5569, "text": "Storage unlocked! Added SD card memory support for PicoOS today. The craziest part? It took me barely 20 minutes. The implementation was surprisingly straightforward, and the OS now effortlessly handles multiple SD cards simultaneously without any conflicts. Next on the roadmap: building a library to make custom command development easier, and adding a “Clippy”-style assistant right inside the terminal."}, {"post_id": 5004, "ts": "2026-06-08T17:31:43Z", "hours": 2.0094, "text": "PicoOS Devlog #2: Rounding Up Essential Commands Welcome to the second devlog! I’ve spent the last two days expanding the shell’s toolkit to make the environment much more usable. I am happy to announce that the core lineup of indispensable Unix utilities and I/O features is now complete! New Features & Commands Added echo : Prints text to the terminal—essential for verifying variables, scripting, and testing streams. clear : Clears the terminal screen (super satisfying when working over UART!). cat : Outputs the content of a file directly to the terminal. less : A lightweight pager to view content page by page. It dynamically handles input either directly from a specified file or piped on the fly from another command using the shell pipeline ( | ). help : Displays the description and usage of available commands. Stream Redirections are Live! I have successfully implemented basic I/O redirection operators into the shell parser: > : Redirects a command’s standard output to a file, overwriting its existing content. >> : Redirects standard output to a file, but appends the data to the end of the file instead of wiping it. How help works under the hood To keep things lightweight and modular, the help command doesn’t rely on a hardcoded dictionary. Instead, it dynamically parses an optional comment block placed right at the beginning of each command line inside /bin . Simple, effective, and completely decentralized. What’s next? With the fundamental CLI utilities and stream handling out of the way, I am shifting focus toward system architecture and usability: Memory & Storage Integration: Setting up proper management for SPI flash memories and mapping out the memory structure of the system. Developer Experience (DX): Building core Python modules to make writing custom apps for PicoOS as straightforward and clean as possible. Refactoring & Expansion: Polishing and simplifying the existing codebase while adding a few more handy utilities. Text Editing: Writing a lightweight, built-in text editor (a mini-clone of nano or vi) to modify files directly on the hardware. Community request! I feel like the most critical commands are now up and running, but a shell can always grow. What essential CLI utility or fun tool are you missing? If there is a specific command you’d love to see running natively on a Raspberry Pi Pico 2, drop it in the comments below! Until next time!"}, {"post_id": 4166, "ts": "2026-06-07T11:47:22Z", "hours": 3.5311, "text": "PicoOS Devlog #1 : Build the Shell Foundation Welcome to this very first devlog! After setting up the project description, it’s time to div into the actual code. Lately, I’ve been focusing on implementing the core shell environment. The goal is to build a familiar CLI experience by rewriting essential Unix/Linux commands from scratch, keeping them lightweight and stripped of bloat Anatomy of a Command In this OS, every command lives as a file or folder inside the /bin directory, with the exception of cd , which has to be built directly into the shell to modify the current working directory. Here is the standard structure for a basic command (e.g., hello ): def hello(args: list) -> int: print(\"Hello World\") return 0 Naming convention: The main function name must perfectly match the script’s filename. Arguments: Just like in standard C programs on Unix/Linux, args[0] always hold the name of the program itself, followed by the actual arguments. What’s Already Working I have successfully implemented a solid batch of core utilities: ls : Lists directory contents. Supported flags: -l (long format) and -a (show hidden files). cd : Changes the current working directory. mkdir : Creates one or multiple directories. touch : Creates one or multiple empty files. rm : Removes files or directories. Supported flag: -r (recursive). mv : Renames or moves files/directories. cp : Copies files/directories. Supported flag: -r (recursive). picofetch : A custom, lightweight system information tool (think neofetch / fastfetch) custom-tailored for PicoOS. What’s Next? The shell is alive, but there is still plenty of low-level work to do. My immediate milestones are: Expanding the toolbet: Implement the cat command along with a few other handy utilities. I/O Streams: Add basic shell redirection mechanisms, specifically output redirection ( > ) and piping ( | ). Hardware Storage: Write drivers to interface with and manage external SPI flash memories. The Endgame As a reminder, the final objective of this project is to build a functional mini-computer powered by a Raspberry Pi Pico 2. I’ll be handling networking, driving a graphical display purely over UART, and the ultimate test of fire: making DOOM run on it. Stay tuned for the next updates!"}, {"post_id": 3521, "ts": "2026-06-06T14:31:25Z", "hours": 0.93, "text": "🚀 Project: PicoOS (Retro CLI for RP2350) For this Stardance marathon, I’m building a minimalist, retro-styled operating system running entirely on the new Raspberry Pi Pico 2 (RP2350) using MicroPython! The goal is to blend the nostalgic command-line simplicity of MS-DOS with the modular design and philosophy of Unix/Linux. Everything is designed to be as close to the KISS (Keep It Simple, Stupid) and suckless principles as possible. What I’m shipping: A custom, fast interactive CLI shell over serial (USB/UART). A modular file system structure where commands are isolated scripts (like a real /bin directory). Direct low-level hardware poking (GPIO, PWM, I2C) right from the prompt. No bloated abstractions, just clean and simple code. Can’t wait to log hours on this and see how far I can push this little dual-core chip. Let’s build! 💻🔥"}]...
|
Title: micro_os by @wilrakov | Stardance
Devlogs: Title: micro_os by @wilrakov | Stardance
Devlogs:
🚀 Project: PicoOS (Retro CLI for RP2350) For this Stardance marathon, I’m building a minimalist, retro-styled operating system running entirely on the new Raspberry Pi Pico 2 (RP2350) using MicroPython! The goal is to blend the nostalgic command-line simplicity of MS-DOS with the modular design and philosophy of Unix/Linux. Everything is designed to be as close to the KISS (Keep It Simple, Stupid) and suckless principles as possible. What I’m shipping: A custom, fast interactive CLI shell over serial (USB/UART). A modular file system structure where commands are isolated scripts (like a real /bin directory). Direct low-level hardware poking (GPIO, PWM, I2C) right from the prompt. No bloated abstractions, just clean and simple code. Can’t wait to log hours on this and see how far I can push this little dual-core chip. Let’s build! 💻🔥
PicoOS Devlog #1 : Build the Shell Foundation Welcome to this very first devlog! After setting up the project description, it’s time to div into the actual code. Lately, I’ve been focusing on implementing the core shell environment. The goal is to build a familiar CLI experience by rewriting essential Unix/Linux commands from scratch, keeping them lightweight and stripped of bloat Anatomy of a Command In this OS, every command lives as a file or folder inside the /bin directory, with the exception of cd , which has to be built directly into the shell to modify the current working directory. Here is the standard structure for a basic command (e.g., hello ): def hello(args: list) -> int: print("Hello World") return 0 Naming convention: The main function name must perfectly match the script’s filename. Arguments: Just like in standard C programs on Unix/Linux, args[0] always hold the name of the program itself, followed by the actual arguments. What’s Already Working I have successfully implemented a solid batch of core utilities: ls : Lists directory contents. Supported flags: -l (long format) and -a (show hidden files). cd : Changes the current working directory. mkdir : Creates one or multiple directories. touch : Creates one or multiple empty files. rm : Removes files or directories. Supported flag: -r (recursive). mv : Renames or moves files/directories. cp : Copies files/directories. Supported flag: -r (recursive). picofetch : A custom, lightweight system information tool (think neofetch / fastfetch) custom-tailored for PicoOS. What’s Next? The shell is alive, but there is still plenty of low-level work to do. My immediate milestones are: Expanding the toolbet: Implement the cat command along with a few other handy utilities. I/O Streams: Add basic shell redirection mechanisms, specifically output redirection ( > ) and piping ( | ). Hardware Storage: Write drivers to interface with and manage external SPI flash memories. The Endgame As a reminder, the final objective of this project is to build a functional mini-computer powered by a Raspberry Pi Pico 2. I’ll be handling networking, driving a graphical display purely over UART, and the ultimate test of fire: making DOOM run on it. Stay tuned for the next updates!
PicoOS Devlog #2: Rounding Up Essential Commands Welcome to the second devlog! I’ve spent the last two days expanding the shell’s toolkit to make the environment much more usable. I am happy to announce that the core lineup of indispensable Unix utilities and I/O features is now complete! New Features & Commands Added echo : Prints text to the terminal—essential for verifying variables, scripting, and testing streams. clear : Clears the terminal screen (super satisfying when working over UART!). cat : Outputs the content of a file directly to the terminal. less : A lightweight pager to view content page by page. It dynamically handles input either directly from a specified file or piped on the fly from another command using the shell pipeline ( | ). help : Displays the description and usage of available commands. Stream Redirections are Live! I have successfully implemented basic I/O redirection operators into the shell parser: > : Redirects a command’s standard output to a file, overwriting its existing content. >> : Redirects standard output to a file, but appends the data to the end of the file instead of wiping it. How help works under the hood To keep things lightweight and modular, the help command doesn’t rely on a hardcoded dictionary. Instead, it dynamically parses an optional comment block placed right at the beginning of each command line inside /bin . Simple, effective, and completely decentralized. What’s next? With the fundamental CLI utilities and stream handling out of the way, I am shifting focus toward system architecture and usability: Memory & Storage Integration: Setting up proper management for SPI flash memories and mapping out the memory structure of the system. Developer Experience (DX): Building core Python modules to make writing custom apps for PicoOS as straightforward and clean as possible. Refactoring & Expansion: Polishing and simplifying the existing codebase while adding a few more handy utilities. Text Editing: Writing a lightweight, built-in text editor (a mini-clone of nano or vi) to modify files directly on the hardware. Community request! I feel like the most critical commands are now up and running, but a shell can always grow. What essential CLI utility or fun tool are you missing? If there is a specific command you’d love to see running natively on a Raspberry Pi Pico 2, drop it in the comments below! Until next time!
Storage unlocked! Added SD card memory support for PicoOS today. The craziest part? It took me barely 20 minutes. The implementation was surprisingly straightforward, and the OS now effortlessly handles multiple SD cards simultaneously without any conflicts. Next on the roadmap: building a library to make custom command development easier, and adding a “Clippy”-style assistant right inside the terminal.
Devlog PicoOS #3: Colors, SDK, and an Alternative C Kernel What is New Application Library (SDK) To stop rewriting core system code for every new feature, PicoOS now features a minimalist SDK. This application library standardizes how programs interface with the OS for rendering and input handling, making the codebase modular. ANSI Color Support PicoOS now supports standard ANSI color escape sequences. This brings color to the terminal interface without bloating the system, allowing for better visual hierarchy and cleaner error reporting. Technical Friction: Refactoring the ls Command Integrating older, hardcoded features into the new standardized SDK proved to be a real headache. The biggest friction happened while adapting the ls command to the new library. Originally, the file listing system was deeply intertwined with the main loop and bypassed any formal API. Forcing it to fit into the new application structure broke the output formatting and data piping. It took a lot of tedious refactoring to abstract the file system calls into the SDK so that ls could run as a standard, isolated application while maintaining its output format. Future Roadmap Text Editor: poe The next native tool will be poe (PicoOS Editor). This minimalist text editor will run directly on top of the SDK, allowing basic file editing on the go. Parallel Track: A C Version The MicroPython version is not going anywhere and will remain active. However, as a C developer who loves low-level programming, a parallel version of PicoOS written entirely in C will start soon. This alternative kernel will run closer to the metal, offering absolute memory control, optimal performance on the RP2350, and a pure bare-metal experience.
Prepare to the first ship So I created the github repo, and I made a small test with wokwi simulator but it doesn´t work very well, I have to find a better way to run my OS on the Internet.
🚀 Major Pivot: From PicoOS to micro_os I’m officially moving away from MicroPython for my OS development. While it was a great way to prototype, it’s time to get closer to the metal. Say hello to micro_os — a complete, lightweight, and graphical operating system built from scratch. To kick things off, I have just initialized the project entirely in C using the ESP-IDF framework. The goal is to build a fast, minimalist, and efficient system, focusing on the ESP32 first, with plans to port it to the Raspberry Pi Pico later on. Time to write some real firmware. Stay tuned for updates! 💻🛠️
A functional multitasking system!!! I coded the micro_os base, including FreeRTOS and LVGL to handle multitasking and provide a nice display. Everything went smoothly at first, adding LVGL and esp-idf to good tools for using a screen. The beginning of the problems Once the LVGL task was able to display text, I thought everything was ready to start the window manager and desktop for this OS. But… in the end, I had synchronization issues since the tasks run in parallel. Fortunately, I found the problem fairly quickly and was able to fix it. So, in the end, the base works without any problems. What’s already there For now, there’s almost nothing, just a status bar and 3 virtual workspaces with custom themes for the windows, etc. You can also switch between light and dark themes. What I’m going to do now I’m going to continue working on the basic display by dynamically showing and hiding the status bar. Next, I’d like to add a small dock like on macOS. Finally, I’d like to make the status bar dynamic so that it displays the name of the application in focus and also allows me to add and remove icons on the fly. Thanks for reading, wilrak0v, btw
Abandoning LVGL After extensive testing aimed at achieving a smooth user experience, I unfortunately didn’t succeed. I believe the main issue stems from the fact that LVGL relies on significant abstraction layers designed to simplify and optimize UI creation. However, it isn’t optimized for a full-fledged graphical OS capable of handling video games. So, I decided to change my approach. WilUI After much thought, I decided to create my own graphics library: WilUI (yes, I’m a megalomaniac 😂). It uses double buffering in PSRAM (the ESP32’s external RAM, ranging from a few MBs to more, depending on the configuration). It then renders the screen using one or two internal RAM buffers; each of these buffers holds 48 lines of the display. Thanks to this, I managed to jump from under 10 fps to around 26 fps. I achieve this speed using full refreshes, so in theory, the actual performance should be smoother; I won’t be doing a full refresh every time, but rather partial refreshes on the areas that have changed. The library isn’t really fully underway yet—I’ve mostly handled the framebuffer management so far, while the UI components and other features still need to be built… But I wanted to say I’d created a UI library anyway 😅 The new TODO list dirty rects basic UI components text rendering basic window manager (SOWM) -> desktops + status bar + simple windows wilra0v, btw
Ships:
🚀 Shipped PicoOS! A minimalist, retro-styled OS for the Raspberry Pi Pico 2 (RP2350) written in MicroPython. Key elements: Combines MS-DOS simplicity with Unix-like control (CLI). True KISS/Suckless architecture: New commands are just modular scripts added to /bin . Implements custom piping ( | ) and redirections ( > , >> ) by elegantly overriding native print() and input() in RAM. 👉 Test it online with the Wokwi simulator! (Note: The simulator is a bit slow due to the RP2350 emulation, but it runs blazing fast on real hardware!)...
|
1793130652.8306818
|
1793217052.8306818
|
|
9848
|
pingrs by @sivaprakashkrp | Stardance
|
sivaprakashkrp
|
1
|
5.0
|
21
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-15T08:21:20Z", "hours": 5.0, "multiplier": 4.16, "payout": 21, "blessing": "neutral", "text": "I made a ping utility written in Rust. It provides coloured output with statistics about the packets sent and received. I first tried to use ICMP packets but it seems Rust requires elevated privileges for it. So I turned to UDP packets. But UDP packets had problems from the server side. So I checked for other cross-platform implementations of ping in Rust and found ping-rs crate. So I used it to send and receive ping packets. Around it, I wrote the core logic of the application. Then I formatted the output and gave it colours. pingrs also provides configurability for TTL, timeout and number of packets to send.", "repo": "https://github.com/sivaprakashkrp/pingrs", "demo": "https://github.com/sivaprakashkrp/pingrs/releases/latest"}]...
|
[{"post_id": 9119, "ts": "2026 [{"post_id": 9119, "ts": "2026-06-15T08:12:30Z", "hours": 2.0706, "text": "After trying to create an ICMP socket, a UDP socket, I decided it was time to try other crates that offered cross platform ICMP sockets. One such crate was ping-rs . I included it in the project to send ping requests and receive the replies. Then I wrote the logic for calculating the no. of packets that were sent, received and lost. Calculated the maximum, minimum and average RTT for the entire ping command. Then formatted the output and added colour to it. Wrote the README.md file. Published the application to cargo . You can try it out by cargo install pingrs . Created a GitHub release and ready to ship!!"}, {"post_id": 9080, "ts": "2026-06-15T05:27:43Z", "hours": 1.2558, "text": "Tried to implement UDP Sockets for Pinging the server with a Echo Request. By tracking the time needed for the response, I can find RTT. But issues in using UDP sockets from the server side. Also a problem arises when IPv6 is used instead of IPv4. So, back to square 1. Searching for other possible options."}, {"post_id": 6886, "ts": "2026-06-11T15:25:57Z", "hours": 1.7669, "text": "Created a Basic working of the ping command in Rust. Started with writing my own ICMP socket with the socket2 crate, but the implementation was primarily for Linux and didn’t work on Windows. For a more cross-platform option, I chose to use crates that could provide the functionality. One such crate was pinger . Used it to create the basic implementation that is shown in the picture."}]...
|
Title: pingrs by @sivaprakashkrp | Stardance
Devl Title: pingrs by @sivaprakashkrp | Stardance
Devlogs:
Created a Basic working of the ping command in Rust. Started with writing my own ICMP socket with the socket2 crate, but the implementation was primarily for Linux and didn’t work on Windows. For a more cross-platform option, I chose to use crates that could provide the functionality. One such crate was pinger . Used it to create the basic implementation that is shown in the picture.
Tried to implement UDP Sockets for Pinging the server with a Echo Request. By tracking the time needed for the response, I can find RTT. But issues in using UDP sockets from the server side. Also a problem arises when IPv6 is used instead of IPv4. So, back to square 1. Searching for other possible options.
After trying to create an ICMP socket, a UDP socket, I decided it was time to try other crates that offered cross platform ICMP sockets. One such crate was ping-rs . I included it in the project to send ping requests and receive the replies. Then I wrote the logic for calculating the no. of packets that were sent, received and lost. Calculated the maximum, minimum and average RTT for the entire ping command. Then formatted the output and added colour to it. Wrote the README.md file. Published the application to cargo . You can try it out by cargo install pingrs . Created a GitHub release and ready to ship!!
Ships:
I made a ping utility written in Rust. It provides coloured output with statistics about the packets sent and received. I first tried to use ICMP packets but it seems Rust requires elevated privileges for it. So I turned to UDP packets. But UDP packets had problems from the server side. So I checked for other cross-platform implementations of ping in Rust and found ping-rs crate. So I used it to send and receive ping packets. Around it, I wrote the core logic of the application. Then I formatted the output and gave it colours. pingrs also provides configurability for TTL, timeout and number of packets to send....
|
1793076466.4584866
|
1793162866.4584866
|
|
9850
|
Cadpad by @Alexx | Stardance
|
Alexx
|
1
|
4.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-10T20:33:42Z", "hours": 4.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Finished the Cadpad! had to debug the code to get it working properly, and it works amazingly.", "repo": "https://github.com/xuealex2010-blip/hackpad-alex", "demo": ""}]...
|
[{"post_id": 78411, "ts": "202 [{"post_id": 78411, "ts": "2026-10-10T18:16:17Z", "hours": 3.7167, "text": "Built and created the Cadpad! After waiting for what felt like way too long for everything to arrive, I got everything and built the design. Soldering was a bit tricky, but I got it all done."}, {"post_id": 56798, "ts": "2026-08-28T18:30:00Z", "hours": 1.0333, "text": "QMK code finally compiled. Hopefully when I get to flashing it will work. I spent a lot of time sorting through the compiling errors that I was being given, many of which did not make sense, but seemed to resolve themselves when other issues were fixed. After a few hours, I was able to get the code set up for the encoders and special tap dance features compiled, and hopefully functional."}, {"post_id": 56227, "ts": "2026-08-27T22:00:10Z", "hours": 1.6878, "text": "QMK troubles: I began creating the code for the cadpad and hit my first issue when the output was a .hex file rather than the .uf2 needed, I figured out that this was due to the controller or bootloader not being supported by uf2. I tried to create a new one to set my own configuration. However, when I tried to compile it, I got a bunch of errors that I still haven’t solved (File errors such as missing keyboard name). I have also read much of the documentation to figure out how to implement tap dance, and encoders to make the most use out of the cadpad. While I am not done, progress is moving."}, {"post_id": 54800, "ts": "2026-08-25T22:38:14Z", "hours": 0.85, "text": "Starting QMK code, I have never used QMK before, and I was really confused when the guide to set it up was seemingly not working, turns out it just takes a long time. I’m still not sure exactly what I am doing, but I hope that trial and error and maybe a few tutorials will get me there in the end."}, {"post_id": 53897, "ts": "2026-08-24T16:27:39Z", "hours": 2.3206, "text": "Updating 3D models for the Cadpad, added a cool decal on the top, and fixed some errors that I had with the PCB, and collisions between the case. I had some trouble with KiCad exports causing some errors, but they ended up being non-critical. Also made sure that the PCB is very versatile, implementing a dual SMD and THT footprint so that if I want to learn how to solder some SMD components, I will have a great way to practice and get another cadpad! (Makes a great gift)"}, {"post_id": 53478, "ts": "2026-08-24T01:35:24Z", "hours": 3.35, "text": "Refining the 3D Models, I made a few revisions to the PCB earlier to ensure it fits the switches nicely, which required me to update the 3d models, I also took the time to refine them and get close to a final candidate. I also think that a great use for the rotary encoder for cad will be to implement it for arrow key navigation. Since its a dual layer numpad / macropad, using the knob for text navigation gives the Cadpad even more features!"}, {"post_id": 51968, "ts": "2026-08-21T23:17:23Z", "hours": 2.95, "text": "Learned a bit into KiCad footprint editing, my plan is to make a footprint that supports 2 major keyswitch types, Choc and MX style. The hope for this is to be able to not have the 5 PCBs in a typical MOQ to go to waste. So far it looks good, I had some trouble with the initial Choc footprint not lining up, as well as clearance under the SEEED XIAO, but a few tweaks were able to get me into CAD to see how the switches fit."}, {"post_id": 51362, "ts": "2026-08-20T23:51:51Z", "hours": 2.8833, "text": "Initial Planning: My first devblog, I am experimenting with ways to make the PCB more reliable, since I dont want the other 4 from the set of 5 to go to waste! I am not sure if this will eventually turn out into something usable, but willing to try."}]...
|
Title: Cadpad by @Alexx | Stardance
Devlogs:
Init Title: Cadpad by @Alexx | Stardance
Devlogs:
Initial Planning: My first devblog, I am experimenting with ways to make the PCB more reliable, since I dont want the other 4 from the set of 5 to go to waste! I am not sure if this will eventually turn out into something usable, but willing to try.
Learned a bit into KiCad footprint editing, my plan is to make a footprint that supports 2 major keyswitch types, Choc and MX style. The hope for this is to be able to not have the 5 PCBs in a typical MOQ to go to waste. So far it looks good, I had some trouble with the initial Choc footprint not lining up, as well as clearance under the SEEED XIAO, but a few tweaks were able to get me into CAD to see how the switches fit.
Refining the 3D Models, I made a few revisions to the PCB earlier to ensure it fits the switches nicely, which required me to update the 3d models, I also took the time to refine them and get close to a final candidate. I also think that a great use for the rotary encoder for cad will be to implement it for arrow key navigation. Since its a dual layer numpad / macropad, using the knob for text navigation gives the Cadpad even more features!
Updating 3D models for the Cadpad, added a cool decal on the top, and fixed some errors that I had with the PCB, and collisions between the case. I had some trouble with KiCad exports causing some errors, but they ended up being non-critical. Also made sure that the PCB is very versatile, implementing a dual SMD and THT footprint so that if I want to learn how to solder some SMD components, I will have a great way to practice and get another cadpad! (Makes a great gift)
Starting QMK code, I have never used QMK before, and I was really confused when the guide to set it up was seemingly not working, turns out it just takes a long time. I’m still not sure exactly what I am doing, but I hope that trial and error and maybe a few tutorials will get me there in the end.
QMK troubles: I began creating the code for the cadpad and hit my first issue when the output was a .hex file rather than the .uf2 needed, I figured out that this was due to the controller or bootloader not being supported by uf2. I tried to create a new one to set my own configuration. However, when I tried to compile it, I got a bunch of errors that I still haven’t solved (File errors such as missing keyboard name). I have also read much of the documentation to figure out how to implement tap dance, and encoders to make the most use out of the cadpad. While I am not done, progress is moving.
QMK code finally compiled. Hopefully when I get to flashing it will work. I spent a lot of time sorting through the compiling errors that I was being given, many of which did not make sense, but seemed to resolve themselves when other issues were fixed. After a few hours, I was able to get the code set up for the encoders and special tap dance features compiled, and hopefully functional.
Built and created the Cadpad! After waiting for what felt like way too long for everything to arrive, I got everything and built the design. Soldering was a bit tricky, but I got it all done.
Ships:
Finished the Cadpad! had to debug the code to get it working properly, and it works amazingly....
|
1793148473.799607
|
1793234873.799607
|
|
9851
|
Customizable Slack Bot by @declanwhchan | Stardanc Customizable Slack Bot by @declanwhchan | Stardance...
|
declanwhchan
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-06T21:32:45Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a customizable Slack bot and got it running 24/7 with systemd . The bot currently has several slash commands, including ping, cat facts, jokes, coin flips, dice rolls, random choices, quotes, Magic 8 Ball answers, and help. I also started adding a new /pp-pi command that lets users request digits of pi from 0 to 500. I ran into an issue where /pp-pi existed in Slack, but the app kept saying it did not respond. After debugging, I realized the server version of index.js did not actually have the new /pp-pi handler yet. The bot was still running the older code, so Slack was sending the command but Node had nothing to respond with. I learned that when a bot is running through systemd , editing code locally does not automatically update the hosted version. The server needs to pull the latest code from GitHub and restart the service. Next, I’m setting up a simple update workflow: edit locally commit and push to GitHub pull on the server restart the Slack bot service This should make it much easier to keep adding new commands without manually editing files on the server every time.", "repo": "https://github.com/declanwhchan/Slack-Bot", "demo": "https://app.slack.com/client/E09V59WQY1E/C0B9FRJF8EB"}]...
|
[{"post_id": 3812, "ts": "2026 [{"post_id": 3812, "ts": "2026-06-06T21:19:18Z", "hours": 0.8056, "text": "Today I worked on my Slack bot and got it running 24/7 with systemd . The bot currently has several slash commands, including ping, cat facts, jokes, coin flips, dice rolls, random choices, quotes, Magic 8 Ball answers, and help. I also started adding a new /pp-pi command that lets users request digits of pi from 0 to 500. I ran into an issue where /pp-pi existed in Slack, but the app kept saying it did not respond. After debugging, I realized the server version of index.js did not actually have the new /pp-pi handler yet. The bot was still running the older code, so Slack was sending the command but Node had nothing to respond with. I learned that when a bot is running through systemd , editing code locally does not automatically update the hosted version. The server needs to pull the latest code from GitHub and restart the service. Next, I’m setting up a simple update workflow: edit locally commit and push to GitHub pull on the server restart the Slack bot service This should make it much easier to keep adding new commands without manually editing files on the server every time."}]...
|
Title: Customizable Slack Bot by @declanwhchan | S Title: Customizable Slack Bot by @declanwhchan | Stardance
Devlogs:
Today I worked on my Slack bot and got it running 24/7 with systemd . The bot currently has several slash commands, including ping, cat facts, jokes, coin flips, dice rolls, random choices, quotes, Magic 8 Ball answers, and help. I also started adding a new /pp-pi command that lets users request digits of pi from 0 to 500. I ran into an issue where /pp-pi existed in Slack, but the app kept saying it did not respond. After debugging, I realized the server version of index.js did not actually have the new /pp-pi handler yet. The bot was still running the older code, so Slack was sending the command but Node had nothing to respond with. I learned that when a bot is running through systemd , editing code locally does not automatically update the hosted version. The server needs to pull the latest code from GitHub and restart the service. Next, I’m setting up a simple update workflow: edit locally commit and push to GitHub pull on the server restart the Slack bot service This should make it much easier to keep adding new commands without manually editing files on the server every time.
Ships:
I made a customizable Slack bot and got it running 24/7 with systemd . The bot currently has several slash commands, including ping, cat facts, jokes, coin flips, dice rolls, random choices, quotes, Magic 8 Ball answers, and help. I also started adding a new /pp-pi command that lets users request digits of pi from 0 to 500. I ran into an issue where /pp-pi existed in Slack, but the app kept saying it did not respond. After debugging, I realized the server version of index.js did not actually have the new /pp-pi handler yet. The bot was still running the older code, so Slack was sending the command but Node had nothing to respond with. I learned that when a bot is running through systemd , editing code locally does not automatically update the hosted version. The server needs to pull the latest code from GitHub and restart the service. Next, I’m setting up a simple update workflow: edit locally commit and push to GitHub pull on the server restart the Slack bot service This should make it much easier to keep adding new commands without manually editing files on the server every time....
|
1793065872.7060277
|
1793152272.7060277
|
|
9853
|
Apogee by @Wirenux | Stardance
|
Wirenux
|
1
|
3.0
|
8
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-06T19:17:39Z", "hours": 3.0, "multiplier": 2.57, "payout": 8, "blessing": "neutral", "text": "I’ve make a pure C CLI tool to fetch and display the NASA Astronomy Picture of the Day. I’m very proud of the display part and the fetch part. Every things to know is on the Github repo https://github.com/wirenux/Apogee/", "repo": "https://github.com/wirenux/Apogee", "demo": "https://github.com/wirenux/Apogee/releases"}]...
|
[{"post_id": 3702, "ts": "2026 [{"post_id": 3702, "ts": "2026-06-06T19:12:33Z", "hours": 0.5736, "text": "Ready to Ship ! https://github.com/wirenux/Apogee/releases/tag/v1.0"}, {"post_id": 3669, "ts": "2026-06-06T18:30:15Z", "hours": 0.6444, "text": "Now i’ve metadata, fixed size + DEMO_KEYS mode with –demo flags"}, {"post_id": 3625, "ts": "2026-06-06T17:15:26Z", "hours": 0.3153, "text": "Now i can print image !!!!! (with the half-block char)"}, {"post_id": 3615, "ts": "2026-06-06T16:49:37Z", "hours": 0.3689, "text": "Now able to get the image and store it in RAM !"}, {"post_id": 3580, "ts": "2026-06-06T16:10:18Z", "hours": 1.1217, "text": "I’m able to fetch the NASA Daily Image End-Point in C with just the cURL lib"}]...
|
Title: Apogee by @Wirenux | Stardance
Devlogs:
I’ Title: Apogee by @Wirenux | Stardance
Devlogs:
I’m able to fetch the NASA Daily Image End-Point in C with just the cURL lib
Now able to get the image and store it in RAM !
Now i can print image !!!!! (with the half-block char)
Now i’ve metadata, fixed size + DEMO_KEYS mode with –demo flags
Ready to Ship ! https://github.com/wirenux/Apogee/releases/tag/v1.0
Ships:
I’ve make a pure C CLI tool to fetch and display the NASA Astronomy Picture of the Day. I’m very proud of the display part and the fetch part. Every things to know is on the Github repo https://github.com/wirenux/Apogee/...
|
1793141233.517098
|
1793227633.517098
|
|
9871
|
Global Chat by @wuff | Stardance
|
wuff
|
1
|
10.0
|
149
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-15T00:09:15Z", "hours": 10.0, "multiplier": 14.33, "payout": 149, "blessing": "neutral", "text": "What is Global-Chat? Global-Chat is a lightweight, asynchronous, terminal-based messaging application that allows anyone on Earth to connect and chat in real-time directly from their Command Prompt or Terminal. No heavy web browsers, no bloated Electron apps—just pure, retro-style networking. Why this project? I wanted to build a seamless communication tool that avoids the unnecessary complexity of modern chat apps while tackling the hard engineering challenges of backend networking. The goal was to create a rock-solid, secure server capable of handling multiple concurrent connections, preventing spam, and managing users efficiently, all while keeping a minimal, distraction-free aesthetic. Key Features Inside: Global Connectivity – Chat instantly with other users across the globe through a clean CLI. Asynchronous UI – Powered by prompt_toolkit, ensuring incoming messages pop up instantly without interrupting what you are currently typing. Anti-Spam & Security – Built-in message cooldowns and automatic duplicate nickname validation. Robust Moderation – Full server-side control with admin commands to kick, ban users by IP, or send official system announcements via “say”. Chat History – New users automatically receive the last 10 messages upon joining so they always have context. Dockerized Setup – The entire server infrastructure can be spun up locally or on a VPS with a single docker compose up command. How to test it right now! You don’t need to install Python or mess around with dependencies to try it out. Go to the Releases tab on my GitHub Repository. Download the pre-built client.exe file. Open it, type your username, and start chatting instantly! (Note: Since there is no login system yet, please verify your friends’ identities via Slack/Discord if you suspect someone is impersonating them!)", "repo": "https://github.com/wuffgame/Global-Chat", "demo": "https://github.com/wuffgame/Global-Chat/releases/tag/release"}]...
|
[{"post_id": 8988, "ts": "2026 [{"post_id": 8988, "ts": "2026-06-14T23:41:58Z", "hours": 1.4267, "text": "Day 5 Today I finished preparing the project files, including the README.md and Dockerfile, and fixed all the bugs I was aware of. I also updated the project page with a new description, a screenshot, and a demo URL. The list I had in front of me is now completely finished, which means I can finally ship the project. Of course, after shipping it, I’ll still continue updating the global chat, but before that I need to take a short break. See you in my other projects — or in this one again sometime in the near future!!!"}, {"post_id": 7734, "ts": "2026-06-12T22:11:30Z", "hours": 2.0667, "text": "Day 4 Today I worked on adding chat history (when someone joins, the last 10 messages are displayed), as well as notifications for users joining/leaving the chat and error messages. The biggest issue today was that exit messages were not being displayed. The fix turned out to be quite simple — I was using a double lock, which caused the code to freeze. My plans for tomorrow are to check if everything works as intended, update the README file, update the Docker files, look into py2exe, and upload everything to GitHub and ship the project!!! Yes, we are finally getting to my first ship, but don’t worry, updates will still continue after that. See you tomorrow!!!"}, {"post_id": 7149, "ts": "2026-06-11T22:46:35Z", "hours": 2.0594, "text": "Day 3 Today I added the ability to execute commands directly from the server, such as ban and kick, giving the server moderation control over the chat. I also fixed an issue where receiving a message while typing would interrupt the input. After searching the entire internet, I finally found the holy grail: prompt_toolkit. Because of that, I can put GUI development on hold for now. The biggest challenge today was figuring out why I was getting a CMD-related error when starting the server with prompt_toolkit. It turns out that prompt_toolkit doesn’t work properly with PyCharm’s default console, so I had to enable the “Emulate terminal in output console” option. My plans for tomorrow are: Finish the command system (if I can think of any more useful commands). Take a look at py2exe so I can generate an .exe file from the Python client. Try to fix a bug where the client doesn’t properly stop after being banned, kicked, or disconnected. See you tomorrow!!!"}, {"post_id": 6512, "ts": "2026-06-10T22:54:15Z", "hours": 1.4717, "text": "Day 2* Today, I added nickname checking to the server to make sure that no two users can join the chat with the same nickname. I also implemented a message cooldown to help protect against spammers. I also tried experimenting with the GUI a little, but it’s not the right time yet — the to-do list I have in front of me is still huge. The problem of the day was that I hadn’t worked with Python dictionaries before, so I had to quickly learn how to use them xd. My plans for tomorrow are to add a banning system as a command that can be executed directly from the server, along with other custom commands that the server will be able to perform. I’m shutting down the VPS server until I ship the project. See you tomorrow!!! Technically it’s Day 3 because I didn’t work on it yesterday, but that’s a different story."}, {"post_id": 5152, "ts": "2026-06-08T20:45:00Z", "hours": 0.3344, "text": "Day 1 (Part 2) Before going to sleep (it was already night in Poland), I improved the security a bit and added a system message in chat when someone joins. I’ll try to dedicate a full day soon to security, so it’s not easy to create malicious clients. See you tomorrow for real!!!"}, {"post_id": 5082, "ts": "2026-06-08T19:22:47Z", "hours": 1.5067, "text": "Day 1 Today I rewrote the whole code to prepare it for a global chat system. I deployed everything on a VPS, so now by downloading client.py you can already chat with other people, but only through the terminal for now. I also added client version checking, so if someone is using an outdated version, they won’t be able to connect to the server. Usernames were also introduced, replacing IDs from the echo server, so now every user can set whatever nickname they want. The main bug of the day was related to broadcasting messages to all users — sometimes messages were sent only to one person or not sent at all. I fixed it somehow… honestly not even sure how xd. Tomorrow’s plan is to try implementing a graphical interface so it doesn’t rely on the terminal anymore. At night (in Poland), I also updated part of the README file. If you want to test the global chat yourself, you can download the client here: https://github.com/wuffgame/Global-Chat/blob/main/global-chat/client.py There are no bans for spam or offensive usernames yet, but I trust you won’t spam the server or use inappropriate nicknames. See you tomorrow!!!"}, {"post_id": 4480, "ts": "2026-06-07T20:13:24Z", "hours": 1.1486, "text": "Day 0 (Part 2) Today I decided to finish the echo server so that it can support multiple clients (currently up to 5). Each client also gets its own ID to keep the server logs cleaner and easier to read. I also added a Dockerfile and a docker-compose.yml, so the server can be launched on a VPS without any extra setup or hassle. As always, a few issues appeared along the way. At first, I’m not even sure what I messed up, but when I deployed the server to my VPS, Docker didn’t expose the container ports correctly, so the client couldn’t connect. After some debugging, I managed to fix it. Another challenge was handling a dynamic number of client IDs. However, since I’m planning to switch to nicknames instead of IDs later, I decided not to spend too much time on it for now. Tomorrow’s plan is to finally start Day 1, refactor everything and prepare the project for turning it into a proper global chat system. I also want to start working on a terminal-based global chat version either tomorrow or the day after. I already know some things will be problematic there, but I’ll probably solve them in Day 3 or later when I start working on a full GUI. For now, I also plan to write a README later today or tomorrow. See you in the next devlog!!! P.S. Devlogs might not appear daily until the summer holidays in Poland start."}, {"post_id": 3779, "ts": "2026-06-06T20:30:24Z", "hours": 0.4208, "text": "Day 0 Since yesterday, I decided to start working on a global chat application in Python. Everyone will be able to log in and chat, while I, as the amazing moderation team, will be able to ban people who break the rules. Yesterday, I spent some time talking with AI and watching videos to understand how sockets and threading work in Python. Today, since I got back late from a trip, I decided to practice what I learned yesterday instead of rushing into the full project. I built a local echo server that currently supports one client (but I’ll probably add multi-client support tomorrow). I also added a primitive client verification system, so if a client is not compatible with the server, the connection gets rejected. Right now it works by sending a specific string. The only issue I had was that after disconnecting the client, the server started infinitely sending “”. Luckily, I quickly realized I could stop it using if not. See you tomorrow in the next devlog!"}]...
|
Title: Global Chat by @wuff | Stardance
Devlogs:
Title: Global Chat by @wuff | Stardance
Devlogs:
Day 0 Since yesterday, I decided to start working on a global chat application in Python. Everyone will be able to log in and chat, while I, as the amazing moderation team, will be able to ban people who break the rules. Yesterday, I spent some time talking with AI and watching videos to understand how sockets and threading work in Python. Today, since I got back late from a trip, I decided to practice what I learned yesterday instead of rushing into the full project. I built a local echo server that currently supports one client (but I’ll probably add multi-client support tomorrow). I also added a primitive client verification system, so if a client is not compatible with the server, the connection gets rejected. Right now it works by sending a specific string. The only issue I had was that after disconnecting the client, the server started infinitely sending “”. Luckily, I quickly realized I could stop it using if not. See you tomorrow in the next devlog!
Day 0 (Part 2) Today I decided to finish the echo server so that it can support multiple clients (currently up to 5). Each client also gets its own ID to keep the server logs cleaner and easier to read. I also added a Dockerfile and a docker-compose.yml, so the server can be launched on a VPS without any extra setup or hassle. As always, a few issues appeared along the way. At first, I’m not even sure what I messed up, but when I deployed the server to my VPS, Docker didn’t expose the container ports correctly, so the client couldn’t connect. After some debugging, I managed to fix it. Another challenge was handling a dynamic number of client IDs. However, since I’m planning to switch to nicknames instead of IDs later, I decided not to spend too much time on it for now. Tomorrow’s plan is to finally start Day 1, refactor everything and prepare the project for turning it into a proper global chat system. I also want to start working on a terminal-based global chat version either tomorrow or the day after. I already know some things will be problematic there, but I’ll probably solve them in Day 3 or later when I start working on a full GUI. For now, I also plan to write a README later today or tomorrow. See you in the next devlog!!! P.S. Devlogs might not appear daily until the summer holidays in Poland start.
Day 1 Today I rewrote the whole code to prepare it for a global chat system. I deployed everything on a VPS, so now by downloading client.py you can already chat with other people, but only through the terminal for now. I also added client version checking, so if someone is using an outdated version, they won’t be able to connect to the server. Usernames were also introduced, replacing IDs from the echo server, so now every user can set whatever nickname they want. The main bug of the day was related to broadcasting messages to all users — sometimes messages were sent only to one person or not sent at all. I fixed it somehow… honestly not even sure how xd. Tomorrow’s plan is to try implementing a graphical interface so it doesn’t rely on the terminal anymore. At night (in Poland), I also updated part of the README file. If you want to test the global chat yourself, you can download the client here: https://github.com/wuffgame/Global-Chat/blob/main/global-chat/client.py There are no bans for spam or offensive usernames yet, but I trust you won’t spam the server or use inappropriate nicknames. See you tomorrow!!!
Day 1 (Part 2) Before going to sleep (it was already night in Poland), I improved the security a bit and added a system message in chat when someone joins. I’ll try to dedicate a full day soon to security, so it’s not easy to create malicious clients. See you tomorrow for real!!!
Day 2* Today, I added nickname checking to the server to make sure that no two users can join the chat with the same nickname. I also implemented a message cooldown to help protect against spammers. I also tried experimenting with the GUI a little, but it’s not the right time yet — the to-do list I have in front of me is still huge. The problem of the day was that I hadn’t worked with Python dictionaries before, so I had to quickly learn how to use them xd. My plans for tomorrow are to add a banning system as a command that can be executed directly from the server, along with other custom commands that the server will be able to perform. I’m shutting down the VPS server until I ship the project. See you tomorrow!!! Technically it’s Day 3 because I didn’t work on it yesterday, but that’s a different story.
Day 3 Today I added the ability to execute commands directly from the server, such as ban and kick, giving the server moderation control over the chat. I also fixed an issue where receiving a message while typing would interrupt the input. After searching the entire internet, I finally found the holy grail: prompt_toolkit. Because of that, I can put GUI development on hold for now. The biggest challenge today was figuring out why I was getting a CMD-related error when starting the server with prompt_toolkit. It turns out that prompt_toolkit doesn’t work properly with PyCharm’s default console, so I had to enable the “Emulate terminal in output console” option. My plans for tomorrow are: Finish the command system (if I can think of any more useful commands). Take a look at py2exe so I can generate an .exe file from the Python client. Try to fix a bug where the client doesn’t properly stop after being banned, kicked, or disconnected. See you tomorrow!!!
Day 4 Today I worked on adding chat history (when someone joins, the last 10 messages are displayed), as well as notifications for users joining/leaving the chat and error messages. The biggest issue today was that exit messages were not being displayed. The fix turned out to be quite simple — I was using a double lock, which caused the code to freeze. My plans for tomorrow are to check if everything works as intended, update the README file, update the Docker files, look into py2exe, and upload everything to GitHub and ship the project!!! Yes, we are finally getting to my first ship, but don’t worry, updates will still continue after that. See you tomorrow!!!
Day 5 Today I finished preparing the project files, including the README.md and Dockerfile, and fixed all the bugs I was aware of. I also updated the project page with a new description, a screenshot, and a demo URL. The list I had in front of me is now completely finished, which means I can finally ship the project. Of course, after shipping it, I’ll still continue updating the global chat, but before that I need to take a short break. See you in my other projects — or in this one again sometime in the near future!!!
Ships:
What is Global-Chat? Global-Chat is a lightweight, asynchronous, terminal-based messaging application that allows anyone on Earth to connect and chat in real-time directly from their Command Prompt or Terminal. No heavy web browsers, no bloated Electron apps—just pure, retro-style networking. Why this project? I wanted to build a seamless communication tool that avoids the unnecessary complexity of modern chat apps while tackling the hard engineering challenges of backend networking. The goal was to create a rock-solid, secure server capable of handling multiple concurrent connections, preventing spam, and managing users efficiently, all while keeping a minimal, distraction-free aesthetic. Key Features Inside: Global Connectivity – Chat instantly with other users across the globe through a clean CLI. Asynchronous UI – Powered by prompt_toolkit, ensuring incoming messages pop up instantly without interrupting what you are currently typing. Anti-Spam & Security – Built-in message cooldowns and automatic duplicate nickname validation. Robust Moderation – Full server-side control with admin commands to kick, ban users by IP, or send official system announcements via “say”. Chat History – New users automatically receive the last 10 messages upon joining so they always have context. Dockerized Setup – The entire server infrastructure can be spun up locally or on a VPS with a single docker compose up command. How to test it right now! You don’t need to install Python or mess around with dependencies to try it out. Go to the Releases tab on my GitHub Repository. Download the pre-built client.exe file. Open it, type your username, and start chatting instantly! (Note: Since there is no login system yet, please verify your friends’ identities via Slack/Discord if you suspect someone is impersonating them!)...
|
1793109301.2652078
|
1793195701.2652078
|
|
9877
|
My Blog Page by @brunodevdrums | Stardance
|
brunodevdrums
|
1
|
4.0
|
44
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-03T20:59:01Z", "hours": 4.0, "multiplier": 11.76, "payout": 44, "blessing": "neutral", "text": "While building my blog, I learned how to create dynamic pages using URL parameters, something I’d always wondered how to do, and this time I managed it! I know there isn’t much content yet, and I plan to add more in the future, but for me, this was an excellent way to practice reading URL parameters and generating dynamic pages based on them!", "repo": "https://github.com/BrundevCoder/blog", "demo": "https://brundevcoder.github.io/blog/"}]...
|
[{"post_id": 4289, "ts": "2026 [{"post_id": 4289, "ts": "2026-06-07T15:27:53Z", "hours": 0.8381, "text": "Well, during this time, I did these things: Readme Update: My readme is now much more complete, currently including an entire section on design with images and videos representing the animations and interactions my website has. The fight against mp4s on GitHub: Initially, I tried to put .mp4 files in the Readme, which in theory should work, but for some reason, unfortunately, they didn’t :P so I had to record some videos again and convert them to .gif to appear correctly in the readme. I corrected a spelling error in the second post, because instead of Journey I had previously written Jorney ;-;"}, {"post_id": 3872, "ts": "2026-06-06T23:14:07Z", "hours": 1.1303, "text": "Okay, here’s a list of what I’ve done so far: Added +1 post (which includes a complete .md file I wrote) Improved responsiveness (the site was very overflowing, especially on small screens) Added a small button to go back on the page (including CSS and responsiveness, of course) Small animations on the homepage cards Added the README And I also had to fix a small problem on GitHub, where a certain image didn’t have its name updated, so I had to find some ways to fix it!"}, {"post_id": 3838, "ts": "2026-06-06T22:02:33Z", "hours": 0.5114, "text": "Now, the banner is chosen dynamically, based on the URL’s title parameter; if it exists, show an image, otherwise show a default (the one that says error). I’m also currently writing some posts and creating a banner for the homepage."}, {"post_id": 3575, "ts": "2026-06-06T16:02:37Z", "hours": 0.7253, "text": "My page now uses a markdown to HTML converter. The code takes the title parameter from the URL, and if a markdown with the same name exists (the code converts the URL to lowercase), it displays the blog’s description. If it doesn’t exist, it will only show a message telling the user that the post doesn’t exist."}, {"post_id": 3547, "ts": "2026-06-06T15:16:55Z", "hours": 0.6094, "text": "I started making my blog! My blog will have a specific way of displaying my posts; the code will look for the title parameter in the URL, and it will search for a .md file with the same name and convert it to HTML. For now, I’ve done the HTML and CSS for the homepage."}]...
|
Title: My Blog Page by @brunodevdrums | Stardance
Title: My Blog Page by @brunodevdrums | Stardance
Devlogs:
I started making my blog! My blog will have a specific way of displaying my posts; the code will look for the title parameter in the URL, and it will search for a .md file with the same name and convert it to HTML. For now, I’ve done the HTML and CSS for the homepage.
My page now uses a markdown to HTML converter. The code takes the title parameter from the URL, and if a markdown with the same name exists (the code converts the URL to lowercase), it displays the blog’s description. If it doesn’t exist, it will only show a message telling the user that the post doesn’t exist.
Now, the banner is chosen dynamically, based on the URL’s title parameter; if it exists, show an image, otherwise show a default (the one that says error). I’m also currently writing some posts and creating a banner for the homepage.
Okay, here’s a list of what I’ve done so far: Added +1 post (which includes a complete .md file I wrote) Improved responsiveness (the site was very overflowing, especially on small screens) Added a small button to go back on the page (including CSS and responsiveness, of course) Small animations on the homepage cards Added the README And I also had to fix a small problem on GitHub, where a certain image didn’t have its name updated, so I had to find some ways to fix it!
Well, during this time, I did these things: Readme Update: My readme is now much more complete, currently including an entire section on design with images and videos representing the animations and interactions my website has. The fight against mp4s on GitHub: Initially, I tried to put .mp4 files in the Readme, which in theory should work, but for some reason, unfortunately, they didn’t :P so I had to record some videos again and convert them to .gif to appear correctly in the readme. I corrected a spelling error in the second post, because instead of Journey I had previously written Jorney ;-;
Ships:
While building my blog, I learned how to create dynamic pages using URL parameters, something I’d always wondered how to do, and this time I managed it! I know there isn’t much content yet, and I plan to add more in the future, but for me, this was an excellent way to practice reading URL parameters and generating dynamic pages based on them!...
|
1793094556.9672804
|
1793180956.9672804
|
|
9883
|
THE WEBB by @Synt-0 | Stardance
|
Synt-0
|
1
|
22.0
|
209
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-10T19:51:11Z", "hours": 22.0, "multiplier": 9.67, "payout": 209, "blessing": "neutral", "text": "I made an interactive website that shows the journey of the James Webb Space Telescope through the universe! I had a lot of trouble with alignment and other things, but at last, I finished it. This is actually my “first website”, and I learned everything through YouTube and other resources. I’m genuinely proud to have made something of my own and I’m happy to finally share it I recommend visiting the website on a computer *, as it is more optimized for desktop and offers a fuller experience.", "repo": "https://github.com/Synt-0/The-WEBB", "demo": "https://synt-0.github.io/The-WEBB/"}]...
|
[{"post_id": 78426, "ts": "202 [{"post_id": 78426, "ts": "2026-10-10T19:35:32Z", "hours": 2.7153, "text": "FINISHED THE WEBSITE! and will be deployed in a few mins i gave the star icon a api gave the webb a font and all"}, {"post_id": 78137, "ts": "2026-10-09T18:27:32Z", "hours": 5.9328, "text": "THE WEBSITE IS ALMOST OVER! I’ve worked on the popups, the timeline dots, and almost everything else, except for the random image button, the NASA api, and a few related things. But I think I’ll be able to ship it tmw! Honestly, I’m pretty happy with how it’s turning out so far. hopefully you all like it too . i still have to make it reactive and a few more things also can i use brittany font like i downloaded it from a site but it said its for personal use only so can i implement it ? . ANYWAYS YOU CAN SEE THE WEBSITE TMW I BELIEVE"}, {"post_id": 77116, "ts": "2026-10-05T17:42:00Z", "hours": 3.77, "text": "I did the stars , more like i got the code from this site (actually ) https://codepen.io/rkuai/pen/ExLbPWG/ had to do a bit of tweeking to the code to make it work with my own stuff but its good. thank rena (owner of the site ) . and i also am starting to make the popup box for the dots etc did some code for it and broke some things but fixed it . when i started to do js , i found it too complicated and stff . btw after 2 to 3 dev post i will finish the project hopefully i get a good amount of sd/h .. ( funfact - i first started of and aimed for the macbook neo cause my pc is a dell aio with Pentium5405U with 12gb ram <its ddr3 not 5 or 4 > now i have downgraded and downgraded to get mabe the huion tablet [idk why i want it i dont draw]i dont have much time so i am quiting after oct 10th cause i am in 10th and well got a lot to study and my internet access is also getting restricted sometimes ( since my pc use i very high so ya thats it ) . i do have to fix viewport stuff in css since i used px at first and its like calibrated to my screen (not reactive to other screens or brakes on other screens and stuff)"}, {"post_id": 71877, "ts": "2026-09-21T18:02:07Z", "hours": 1.2653, "text": "i worked on aligning the pictures of earth and the jwst . Now the site is actually coming along as like in my design and well still have some issues with the alignment but will figure it out tmw . the issue is there is excess vertical height and its scroll-able to the bottom which has nothing"}, {"post_id": 70208, "ts": "2026-09-18T18:19:47Z", "hours": 2.1378, "text": "This time i worked on the css and a bit in html and i have done the top controls now and need to do the rest tmw. when i did one thing like, formatting another thing breaks and so on .i think i spend 30min on on fixing the mistakes i made and well i have made some progress i have also fixed the top controls after a bit of struggle . i have also formatted the bottom parts a bit too .well thats for it now i guess."}, {"post_id": 66346, "ts": "2026-09-12T03:43:12Z", "hours": 0.8767, "text": "today i finished my html fully now i need to learn css and use it to style my website . i am not going to learn css properly cause i am having less time but i will study the basics from YT and go on with a AI to teach me what all code i need to study for doing my site specifically ."}, {"post_id": 65481, "ts": "2026-09-10T17:21:24Z", "hours": 0.835, "text": "so i worked on the main things of the website today from the dots to a bit of footer . i still have to implement imgs and some other things but it is enough for today i think .for data i am thinking of placing it in js"}, {"post_id": 64926, "ts": "2026-09-09T17:23:40Z", "hours": 2.7072, "text": "I learned a html (not fully) and a bit of css . since i am new to coding i am using AI to teach myself coding but the code above is a bit ai written the “span” code but it did it to make me understand . and i think the website i wanted to make is does getting a bit of its shape i think.."}, {"post_id": 7505, "ts": "2026-06-12T14:52:13Z", "hours": 1.355, "text": "I started learning HTML about a few day ago, and logged my hour. I am thinking to make a website which shows the Earth in the left side, and the James Webb Telescope in the right, and a line connecting both which has dots. Which, when pressed, show the picture that was taken on that day and a bit of info about the pic and other things. So, I am starting off with HTML , and it’s not much. I learned a bit. and here is a sample rough sketch done in canva"}]...
|
Title: THE WEBB by @Synt-0 | Stardance
Devlogs:
I Title: THE WEBB by @Synt-0 | Stardance
Devlogs:
I started learning HTML about a few day ago, and logged my hour. I am thinking to make a website which shows the Earth in the left side, and the James Webb Telescope in the right, and a line connecting both which has dots. Which, when pressed, show the picture that was taken on that day and a bit of info about the pic and other things. So, I am starting off with HTML , and it’s not much. I learned a bit. and here is a sample rough sketch done in canva
I learned a html (not fully) and a bit of css . since i am new to coding i am using AI to teach myself coding but the code above is a bit ai written the “span” code but it did it to make me understand . and i think the website i wanted to make is does getting a bit of its shape i think..
so i worked on the main things of the website today from the dots to a bit of footer . i still have to implement imgs and some other things but it is enough for today i think .for data i am thinking of placing it in js
today i finished my html fully now i need to learn css and use it to style my website . i am not going to learn css properly cause i am having less time but i will study the basics from YT and go on with a AI to teach me what all code i need to study for doing my site specifically .
This time i worked on the css and a bit in html and i have done the top controls now and need to do the rest tmw. when i did one thing like, formatting another thing breaks and so on .i think i spend 30min on on fixing the mistakes i made and well i have made some progress i have also fixed the top controls after a bit of struggle . i have also formatted the bottom parts a bit too .well thats for it now i guess.
i worked on aligning the pictures of earth and the jwst . Now the site is actually coming along as like in my design and well still have some issues with the alignment but will figure it out tmw . the issue is there is excess vertical height and its scroll-able to the bottom which has nothing
I did the stars , more like i got the code from this site (actually ) https://codepen.io/rkuai/pen/ExLbPWG/ had to do a bit of tweeking to the code to make it work with my own stuff but its good. thank rena (owner of the site ) . and i also am starting to make the popup box for the dots etc did some code for it and broke some things but fixed it . when i started to do js , i found it too complicated and stff . btw after 2 to 3 dev post i will finish the project hopefully i get a good amount of sd/h .. ( funfact - i first started of and aimed for the macbook neo cause my pc is a dell aio with Pentium5405U with 12gb ram <its ddr3 not 5 or 4 > now i have downgraded and downgraded to get mabe the huion tablet [idk why i want it i dont draw]i dont have much time so i am quiting after oct 10th cause i am in 10th and well got a lot to study and my internet access is also getting restricted sometimes ( since my pc use i very high so ya thats it ) . i do have to fix viewport stuff in css since i used px at first and its like calibrated to my screen (not reactive to other screens or brakes on other screens and stuff)
THE WEBSITE IS ALMOST OVER! I’ve worked on the popups, the timeline dots, and almost everything else, except for the random image button, the NASA api, and a few related things. But I think I’ll be able to ship it tmw! Honestly, I’m pretty happy with how it’s turning out so far. hopefully you all like it too . i still have to make it reactive and a few more things also can i use brittany font like i downloaded it from a site but it said its for personal use only so can i implement it ? . ANYWAYS YOU CAN SEE THE WEBSITE TMW I BELIEVE
FINISHED THE WEBSITE! and will be deployed in a few mins i gave the star icon a api gave the webb a font and all
Ships:
I made an interactive website that shows the journey of the James Webb Space Telescope through the universe! I had a lot of trouble with alignment and other things, but at last, I finished it. This is actually my “first website”, and I learned everything through YouTube and other resources. I’m genuinely proud to have made something of my own and I’m happy to finally share it I recommend visiting the website on a computer *, as it is more optimized for desktop and offers a fuller experience....
|
1793148763.7280834
|
1793235163.7280834
|
|
9893
|
NotchTerm by @aryavora21 | Stardance
|
aryavora21
|
1
|
2.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-07T01:07:25Z", "hours": 2.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Fixed and finalized the ui appearance for this application, a simple tool for users running ai models in the background!", "repo": "https://github.com/AryaVora621/notchTerm", "demo": "https://notch-term.vercel.app/"}]...
|
[{"post_id": 3657, "ts": "2026 [{"post_id": 3657, "ts": "2026-06-06T18:08:48Z", "hours": 0.3086, "text": "Fixing up my ui for my terminal visualizer at a quick glance for macbooks"}, {"post_id": 3558, "ts": "2026-06-06T15:38:35Z", "hours": 1.5058, "text": "Fixing Height for notch ui"}]...
|
Title: NotchTerm by @aryavora21 | Stardance
Devlo Title: NotchTerm by @aryavora21 | Stardance
Devlogs:
Fixing Height for notch ui
Fixing up my ui for my terminal visualizer at a quick glance for macbooks
Ships:
Fixed and finalized the ui appearance for this application, a simple tool for users running ai models in the background!...
|
1793051545.4753127
|
1793137945.4753127
|
|
9910
|
My awesome macropad! by @Tadeas | Stardance
|
Tadeas
|
1
|
1.0
|
2
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-07T21:54:42Z", "hours": 1.0, "multiplier": 5.0, "payout": 2, "blessing": "neutral", "text": "I tried to make my first Project here, the Hackpad. It was also my first time doing schematics and PCBs. I had some errors ,but I could solve them with the help of ai. Ai has also helped me when i didnt know how to upload files on github. Hopefully its going to be allright and if not, i am going to be happy for some feedback. :)", "repo": "https://github.com/tadeasrojicek/HackPad", "demo": ""}]...
|
[{"post_id": 4529, "ts": "2026 [{"post_id": 4529, "ts": "2026-06-07T21:28:38Z", "hours": 1.2144, "text": "I was working on the Hackpad yesterday and today i set up the Github page and fixed some bugs"}]...
|
Title: My awesome macropad! by @Tadeas | Stardance Title: My awesome macropad! by @Tadeas | Stardance
Devlogs:
I was working on the Hackpad yesterday and today i set up the Github page and fixed some bugs
Ships:
I tried to make my first Project here, the Hackpad. It was also my first time doing schematics and PCBs. I had some errors ,but I could solve them with the help of ai. Ai has also helped me when i didnt know how to upload files on github. Hopefully its going to be allright and if not, i am going to be happy for some feedback. :)...
|
1793091146.977221
|
1793177546.977221
|
|
9911
|
Space Station by @CoolHotDog64 | Stardance
|
CoolHotDog64
|
1
|
35.0
|
558
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-05T15:12:15Z", "hours": 35.0, "multiplier": 15.96, "payout": 558, "blessing": "neutral", "text": "Space Station I created the International Space Station using CAD (Computer Aided Design) This was a hard challenge for me, here are some of the issues I had while creating this Not enough images, there were very few images that showed the space station in detail and almost none were clear, I fixed this by finding an image made by NASA which I based my space shuttle off of Very small parts, the parts that I had to make were very small and precise, what I had to do is I had to create an object (using the extrude tool) and then I used the transform tool to “freely” move it No dimensions available, since there were none, I just had to base it off of the NASA image and estimate the size of every object, this turned out well and I think I got almost everything the right size, I probably couldn’t do any better Why this design is unique and better then others available: This design is way more realistic then many models created, many models are rushed and low effort, I worked really hard to design this project and I think mine out performs a ton of models available especially since some models are created by professionals This design is unique since it’s actually realistic and allows multi color printing, instead of just coloring the faces of the objects which doesn’t do anything, I made sure that the color was a separate object so it could be multi color printed This was a very fun and interesting project! I will also mention that this is a MODEL of the ISS, If you think that it would be better to create my own, that would defeat the whole purpose since it wouldn’t do anything if I made my own, making a model lets me create a part of history (Last rate someone thought that I should create my own space shuttle instead of copying one which ruins the whole purpose) The information on how to download and print my file is in high detail in my readme, but I will quickly explain it here: First, click try project Second, you will see a bar at the bottom of your screen with a download button Thirdly click it and a menu will pop up to print it Or you can go to the readme and above it there should be step, stl and 3mf files that you can just download This was a very fun and exciting project! Thank you for viewing my project. One thing i will mention is if you try to print it, you might get issues since some of the parts are very small, the larger the better for printing. If the print messes up its not the 3D design’s fault, its the printers", "repo": "https://github.com/CoolHotDog64/Space-Station", "demo": "https://makerworld.com/en/models/3153870-international-space-station"}]...
|
[{"post_id": 40795, "ts": "202 [{"post_id": 40795, "ts": "2026-08-04T15:33:46Z", "hours": 1.2672, "text": "I Finished My Space Station! This project was faster then the last one, but I’m very happy with the current result! The project should be rated today or tomorrow, all I need to do is create my readme and the description of my space shuttle What I did since last develog: I created the connection between the solar panels and the main body of the space station, this took a while since I needed to make it realistic and there weren’t many images sowing this component on the ISS I added a new small component to my space station, this connected to a previous piece I made I added another new part to the underside of my space station, this was hard to so since you couldn’t really see the component in the reference image I used This has been an awesome project to create! Feel free to print my project once its shipped! You should be able to multicolor print it too."}, {"post_id": 40425, "ts": "2026-08-03T22:43:52Z", "hours": 5.0711, "text": "Still Editing My Space Station I was able to get a lot done today (This devlog is longer since I did 5 hours in 1 day). This is what I finished: I fixed the supports on the many radiators, this took a while since I needed to make a lot of them and it took a while to make realistic I added 5 small, realistic panels to the space station, this took a while since I needed to base the many small parts off of 1 image I added 6 small solar panels that were missing on the space station previously, this added a lot more to the overall image of the space shuttle I added 2 Zvezda Service Modules (They look like mushrooms) I still need to add multiple small details to the space station but overall, I added every section to the exterior of the space station. This project is very close from being done! If you have any suggestions, you can leave them in the comments"}, {"post_id": 39782, "ts": "2026-08-02T23:40:39Z", "hours": 2.7942, "text": "I finished the Russian Segment On My Space Station! This includes one of the most complex parts of the space station so this took me a while This is what I did today: I worked on the dimensions of the Russian Segment on the space station. This included using tools to add realism like fillets and drafts. I moved the radiator panels closer together to increase realism and detail to the space station. I added Control Movement Gyroscopes to the space shuttle. This took a while since the part was very small and precise. What I still need to do I still need to add many smaller parts to the space shuttle. I still need to fix the Radiator Panels connection since I reduced their spacing This project is going very well and so far I’m very happy with the result. If you have any suggestions, please leave them in the comments!"}, {"post_id": 39652, "ts": "2026-08-02T19:36:50Z", "hours": 3.6136, "text": "I Am Almost Done The Canadarm On My Space Station! What I did to the Canadarm in the past 3 hours: I changed the dimensions of the Canadarm to add more realism to my model I added a realistic control panel to the space station connected to the Canadarm I added the Control Movement Gyroscope to the space shuttle I smoothed out a part of the main body structure of the space station since it was sticking out weird What I still need to work on: I still need to fix a large piece of the Canadarm since its the wrong shape and dimensions I still need to add multiple small parts to the Canadarm and other small parts to the space station I’m very happy with the current result, I hope to finish This project soon! If you have any suggestions, leave them in the comments!"}, {"post_id": 38240, "ts": "2026-07-31T15:13:39Z", "hours": 4.8233, "text": "Still Working On My Space Station So far I’m Getting very close to completing this challenging project! What I did in the past 5 hours: I added much more realism to the middle of the space stations body since before it was just a block I started creating the Canadarm, I still need to make multiple edits to it though I added more smaller details to the structure of the space station What I still need to work on: I still need to create the Canadarm and I need to attach it to the space station I still need to add some smaller parts around the space station I need to add solar panels to the Canadarm This projects is close form being done. So far I’m very happy with the result!"}, {"post_id": 35250, "ts": "2026-07-26T15:35:54Z", "hours": 5.5306, "text": "I’m Almost Done The Body Of My Space Station! So far, I’ve made huge progress on the body of the space station, and I’m very happy with the current state What I Edited On My Space Shuttle In The Past 5 Hours: I finished off the structure that I almost completed in my last devlog. This took a while since it was super precise. I added another support structure. This took less time, but it still took a long time to complete . I completely redesigned the radiator panels, adding realistic angle and dimensions. I changed the shape on some parts of the space station to add more realism. Before, it was a constant hexagon, but now it goes from a square to a hexagon. I started to add realistic supports to the Photovoltaic Radiator panels since right now they are floating. What I still need to work on: I still need to add all the supports on the Photovoltaic Radiator panels. I still have to add more realism to the body of the space shuttle. I need to add detail to the middle of the space station’s body. I still need to add the Russian Orbital Segment to the space station. Right now there is nothing there. This devlog is longer than usual since I did this in 1 day. I’m very happy with the progress and I can’t wait for the finished result. If you have any suggestions, leave them in the comments!"}, {"post_id": 34346, "ts": "2026-07-24T23:17:37Z", "hours": 3.4117, "text": "Still Working On My Space Station This project is getting more realistic every day. This is what I did in the past 3 hours and 24 minutes: I added a connection point from this “web” structure to the body of the space station. This took me a couple of tries, but after I did it the space station was much more realistic. I made the body of the space shuttle smaller since it was slightly too large, and it intersected with a lot of parts (There are still some intersection errors that I haven’t fixed yet). I added a main frame to the “web” structure. This was still a slow process, but it was still one of the fastest parts of this project. I added smaller crosses in between the “web” structure. This added much more realism. I didn’t finish though since I still have 2 more sides to do. What I still need to do: I still need to fix the “web” structure. It intersects some parts and only 60% of it’s done right now. I still need to replicate this part on the other side. So far, I have only done one side. I should be able to replicate it quickly with the mirror tool. I need to add a similar part further into the space station’s structure. This will probably take much longer and will be more challenging. I also have to add more realism to the body of the space station, since right now it’s mostly just a block. This took a long time, and I’m estimating that making these supports will take about 12 more hours since they take a long time to make. So far, this project has taken a long time, but I’m happy with the current result. If you have any suggestions, feel free to leave them in the comments!"}, {"post_id": 32580, "ts": "2026-07-21T21:01:33Z", "hours": 2.9056, "text": "Still Working On My Space Station What I fixed I fixed the shape of the body of the space station since it was the wrong shape I fixed the shape of the Thermal Radiator Panels since before they were too large and thick I changed the angle and position of the Thermal Radiator Panels since they were also wrong, I moved them from horizontal to vertical and I added a new angle I added new parts in the middle of the 2 Thermal Radiator panels (I still need to add more detail) Changed the angle of the solar panels on the space station for more realism What I still need to do: Still need to work on the body of the space station like adding supports I still need to add more to the parts in the middle of the 2 Thermal Radiator Panels since right now they are super simple and they have the wrong shapes This space station is really coming together! I can’t wait for the result. If you have any suggestions about my space station you can share them in the comments!"}, {"post_id": 31406, "ts": "2026-07-19T18:57:37Z", "hours": 3.8147, "text": "I’m Still Working On Adding Realism To My Space Station| I was able to do a lot in the past 4 hours I was able to add an angle to the solar panels on my space station I fixed the main solar panel connection to the main body I created radiator panels with realistic fillets to add realism I added a long solar panel to the end of the radiator panels What I still need to work on I still need to create the fluid manifold assembly and fix the body to add realism I need to add a little realism to other parts So far, this project is going well and I can’t wait for the end result!"}, {"post_id": 29143, "ts": "2026-07-15T20:33:33Z", "hours": 1.6956, "text": "I Just Started My Space Station! I decided to do the International Space Station! So far I have been working on the solar panels on the ISS, I have also started to connect them together and add small detail to them My next goal is to create the main frame of the building and then move on to smaller details I’m excited on where this project will go! If you have any suggestions share them in the comments."}]...
|
Title: Space Station by @CoolHotDog64 | Stardance
Title: Space Station by @CoolHotDog64 | Stardance
Devlogs:
I Just Started My Space Station! I decided to do the International Space Station! So far I have been working on the solar panels on the ISS, I have also started to connect them together and add small detail to them My next goal is to create the main frame of the building and then move on to smaller details I’m excited on where this project will go! If you have any suggestions share them in the comments.
I’m Still Working On Adding Realism To My Space Station| I was able to do a lot in the past 4 hours I was able to add an angle to the solar panels on my space station I fixed the main solar panel connection to the main body I created radiator panels with realistic fillets to add realism I added a long solar panel to the end of the radiator panels What I still need to work on I still need to create the fluid manifold assembly and fix the body to add realism I need to add a little realism to other parts So far, this project is going well and I can’t wait for the end result!
Still Working On My Space Station What I fixed I fixed the shape of the body of the space station since it was the wrong shape I fixed the shape of the Thermal Radiator Panels since before they were too large and thick I changed the angle and position of the Thermal Radiator Panels since they were also wrong, I moved them from horizontal to vertical and I added a new angle I added new parts in the middle of the 2 Thermal Radiator panels (I still need to add more detail) Changed the angle of the solar panels on the space station for more realism What I still need to do: Still need to work on the body of the space station like adding supports I still need to add more to the parts in the middle of the 2 Thermal Radiator Panels since right now they are super simple and they have the wrong shapes This space station is really coming together! I can’t wait for the result. If you have any suggestions about my space station you can share them in the comments!
Still Working On My Space Station This project is getting more realistic every day. This is what I did in the past 3 hours and 24 minutes: I added a connection point from this “web” structure to the body of the space station. This took me a couple of tries, but after I did it the space station was much more realistic. I made the body of the space shuttle smaller since it was slightly too large, and it intersected with a lot of parts (There are still some intersection errors that I haven’t fixed yet). I added a main frame to the “web” structure. This was still a slow process, but it was still one of the fastest parts of this project. I added smaller crosses in between the “web” structure. This added much more realism. I didn’t finish though since I still have 2 more sides to do. What I still need to do: I still need to fix the “web” structure. It intersects some parts and only 60% of it’s done right now. I still need to replicate this part on the other side. So far, I have only done one side. I should be able to replicate it quickly with the mirror tool. I need to add a similar part further into the space station’s structure. This will probably take much longer and will be more challenging. I also have to add more realism to the body of the space station, since right now it’s mostly just a block. This took a long time, and I’m estimating that making these supports will take about 12 more hours since they take a long time to make. So far, this project has taken a long time, but I’m happy with the current result. If you have any suggestions, feel free to leave them in the comments!
I’m Almost Done The Body Of My Space Station! So far, I’ve made huge progress on the body of the space station, and I’m very happy with the current state What I Edited On My Space Shuttle In The Past 5 Hours: I finished off the structure that I almost completed in my last devlog. This took a while since it was super precise. I added another support structure. This took less time, but it still took a long time to complete . I completely redesigned the radiator panels, adding realistic angle and dimensions. I changed the shape on some parts of the space station to add more realism. Before, it was a constant hexagon, but now it goes from a square to a hexagon. I started to add realistic supports to the Photovoltaic Radiator panels since right now they are floating. What I still need to work on: I still need to add all the supports on the Photovoltaic Radiator panels. I still have to add more realism to the body of the space shuttle. I need to add detail to the middle of the space station’s body. I still need to add the Russian Orbital Segment to the space station. Right now there is nothing there. This devlog is longer than usual since I did this in 1 day. I’m very happy with the progress and I can’t wait for the finished result. If you have any suggestions, leave them in the comments!
Still Working On My Space Station So far I’m Getting very close to completing this challenging project! What I did in the past 5 hours: I added much more realism to the middle of the space stations body since before it was just a block I started creating the Canadarm, I still need to make multiple edits to it though I added more smaller details to the structure of the space station What I still need to work on: I still need to create the Canadarm and I need to attach it to the space station I still need to add some smaller parts around the space station I need to add solar panels to the Canadarm This projects is close form being done. So far I’m very happy with the result!
I Am Almost Done The Canadarm On My Space Station! What I did to the Canadarm in the past 3 hours: I changed the dimensions of the Canadarm to add more realism to my model I added a realistic control panel to the space station connected to the Canadarm I added the Control Movement Gyroscope to the space shuttle I smoothed out a part of the main body structure of the space station since it was sticking out weird What I still need to work on: I still need to fix a large piece of the Canadarm since its the wrong shape and dimensions I still need to add multiple small parts to the Canadarm and other small parts to the space station I’m very happy with the current result, I hope to finish This project soon! If you have any suggestions, leave them in the comments!
I finished the Russian Segment On My Space Station! This includes one of the most complex parts of the space station so this took me a while This is what I did today: I worked on the dimensions of the Russian Segment on the space station. This included using tools to add realism like fillets and drafts. I moved the radiator panels closer together to increase realism and detail to the space station. I added Control Movement Gyroscopes to the space shuttle. This took a while since the part was very small and precise. What I still need to do I still need to add many smaller parts to the space shuttle. I still need to fix the Radiator Panels connection since I reduced their spacing This project is going very well and so far I’m very happy with the result. If you have any suggestions, please leave them in the comments!
Still Editing My Space Station I was able to get a lot done today (This devlog is longer since I did 5 hours in 1 day). This is what I finished: I fixed the supports on the many radiators, this took a while since I needed to make a lot of them and it took a while to make realistic I added 5 small, realistic panels to the space station, this took a while since I needed to base the many small parts off of 1 image I added 6 small solar panels that were missing on the space station previously, this added a lot more to the overall image of the space shuttle I added 2 Zvezda Service Modules (They look like mushrooms) I still need to add multiple small details to the space station but overall, I added every section to the exterior of the space station. This project is very close from being done! If you have any suggestions, you can leave them in the comments
I Finished My Space Station! This project was faster then the last one, but I’m very happy with the current result! The project should be rated today or tomorrow, all I need to do is create my readme and the description of my space shuttle What I did since last develog: I created the connection between the solar panels and the main body of the space station, this took a while since I needed to make it realistic and there weren’t many images sowing this component on the ISS I added a new small component to my space station, this connected to a previous piece I made I added another new part to the underside of my space station, this was hard to so since you couldn’t really see the component in the reference image I used This has been an awesome project to create! Feel free to print my project once its shipped! You should be able to multicolor print it too.
Ships:
Space Station I created the International Space Station using CAD (Computer Aided Design) This was a hard challenge for me, here are some of the issues I had while creating this Not enough images, there were very few images that showed the space station in detail and almost none were clear, I fixed this by finding an image made by NASA which I based my space shuttle off of Very small parts, the parts that I had to make were very small and precise, what I had to do is I had to create an object (using the extrude tool) and then I used the transform tool to “freely” move it No dimensions available, since there were none, I just had to base it off of the NASA image and estimate the size of every object, this turned out well and I think I got almost everything the right size, I probably couldn’t do any better Why this design is unique and better then others available: This design is way more realistic then many models created, many models are rushed and low effort, I worked really hard to design this project and I think mine out performs a ton of models available especially since some models are created by professionals This design is unique since it’s actually realistic and allows multi color printing, instead of just coloring the faces of the objects which doesn’t do anything, I made sure that the color was a separate object so it could be multi color printed This was a very fun and interesting project! I will also mention that this is a MODEL of the ISS, If you think that it would be better to create my own, that would defeat the whole purpose since it wouldn’t do anything if I made my own, making a model lets me create a part of history (Last rate someone thought that I should create my own space shuttle instead of copying one which ruins the whole purpose) The information on how to download and print my file is in high detail in my readme, but I will quickly explain it here: First, click try project Second, you will see a bar at the bottom of your screen with a download button Thirdly click it and a menu will pop up to print it Or you can go to the readme and above it there should be step, stl and 3mf files that you can just download This was a very fun and exciting project! Thank you for viewing my project. One thing i will mention is if you try to print it, you might get issues since some of the parts are very small, the larger the better for printing. If the print messes up its not the 3D design’s fault, its the printers...
|
1793119666.2814462
|
1793206066.2814462
|
|
9912
|
Counter by @B754a | Stardance
|
B754a
|
1
|
4.0
|
4
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-07T20:14:13Z", "hours": 4.0, "multiplier": 1.05, "payout": 4, "blessing": "neutral", "text": "A counter there was some issues like the website not working so I changed the extension I’m proud because this is the fist project I have done and there was no ai", "repo": "https://github.com/B754a-Dev/A-counter", "demo": "https://b754a-dev.github.io/A-counter/"}]...
|
[{"post_id": 4479, "ts": "2026 [{"post_id": 4479, "ts": "2026-06-07T20:10:44Z", "hours": 0.8292, "text": "counting thing"}, {"post_id": 4294, "ts": "2026-06-07T15:40:00Z", "hours": 0.5894, "text": "Random number generator"}, {"post_id": 4268, "ts": "2026-06-07T14:56:25Z", "hours": 0.7067, "text": "Made a counter and it works"}, {"post_id": 4241, "ts": "2026-06-07T14:11:43Z", "hours": 0.2967, "text": "Simple website"}, {"post_id": 4228, "ts": "2026-06-07T13:53:18Z", "hours": 0.2878, "text": "better website"}, {"post_id": 4215, "ts": "2026-06-07T13:30:35Z", "hours": 0.2631, "text": "Button that didnt work"}, {"post_id": 4207, "ts": "2026-06-07T13:11:32Z", "hours": 1.1036, "text": "Website"}]...
|
Title: Counter by @B754a | Stardance
Devlogs:
Web Title: Counter by @B754a | Stardance
Devlogs:
Website
Button that didnt work
better website
Simple website
Made a counter and it works
Random number generator
counting thing
Ships:
A counter there was some issues like the website not working so I changed the extension I’m proud because this is the fist project I have done and there was no ai...
|
1793137916.6602523
|
1793224316.6602523
|
|
9915
|
Excel-Price-Processor by @jonathanrobin13 | Starda Excel-Price-Processor by @jonathanrobin13 | Stardance...
|
jonathanrobin13
|
1
|
5.37
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-18T20:53:27Z", "hours": 5.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "This program runs through an excel file that has a products with prices and creates a new column with a discount. It can also find the minimum and maximum of the products. In this product I learned about classes and unpacking in python. It was a challenge to debug, but most of the time the errors were value errors. I learned how to use github more properly too.", "repo": "https://github.com/jonathanrobin13/excel-price-processor", "demo": "https://drive.google.com/file/d/1_B390cGpyapJW47LVg37Di8I5Rl5yaLo/view?usp=sharing"}]...
|
[{"post_id": 22406, "ts": "202 [{"post_id": 22406, "ts": "2026-07-04T21:25:11Z", "hours": 0.3711, "text": "Made code more organized"}, {"post_id": 11531, "ts": "2026-06-18T20:36:43Z", "hours": 3.5681, "text": "Min/Max function Made a new function that finds the minimum and maximum of the data. How it works The program asks the user to type 0 or 1 for min/max The program uses a for loop and goes through each row finding the maximum and minimum or what the user chose. In each cell in the sheet, the program checks if that cell is less/greater than the current min/max using the min()/max() function. The function then returns a tuple of the price of the product that was the min/max and the name of that product. The result is printed using a formatted string. Debugging While creating the function, there was some errors with the if statement. The if statement checks if the user typed 0 or 1, but the user input was not converted into an int. So the min max function was skipped. The function started to return the minimum price but the name of that product was different. The fix was simple - there was an if statement that checked if the min/max was the current cell but the part where it assigns the product_name was not indented, so it was out of this if statement Had a few errors with unpacking, but the changes were made to fix it"}, {"post_id": 3845, "ts": "2026-06-06T22:11:06Z", "hours": 0.4764, "text": "Now users can type in letters that represent each column instead of typing numbers"}, {"post_id": 3806, "ts": "2026-06-06T21:10:03Z", "hours": 0.3433, "text": "Edit README"}, {"post_id": 3712, "ts": "2026-06-06T19:21:07Z", "hours": 1.0761, "text": "A class for functions"}]...
|
Title: Excel-Price-Processor by @jonathanrobin13 | Title: Excel-Price-Processor by @jonathanrobin13 | Stardance
Devlogs:
A class for functions
Edit README
Now users can type in letters that represent each column instead of typing numbers
Min/Max function Made a new function that finds the minimum and maximum of the data. How it works The program asks the user to type 0 or 1 for min/max The program uses a for loop and goes through each row finding the maximum and minimum or what the user chose. In each cell in the sheet, the program checks if that cell is less/greater than the current min/max using the min()/max() function. The function then returns a tuple of the price of the product that was the min/max and the name of that product. The result is printed using a formatted string. Debugging While creating the function, there was some errors with the if statement. The if statement checks if the user typed 0 or 1, but the user input was not converted into an int. So the min max function was skipped. The function started to return the minimum price but the name of that product was different. The fix was simple - there was an if statement that checked if the min/max was the current cell but the part where it assigns the product_name was not indented, so it was out of this if statement Had a few errors with unpacking, but the changes were made to fix it
Made code more organized
Ships:
This program runs through an excel file that has a products with prices and creates a new column with a discount. It can also find the minimum and maximum of the products. In this product I learned about classes and unpacking in python. It was a challenge to debug, but most of the time the errors were value errors. I learned how to use github more properly too....
|
1793119919.479334
|
1793206319.479334
|
|
9931
|
ChatPatches by @obro1984 | Stardance
|
obro1984
|
1
|
83.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-06T05:39:03Z", "hours": 83.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "This is Chat Patches! I’m gonna cut to the chase and explain the process of developing recently because everything about the mod is on the GitHub readme, in the changelog, and in these devlogs. Recently I’ve found time management difficult and as a result I’ve had to be more efficient and creative about how I’m spending my time developing. There’s been an influx in community contributions via PR which has been quite helpful, but most is still left up to me. However, one benefit of not having as much time to work on things is that issues I can’t seem to solve have more time for me to simmer and ponder to come up with solutions. however, this has postponed some big features i’ve already been putting off even more… hopefully i can get around to those and find some breakthrough point to pull myself through. anyways, in terms of changes, most of it has been bugfixes, but there have been a handful of additions recently, especially related to new configuration options (compact-safe messages, human-readable time format, cleaner context menu, etc.) - of course with plans to add many more. i’m proud of all these features and how far the mod has come, and frankly i’m surprised im even still developing it. i hope i can get the bigger stuff done soon so i can move on to bigger things, though. to test the mod, just set up fabricmc as explained on their website or via literally any modded minecraft tutorial - i recommend using a third-party launcher such as PrismLauncher as it keeps track of everything for you and wraps it in a nice interface. once your installation is ready simply add chat patches and its dependencies (again, using a launcher will help as it will add the deps for you!) and run the game! i hope your experience is bettered and you make the chat feel as personalized as you like :D", "repo": "https://github.com/mrbuilder1961/ChatPatches", "demo": "https://modrinth.com/mod/chatpatches/gallery"}]...
|
[{"post_id": 77225, "ts": "202 [{"post_id": 77225, "ts": "2026-10-06T05:21:48Z", "hours": 7.6692, "text": "8.0.0 released! yes, it’s been done! chat patches has been in alpha for a year and the better part of another? all because i finally impl’d the omnivers-stonecutter buildscript and additionally wanted more large-scale changes (test suite, neoforge support, DFU migration codec) ((of which are still planned… eventually!!)) … but then i just never took it off. well, you can’t wait around forever. also, this update is perfect for releasing as a whopping TEN issue reports were closed upon release, with countless others fixed soundlessly! credit where it’s due, there was a fair amount of community support via PRs for this release, but that doesn’t take away from the benefit we as a community experience from it being added! while we’re out here celebrating these crushed bugs, new features, and the return to release-channel versions, i think it’s safe to say chat patches is worthy of shipping too! i hope you’ve enjoyed using chat patches and it’s bettered your minecraft experience - and if you haven’t used it, i hope you’ll give it a try and let me know what you think. thanks again to everyone who contributed and cheers to even more fixes and features in the future! 🎉🥳💃🎈"}, {"post_id": 72734, "ts": "2026-09-23T16:44:23Z", "hours": 12.9153, "text": "i’ve been very busy with university starting, but recently there has been an influx in PRs fixing bugs, which is awesome! so i’ve been monitoring those and slowly merging them into the main branch. additionally, i’ve been chipping away at fixes and suggestion implementations here and there; specifically: excluding specific messages from being compacted updating to 26.3 actually uploading signature files (now that Modrinth officially supports them) fixing chat auto scrolling while duplicate messages are being received adding fallbacks for the chat log’s codec provider in case the current one fails/doesn’t exist ..and more!! i hope to add more stuff soon and publish a release, but i have about 4 free minutes per week and unfortunately, i end up not wanting to spend it on largely unpaid labor. nevertheless, my aspirations remain and my hopes are high!"}, {"post_id": 46725, "ts": "2026-08-14T05:34:29Z", "hours": 5.3536, "text": "i’ve been SUPER busy as of late, and will probably continue to be for at least another week or two if not longer, but i’m starting to begin to wrap up unit testing. i finally pushed the existing tests and framework to github on a separate branch, but bc i’m so bad at Git, IntelliJ is fucking up my other changes i’m currently working on (updating the main omnivers branch to 26.3-snapshot-8 )… so hopefully i can fix that soon. unfortunately i don’t know when the unit testing will be finished, as it takes a longggg time to figure out the little edge cases, and i prefer to avoid AI everywhere possible (although there’s only so much ethical struggling i can endure before i need to ask for help)."}, {"post_id": 29224, "ts": "2026-07-16T00:17:47Z", "hours": 10.7325, "text": "Unit Testing! yup, that’s what’s been taking so long. i actually got past the gradle setup part pretty quick, i just wasn’t expecting current code to be so… dysfunctional. i’ve done a lot of rewriting and test formatting and sometimes it just gets really brain numbing so i put on a youtube video in the background and then its been 45 minutes and i havent changed anything… but i just achieved my first all-passing test milestone! so i’ll be pushing it soon and then i’ll the changes that make everything pass will follow soon after. currently I’m targeting TextUtil , where the most edge-cases take place, in the form of String <-> Component transformations. ultimiately i’d like to also do E2E testing in the form of Fabric’s ClientGameTest , but those can only be done on the most recent version due to FAPI not backporting changes (it’s probably for the best anyway) - so i’ll be doing that last. that’s it for now! i can’t wait for everyone (especially me), to benefit from this when future releases are checked before releasing! yayyyy!!!"}, {"post_id": 21584, "ts": "2026-07-03T16:47:26Z", "hours": 22.8564, "text": "hey chat! i’ve finished up some of that stuff from before. most notably: publishMods now works again! turns out Modrinth just recently (i.e. this week) allowed attaching signatures to builds so it’s not currently supported with MPP also, turns out the whole checksum thing was kinda useless because Modrinth has provided file hashes via their API this whole time - so… i think i’m gonna table that idea for now and use that later i published a new version ( alpha.11 ) that fixes the teensy-eensy little problem that incomplete mixins were accidentally included in the jar uploaded to CF and MR as alpha.10 . whoops! version parsing is now much more robust and typically requires only one gradle property to be specified! for newer releases you can override the FMJ version (ex. w/ ~26.2 for the 26.2 subproject) and the rest is handled automatically. i’m also waiting on MPP#116 to see if this can be consolidated entirely, with no need for an extra override! the classtweaker is now stone-cut so it’s a bit easier to see what is applied to where cleaned up the buildscript more (it is perpetually dirty :/) fixed a handful of bugs and impl’d a couple suggestions! and now, i get to move on to one of the most daunting but hopefully most rewarding things: drumroll please…. ztzttstz.z.t..z….. unit testing!!! you’re probably thinking, chat patches hasn’t had any unit tests this WHOLE time!??! and you’d be right! idk how there aren’t more bugs. but now i’m putting everything else (chat patches wise, at least) on hold to get this done. bc if i don’t do it now, it will never get done. ik this isn’t very pretty but you gotta do what you gotta do."}, {"post_id": 15214, "ts": "2026-06-24T18:36:47Z", "hours": 23.2442, "text": "i’ve been doing what feels like a lot but isn’t overall much. i’ve been refactoring the Kotlin Gradle buildscript, which i’m notoriously bad at so it’s taking a really long time. some of my (attempted) changes include: generating signatures and checksums with published builds (2/3 done) simplified stonecutter replacements and swaps assessed what will need to change to transition to the new modstitch-toolkit minorly updated mod-publish-plugin and started planning for new version range parsing and functionality in other things, i’ve: fixed the context menu deletion option resetting the scroll pos removed the entirely unused option table in the README better utilized classtweakers in the context menu implemented annotation-based constraints for config options replaced the dual-impl option validation system with a unified one via codecs (now used in the YACL config, with one annoying side effect) future-proofed the module-based fabric api importing so that it only loads what’s necessary (and it should work with neoforge when i eventually impl that!) updated mod functionality to 26.2 (despite being unable to publish everything at once 😑)"}]...
|
Title: ChatPatches by @obro1984 | Stardance
Devlo Title: ChatPatches by @obro1984 | Stardance
Devlogs:
i’ve been doing what feels like a lot but isn’t overall much. i’ve been refactoring the Kotlin Gradle buildscript, which i’m notoriously bad at so it’s taking a really long time. some of my (attempted) changes include: generating signatures and checksums with published builds (2/3 done) simplified stonecutter replacements and swaps assessed what will need to change to transition to the new modstitch-toolkit minorly updated mod-publish-plugin and started planning for new version range parsing and functionality in other things, i’ve: fixed the context menu deletion option resetting the scroll pos removed the entirely unused option table in the README better utilized classtweakers in the context menu implemented annotation-based constraints for config options replaced the dual-impl option validation system with a unified one via codecs (now used in the YACL config, with one annoying side effect) future-proofed the module-based fabric api importing so that it only loads what’s necessary (and it should work with neoforge when i eventually impl that!) updated mod functionality to 26.2 (despite being unable to publish everything at once 😑)
hey chat! i’ve finished up some of that stuff from before. most notably: publishMods now works again! turns out Modrinth just recently (i.e. this week) allowed attaching signatures to builds so it’s not currently supported with MPP also, turns out the whole checksum thing was kinda useless because Modrinth has provided file hashes via their API this whole time - so… i think i’m gonna table that idea for now and use that later i published a new version ( alpha.11 ) that fixes the teensy-eensy little problem that incomplete mixins were accidentally included in the jar uploaded to CF and MR as alpha.10 . whoops! version parsing is now much more robust and typically requires only one gradle property to be specified! for newer releases you can override the FMJ version (ex. w/ ~26.2 for the 26.2 subproject) and the rest is handled automatically. i’m also waiting on MPP#116 to see if this can be consolidated entirely, with no need for an extra override! the classtweaker is now stone-cut so it’s a bit easier to see what is applied to where cleaned up the buildscript more (it is perpetually dirty :/) fixed a handful of bugs and impl’d a couple suggestions! and now, i get to move on to one of the most daunting but hopefully most rewarding things: drumroll please…. ztzttstz.z.t..z….. unit testing!!! you’re probably thinking, chat patches hasn’t had any unit tests this WHOLE time!??! and you’d be right! idk how there aren’t more bugs. but now i’m putting everything else (chat patches wise, at least) on hold to get this done. bc if i don’t do it now, it will never get done. ik this isn’t very pretty but you gotta do what you gotta do.
Unit Testing! yup, that’s what’s been taking so long. i actually got past the gradle setup part pretty quick, i just wasn’t expecting current code to be so… dysfunctional. i’ve done a lot of rewriting and test formatting and sometimes it just gets really brain numbing so i put on a youtube video in the background and then its been 45 minutes and i havent changed anything… but i just achieved my first all-passing test milestone! so i’ll be pushing it soon and then i’ll the changes that make everything pass will follow soon after. currently I’m targeting TextUtil , where the most edge-cases take place, in the form of String <-> Component transformations. ultimiately i’d like to also do E2E testing in the form of Fabric’s ClientGameTest , but those can only be done on the most recent version due to FAPI not backporting changes (it’s probably for the best anyway) - so i’ll be doing that last. that’s it for now! i can’t wait for everyone (especially me), to benefit from this when future releases are checked before releasing! yayyyy!!!
i’ve been SUPER busy as of late, and will probably continue to be for at least another week or two if not longer, but i’m starting to begin to wrap up unit testing. i finally pushed the existing tests and framework to github on a separate branch, but bc i’m so bad at Git, IntelliJ is fucking up my other changes i’m currently working on (updating the main omnivers branch to 26.3-snapshot-8 )… so hopefully i can fix that soon. unfortunately i don’t know when the unit testing will be finished, as it takes a longggg time to figure out the little edge cases, and i prefer to avoid AI everywhere possible (although there’s only so much ethical struggling i can endure before i need to ask for help).
i’ve been very busy with university starting, but recently there has been an influx in PRs fixing bugs, which is awesome! so i’ve been monitoring those and slowly merging them into the main branch. additionally, i’ve been chipping away at fixes and suggestion implementations here and there; specifically: excluding specific messages from being compacted updating to 26.3 actually uploading signature files (now that Modrinth officially supports them) fixing chat auto scrolling while duplicate messages are being received adding fallbacks for the chat log’s codec provider in case the current one fails/doesn’t exist ..and more!! i hope to add more stuff soon and publish a release, but i have about 4 free minutes per week and unfortunately, i end up not wanting to spend it on largely unpaid labor. nevertheless, my aspirations remain and my hopes are high!
8.0.0 released! yes, it’s been done! chat patches has been in alpha for a year and the better part of another? all because i finally impl’d the omnivers-stonecutter buildscript and additionally wanted more large-scale changes (test suite, neoforge support, DFU migration codec) ((of which are still planned… eventually!!)) … but then i just never took it off. well, you can’t wait around forever. also, this update is perfect for releasing as a whopping TEN issue reports were closed upon release, with countless others fixed soundlessly! credit where it’s due, there was a fair amount of community support via PRs for this release, but that doesn’t take away from the benefit we as a community experience from it being added! while we’re out here celebrating these crushed bugs, new features, and the return to release-channel versions, i think it’s safe to say chat patches is worthy of shipping too! i hope you’ve enjoyed using chat patches and it’s bettered your minecraft experience - and if you haven’t used it, i hope you’ll give it a try and let me know what you think. thanks again to everyone who contributed and cheers to even more fixes and features in the future! 🎉🥳💃🎈
Ships:
This is Chat Patches! I’m gonna cut to the chase and explain the process of developing recently because everything about the mod is on the GitHub readme, in the changelog, and in these devlogs. Recently I’ve found time management difficult and as a result I’ve had to be more efficient and creative about how I’m spending my time developing. There’s been an influx in community contributions via PR which has been quite helpful, but most is still left up to me. However, one benefit of not having as much time to work on things is that issues I can’t seem to solve have more time for me to simmer and ponder to come up with solutions. however, this has postponed some big features i’ve already been putting off even more… hopefully i can get around to those and find some breakthrough point to pull myself through. anyways, in terms of changes, most of it has been bugfixes, but there have been a handful of additions recently, especially related to new configuration options (compact-safe messages, human-readable time format, cleaner context menu, etc.) - of course with plans to add many more. i’m proud of all these features and how far the mod has come, and frankly i’m surprised im even still developing it. i hope i can get the bigger stuff done soon so i can move on to bigger things, though. to test the mod, just set up fabricmc as explained on their website or via literally any modded minecraft tutorial - i recommend using a third-party launcher such as PrismLauncher as it keeps track of everything for you and wraps it in a nice interface. once your installation is ready simply add chat patches and its dependencies (again, using a launcher will help as it will add the deps for you!) and run the game! i hope your experience is bettered and you make the chat feel as personalized as you like :D...
|
1793152239.8973565
|
1793238639.8973565
|
|
9932
|
The Little Austronaut by @babali | Stardance
|
babali
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-06T18:15:23Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "The Little Austronaut is a modular Slack bot that brings fun to your workspace. Hit /dsb-ping to check latency, /dsb-catfact for random cat facts, /dsb-joke for laughs, or /dsb-help to see what’s available. What makes it clean: Each slash command is its own class — super easy to add new ones. Smart error handling that doesn’t break the bot or spam users with stack traces. Dynamic help that always knows what commands exist. Consistent ack / respond pattern throughout. Why you should care: Built this to show how to structure a Slack bot without spaghetti code. Commands are modular, errors are handled gracefully, and adding new features takes minutes, not hours. Perfect starter template for anyone building Slack bots. Tech: Node.js, Slack Bolt, Axios, Socket Mode. To run it: Grab your Slack bot and app tokens, drop them in .env, run npm start, and start slashing.", "repo": "https://github.com/babali-eren/The-Little-Austronaut", "demo": "https://hackclub.enterprise.slack.com/archives/C01D7AHKMPF"}]...
|
[{"post_id": 3646, "ts": "2026 [{"post_id": 3646, "ts": "2026-06-06T17:45:52Z", "hours": 0.6106, "text": "Hi There, Finished the Stardance Slack Bot, Did a little cleanup, moved each slash command into its own class under commands. Made a BaseCommand so they all behave the same and don’t scream at errors. Pulled the registration logic out of index.js and now it just loads and registers the command objects. Now way cleaner and less spaghetti. Wrote (thanks gpt) a tiny README.md so whoever clones this isn’t lost at 2am. I tweaked the command logic compared to the tutorial. Thanks for reading :)"}]...
|
Title: The Little Austronaut by @babali | Stardanc Title: The Little Austronaut by @babali | Stardance
Devlogs:
Hi There, Finished the Stardance Slack Bot, Did a little cleanup, moved each slash command into its own class under commands. Made a BaseCommand so they all behave the same and don’t scream at errors. Pulled the registration logic out of index.js and now it just loads and registers the command objects. Now way cleaner and less spaghetti. Wrote (thanks gpt) a tiny README.md so whoever clones this isn’t lost at 2am. I tweaked the command logic compared to the tutorial. Thanks for reading :)
Ships:
The Little Austronaut is a modular Slack bot that brings fun to your workspace. Hit /dsb-ping to check latency, /dsb-catfact for random cat facts, /dsb-joke for laughs, or /dsb-help to see what’s available. What makes it clean: Each slash command is its own class — super easy to add new ones. Smart error handling that doesn’t break the bot or spam users with stack traces. Dynamic help that always knows what commands exist. Consistent ack / respond pattern throughout. Why you should care: Built this to show how to structure a Slack bot without spaghetti code. Commands are modular, errors are handled gracefully, and adding new features takes minutes, not hours. Perfect starter template for anyone building Slack bots. Tech: Node.js, Slack Bolt, Axios, Socket Mode. To run it: Grab your Slack bot and app tokens, drop them in .env, run npm start, and start slashing....
|
1793123463.2614455
|
1793209863.2614455
|
|
9943
|
pixdraw by @ttyChud | Stardance
|
ttyChud
|
1
|
9.0
|
70
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-26T15:13:23Z", "hours": 9.0, "multiplier": 7.01, "payout": 70, "blessing": "neutral", "text": "pixdraw is a terminal canvas. you can draw what ever in the terminal. you can also load png files from your local storage and edit them in pixel style. just press ? for more command there are many i hope u enjoy", "repo": "https://github.com/Himanshu121865/pixdraw", "demo": "https://crates.io/crates/pixdraw"}]...
|
[{"post_id": 16301, "ts": "202 [{"post_id": 16301, "ts": "2026-06-26T15:04:05Z", "hours": 9.2331, "text": "pixdraw ##Terminal-based pixel art editor You can draw anything."}]...
|
Title: pixdraw by @ttyChud | Stardance
Devlogs:
p Title: pixdraw by @ttyChud | Stardance
Devlogs:
pixdraw ##Terminal-based pixel art editor You can draw anything.
Ships:
pixdraw is a terminal canvas. you can draw what ever in the terminal. you can also load png files from your local storage and edit them in pixel style. just press ? for more command there are many i hope u enjoy...
|
1792878552.4250941
|
1793742552.4250941
|
|
9944
|
isflac by @temidaradev | Stardance
|
temidaradev
|
1
|
2.0
|
20
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-15T11:20:12Z", "hours": 2.0, "multiplier": 12.06, "payout": 20, "blessing": "neutral", "text": "I made flac checker and its working pretty well i guess, instead of checking spectogram of each song this is a solid tool imho", "repo": "https://github.com/temidaradev/isflac", "demo": "https://crates.io/crates/isflac"}]...
|
[{"post_id": 9171, "ts": "2026 [{"post_id": 9171, "ts": "2026-06-15T11:19:17Z", "hours": 0.7067, "text": "fixed inconsistent scans so and also added recursive scanning"}, {"post_id": 3602, "ts": "2026-06-06T16:29:56Z", "hours": 0.9619, "text": "it works properly with this you can check your flac files and see if they are remuxed from lossy audio codecs and treat however you like .d"}]...
|
Title: isflac by @temidaradev | Stardance
Devlogs Title: isflac by @temidaradev | Stardance
Devlogs:
it works properly with this you can check your flac files and see if they are remuxed from lossy audio codecs and treat however you like .d
fixed inconsistent scans so and also added recursive scanning
Ships:
I made flac checker and its working pretty well i guess, instead of checking spectogram of each song this is a solid tool imho...
|
1793119783.9322534
|
1793206183.9322534
|
|
9945
|
Square-Dodger by @k_nilesh | Stardance
|
k_nilesh
|
1
|
0.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-05T09:37:55Z", "hours": 0.0, "multiplier": 1.45, "payout": 0, "blessing": "neutral", "text": "I built Square Dodger, a browser-based arcade game using only HTML, CSS, and JavaScript where players control a square and dodge falling enemy blocks to achieve the highest possible score. The most challenging part was implementing smooth collision detection, maintaining consistent game performance, and balancing the difficulty so the game becomes more challenging without feeling unfair. I’m proud of creating a complete, responsive game without using any external libraries or frameworks while keeping the gameplay simple, polished, and enjoyable. To test the project, simply open the game in any modern web browser, use the Left/Right Arrow keys or A/D to move, avoid the falling blocks, try to survive as long as possible to increase your score, and use the Restart button to play again after a Game Over.", "repo": "https://github.com/k-nilesh04/Square-Dodger", "demo": "https://k-nilesh04.github.io/Square-Dodger/"}]...
|
[{"post_id": 22723, "ts": "202 [{"post_id": 22723, "ts": "2026-07-05T09:35:57Z", "hours": 0.3356, "text": "Square Dodger is a lightweight browser-based arcade game built with pure HTML, CSS, and JavaScript. Control your square, dodge falling enemy blocks, and survive as long as possible while your score increases. The game features responsive gameplay, progressive difficulty, real-time score tracking, keyboard controls (Arrow Keys/A-D), and a restart option after Game Over—all without using any external libraries or frameworks."}]...
|
Title: Square-Dodger by @k_nilesh | Stardance
Dev Title: Square-Dodger by @k_nilesh | Stardance
Devlogs:
Square Dodger is a lightweight browser-based arcade game built with pure HTML, CSS, and JavaScript. Control your square, dodge falling enemy blocks, and survive as long as possible while your score increases. The game features responsive gameplay, progressive difficulty, real-time score tracking, keyboard controls (Arrow Keys/A-D), and a restart option after Game Over—all without using any external libraries or frameworks.
Ships:
I built Square Dodger, a browser-based arcade game using only HTML, CSS, and JavaScript where players control a square and dodge falling enemy blocks to achieve the highest possible score. The most challenging part was implementing smooth collision detection, maintaining consistent game performance, and balancing the difficulty so the game becomes more challenging without feeling unfair. I’m proud of creating a complete, responsive game without using any external libraries or frameworks while keeping the gameplay simple, polished, and enjoyable. To test the project, simply open the game in any modern web browser, use the Left/Right Arrow keys or A/D to move, avoid the falling blocks, try to survive as long as possible to increase your score, and use the Restart button to play again after a Game Over....
|
1793069330.3752766
|
1793155730.3752766
|
|
9961
|
Koganeee by @quintessence24 | Stardance
|
quintessence24
|
1
|
6.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-20T23:30:59Z", "hours": 6.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "As a Jujutsu Kaisen fan and an admirer of flying pets, I wanted to make Kogane for my room. The objective of Kogane is to be a person-following flying pet assistant that can communicate with voice and through a retractable screen, sort of like a flying Alexa but friendlier! I also wanted to make drones for a while and it seemed like a cool approach to make Kogane. A use case that I had in mind is when I’m working in my room and my hands are busy and if I need to quickly pull up a tutorial, I would normally have to put things down to find my laptop. Instead with Kogane, I can call for Kogane wherever I am in my room and quickly check for information or pull up a Youtube tutorial from its screen without any physical contact. I got everything to work on a very close call, but my harnesses weren’t very strong and accidentally tangled with the propeller for a second, causing a motor to burn up and failing the first test flight (and of course, the shell for Koganeee was pretty but reduced performance aerodynamically). Nonetheless, all of the tests passed and I just need to swap out the motor, but still a successful project regardless and I’m proud of everything I was able to learn, whether it be firmware and networking with the ESP32, the endless soldering sessions for different kinds of components, taking care of batteries, etc. Check out my project and of course, contact me on Slack (sujaygolla24) for questions or just to nerd out about JJK or other anime!!! :D", "repo": "https://github.com/Sujay-Golla/koganeee", "demo": ""}]...
|
[{"post_id": 81355, "ts": "202 [{"post_id": 81355, "ts": "2026-10-20T23:13:21Z", "hours": 6.1683, "text": "Devlog #4 - Preparing and starting build Summary Had to unpack and arrange all of the electronics I received, checked connectors and what I needed to make connectors for again. Realized I had designed for JST-XH rather than JST-SH connectors so spent a while trying to learn all of the different types of connectors so that I can avoid making the same mistake again For the time being, I stripped wires, crimped them and used my JST-XH connectors for the FC to ESC connection I had no idea how to solder XT60 connectors so I had to learn, and then after a while, I realized I needed to connect a male female pair at the end to avoid deformation so I had wasted the soldering session Next Steps Noticed that JOURNAL.md is more preferred for hardware projects, so I will be switching to that for future documentation Will continue soldering, wiring and coding step by step, but more specifically, I will work on checking if the ESC to FC connection works and if I can power the 5V rail on the board"}, {"post_id": 22542, "ts": "2026-07-05T02:00:31Z", "hours": 16.4061, "text": "Devlog #3 - Finishing the CAD and Ready to Ship Summary Finished the CAD for Kogane, the drone and the ground station Vibe coded firmware temporarily and tested functionality with my laptop webcam manually Finished documentation and shipping it to Outpost Next Steps Once approved, I have to order and build Will work on firmware while waiting for the parts to arrive to save time"}, {"post_id": 21100, "ts": "2026-07-02T21:54:54Z", "hours": 16.3197, "text": "Devlog #2 - Finishing the FC PCB Summary Followed the tutorial for tips to layout the board Used more tutorials and datasheets to understand different concepts of board layout like via stitching and filled zones Made a 4-layer PCB for the first time and learned how to connect power and grounds to appropriate components with vias Learned different routing practices, and despite the suboptimal routing, I am pretty confident now that it will at least be functional Next Steps Finishing the CAD model and final BOM Finishing the firmware template, maybe even using some cameras to test the positioning system"}, {"post_id": 15499, "ts": "2026-06-25T06:02:25Z", "hours": 25.7803, "text": "Devlog #1 [Real] - Schematic design and shopping Summary Used various different sources to learn about different components used in FCs Learned how to use datasheets, Webench, LCSC part selections, etc. Spent time reviewing different requirements for batteries and W/T ratios for drones in general and picking the right batteries and circuit designs Spent a lot of time scoping and rescoping the PCB, including having to remove battery charger and using an external ESC as it was too complex and tight for the compact PCB, especially while having a separate MCU and a lot of other peripherals Learned how to use the STM32CubeMX firmware and how different protocols worked Started exploring PCB editor and systematically arranging components Next Steps Finish arranging PCB Route the PCB and get it verified Finish the CAD model and final BOM Come up with a basic template for firmware"}, {"post_id": 8169, "ts": "2026-06-13T16:44:15Z", "hours": 1.3878, "text": "Spent some time figuring out how to deal with the placement of different components and the scope of this project. Firstly, I decided that it made sense to use lightweight models for voice and video, keeping it limited so that it can run independently on A7S rather than relying on my laptop. Then I decided to have 2 mmWave sensors to cover blindspots and detect position of humans in the room, and decided it would be cool to integrate CV with mmWave, so added a fixed camera to help inform the drone position. A small FPV camera on the drone can allow it to avoid obstacles, and it would be cool to integrate VISTA (a research paper about drones navigating unknown maps) at least for initial calibration. Still figuring out the feasibility of a custom FC or if it would be easier to have a basic FC and a separate ESP32 for communication, camera and for extending the project to control servos for the rolling screen and a gripper in the future. Drafted the BOM but will find more stuff on AliExpress tomorrow. I also explored how to use Hackatime with Onshape and started making the head of Kogane"}]...
|
Title: Koganeee by @quintessence24 | Stardance
De Title: Koganeee by @quintessence24 | Stardance
Devlogs:
Spent some time figuring out how to deal with the placement of different components and the scope of this project. Firstly, I decided that it made sense to use lightweight models for voice and video, keeping it limited so that it can run independently on A7S rather than relying on my laptop. Then I decided to have 2 mmWave sensors to cover blindspots and detect position of humans in the room, and decided it would be cool to integrate CV with mmWave, so added a fixed camera to help inform the drone position. A small FPV camera on the drone can allow it to avoid obstacles, and it would be cool to integrate VISTA (a research paper about drones navigating unknown maps) at least for initial calibration. Still figuring out the feasibility of a custom FC or if it would be easier to have a basic FC and a separate ESP32 for communication, camera and for extending the project to control servos for the rolling screen and a gripper in the future. Drafted the BOM but will find more stuff on AliExpress tomorrow. I also explored how to use Hackatime with Onshape and started making the head of Kogane
Devlog #1 [Real] - Schematic design and shopping Summary Used various different sources to learn about different components used in FCs Learned how to use datasheets, Webench, LCSC part selections, etc. Spent time reviewing different requirements for batteries and W/T ratios for drones in general and picking the right batteries and circuit designs Spent a lot of time scoping and rescoping the PCB, including having to remove battery charger and using an external ESC as it was too complex and tight for the compact PCB, especially while having a separate MCU and a lot of other peripherals Learned how to use the STM32CubeMX firmware and how different protocols worked Started exploring PCB editor and systematically arranging components Next Steps Finish arranging PCB Route the PCB and get it verified Finish the CAD model and final BOM Come up with a basic template for firmware
Devlog #2 - Finishing the FC PCB Summary Followed the tutorial for tips to layout the board Used more tutorials and datasheets to understand different concepts of board layout like via stitching and filled zones Made a 4-layer PCB for the first time and learned how to connect power and grounds to appropriate components with vias Learned different routing practices, and despite the suboptimal routing, I am pretty confident now that it will at least be functional Next Steps Finishing the CAD model and final BOM Finishing the firmware template, maybe even using some cameras to test the positioning system
Devlog #3 - Finishing the CAD and Ready to Ship Summary Finished the CAD for Kogane, the drone and the ground station Vibe coded firmware temporarily and tested functionality with my laptop webcam manually Finished documentation and shipping it to Outpost Next Steps Once approved, I have to order and build Will work on firmware while waiting for the parts to arrive to save time
Devlog #4 - Preparing and starting build Summary Had to unpack and arrange all of the electronics I received, checked connectors and what I needed to make connectors for again. Realized I had designed for JST-XH rather than JST-SH connectors so spent a while trying to learn all of the different types of connectors so that I can avoid making the same mistake again For the time being, I stripped wires, crimped them and used my JST-XH connectors for the FC to ESC connection I had no idea how to solder XT60 connectors so I had to learn, and then after a while, I realized I needed to connect a male female pair at the end to avoid deformation so I had wasted the soldering session Next Steps Noticed that JOURNAL.md is more preferred for hardware projects, so I will be switching to that for future documentation Will continue soldering, wiring and coding step by step, but more specifically, I will work on checking if the ESC to FC connection works and if I can power the 5V rail on the board
Ships:
As a Jujutsu Kaisen fan and an admirer of flying pets, I wanted to make Kogane for my room. The objective of Kogane is to be a person-following flying pet assistant that can communicate with voice and through a retractable screen, sort of like a flying Alexa but friendlier! I also wanted to make drones for a while and it seemed like a cool approach to make Kogane. A use case that I had in mind is when I’m working in my room and my hands are busy and if I need to quickly pull up a tutorial, I would normally have to put things down to find my laptop. Instead with Kogane, I can call for Kogane wherever I am in my room and quickly check for information or pull up a Youtube tutorial from its screen without any physical contact. I got everything to work on a very close call, but my harnesses weren’t very strong and accidentally tangled with the propeller for a second, causing a motor to burn up and failing the first test flight (and of course, the shell for Koganeee was pretty but reduced performance aerodynamically). Nonetheless, all of the tests passed and I just need to swap out the motor, but still a successful project regardless and I’m proud of everything I was able to learn, whether it be firmware and networking with the ESP32, the endless soldering sessions for different kinds of components, taking care of batteries, etc. Check out my project and of course, contact me on Slack (sujaygolla24) for questions or just to nerd out about JJK or other anime!!! :D...
|
1793155987.6299675
|
1793242387.6299675
|
|
9968
|
Hyper bot by @sanjaybinayak778 | Stardance
|
sanjaybinayak778
|
1
|
9.8
|
70
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-18T15:24:37Z", "hours": 8.0, "multiplier": 8.56, "payout": 70, "blessing": "neutral", "text": "🚀 What I Made: I built a feature-packed Slack workspace assistant alongside a public web UI dashboard. Both layers are written in Node.js, utilizing Express for the web dashboard and the @slack /bolt SDK running over an active Socket Mode connection for the backend. The bot ships with an extensive suite of commands, including: /ssb-web: Real-time organic search queries utilizing SerpApi. /ssb-website & /ssb-ipinfo: Advanced network utility features to query target DNS pathways and scrape physical server geolocations. /ssb-weather: Live, text-formatted weather reports fetched directly via wttr.in. /ssb-trivia, /ssb-joke, /ssb-catfact, /ssb-gif, and /ssb-ping. 🧠 What Was Challenging: Asynchronous Integration: Handling several completely distinct external API architectures cleanly inside independent asynchronous callback functions. Port Management: Configuring the concurrent setups so that the static landing page listener on Express would not clash with the socket connection streams on local environment testing or deployment containers. Payload Sanitation: Writing robust string parsers to clean up Slack’s default markdown brackets and protocol wrappers before forwarding domain variables to Cloudflare’s JSON-DNS endpoints. ✨ What I’m Proud Of: I’m incredibly proud of building a fully modular application structure that far exceeds the initial requirements of the challenge. I managed to integrate multiple real-world data pipelines securely while creating clear documentation—complete with an architectural flow diagram mapping out the entire system lifecycle. 👉 How to Test: Visit my demo site on: sanjaybinayak.hackclub.app Add the bot to a channel in your demo workspace and try executing: Plaintext /ssb-help /ssb-weather Boston /ssb-website google.com /ssb-web Nodejs tutorial I also wanted to add a ai feature using Gemini API but i was unable to get it.", "repo": "https://github.com/SanjayBinayak/my-slack-bot", "demo": "https://sanjaybinayak.hackclub.app/"}]...
|
[{"post_id": 12993, "ts": "202 [{"post_id": 12993, "ts": "2026-06-21T07:45:44Z", "hours": 1.8008, "text": "I was requested to fix my /ssb-userinfo command, and I fixed it just now. My users and links from slack command were not escaping to my bot, instead it was receiving plain text. So i fixed my slack API commands and improved my code."}, {"post_id": 11326, "ts": "2026-06-18T15:09:20Z", "hours": 3.2333, "text": "I made a Demo Web for my bot and patched up this project you can check demo site on sanjaybinayak.hackclub.app"}, {"post_id": 8545, "ts": "2026-06-14T06:33:27Z", "hours": 0.5189, "text": "Finally pushed it into git repo and setup ssh server to run it 24/7"}, {"post_id": 8307, "ts": "2026-06-13T20:20:38Z", "hours": 3.8678, "text": "I added some new commands but it took a bunch of my time. I found myself stuck in adding /ssb-weather and /ssb-ipinfo because I was unable to get Web API and format right. Well the rest were not much of a problem, so it went smooth after that."}, {"post_id": 4251, "ts": "2026-06-07T14:31:27Z", "hours": 0.6436, "text": "My first Slack-bot Hi! I’m Sanjay. I am really interested in making a chatbot of my own but I am a newbie coder so i thought i should start from this slack bot ( because it was recommended here). What will it do (for now): /ssb-ping - tell your ping. /ssb-catfact - tell you a cat fact. Challenge : In Installing prerequisites in my ssh server (I forgot to log into my ssh server in cmd). I will add more commands in future. You can use it by adding thee bot in your channel and using these commands."}]...
|
Title: Hyper bot by @sanjaybinayak778 | Stardance
Title: Hyper bot by @sanjaybinayak778 | Stardance
Devlogs:
My first Slack-bot Hi! I’m Sanjay. I am really interested in making a chatbot of my own but I am a newbie coder so i thought i should start from this slack bot ( because it was recommended here). What will it do (for now): /ssb-ping - tell your ping. /ssb-catfact - tell you a cat fact. Challenge : In Installing prerequisites in my ssh server (I forgot to log into my ssh server in cmd). I will add more commands in future. You can use it by adding thee bot in your channel and using these commands.
I added some new commands but it took a bunch of my time. I found myself stuck in adding /ssb-weather and /ssb-ipinfo because I was unable to get Web API and format right. Well the rest were not much of a problem, so it went smooth after that.
Finally pushed it into git repo and setup ssh server to run it 24/7
I made a Demo Web for my bot and patched up this project you can check demo site on sanjaybinayak.hackclub.app
I was requested to fix my /ssb-userinfo command, and I fixed it just now. My users and links from slack command were not escaping to my bot, instead it was receiving plain text. So i fixed my slack API commands and improved my code.
Ships:
🚀 What I Made: I built a feature-packed Slack workspace assistant alongside a public web UI dashboard. Both layers are written in Node.js, utilizing Express for the web dashboard and the @slack /bolt SDK running over an active Socket Mode connection for the backend. The bot ships with an extensive suite of commands, including: /ssb-web: Real-time organic search queries utilizing SerpApi. /ssb-website & /ssb-ipinfo: Advanced network utility features to query target DNS pathways and scrape physical server geolocations. /ssb-weather: Live, text-formatted weather reports fetched directly via wttr.in. /ssb-trivia, /ssb-joke, /ssb-catfact, /ssb-gif, and /ssb-ping. 🧠 What Was Challenging: Asynchronous Integration: Handling several completely distinct external API architectures cleanly inside independent asynchronous callback functions. Port Management: Configuring the concurrent setups so that the static landing page listener on Express would not clash with the socket connection streams on local environment testing or deployment containers. Payload Sanitation: Writing robust string parsers to clean up Slack’s default markdown brackets and protocol wrappers before forwarding domain variables to Cloudflare’s JSON-DNS endpoints. ✨ What I’m Proud Of: I’m incredibly proud of building a fully modular application structure that far exceeds the initial requirements of the challenge. I managed to integrate multiple real-world data pipelines securely while creating clear documentation—complete with an architectural flow diagram mapping out the entire system lifecycle. 👉 How to Test: Visit my demo site on: sanjaybinayak.hackclub.app Add the bot to a channel in your demo workspace and try executing: Plaintext /ssb-help /ssb-weather Boston /ssb-website google.com /ssb-web Nodejs tutorial I also wanted to add a ai feature using Gemini API but i was unable to get it....
|
1793080111.0323365
|
1793166511.0323365
|
|
9971
|
Portefolio by @Wolfy1337 | Stardance
|
Wolfy1337
|
1
|
1.0
|
3
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-07T17:01:39Z", "hours": 1.0, "multiplier": 2.15, "payout": 3, "blessing": "neutral", "text": "Portefolio", "repo": "https://github.com/Dantech244/portfolio", "demo": "https://dantech244.github.io/portfolio/"}]...
|
[{"post_id": 4343, "ts": "2026 [{"post_id": 4343, "ts": "2026-06-07T17:00:13Z", "hours": 0.4378, "text": "Portfolio"}, {"post_id": 4174, "ts": "2026-06-07T12:11:37Z", "hours": 0.6931, "text": "Monportfolio avance"}, {"post_id": 3640, "ts": "2026-06-06T17:39:06Z", "hours": 0.3375, "text": "Make a website for my professional project"}]...
|
Title: Portefolio by @Wolfy1337 | Stardance
Devlo Title: Portefolio by @Wolfy1337 | Stardance
Devlogs:
Make a website for my professional project
Monportfolio avance
Portfolio
Ships:
Portefolio...
|
1793109242.9901254
|
1793195642.9901254
|
|
9976
|
Timeline view in portfolio website by @M_Ahmed | S Timeline view in portfolio website by @M_Ahmed | Stardance...
|
M_Ahmed
|
1
|
5.0
|
12
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-24T11:32:47Z", "hours": 5.0, "multiplier": 2.57, "payout": 12, "blessing": "neutral", "text": "I Made an Animated Timeline Section in my portfolio website which showcases all my updates and learning over years. It was very challenging to align the items in mobile screen because the animated vertical line was not fitting but i just managed it out.", "repo": "https://github.com/Ak-Web-Dev/ak-dev", "demo": "https://ak-dev.is-a.dev"}]...
|
[{"post_id": 8006, "ts": "2026 [{"post_id": 8006, "ts": "2026-06-13T11:09:29Z", "hours": 3.1986, "text": "Project completed! The timeline section of my portfolio is now finally completed. I Completed all remaining CSS styling and optimized for mobile screens. I also animated the cards and added a nice background image too. I also used JS to trigger the animated line of .timeline::after only when in viewport. The overall features of the timeline are: -> Showcase my web development advancements over the years in animated cards. -> The cards appear side by side with an animated line in middle for desktop screens. -> The cards are on right side with the animated line on left for mobile screens. -> Have icons and pictures of projects in timeline. -> A nice background image to complete the feel. -> Optimized to be responsive enough to fit on a smartwatch’s (SWR50) screen similar to rest of the website. Try it now at my website and tell what you think: https://ak-dev.is-a.dev Plus, you can also review me about the rest of the website as well."}, {"post_id": 5667, "ts": "2026-06-09T15:25:10Z", "hours": 1.0425, "text": "Completed styling for Timeline cards with css adn added an animated vertical line in middle. The whole thing is still under-progress for further refinement and UI tweaks."}, {"post_id": 3630, "ts": "2026-06-06T17:23:59Z", "hours": 0.3225, "text": "I am making a timeline view for my portfolio website. i have just started making the structure. i will make an AOS animation powered tiles to appear side by side to make a timeline showing my progress in web development."}]...
|
Title: Timeline view in portfolio website by @M_Ah Title: Timeline view in portfolio website by @M_Ahmed | Stardance
Devlogs:
I am making a timeline view for my portfolio website. i have just started making the structure. i will make an AOS animation powered tiles to appear side by side to make a timeline showing my progress in web development.
Completed styling for Timeline cards with css adn added an animated vertical line in middle. The whole thing is still under-progress for further refinement and UI tweaks.
Project completed! The timeline section of my portfolio is now finally completed. I Completed all remaining CSS styling and optimized for mobile screens. I also animated the cards and added a nice background image too. I also used JS to trigger the animated line of .timeline::after only when in viewport. The overall features of the timeline are: -> Showcase my web development advancements over the years in animated cards. -> The cards appear side by side with an animated line in middle for desktop screens. -> The cards are on right side with the animated line on left for mobile screens. -> Have icons and pictures of projects in timeline. -> A nice background image to complete the feel. -> Optimized to be responsive enough to fit on a smartwatch’s (SWR50) screen similar to rest of the website. Try it now at my website and tell what you think: https://ak-dev.is-a.dev Plus, you can also review me about the rest of the website as well.
Ships:
I Made an Animated Timeline Section in my portfolio website which showcases all my updates and learning over years. It was very challenging to align the items in mobile screen because the animated vertical line was not fitting but i just managed it out....
|
1793134038.5826826
|
1793220438.5826826
|
|
9984
|
Minigames Slackbot by @blazfoxx | Stardance
|
blazfoxx
|
1
|
1.0
|
3
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-07T15:46:15Z", "hours": 1.0, "multiplier": 1.83, "payout": 3, "blessing": "neutral", "text": "Challenging part was just mostly setting up the bot. Never used slack before, and never used their bot system. Setting it up and having all of those new things to do was the sole challenge", "repo": "https://github.com/blazfxx/hacktime-slackbot", "demo": "https://app.slack.com/client/E09V59WQY1E/C08E083LZ9A"}]...
|
[{"post_id": 3938, "ts": "2026 [{"post_id": 3938, "ts": "2026-06-07T02:07:46Z", "hours": 0.565, "text": "Tried adding an AI chat feature to my slack bot but couldn’t get it to work… Messages would send, but no output… and nothing in terminal. Ok nevermind. Realized that; the model wasn’t working and was too slow. The code changes wouldn’t apply when bot is running -> needed a restart Fixed by changing model and having output be printed in terminal to catch any errors … This means you can ask the slackbot any question This might be it for this slackbot… might move over to some kind of new project"}, {"post_id": 3922, "ts": "2026-06-07T01:13:07Z", "hours": 0.5342, "text": "Added 2 new commands to my slack project! I added a rock paper scissors command: /blaze-rps The user chooses an option from a list: rock, paper or scissors. Then, the bot chooses a random one. There is a hardcoded list in the code for saying what beats what. … yep Also added “flip a coin” which basically just picks a random option between heads and tails and tells the user the answer"}, {"post_id": 3742, "ts": "2026-06-06T19:45:45Z", "hours": 0.1936, "text": "New to slack bot This is my first time making a slackbot app…. Decided t go with python as it is the easiest and I know it pretty well. I started off by getting an understanding on how to even run a bot. I was more used to discord bots, and this was quite different, with us having to add commands on the webpage and such. Once I got the hang of it, I created a bot.py and a tictactoe.py file. The tictactoe file had the base of how my tictactoe game worked and such while the bot.py was where the command system lived. It just had like, responses to commands, what happens if X happened… yeah The one and only command I have for now is: /3t -> play the game with /3t start -> place a piece with /3t move <1-9> -> quit with /3t quit I will continue this project under “slackbot” time"}]...
|
Title: Minigames Slackbot by @blazfoxx | Stardance Title: Minigames Slackbot by @blazfoxx | Stardance
Devlogs:
New to slack bot This is my first time making a slackbot app…. Decided t go with python as it is the easiest and I know it pretty well. I started off by getting an understanding on how to even run a bot. I was more used to discord bots, and this was quite different, with us having to add commands on the webpage and such. Once I got the hang of it, I created a bot.py and a tictactoe.py file. The tictactoe file had the base of how my tictactoe game worked and such while the bot.py was where the command system lived. It just had like, responses to commands, what happens if X happened… yeah The one and only command I have for now is: /3t -> play the game with /3t start -> place a piece with /3t move <1-9> -> quit with /3t quit I will continue this project under “slackbot” time
Added 2 new commands to my slack project! I added a rock paper scissors command: /blaze-rps The user chooses an option from a list: rock, paper or scissors. Then, the bot chooses a random one. There is a hardcoded list in the code for saying what beats what. … yep Also added “flip a coin” which basically just picks a random option between heads and tails and tells the user the answer
Tried adding an AI chat feature to my slack bot but couldn’t get it to work… Messages would send, but no output… and nothing in terminal. Ok nevermind. Realized that; the model wasn’t working and was too slow. The code changes wouldn’t apply when bot is running -> needed a restart Fixed by changing model and having output be printed in terminal to catch any errors … This means you can ask the slackbot any question This might be it for this slackbot… might move over to some kind of new project
Ships:
Challenging part was just mostly setting up the bot. Never used slack before, and never used their bot system. Setting it up and having all of those new things to do was the sole challenge...
|
1793116413.074656
|
1793202813.074656
|
|
10003
|
My first slack bot! by @lemony-tater | Stardance
|
lemony-tater
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-07T22:00:59Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a basic slack bot using javascript. It can tell jokes, give cat facts, give usage guidance, and check connection and latency. The most difficult part was learning javascript as it was a new language to me. Try /lemon-help, /lemon-joke, /lemon-ping, and /lemon-catfact in slack.", "repo": "https://github.com/lemony-tater-tot/my-slackbot", "demo": "https://hackclub.enterprise.slack.com/archives/C0APH2MMHH7"}]...
|
[{"post_id": 4549, "ts": "2026 [{"post_id": 4549, "ts": "2026-06-07T21:53:32Z", "hours": 0.5728, "text": "Finishing up the commands"}]...
|
Title: My first slack bot! by @lemony-tater | Star Title: My first slack bot! by @lemony-tater | Stardance
Devlogs:
Finishing up the commands
Ships:
I made a basic slack bot using javascript. It can tell jokes, give cat facts, give usage guidance, and check connection and latency. The most difficult part was learning javascript as it was a new language to me. Try /lemon-help, /lemon-joke, /lemon-ping, and /lemon-catfact in slack....
|
1793105503.1050472
|
1793191903.1050472
|
|
10005
|
Raspberry Pi AI Camera by @rainope | Stardance
|
rainope
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-20T00:30:35Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Raspberry Pi 5 security camera using the IMX500 AI sensor for person detection and on-device face recognition, with a live web dashboard.", "repo": "https://github.com/eric-feng14/security_cam", "demo": ""}]...
|
[{"post_id": 31523, "ts": "202 [{"post_id": 31523, "ts": "2026-07-20T00:24:05Z", "hours": 0.8669, "text": "Just finished facial detection; added a simple database."}]...
|
Title: Raspberry Pi AI Camera by @rainope | Starda Title: Raspberry Pi AI Camera by @rainope | Stardance
Devlogs:
Just finished facial detection; added a simple database.
Ships:
Raspberry Pi 5 security camera using the IMX500 AI sensor for person detection and on-device face recognition, with a live web dashboard....
|
1793102137.4905012
|
1793188537.4905012
|
|
10021
|
personal website by @orangishcat | Stardance
|
orangishcat
|
1
|
24.0
|
223
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-30T23:32:43Z", "hours": 24.0, "multiplier": 9.16, "payout": 223, "blessing": "neutral", "text": "My favorite project, and also the best one I’ve ever made! Please read my devlog for more details and easter eggs: https://orangishcat.neocities.org/blog/personal-website/", "repo": "https://github.com/orangishcat/orangishcat.github.io", "demo": "https://orangishcat.neocities.org/"}]...
|
[{"post_id": 37935, "ts": "202 [{"post_id": 37935, "ts": "2026-07-30T23:20:23Z", "hours": 4.6331, "text": "Hi voters! Stardance isn’t the greatest for devlogging art, so read my blog post instead! https://orangishcat.neocities.org/blog/personal-website/ Just some small changes since then. I’ve made the background less orange and instead blue. The orange theme was making the orange background look terrible, so I changed it to blue, which matches better with the color of a night sky. Updated the games list. As it turns out, there’s a lot of cool games out there! Added more links to the Links part of the sidebar."}, {"post_id": 29631, "ts": "2026-07-16T18:04:57Z", "hours": 4.1481, "text": "Hi voters! Stardance isn’t the greatest for devlogging art, so read my blog post instead! https://orangishcat.neocities.org/blog/personal-website/ everything is done!!! I added background art with the Moon and stars, and added my blog posts to the right sidebar! it took like an hour to debug all the issues with the MDX integration and UI layout, but it was mostly successful and super worth it!"}, {"post_id": 28554, "ts": "2026-07-14T21:34:02Z", "hours": 8.9608, "text": "Hi voters! Stardance isn’t the greatest for devlogging art, so read my blog post instead! https://orangishcat.neocities.org/blog/personal-website/ the website is pretty much done! All the content and whatnot is complete, I just need to add some blog posts to fill up the blog space!"}, {"post_id": 22210, "ts": "2026-07-04T15:57:11Z", "hours": 1.5711, "text": "Hi voters! Stardance isn’t the greatest for devlogging art, so read my blog post instead! https://orangishcat.neocities.org/blog/personal-website/ after spending like 15 hours drawing assets and staring at a wall trying to think of stuff, i have finally started coding. not all the assets are done yet, but i need to start coding so i don’t keep staring at a wall… anyway, ima talk about coding. css grid is so cool! you can do all sorts of layouts so easily, and tailwindcss + css grid tricks make developing quite a breeze. really cool stuff!"}, {"post_id": 4717, "ts": "2026-06-08T04:25:47Z", "hours": 5.0586, "text": "Hi voters! Stardance isn’t the greatest for devlogging art, so read my blog post instead! https://orangishcat.neocities.org/blog/personal-website/ First devlog! I’ve never made a personal website before, so I want to do it right. I’m planning to go heavy with lots of art and web design. This is my first time ever doing art, and I quickly decided to do pixel art as it’s a lot easier than digital painting. I’ve made a few assets and am planning to do a lot more! In the beginning it was quite rough and my drawings looked terrible, but after a few days it turned out much better than I was expecting, and I even applied some Minecraft building concepts! Like, for example: Outline first, then color, then details. The final result won’t look good if the shape isn’t right. Details are what turns a good Minecraft build (or drawing, in this case) great. Once you think you’re done, think about what details you could add. Then repeat. You should be able to do this a lot more times than you think, and it’s how you improve your technique. The cat asset below took ~20 revisions. Use a reference image, or multiple. Don’t reinvent the wheel. Learn basic color theory, it’s really useful. Other than that, it just took some creativity and some trial and error."}]...
|
Title: personal website by @orangishcat | Stardanc Title: personal website by @orangishcat | Stardance
Devlogs:
Hi voters! Stardance isn’t the greatest for devlogging art, so read my blog post instead! https://orangishcat.neocities.org/blog/personal-website/ First devlog! I’ve never made a personal website before, so I want to do it right. I’m planning to go heavy with lots of art and web design. This is my first time ever doing art, and I quickly decided to do pixel art as it’s a lot easier than digital painting. I’ve made a few assets and am planning to do a lot more! In the beginning it was quite rough and my drawings looked terrible, but after a few days it turned out much better than I was expecting, and I even applied some Minecraft building concepts! Like, for example: Outline first, then color, then details. The final result won’t look good if the shape isn’t right. Details are what turns a good Minecraft build (or drawing, in this case) great. Once you think you’re done, think about what details you could add. Then repeat. You should be able to do this a lot more times than you think, and it’s how you improve your technique. The cat asset below took ~20 revisions. Use a reference image, or multiple. Don’t reinvent the wheel. Learn basic color theory, it’s really useful. Other than that, it just took some creativity and some trial and error.
Hi voters! Stardance isn’t the greatest for devlogging art, so read my blog post instead! https://orangishcat.neocities.org/blog/personal-website/ after spending like 15 hours drawing assets and staring at a wall trying to think of stuff, i have finally started coding. not all the assets are done yet, but i need to start coding so i don’t keep staring at a wall… anyway, ima talk about coding. css grid is so cool! you can do all sorts of layouts so easily, and tailwindcss + css grid tricks make developing quite a breeze. really cool stuff!
Hi voters! Stardance isn’t the greatest for devlogging art, so read my blog post instead! https://orangishcat.neocities.org/blog/personal-website/ the website is pretty much done! All the content and whatnot is complete, I just need to add some blog posts to fill up the blog space!
Hi voters! Stardance isn’t the greatest for devlogging art, so read my blog post instead! https://orangishcat.neocities.org/blog/personal-website/ everything is done!!! I added background art with the Moon and stars, and added my blog posts to the right sidebar! it took like an hour to debug all the issues with the MDX integration and UI layout, but it was mostly successful and super worth it!
Hi voters! Stardance isn’t the greatest for devlogging art, so read my blog post instead! https://orangishcat.neocities.org/blog/personal-website/ Just some small changes since then. I’ve made the background less orange and instead blue. The orange theme was making the orange background look terrible, so I changed it to blue, which matches better with the color of a night sky. Updated the games list. As it turns out, there’s a lot of cool games out there! Added more links to the Links part of the sidebar.
Ships:
My favorite project, and also the best one I’ve ever made! Please read my devlog for more details and easter eggs: https://orangishcat.neocities.org/blog/personal-website/...
|
1793101897.7762198
|
1793188297.7762198
|
|
10038
|
Prometheus by @rishithc | Stardance
|
rishithc
|
1
|
154.99
|
82
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-07T15:56:14Z", "hours": 17.0, "multiplier": 5.0, "payout": 82, "blessing": "neutral", "text": "I made an autonomous drone. The most challenging part was the soldering. The soldering was quite hard for me and there were times where i burnt my hand", "repo": "https://github.com/rishith-c/Prometheus", "demo": ""}]...
|
[{"post_id": 29001, "ts": "202 [{"post_id": 29001, "ts": "2026-07-15T17:26:17Z", "hours": 10.9361, "text": "Devlog #18: A GREAT way to start working on your project again 😩 I’ve taken a break these past few days, realizing that a vacation exists for a reason! Today, however, I didn’t want to fall behind schedule. Since I also want grants to use a premium carbon fiber frame and all I need is to finish my PCB, I spent the day working in KiCad. Truth be told, the best way to learn is by doing—I thought the same about CAD, and I feel the same about PCB design. I made the executive decision to make a double-sided PCB rather than adding more layers, as it will be much simpler. Anyway, here are my final mockups."}, {"post_id": 23548, "ts": "2026-07-06T16:03:13Z", "hours": 9.0567, "text": "Devlog #17: I tested a lot tdy as well as designed new components I submitted my project, as is, to the Outpost fund, and I got some feedback. Mostly everything was good except for some issues with funding an NVDIA devkit :))), but the biggest issue was that I couldn’t buy a flight controller. In an devlog before, I mentioned and shows a picture of me designing a custom pcb, but I have not worked on that since. So today I fired up Kikad and designed layer 2 of my FC (easier, layer one has a lot of components that I need to import). I also spent a good chunk of today refining my 3d model, I used Air Shaper and SimScale and I aerodynamic tested all of the designs, I also asked claude for some ideas of how to make my .stls better. @vrunchil7 is da goat frfr he taught me how and what kikad is."}, {"post_id": 21535, "ts": "2026-07-03T15:40:49Z", "hours": 9.8875, "text": "Devlog #16: I probably should have done this earlier :( yea so while on vacation I decided to rework the weight and thrust ratios that the motors were producing with 11x7 props. I found out that my drone will not be able to fly SMOOTHLY. So I decided too look into why, one of the big reasons were that it was heavy, and two it wasn’t aerodynamic. So today I tried to kill two birds with one stone, (I also worked on my ML for a good portion of the time, but I feel this is more important). I ran digital wind tunnel tests and kept redesigning and testing until I landed on what I have now. I plan to make this out of carbon fiber which will be expensive, but ig that’s part of the process."}, {"post_id": 19917, "ts": "2026-07-01T11:05:00Z", "hours": 4.57, "text": "Devlog #15: training my own model wasn’t the move yea so training my own model wasnt the best idea. after hours of clicking through my webscraper’s image results and marking them, i ran a benchmark myself by putting on youtube videos of wildfires from a sky perspective. it saw the smoke in the distance and gave that as the fire, when the real fire was miles away. it also found the sun and clouds as a fire. so, false positives everywhere. so today i basically tested and worked with existing solutions instead, like this one: https://github.com/AlimTleuliyev/wildfire-detection , plus other open source alternatives on kaggle. but yea, overall today i felt retrogressed, and i’m thinking of going back to CV. This article also helped a lot https://www.mdpi.com/2571-6255/7/4/140 ."}, {"post_id": 19265, "ts": "2026-06-30T15:04:27Z", "hours": 9.0494, "text": "Devlog #14: building the dataset + training a tensorflow model spent today on the data side of fire detection, which is half the battle with ML. to train a model to recognize fire i need a solid labeled dataset, so first i built an image scraper. it crawls the web usinf breadth first search, going level by level through pages and pulling images as it goes. i used bidirectional bfs to expand the search from two fronts and cover more ground instead of just crawling one direction. ended up pulling a bunch of images, including a lot of tricky ones like trees and random orange stuff that a fire model could easily get confused by. then i built a small labeling tool to actually tag all of it. it shows me one image at a time, a tree, an orange object, an actual fire, and i just mark it as fire or no fire. way faster than sorting through folders by hand, and getting those confusing orange non-fire images labeled is exactly what stops the model from false triggering later. with some data labeled i started training a tensorflow model on it, mostly experimenting at this point to see how it behaves and what works. early days, but it’s a real step toward a model that actually learns what fire looks like instead of just matching colors. good progress on the part of this project."}, {"post_id": 18514, "ts": "2026-06-29T18:09:54Z", "hours": 18.7639, "text": "Devlog #13 : built a fire detection system for my drone’s Pi i genuinely lost my sanity working on ts (Everything is on gh) started on the payload for my autonomous quad: real time fire detection running on the Raspberry Pi. went classical CV with OpenCV instead of training a model. Since it has to run fully offline on the drone (no internet up there) so a heavy ML model was out. turns out you get pretty far with just color + motion. how it works: grabs the warm/bright pixels (orange/red/yellow in HSV, plus an R≥G≥B rule so it’s actually fire toned, not just bright) flicker analysis over a few frames. ts is the part that matters. real flame shimmers frame to frame, a static orange thing (a ball, a jacket, a sunset) doesn’t, so it won’t false trigger on every orange object it sees debounces over several frames so one noisy frame can’t trip it spits out a 0-100% confidence from area + flicker + persistence the two bits that do the work. color mask first: # warm/bright flame colors warm = cv2 . inRange ( hsv , ( 0 , sat_min , val_min ), ( 35 , 255 , 255 )) warm |= cv2 . inRange ( hsv , ( 170 , sat_min , val_min ), ( 179 , 255 , 255 )) # fire skews R >= G >= B with a real red lead, not just any bright pixel b , g , r = cv2 . split ( bgr . astype ( np . int16 )) order = (( r >= g ) & ( g >= b ) & ( r > 150 ) & (( r - b ) > 28 )). astype ( np . uint8 ) * 255 warm = cv2 . bitwise_and ( warm , order ) then the flicker check. just how much the fire region changed since last frame: diff = cv2 . absdiff ( mask , prev_mask ) flicker = np . count_nonzero ( diff ) / max ( fire_area , 1 ) # static orange object -> ~0 real flame -> way higher built a web dashboard for it too (Flask). same code runs on my laptop off the webcam to test, then goes straight on the Pi headless and i open it from my laptop browser over wifi. console sits calm/cyan while scanning, goes full red + pulsing + beeping the sec it locks fire. got live sliders to tune sensitivity so i’m not editing code every time. tested 4k fireplace video, locks on clean. waved random orange stuff it’s not certified or anything. classical CV WILL false trigger in harsh light so next: wire the “fire detected” event to grab the GPS coord off the flight controller and trigger a loiter so the drone marks the spot. btw if anyone’s done fire/smoke detection on a Pi 4 lmk if you went CV or tflite, curious what fps you got. 🫡"}, {"post_id": 16925, "ts": "2026-06-27T14:18:40Z", "hours": 11.3347, "text": "Devlog #12 : scrapped my CV code, went full YOLO ok!! so i went on a learning spree today and a LOT happened. ngl one of those days where you start the morning thinking you know stuff and end it realizing you knew nothing. ##i was doing my CV wrong so my old fire detection was classical CV, just color matching + flicker. cool little hack and it technically worked, but tbh it was way too fragile. anything orange in bright light could set it off, and it’s is supposed to fly on a drone in the sun, so that’s not happening. so i did the painful thing and scrapped the whole lot. felt bad deleting code that “worked” but it was never gonna be reliable enough out in the real world. went down the YOLO rabbit hole spent basically the whole day researching YOLO (you only look once, the object detection one). instead of me hand coding what fire “looks like” with color rules, the model actually learns it from examples. way more robust to lighting, angles, all the randome stuff a drone is gonna run into. got a basic YOLO model up and running. its rough rn but its already a different league from the color matching. side quest: mediapipe body tracking also messed around with mediapipe today as a practice project, tracked my own body/pose in real time. wasnt strictly for the drone, just wanted to get comfortable with actual CV pipelines and see how the landmark tracking works under the hood. hardware: turned my ceiling into a drone im on vacation so no real flying, but i still wanted to test from a drone’s POV. so i straight up taped a webcam to my ceiling pointing straight down. now i can test the CV from that top down birds eye angle, which is way closer to what the drone actually sees than my laptop cam pointed at my face. next up train the YOLO model on a proper fire dataset run it against the ceiling cam footage check fps on my laptop vs what i’ll realistically get on the Pi 🫡"}, {"post_id": 16627, "ts": "2026-06-27T01:24:09Z", "hours": 16.1558, "text": "Devlog #11: started the new CV code, deciding on the approach got through about half the CV code today, good progress on the rewrite. right now i’m deciding between two routes for the actual fire recognition: tensorflow + mobilenet-SSD — a proper deep learning object detector. heavier, but it actually learns what fire looks like, so it should handle different lighting and angles way better. regular opencv + a few libraries — lighter and simpler, runs easy on the Pi, but less robust. still weighing it. mobilenet-SSD is probably the stronger long term call since it generalizes better, but opencv is much lighter on the Pi, so i want to see what framerate i actually get before committing to either. next: benchmark both and pick one."}, {"post_id": 12308, "ts": "2026-06-20T02:48:00Z", "hours": 8.32, "text": "Devlog #10: motor test issues and a flight controller swap not gonna lie, things went downhill pretty fast today. i celebrated a bit early. all my motors spun fine on the individual motor test, so i figured i was basically there. then i hit “test all” and only 2 of the 4 motors spun. and it kept happening. i was sure it was a software/parameter thing at first, so i spent hours over the past few days going through ardupilot params trying to get all 4 to fire at once. couldn’t get it. every motor spins perfectly on its own, but only 2 ever spin on the test all. after sitting with it for a while, i’m pretty sure the issue comes down to the flight controller. i’d been running a cheap board that’s really built for fixed wing, and going through the ardupilot docs it just wasn’t the right fit for what i’m doing. so i’ve ordered a proper flight controller to swap in. the timing isn’t great. i leave for my trip the day after tomorrow, so for the next month i’m stuck on just the software side, no hardware. the new FC is on its way but realistically i can’t promise the drone actually flies until the end of july. bit of a setback, but at least i’ve got a direction now. onwards."}, {"post_id": 11790, "ts": "2026-06-19T05:52:36Z", "hours": 10.8169, "text": "Devlog #9: learning the AI side + designing a custom PCB really good, productive session today. spent the whole day learning. first half went into the machine learning side. since i want the algorithm to actually find and report fires properly, i went down a full rabbit hole on how AI works under the hood, neural networks, all of it. wanted to actually understand what’s going on instead of just copy pasting a model i don’t really get. second half i switched gears to hardware and started designing a PCB. right now my gps/compass, the SBC, and the ESC are all separate boards basically taped to a surface, which is messy and not great for an actual flying build. the plan is to get all of them onto one clean board instead. good mix of software and hardware today, feels like things are starting to come together."}, {"post_id": 11141, "ts": "2026-06-18T07:06:04Z", "hours": 4.8339, "text": "Devlog #8: it finally works oh my gosh. amazing and relieving day today. i’d been pretty down about this for a while. my motors just wouldn’t spin during the bench test, and i’d already ordered three ESCs, new motors, and new wires trying to fix it. none of it worked, so i returned all of it. today my new ESC finally showed up. i leave for india on sunday for a month, so these next few days are my only window to get any hardware done. so i sat down and meticulously (and painfully) soldered every joint, checking continuity with my multimeter over and over. a few connections literally fell apart while i was hooking up the wires, so i had to stop and resolder them. just wanted the wiring to be perfect this time. then the worst moment: i tested it and nothing worked. again. i was genuinely gutted. but then i noticed an orange cable just sitting there, not plugged in, and it clicked, that was the ground (GND). i connected the ESC ground to the FC ground, ran the motor test, and everything spun. all of it. no errors except some OSD stuff, which is just a missing SD card. massive relief. that one unplugged ground wire was the whole thing. next month in india i’ll be working on the code side of the drone, then test for flight again when i get back."}, {"post_id": 9775, "ts": "2026-06-16T06:54:09Z", "hours": 6.1247, "text": "Devlog #7: new ESC, somehow worse wow, rough day. got my new ESC in and resoldered every connection as cleanly as i could. but somehow it went the wrong way, instead of just one motor not working, now none of them work. so that’s fun. i’ve ordered another one. before i jump to blaming the flight controller this time, i want to go back through the wiring really meticulously and rule that out first. feels like it’s something small i keep missing. annoying timing too. i’m away from the 20th to the 20th, basically a month, so i’ll be forced to work on just the software side until i’m back. wish me luck pls."}, {"post_id": 7324, "ts": "2026-06-12T06:19:40Z", "hours": 4.2369, "text": "Devlog #6: down to a board problem today was a sad one. my new wires finally came and i swapped them all in, but the one motor still wouldn’t work. after that i’ve basically narrowed it down to a board problem. either i damaged the FC with my rough soldering, or it had some issue before i even started. so i’ve ordered a new board. i’m going on vacation soon, and i can only hope it arrives before i leave. if it doesn’t, i’ll be left to just improve, fine tune, and perfect the ML and software side until i’m back. not the day i wanted, but at least i think i know where the problem is now."}, {"post_id": 6395, "ts": "2026-06-10T19:14:57Z", "hours": 5.2294, "text": "Devlog #5: still chasing the one dead motor tested the drone with the battery again and the one motor still wouldn’t spin. while i was at it i calibrated most of the sensors, the accelerometer, GPS, and compass, so at least that side is sorted now. then i swapped the motor out again just to rule it out, and it still didn’t work. at this point i’m fairly sure it’s either an ESC problem or a wiring issue. my new wires come tomorrow, so i’ll be able to narrow it down properly and do what i can to fix it. slow progress, but i’m closing in on it."}, {"post_id": 6012, "ts": "2026-06-10T02:29:49Z", "hours": 8.6739, "text": "Devlog #4: chasing the dead motor + first autonomous code plugged in the battery and ran a test today, found a few bugs. the main one: one of the motors still wouldn’t work. so i went through it properly this time. resoldered all the connections, swapped in a known-working motor, still no spin. then i uncapped the battery pull going to that motor to check if it was a power issue, and still nothing. resoldered everything one more time, and it still wouldn’t spin. at that point i figured it has to be the bullet plug connectors, so i’ve ordered new ones. on the software side i actually made some progress, wrote some of the python autonomous flight code by SSHing into the raspberry pi. nice to move the code forward while the hardware’s still being stubborn."}, {"post_id": 4293, "ts": "2026-06-07T15:37:37Z", "hours": 9.2333, "text": "Devlog #3: designed and printed the entire drone chassis big hardware milestone today, i designed and 3d printed the entire drone chassis. did the whole design in onshape. spent a good while on the layout because the chassis has to hold everything: the flight controller, the ESC, the motor arms, the battery, the raspberry pi, and the gps/compass. i measured each component so i could put proper mounting holes and slots for all of them instead of just taping stuff to a plate. the motor arm spacing and overall geometry took the most back and forth, it has to be symmetric and square or the drone won’t fly right. M after a few tweaks to the model i sent it to the printer. next up is mounting everything onto it and starting the wiring."}, {"post_id": 3984, "ts": "2026-06-07T03:54:56Z", "hours": 6.7931, "text": "Designed and assembled the legs for my drone. I also soldered some electronic connections to the ESC (Electronic Speed Controller)."}, {"post_id": 3801, "ts": "2026-06-06T21:04:18Z", "hours": 0.8586, "text": "Devlog #1: designing and printing the arms kicking off a new project, an autonomous fire detecting and firefighting drone. the goal is a drone that can find and report fires on its own. starting with the hardware, so today i designed and printed the arms. did the design in onshape. the arms are carbon fiber tubes for the length and stiffness, paired with 3d printed plastic attachments that clamp onto the tubes and hold the motors out at the ends. carbon fiber keeps them light and rigid, which is exactly what you want for the arms, and the printed parts let me make mounts that actually fit my motors and bolt onto the frame. this session was mostly the build and assembly side, getting the carbon fiber pieces and the plastic attachments fitted together. feels good to have the first structural parts of the drone done. solid start, the skeleton’s starting to take shape."}]...
|
Title: Prometheus by @rishithc | Stardance
Devlog Title: Prometheus by @rishithc | Stardance
Devlogs:
Devlog #1: designing and printing the arms kicking off a new project, an autonomous fire detecting and firefighting drone. the goal is a drone that can find and report fires on its own. starting with the hardware, so today i designed and printed the arms. did the design in onshape. the arms are carbon fiber tubes for the length and stiffness, paired with 3d printed plastic attachments that clamp onto the tubes and hold the motors out at the ends. carbon fiber keeps them light and rigid, which is exactly what you want for the arms, and the printed parts let me make mounts that actually fit my motors and bolt onto the frame. this session was mostly the build and assembly side, getting the carbon fiber pieces and the plastic attachments fitted together. feels good to have the first structural parts of the drone done. solid start, the skeleton’s starting to take shape.
Designed and assembled the legs for my drone. I also soldered some electronic connections to the ESC (Electronic Speed Controller).
Devlog #3: designed and printed the entire drone chassis big hardware milestone today, i designed and 3d printed the entire drone chassis. did the whole design in onshape. spent a good while on the layout because the chassis has to hold everything: the flight controller, the ESC, the motor arms, the battery, the raspberry pi, and the gps/compass. i measured each component so i could put proper mounting holes and slots for all of them instead of just taping stuff to a plate. the motor arm spacing and overall geometry took the most back and forth, it has to be symmetric and square or the drone won’t fly right. M after a few tweaks to the model i sent it to the printer. next up is mounting everything onto it and starting the wiring.
Devlog #4: chasing the dead motor + first autonomous code plugged in the battery and ran a test today, found a few bugs. the main one: one of the motors still wouldn’t work. so i went through it properly this time. resoldered all the connections, swapped in a known-working motor, still no spin. then i uncapped the battery pull going to that motor to check if it was a power issue, and still nothing. resoldered everything one more time, and it still wouldn’t spin. at that point i figured it has to be the bullet plug connectors, so i’ve ordered new ones. on the software side i actually made some progress, wrote some of the python autonomous flight code by SSHing into the raspberry pi. nice to move the code forward while the hardware’s still being stubborn.
Devlog #5: still chasing the one dead motor tested the drone with the battery again and the one motor still wouldn’t spin. while i was at it i calibrated most of the sensors, the accelerometer, GPS, and compass, so at least that side is sorted now. then i swapped the motor out again just to rule it out, and it still didn’t work. at this point i’m fairly sure it’s either an ESC problem or a wiring issue. my new wires come tomorrow, so i’ll be able to narrow it down properly and do what i can to fix it. slow progress, but i’m closing in on it.
Devlog #6: down to a board problem today was a sad one. my new wires finally came and i swapped them all in, but the one motor still wouldn’t work. after that i’ve basically narrowed it down to a board problem. either i damaged the FC with my rough soldering, or it had some issue before i even started. so i’ve ordered a new board. i’m going on vacation soon, and i can only hope it arrives before i leave. if it doesn’t, i’ll be left to just improve, fine tune, and perfect the ML and software side until i’m back. not the day i wanted, but at least i think i know where the problem is now.
Devlog #7: new ESC, somehow worse wow, rough day. got my new ESC in and resoldered every connection as cleanly as i could. but somehow it went the wrong way, instead of just one motor not working, now none of them work. so that’s fun. i’ve ordered another one. before i jump to blaming the flight controller this time, i want to go back through the wiring really meticulously and rule that out first. feels like it’s something small i keep missing. annoying timing too. i’m away from the 20th to the 20th, basically a month, so i’ll be forced to work on just the software side until i’m back. wish me luck pls.
Devlog #8: it finally works oh my gosh. amazing and relieving day today. i’d been pretty down about this for a while. my motors just wouldn’t spin during the bench test, and i’d already ordered three ESCs, new motors, and new wires trying to fix it. none of it worked, so i returned all of it. today my new ESC finally showed up. i leave for india on sunday for a month, so these next few days are my only window to get any hardware done. so i sat down and meticulously (and painfully) soldered every joint, checking continuity with my multimeter over and over. a few connections literally fell apart while i was hooking up the wires, so i had to stop and resolder them. just wanted the wiring to be perfect this time. then the worst moment: i tested it and nothing worked. again. i was genuinely gutted. but then i noticed an orange cable just sitting there, not plugged in, and it clicked, that was the ground (GND). i connected the ESC ground to the FC ground, ran the motor test, and everything spun. all of it. no errors except some OSD stuff, which is just a missing SD card. massive relief. that one unplugged ground wire was the whole thing. next month in india i’ll be working on the code side of the drone, then test for flight again when i get back.
Devlog #9: learning the AI side + designing a custom PCB really good, productive session today. spent the whole day learning. first half went into the machine learning side. since i want the algorithm to actually find and report fires properly, i went down a full rabbit hole on how AI works under the hood, neural networks, all of it. wanted to actually understand what’s going on instead of just copy pasting a model i don’t really get. second half i switched gears to hardware and started designing a PCB. right now my gps/compass, the SBC, and the ESC are all separate boards basically taped to a surface, which is messy and not great for an actual flying build. the plan is to get all of them onto one clean board instead. good mix of software and hardware today, feels like things are starting to come together.
Devlog #10: motor test issues and a flight controller swap not gonna lie, things went downhill pretty fast today. i celebrated a bit early. all my motors spun fine on the individual motor test, so i figured i was basically there. then i hit “test all” and only 2 of the 4 motors spun. and it kept happening. i was sure it was a software/parameter thing at first, so i spent hours over the past few days going through ardupilot params trying to get all 4 to fire at once. couldn’t get it. every motor spins perfectly on its own, but only 2 ever spin on the test all. after sitting with it for a while, i’m pretty sure the issue comes down to the flight controller. i’d been running a cheap board that’s really built for fixed wing, and going through the ardupilot docs it just wasn’t the right fit for what i’m doing. so i’ve ordered a proper flight controller to swap in. the timing isn’t great. i leave for my trip the day after tomorrow, so for the next month i’m stuck on just the software side, no hardware. the new FC is on its way but realistically i can’t promise the drone actually flies until the end of july. bit of a setback, but at least i’ve got a direction now. onwards.
Devlog #11: started the new CV code, deciding on the approach got through about half the CV code today, good progress on the rewrite. right now i’m deciding between two routes for the actual fire recognition: tensorflow + mobilenet-SSD — a proper deep learning object detector. heavier, but it actually learns what fire looks like, so it should handle different lighting and angles way better. regular opencv + a few libraries — lighter and simpler, runs easy on the Pi, but less robust. still weighing it. mobilenet-SSD is probably the stronger long term call since it generalizes better, but opencv is much lighter on the Pi, so i want to see what framerate i actually get before committing to either. next: benchmark both and pick one.
Devlog #12 : scrapped my CV code, went full YOLO ok!! so i went on a learning spree today and a LOT happened. ngl one of those days where you start the morning thinking you know stuff and end it realizing you knew nothing. ##i was doing my CV wrong so my old fire detection was classical CV, just color matching + flicker. cool little hack and it technically worked, but tbh it was way too fragile. anything orange in bright light could set it off, and it’s is supposed to fly on a drone in the sun, so that’s not happening. so i did the painful thing and scrapped the whole lot. felt bad deleting code that “worked” but it was never gonna be reliable enough out in the real world. went down the YOLO rabbit hole spent basically the whole day researching YOLO (you only look once, the object detection one). instead of me hand coding what fire “looks like” with color rules, the model actually learns it from examples. way more robust to lighting, angles, all the randome stuff a drone is gonna run into. got a basic YOLO model up and running. its rough rn but its already a different league from the color matching. side quest: mediapipe body tracking also messed around with mediapipe today as a practice project, tracked my own body/pose in real time. wasnt strictly for the drone, just wanted to get comfortable with actual CV pipelines and see how the landmark tracking works under the hood. hardware: turned my ceiling into a drone im on vacation so no real flying, but i still wanted to test from a drone’s POV. so i straight up taped a webcam to my ceiling pointing straight down. now i can test the CV from that top down birds eye angle, which is way closer to what the drone actually sees than my laptop cam pointed at my face. next up train the YOLO model on a proper fire dataset run it against the ceiling cam footage check fps on my laptop vs what i’ll realistically get on the Pi 🫡
Devlog #13 : built a fire detection system for my drone’s Pi i genuinely lost my sanity working on ts (Everything is on gh) started on the payload for my autonomous quad: real time fire detection running on the Raspberry Pi. went classical CV with OpenCV instead of training a model. Since it has to run fully offline on the drone (no internet up there) so a heavy ML model was out. turns out you get pretty far with just color + motion. how it works: grabs the warm/bright pixels (orange/red/yellow in HSV, plus an R≥G≥B rule so it’s actually fire toned, not just bright) flicker analysis over a few frames. ts is the part that matters. real flame shimmers frame to frame, a static orange thing (a ball, a jacket, a sunset) doesn’t, so it won’t false trigger on every orange object it sees debounces over several frames so one noisy frame can’t trip it spits out a 0-100% confidence from area + flicker + persistence the two bits that do the work. color mask first: # warm/bright flame colors warm = cv2 . inRange ( hsv , ( 0 , sat_min , val_min ), ( 35 , 255 , 255 )) warm |= cv2 . inRange ( hsv , ( 170 , sat_min , val_min ), ( 179 , 255 , 255 )) # fire skews R >= G >= B with a real red lead, not just any bright pixel b , g , r = cv2 . split ( bgr . astype ( np . int16 )) order = (( r >= g ) & ( g >= b ) & ( r > 150 ) & (( r - b ) > 28 )). astype ( np . uint8 ) * 255 warm = cv2 . bitwise_and ( warm , order ) then the flicker check. just how much the fire region changed since last frame: diff = cv2 . absdiff ( mask , prev_mask ) flicker = np . count_nonzero ( diff ) / max ( fire_area , 1 ) # static orange object -> ~0 real flame -> way higher built a web dashboard for it too (Flask). same code runs on my laptop off the webcam to test, then goes straight on the Pi headless and i open it from my laptop browser over wifi. console sits calm/cyan while scanning, goes full red + pulsing + beeping the sec it locks fire. got live sliders to tune sensitivity so i’m not editing code every time. tested 4k fireplace video, locks on clean. waved random orange stuff it’s not certified or anything. classical CV WILL false trigger in harsh light so next: wire the “fire detected” event to grab the GPS coord off the flight controller and trigger a loiter so the drone marks the spot. btw if anyone’s done fire/smoke detection on a Pi 4 lmk if you went CV or tflite, curious what fps you got. 🫡
Devlog #14: building the dataset + training a tensorflow model spent today on the data side of fire detection, which is half the battle with ML. to train a model to recognize fire i need a solid labeled dataset, so first i built an image scraper. it crawls the web usinf breadth first search, going level by level through pages and pulling images as it goes. i used bidirectional bfs to expand the search from two fronts and cover more ground instead of just crawling one direction. ended up pulling a bunch of images, including a lot of tricky ones like trees and random orange stuff that a fire model could easily get confused by. then i built a small labeling tool to actually tag all of it. it shows me one image at a time, a tree, an orange object, an actual fire, and i just mark it as fire or no fire. way faster than sorting through folders by hand, and getting those confusing orange non-fire images labeled is exactly what stops the model from false triggering later. with some data labeled i started training a tensorflow model on it, mostly experimenting at this point to see how it behaves and what works. early days, but it’s a real step toward a model that actually learns what fire looks like instead of just matching colors. good progress on the part of this project.
Devlog #15: training my own model wasn’t the move yea so training my own model wasnt the best idea. after hours of clicking through my webscraper’s image results and marking them, i ran a benchmark myself by putting on youtube videos of wildfires from a sky perspective. it saw the smoke in the distance and gave that as the fire, when the real fire was miles away. it also found the sun and clouds as a fire. so, false positives everywhere. so today i basically tested and worked with existing solutions instead, like this one: https://github.com/AlimTleuliyev/wildfire-detection , plus other open source alternatives on kaggle. but yea, overall today i felt retrogressed, and i’m thinking of going back to CV. This article also helped a lot https://www.mdpi.com/2571-6255/7/4/140 .
Devlog #16: I probably should have done this earlier :( yea so while on vacation I decided to rework the weight and thrust ratios that the motors were producing with 11x7 props. I found out that my drone will not be able to fly SMOOTHLY. So I decided too look into why, one of the big reasons were that it was heavy, and two it wasn’t aerodynamic. So today I tried to kill two birds with one stone, (I also worked on my ML for a good portion of the time, but I feel this is more important). I ran digital wind tunnel tests and kept redesigning and testing until I landed on what I have now. I plan to make this out of carbon fiber which will be expensive, but ig that’s part of the process.
Devlog #17: I tested a lot tdy as well as designed new components I submitted my project, as is, to the Outpost fund, and I got some feedback. Mostly everything was good except for some issues with funding an NVDIA devkit :))), but the biggest issue was that I couldn’t buy a flight controller. In an devlog before, I mentioned and shows a picture of me designing a custom pcb, but I have not worked on that since. So today I fired up Kikad and designed layer 2 of my FC (easier, layer one has a lot of components that I need to import). I also spent a good chunk of today refining my 3d model, I used Air Shaper and SimScale and I aerodynamic tested all of the designs, I also asked claude for some ideas of how to make my .stls better. @vrunchil7 is da goat frfr he taught me how and what kikad is.
Devlog #18: A GREAT way to start working on your project again 😩 I’ve taken a break these past few days, realizing that a vacation exists for a reason! Today, however, I didn’t want to fall behind schedule. Since I also want grants to use a premium carbon fiber frame and all I need is to finish my PCB, I spent the day working in KiCad. Truth be told, the best way to learn is by doing—I thought the same about CAD, and I feel the same about PCB design. I made the executive decision to make a double-sided PCB rather than adding more layers, as it will be much simpler. Anyway, here are my final mockups.
Ships:
I made an autonomous drone. The most challenging part was the soldering. The soldering was quite hard for me and there were times where i burnt my hand...
|
1792875212.5828192
|
1793739212.5828192
|
|
10039
|
Mucize Doktor by @kax675 | Stardance
|
kax675
|
1
|
1.0
|
1
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-06T21:44:26Z", "hours": 1.0, "multiplier": 1.73, "payout": 1, "blessing": "neutral", "text": "I really wanted to make a real life example of a Turkish meme. I hope it gets attention on different platforms like the original meme.", "repo": "https://github.com/Kax675/mucize-doktor", "demo": "https://kax675.github.io/mucize-doktor/"}]...
|
[{"post_id": 3808, "ts": "2026 [{"post_id": 3808, "ts": "2026-06-06T21:15:41Z", "hours": 0.6342, "text": "The first working prototype! This is a parody re-make of the viral Turkish “Mucize Doktor Planet” meme in React and Three.js!"}]...
|
Title: Mucize Doktor by @kax675 | Stardance
Devlo Title: Mucize Doktor by @kax675 | Stardance
Devlogs:
The first working prototype! This is a parody re-make of the viral Turkish “Mucize Doktor Planet” meme in React and Three.js!
Ships:
I really wanted to make a real life example of a Turkish meme. I hope it gets attention on different platforms like the original meme....
|
1793094502.0339372
|
1793180902.0339372
|