|
8824
|
Personal site by @Wiktorxd_1 | Stardance
|
Wiktorxd_1
|
1
|
6.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-22T07:39:51Z", "hours": 6.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Simple personal website! and uh… it has a watchlist, skills, projects and music tab :D thats.. all!", "repo": "https://github.com/Wiktorxd-1/website/", "demo": "https://wiktorxd-1.dev/"}]...
|
[{"post_id": 13571, "ts": "202 [{"post_id": 13571, "ts": "2026-06-22T06:52:22Z", "hours": 5.8461, "text": "Site is mostly finished, just need to improve status fetching"}]...
|
Title: Personal site by @Wiktorxd_1 | Stardance
D Title: Personal site by @Wiktorxd_1 | Stardance
Devlogs:
Site is mostly finished, just need to improve status fetching
Ships:
Simple personal website! and uh… it has a watchlist, skills, projects and music tab :D thats.. all!...
|
1793141317.7140749
|
1793227717.7140749
|
|
8826
|
Farming Sensor Network by @Kohanskic | Stardance
|
Kohanskic
|
1
|
3.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-28T16:24:33Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "This is a sensor network that operates over LoRA radio to send data long distances with minimal power. Its designed to collect data from agricultural measurement tools (Soil Moisture & pH, Weather, and other desired metrics). The network is solar powered and self contained in a waterproof housing capable of surviving a vast array of temperatures.", "repo": "https://github.com/C-Kohanski/LoRA-Agricultural-Array", "demo": ""}]...
|
[{"post_id": 17687, "ts": "202 [{"post_id": 17687, "ts": "2026-06-28T16:18:12Z", "hours": 2.5944, "text": "Devlog #02 Electric Boogaloo Hi everyone! This devlog will mainly cover the software side of the project so far as well as small changes made to the hardware itself and future plans. ––––––––––––––––––––––––––Added: -Web dashboard/monitor -Working communication functionality with LoRA -Solar power setup w/ batteries -Expanded control capabilities w/ new projects —————————————————–The web dashboard can be installed on any windows system or docker container and connects to the entire LoRA network. For the time being the installer will simulate node data as the LoRA connection is still buggy and can result in data corruption. This dashboard displays data based on local weather API’s and node location based on the sensors internal GPS. This dashboard is also the central hub for all sensor data which can be filtered by sensor or overall data. The dashboard is still a early WIP as I mainly focus on hardware however improvements are expected soon. For hardware the network has received many upgrades. To begin with the overall housing size has been increased to account for the solar charge system and batteries. This solar system consists of a charge controller which is fed from a 21v solar panel that drops the voltage from 21v to 12v to feed the batteries. This panel can power the entire system and should be able to power it even when its dark out for extended periods of time. Attached to the devlog is a prototype of the old system which is in the middle of a redesign to account for new components. —————————————————–Future plans: -Improved dashboard -additional hardware control -Improved compatibility (LoRA) —————————————————–Thank you to everyone that has enjoyed this project. I know progress has been slow and chunked but I am doing the best a can with my available time and funds. Future updates are going to be more detailed and complete once this framework is done. Thank you all! :)"}, {"post_id": 7057, "ts": "2026-06-11T20:30:19Z", "hours": 0.5311, "text": "Devlog #01 Hi everyone! A few weeks ago I began work on my first real project, a off grid sensor network for farming studies to provide those who need in field sensors with a cost effective alternative to current options. This system is sealed and designed to survive the cold of New York winters as that’s where the original inspiration for this system comes from. In NY (outside of the city) we have vast farmlands that struggle with nutrient and pH monitoring, Erosion, and invasive species. Sensors to monitor these factors are not cost effective for the farmers who are directly impacted by this so by making a cheaper alternative it can help unburden the cost factor associated with these systems. The sensor network relies on LoRa to communicate long distances without the use of high power or WiFi making it the optimal choice for this project. currently the central node which houses a raspberry pi 5 and a Heltec V4 LoRa board flashed with meshtastic is constructed and shown in the photo. This node connects to various field sensors and transmit the data back to the host computer over a network of additional nodes. The central node is watertight with two custom brackets and a modular board all custom designed to fit the box. Custom mounts hold the V4 Chip and Pi to keep them in a neat layout and replaceable if damaged. Connected to the V4 is a SMA plug, sealed with TVU, which attaches to a 928mHZ antenna. The external sensors cover a wide array of applications and are designed to be modular with a interchangeable sensor head allowing for quick adaptations to the use case. Drawings for these can be found in the repo. Current sensors include soil pH, Ground moisture, and sun exposure. Future plans for this project include a weather station attached to the main node as well as a software panel that aggregates all the data for easy reading. Thank you for being a part of my first project, happy building!"}]...
|
Title: Farming Sensor Network by @Kohanskic | Star Title: Farming Sensor Network by @Kohanskic | Stardance
Devlogs:
Devlog #01 Hi everyone! A few weeks ago I began work on my first real project, a off grid sensor network for farming studies to provide those who need in field sensors with a cost effective alternative to current options. This system is sealed and designed to survive the cold of New York winters as that’s where the original inspiration for this system comes from. In NY (outside of the city) we have vast farmlands that struggle with nutrient and pH monitoring, Erosion, and invasive species. Sensors to monitor these factors are not cost effective for the farmers who are directly impacted by this so by making a cheaper alternative it can help unburden the cost factor associated with these systems. The sensor network relies on LoRa to communicate long distances without the use of high power or WiFi making it the optimal choice for this project. currently the central node which houses a raspberry pi 5 and a Heltec V4 LoRa board flashed with meshtastic is constructed and shown in the photo. This node connects to various field sensors and transmit the data back to the host computer over a network of additional nodes. The central node is watertight with two custom brackets and a modular board all custom designed to fit the box. Custom mounts hold the V4 Chip and Pi to keep them in a neat layout and replaceable if damaged. Connected to the V4 is a SMA plug, sealed with TVU, which attaches to a 928mHZ antenna. The external sensors cover a wide array of applications and are designed to be modular with a interchangeable sensor head allowing for quick adaptations to the use case. Drawings for these can be found in the repo. Current sensors include soil pH, Ground moisture, and sun exposure. Future plans for this project include a weather station attached to the main node as well as a software panel that aggregates all the data for easy reading. Thank you for being a part of my first project, happy building!
Devlog #02 Electric Boogaloo Hi everyone! This devlog will mainly cover the software side of the project so far as well as small changes made to the hardware itself and future plans. ––––––––––––––––––––––––––Added: -Web dashboard/monitor -Working communication functionality with LoRA -Solar power setup w/ batteries -Expanded control capabilities w/ new projects —————————————————–The web dashboard can be installed on any windows system or docker container and connects to the entire LoRA network. For the time being the installer will simulate node data as the LoRA connection is still buggy and can result in data corruption. This dashboard displays data based on local weather API’s and node location based on the sensors internal GPS. This dashboard is also the central hub for all sensor data which can be filtered by sensor or overall data. The dashboard is still a early WIP as I mainly focus on hardware however improvements are expected soon. For hardware the network has received many upgrades. To begin with the overall housing size has been increased to account for the solar charge system and batteries. This solar system consists of a charge controller which is fed from a 21v solar panel that drops the voltage from 21v to 12v to feed the batteries. This panel can power the entire system and should be able to power it even when its dark out for extended periods of time. Attached to the devlog is a prototype of the old system which is in the middle of a redesign to account for new components. —————————————————–Future plans: -Improved dashboard -additional hardware control -Improved compatibility (LoRA) —————————————————–Thank you to everyone that has enjoyed this project. I know progress has been slow and chunked but I am doing the best a can with my available time and funds. Future updates are going to be more detailed and complete once this framework is done. Thank you all! :)
Ships:
This is a sensor network that operates over LoRA radio to send data long distances with minimal power. Its designed to collect data from agricultural measurement tools (Soil Moisture & pH, Weather, and other desired metrics). The network is solar powered and self contained in a waterproof housing capable of surviving a vast array of temperatures....
|
1793134107.1820252
|
1793220507.1820252
|
|
8844
|
GSSoC Pr Tracker by @itzprodhosh | Stardance
|
itzprodhosh
|
1
|
4.0
|
21
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-18T18:07:42Z", "hours": 4.0, "multiplier": 11.69, "payout": 21, "blessing": "neutral", "text": "Developed a community platform used by 1500+ contributors to track GSSoC participation through real-time pull request analytics, scoring breakdowns, and ranking updates. The system aggregates GitHub activity, calculates contribution scores based on official labeling rules, and provides personalized dashboards with automated email notifications. Achieved 80+ Github stars and 4.7/5 rating. Key Features: Contributor and mentor tracking dashboards, automated PR scoring engine, GitHub API integration, contribution analytics and charts, rank monitoring, score history tracking, email alert subscriptions, leaderboard insights, and responsive real-time data visualization. Tech Stack: Next.js 15, TypeScript, Recharts, Framer Motion, GitHub API, Nodemailer, Vercel", "repo": "https://github.com/PRODHOSH/gssoc-tracker", "demo": "https://gssoc-tracker.vercel.app"}]...
|
[{"post_id": 11423, "ts": "202 [{"post_id": 11423, "ts": "2026-06-18T18:05:25Z", "hours": 1.4994, "text": "brought in some more cool features have around 2000+ users using this tool. got around 80+ stars and received a very positive feedback of 4.7/5.0 stars. contains email alerts thru smtp, latest to the gssoc formulas"}, {"post_id": 3291, "ts": "2026-06-06T04:39:20Z", "hours": 2.1533, "text": "cooking up the gssoc tracker!"}]...
|
Title: GSSoC Pr Tracker by @itzprodhosh | Stardanc Title: GSSoC Pr Tracker by @itzprodhosh | Stardance
Devlogs:
cooking up the gssoc tracker!
brought in some more cool features have around 2000+ users using this tool. got around 80+ stars and received a very positive feedback of 4.7/5.0 stars. contains email alerts thru smtp, latest to the gssoc formulas
Ships:
Developed a community platform used by 1500+ contributors to track GSSoC participation through real-time pull request analytics, scoring breakdowns, and ranking updates. The system aggregates GitHub activity, calculates contribution scores based on official labeling rules, and provides personalized dashboards with automated email notifications. Achieved 80+ Github stars and 4.7/5 rating. Key Features: Contributor and mentor tracking dashboards, automated PR scoring engine, GitHub API integration, contribution analytics and charts, rank monitoring, score history tracking, email alert subscriptions, leaderboard insights, and responsive real-time data visualization. Tech Stack: Next.js 15, TypeScript, Recharts, Framer Motion, GitHub API, Nodemailer, Vercel...
|
1793112910.8126447
|
1793199310.8126447
|
|
8849
|
BSPrep by @itzprodhosh | Stardance
|
itzprodhosh
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-06T05:13:31Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Built BSPrep, an all-in-one portal for IIT Madras BS Degree students. The platform centralizes academic resources, course information, and student tools in a single dashboard. I implemented authentication, student profiles, resource management, and a responsive interface using a modern full-stack architecture. One challenge was designing a scalable database structure while keeping the user experience simple and fast. I’m proud of creating a platform tailored specifically for IITM BS students and laying the foundation for future features such as AI-powered preparation tools, progress tracking, and personalized recommendations. To test the project, sign up with an account, explore the dashboard, browse available resources, and navigate through the student portal features. Feedback on usability, performance, and missing features is welcome.", "repo": "https://github.com/PRODHOSH/bs-prep", "demo": "http://bsprep.in"}]...
|
[{"post_id": 3302, "ts": "2026 [{"post_id": 3302, "ts": "2026-06-06T05:05:53Z", "hours": 1.1928, "text": "Checkout my project BSPrep Student led platform"}]...
|
Title: BSPrep by @itzprodhosh | Stardance
Devlogs Title: BSPrep by @itzprodhosh | Stardance
Devlogs:
Checkout my project BSPrep Student led platform
Ships:
Built BSPrep, an all-in-one portal for IIT Madras BS Degree students. The platform centralizes academic resources, course information, and student tools in a single dashboard. I implemented authentication, student profiles, resource management, and a responsive interface using a modern full-stack architecture. One challenge was designing a scalable database structure while keeping the user experience simple and fast. I’m proud of creating a platform tailored specifically for IITM BS students and laying the foundation for future features such as AI-powered preparation tools, progress tracking, and personalized recommendations. To test the project, sign up with an account, explore the dashboard, browse available resources, and navigate through the student portal features. Feedback on usability, performance, and missing features is welcome....
|
1793120105.60664
|
1793206505.60664
|
|
8869
|
Metamorph by @kevinh | Stardance
|
kevinh
|
1
|
3.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-05T21:33:44Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "This project is a self-improving agent system that tracks coding assistant activity, analyzes prior sessions, and turns that history into useful reports and workflow improvements. It helps identify what agents and skills were used, where time was spent, what problems were solved, and which patterns can be improved, so future Codex or Claude sessions can start with better context and less repeated work.", "repo": "https://github.com/K3vin-h/metamorph", "demo": "https://github.com/K3vin-h/metamorph/blob/main/README.md"}]...
|
[{"post_id": 2961, "ts": "2026 [{"post_id": 2961, "ts": "2026-06-05T21:27:20Z", "hours": 2.6972, "text": "The project is completed, the plugin is for Claude Code, Cursor, and Codex. The plugin analyzes your agents and skills, finds what is underused or not utilized to its fullest capacity, and proposes small diffs you approve."}]...
|
Title: Metamorph by @kevinh | Stardance
Devlogs:
Title: Metamorph by @kevinh | Stardance
Devlogs:
The project is completed, the plugin is for Claude Code, Cursor, and Codex. The plugin analyzes your agents and skills, finds what is underused or not utilized to its fullest capacity, and proposes small diffs you approve.
Ships:
This project is a self-improving agent system that tracks coding assistant activity, analyzes prior sessions, and turns that history into useful reports and workflow improvements. It helps identify what agents and skills were used, where time was spent, what problems were solved, and which patterns can be improved, so future Codex or Claude sessions can start with better context and less repeated work....
|
1793130700.3240874
|
1793217100.3240874
|
|
8880
|
Where the Meteor at by @adwitya | Stardance
|
adwitya
|
1
|
3.34
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-29T21:02:17Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "i made a meteor predictor to innovate i ask user for location and they can have the list meteor and best viewing time and angle i used other parameter such as pollution light in surrounding and aqi to improve output Using flask for the first time was challenging ai eased the pain a bit but surely there were times where i regretted the project but at the end i loved it as any Hollywood film would say i am proud that i was able to move outside my comfort zone and make a project with real parameters and make a io project that may actually help a niche amount of people i tested most of the edge cases using ai for debugging but if occurs please do a pr or publish an issue would love to look into it the code is clean readable and was mentored by me as the v0 and v1 code was mainly written by me", "repo": "https://github.com/AdwityaIO/WhereTheMeteorAt", "demo": "https://where-the-meteor-at.vercel.app/"}]...
|
[{"post_id": 81543, "ts": "202 [{"post_id": 81543, "ts": "2026-10-21T17:02:52Z", "hours": 0.2731, "text": "made a new wiki type page where people can find more about the type of comet they want to know about and also learned how to handle multiple pages at once in a vercel site"}, {"post_id": 80478, "ts": "2026-10-17T19:49:34Z", "hours": 2.0719, "text": "when i started Where the Meteor at , the idea was pretty straightforward : ask for someone’s location , account for the condition in their sky ,and tell them how many meteors they could realistically see instead of just throwing the theoretical ZHR at them. The first couple of sessions were mostly about figuring out the logic and getting the Flask backend to work . I was learning as i went , breaking things , debugging them , and occasionally wondering why did i even pick this project because of the back and forth but i finally gave the UI the project Deserved. The redesign I took a lot of inspiration from Teenage Engineering’s Industrial design language . I wanted the interface to feel like a scientific instrument rather than another generic AI dashboard as it looked before . SO i went with a warm off-white background ,near-black text and a sharp orange accent .Syne handles the big heading while jetbrains mono gives the measurement and data a technical , instrument-panel feel. I also re-worked the layout around how someone would actually use the tool . Location search and sky condition sit in their sidebar , while the meteor shower gets the main stage . The estimated meteor count is the first thing you notice and the more detailed information stays tucked inside expandable rows until you need it . those rows contain things like radiant altitude , viewing direction air quality and the best viewing window .I also kept the hourly chart so you can get a better idea of how the condition change instead of relying on one number . The goal was to make the interface feel engineered not just decorated. No unnecessary elements ; just a strong grid , deliberate typography , and i especially love the orange accents Conclusion This project has been a bit out of my comfort zone i started out learning and experimenting with Flask , and ended up with a project that combines astronomy environmental data , calculation and interface design. The direction the UI took was amazing .It finally feels like a coherent product instead of a collection of features i managed to get working. The next step is to finish the final check , update the documentation , and ship it If you spot a bug or have an idea for improving the prediction ; feel free to open an issue or submit a PR. I’d genuinely love to see what people do with it"}, {"post_id": 18628, "ts": "2026-06-29T20:28:58Z", "hours": 0.7372, "text": "man i love vibe coding was just learning here and there how to vibe code trying get along it and seeing ,did a bit of ammature practice"}, {"post_id": 14142, "ts": "2026-06-23T03:58:58Z", "hours": 0.4519, "text": "first devlog this is going to be about how this project is gonna be traced firstly i would scrap the comets and hardcode them into my dataset then i would make a engine that would calculate showers and predict them I’m using flask as I’m proficient in python to connect it to a html and then i would calculate how much meteor is visible ,viable angle using parameter like aqi sky clarity and latitude longitude i would later add dynamic location picker using map (in v0 u need to log latitude and longitude manually)"}]...
|
Title: Where the Meteor at by @adwitya | Stardance Title: Where the Meteor at by @adwitya | Stardance
Devlogs:
first devlog this is going to be about how this project is gonna be traced firstly i would scrap the comets and hardcode them into my dataset then i would make a engine that would calculate showers and predict them I’m using flask as I’m proficient in python to connect it to a html and then i would calculate how much meteor is visible ,viable angle using parameter like aqi sky clarity and latitude longitude i would later add dynamic location picker using map (in v0 u need to log latitude and longitude manually)
man i love vibe coding was just learning here and there how to vibe code trying get along it and seeing ,did a bit of ammature practice
when i started Where the Meteor at , the idea was pretty straightforward : ask for someone’s location , account for the condition in their sky ,and tell them how many meteors they could realistically see instead of just throwing the theoretical ZHR at them. The first couple of sessions were mostly about figuring out the logic and getting the Flask backend to work . I was learning as i went , breaking things , debugging them , and occasionally wondering why did i even pick this project because of the back and forth but i finally gave the UI the project Deserved. The redesign I took a lot of inspiration from Teenage Engineering’s Industrial design language . I wanted the interface to feel like a scientific instrument rather than another generic AI dashboard as it looked before . SO i went with a warm off-white background ,near-black text and a sharp orange accent .Syne handles the big heading while jetbrains mono gives the measurement and data a technical , instrument-panel feel. I also re-worked the layout around how someone would actually use the tool . Location search and sky condition sit in their sidebar , while the meteor shower gets the main stage . The estimated meteor count is the first thing you notice and the more detailed information stays tucked inside expandable rows until you need it . those rows contain things like radiant altitude , viewing direction air quality and the best viewing window .I also kept the hourly chart so you can get a better idea of how the condition change instead of relying on one number . The goal was to make the interface feel engineered not just decorated. No unnecessary elements ; just a strong grid , deliberate typography , and i especially love the orange accents Conclusion This project has been a bit out of my comfort zone i started out learning and experimenting with Flask , and ended up with a project that combines astronomy environmental data , calculation and interface design. The direction the UI took was amazing .It finally feels like a coherent product instead of a collection of features i managed to get working. The next step is to finish the final check , update the documentation , and ship it If you spot a bug or have an idea for improving the prediction ; feel free to open an issue or submit a PR. I’d genuinely love to see what people do with it
made a new wiki type page where people can find more about the type of comet they want to know about and also learned how to handle multiple pages at once in a vercel site
Ships:
i made a meteor predictor to innovate i ask user for location and they can have the list meteor and best viewing time and angle i used other parameter such as pollution light in surrounding and aqi to improve output Using flask for the first time was challenging ai eased the pain a bit but surely there were times where i regretted the project but at the end i loved it as any Hollywood film would say i am proud that i was able to move outside my comfort zone and make a project with real parameters and make a io project that may actually help a niche amount of people i tested most of the edge cases using ai for debugging but if occurs please do a pr or publish an issue would love to look into it the code is clean readable and was mentored by me as the v0 and v1 code was mainly written by me...
|
1793051664.9933736
|
1793138064.9933736
|
|
8913
|
My awesome macropad! by @Shebbel | Stardance
|
Shebbel
|
1
|
0.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-13T00:39:48Z", "hours": 0.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I did a 6 key macropod with a oled display and a rotary encoder. The most challenging part was the firmware, were I spend a lot of time reading the documentation and watching tutorials, because I wanted my macropod to be able to do more than simply press buttons.", "repo": "https://github.com/Shebbel/stardance_macropad", "demo": ""}]...
|
[{"post_id": 7780, "ts": "2026 [{"post_id": 7780, "ts": "2026-06-13T00:07:47Z", "hours": 0.4689, "text": "I did my macropad completely. idk, why cicada wasn’t registered by hackatime"}]...
|
Title: My awesome macropad! by @Shebbel | Stardanc Title: My awesome macropad! by @Shebbel | Stardance
Devlogs:
I did my macropad completely. idk, why cicada wasn’t registered by hackatime
Ships:
I did a 6 key macropod with a oled display and a rotary encoder. The most challenging part was the firmware, were I spend a lot of time reading the documentation and watching tutorials, because I wanted my macropod to be able to do more than simply press buttons....
|
1793123566.9611278
|
1793209966.9611278
|
|
8915
|
LemonPad by @rehanmughal2008 | Stardance
|
rehanmughal2008
|
1
|
5.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-16T02:12:36Z", "hours": 5.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I have designed a macropad called “LemonPad” (based off my gaming username and lifelong user) so that I can use it for auto opening apps, games, and registering certain commands I have for VS Code. Navigating the design was challenging due to working in Fusion with the Design History timeline turned off, which locked sketch planes and grayed out standard copy/cut functions. The build, I felt achieved great success, as I was able to design my very own device and hardware product from scratch and I have learnt some skills working on this in the process. To test it users can go to the Onshape website where I imported the step files as an assembled build, although I’m unsure how to fully render it with a screen, rotary encoder, and switches without building it first.", "repo": "https://github.com/rehanmughal2008/LemonPad", "demo": ""}]...
|
[{"post_id": 8466, "ts": "2026 [{"post_id": 8466, "ts": "2026-06-14T02:22:42Z", "hours": 3.3769, "text": "Today I was just continuing to work on the 3D Modeling aspect of the macropad by creating the step files for the Top and bottom of the case. In the top I made cutouts using measurements of the switches, OLED, and rotary encoder specs."}, {"post_id": 7271, "ts": "2026-06-12T03:56:09Z", "hours": 1.7853, "text": "Day 1 - LemonPad: Today I created the schematic which consisted of 4 switches, the microcontroller (xiao), a rotary encoder, and OLED Screen. Then I created a layout that is compact and should be able to fit all the parts. This all took about 4 hours as I was trying to understand what parts connect to which pin on the microcontroller. Finally the last two hours were trying to learn how to do CAD modeling."}]...
|
Title: LemonPad by @rehanmughal2008 | Stardance
D Title: LemonPad by @rehanmughal2008 | Stardance
Devlogs:
Day 1 - LemonPad: Today I created the schematic which consisted of 4 switches, the microcontroller (xiao), a rotary encoder, and OLED Screen. Then I created a layout that is compact and should be able to fit all the parts. This all took about 4 hours as I was trying to understand what parts connect to which pin on the microcontroller. Finally the last two hours were trying to learn how to do CAD modeling.
Today I was just continuing to work on the 3D Modeling aspect of the macropad by creating the step files for the Top and bottom of the case. In the top I made cutouts using measurements of the switches, OLED, and rotary encoder specs.
Ships:
I have designed a macropad called “LemonPad” (based off my gaming username and lifelong user) so that I can use it for auto opening apps, games, and registering certain commands I have for VS Code. Navigating the design was challenging due to working in Fusion with the Design History timeline turned off, which locked sketch planes and grayed out standard copy/cut functions. The build, I felt achieved great success, as I was able to design my very own device and hardware product from scratch and I have learnt some skills working on this in the process. To test it users can go to the Onshape website where I imported the step files as an assembled build, although I’m unsure how to fully render it with a screen, rotary encoder, and switches without building it first....
|
1793084176.3975742
|
1793170576.3975742
|
|
8920
|
GLSL converter by @kuba_ch101 | Stardance
|
kuba_ch101
|
1
|
8.0
|
96
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-17T20:44:58Z", "hours": 7.0, "multiplier": 14.37, "payout": 96, "blessing": "neutral", "text": "I made a program and a website based on it that converts shaders written in GLSL into a C string that is easier to use in a program with OpenGL, becaose you have everything in one file. For me the most challenging thing was to make the the website look good, also working with more complicated paths to input and output files was a new thing for me. My program saves me time when writing all the quotation marks which also reduces a probability of errors. The website was designed to use when you need shaders up and running fast.", "repo": "https://github.com/kubach101/GLSL-converter", "demo": "https://kubach101.github.io/GLSL-to-C/"}]...
|
[{"post_id": 29120, "ts": "202 [{"post_id": 29120, "ts": "2026-07-15T19:44:59Z", "hours": 0.9953, "text": "I added this thing in the top-right corner which indicates you how your camera is orinted."}, {"post_id": 10816, "ts": "2026-06-17T19:10:15Z", "hours": 0.6567, "text": "Website deployed and my project is ready for shipping. I added an information panel and checked everything."}, {"post_id": 9460, "ts": "2026-06-15T20:24:06Z", "hours": 2.0611, "text": "I made a website from my previous code. I spend a lot of time on the design but I think it was worth it. If I don’t find any bugs, I think this will be my last devlog before shipping."}, {"post_id": 9178, "ts": "2026-06-15T12:18:16Z", "hours": 1.345, "text": "I made a rework and added few features. What I changed: Program checks when file ends(beafore i needed to type “///” and didn’t know this was possible). Improved the files menagment: now there is a folder called “io”, makes program cleaner i think. Now works both: in bash and as an app on windows."}, {"post_id": 5609, "ts": "2026-06-09T14:00:51Z", "hours": 2.7506, "text": "I added a coments ignoring, now the comment will no longer be written in the final string."}]...
|
Title: GLSL converter by @kuba_ch101 | Stardance
Title: GLSL converter by @kuba_ch101 | Stardance
Devlogs:
I added a coments ignoring, now the comment will no longer be written in the final string.
I made a rework and added few features. What I changed: Program checks when file ends(beafore i needed to type “///” and didn’t know this was possible). Improved the files menagment: now there is a folder called “io”, makes program cleaner i think. Now works both: in bash and as an app on windows.
I made a website from my previous code. I spend a lot of time on the design but I think it was worth it. If I don’t find any bugs, I think this will be my last devlog before shipping.
Website deployed and my project is ready for shipping. I added an information panel and checked everything.
I added this thing in the top-right corner which indicates you how your camera is orinted.
Ships:
I made a program and a website based on it that converts shaders written in GLSL into a C string that is easier to use in a program with OpenGL, becaose you have everything in one file. For me the most challenging thing was to make the the website look good, also working with more complicated paths to input and output files was a new thing for me. My program saves me time when writing all the quotation marks which also reduces a probability of errors. The website was designed to use when you need shaders up and running fast....
|
1793065669.4880881
|
1793152069.4880881
|
|
8972
|
My Portfolio Site by @nitishvankina | Stardance
|
nitishvankina
|
1
|
0.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-13T17:14:44Z", "hours": 0.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I wanted to make a simple portfolio site. A lot of the times when I see my peers sites, they are often overdesigned, or hard to use. This is why I tried making mine simple, and wanted something that could get the point across simply.", "repo": "https://github.com/nitish-vankina/portfolio", "demo": "https://nitish-vankina.github.io/portfolio/"}]...
|
[{"post_id": 8189, "ts": "2026 [{"post_id": 8189, "ts": "2026-06-13T17:13:58Z", "hours": 0.3, "text": "I think that most portfolio sites are overdesigned (unless youre doing ui) so I made mine super simple. It really just gets the facts across. Its coded 100% in HTML and is truly just a simple site."}]...
|
Title: My Portfolio Site by @nitishvankina | Stard Title: My Portfolio Site by @nitishvankina | Stardance
Devlogs:
I think that most portfolio sites are overdesigned (unless youre doing ui) so I made mine super simple. It really just gets the facts across. Its coded 100% in HTML and is truly just a simple site.
Ships:
I wanted to make a simple portfolio site. A lot of the times when I see my peers sites, they are often overdesigned, or hard to use. This is why I tried making mine simple, and wanted something that could get the point across simply....
|
1792875261.257668
|
1793739261.257668
|
|
8982
|
vipad by @tymon3310 | Stardance
|
tymon3310
|
1
|
5.29
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-15T18:53:23Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "So vipad is 4x4 2xknob and oled macropad powered by vial (fork of qmk) - so the name is from VI(al)macro(PAD) - vipad. I chose vial instead of mainline qmk bc i have experience with it (ported all keychron kebs to it)", "repo": "https://github.com/Tymon3310/vipad", "demo": ""}]...
|
[{"post_id": 74107, "ts": "202 [{"post_id": 74107, "ts": "2026-09-26T18:08:47Z", "hours": 4.2864, "text": "It works!!!"}, {"post_id": 9389, "ts": "2026-06-15T18:50:48Z", "hours": 0.4183, "text": "so the hardware is complected, i will make fw more polished after i build it."}, {"post_id": 3849, "ts": "2026-06-06T22:20:50Z", "hours": 0.4219, "text": "so almost everything done, but fusion is crashing on export, sooooo lets wait"}]...
|
Title: vipad by @tymon3310 | Stardance
Devlogs:
s Title: vipad by @tymon3310 | Stardance
Devlogs:
so almost everything done, but fusion is crashing on export, sooooo lets wait
so the hardware is complected, i will make fw more polished after i build it.
It works!!!
Ships:
So vipad is 4x4 2xknob and oled macropad powered by vial (fork of qmk) - so the name is from VI(al)macro(PAD) - vipad. I chose vial instead of mainline qmk bc i have experience with it (ported all keychron kebs to it)...
|
1793101825.1947808
|
1793188225.1947808
|
|
8989
|
Macropad by @JaidenKhosla | Stardance
|
JaidenKhosla
|
1
|
4.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-14T03:34:57Z", "hours": 4.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made the Stormy-9, a macropad designed for simplicity. It has 16 programmable keys separated out by 2 layers, an adjustable knob for volume and brightness control, and an OLED display showing off your WPM! Interestingly, I found the most challenging part of this project was designing the case. When designing, I took inspiration from my current keyboard, the KBD-75. The project isn’t physically built yet, but I will post on here the second it is. I look forward to seeing this brought to reality! This journey has definitely inspired me to pursue building full-fledged hand-wired keyboards.", "repo": "https://github.com/JaidenKhosla/Stormy-9-Macropad/blob/main/README.md", "demo": ""}]...
|
[{"post_id": 8483, "ts": "2026 [{"post_id": 8483, "ts": "2026-06-14T03:26:06Z", "hours": 0.4194, "text": "(Even though it says 23 minutes, this is supposed to fix the error where 2.5 hours were unaccounted). I spent these 2.5 hours learning QMK and programming the Stormy 9’s firmware. The current features are: 16 programmable keys. 2 Keyboard Layers An adjustable knob for volume and brightness. An OLED display that shows off WPM and a static picture of my cat. Future Features: Display the current key being pressed on the OLED More utility and quality of life features. I need to spend some time researching what people really value in a good macropad. The 23 minutes being logged right now were spent buffing up the README file. I added the resources I utilized during the design and my thought process. I look forward to building the actual thing!"}, {"post_id": 6616, "ts": "2026-06-11T03:06:52Z", "hours": 3.1169, "text": "Finally finished the initial model of the Stormy 9! Because of Fusion refusing to import models (I tried importing a KICAD 3D model of the PCB to utilize the footprint 3D models to simplify case design), I used Blender instead, which was a nightmare of its own. However, everything seems look great! This project has definitely inspired me to start researching hand-wiring full keyboards. PS, I have more like 5-6 hours logged for this, but Hackatime didn’t pick up the time I did in Blender and KICAD."}]...
|
Title: Macropad by @JaidenKhosla | Stardance
Devl Title: Macropad by @JaidenKhosla | Stardance
Devlogs:
Finally finished the initial model of the Stormy 9! Because of Fusion refusing to import models (I tried importing a KICAD 3D model of the PCB to utilize the footprint 3D models to simplify case design), I used Blender instead, which was a nightmare of its own. However, everything seems look great! This project has definitely inspired me to start researching hand-wiring full keyboards. PS, I have more like 5-6 hours logged for this, but Hackatime didn’t pick up the time I did in Blender and KICAD.
(Even though it says 23 minutes, this is supposed to fix the error where 2.5 hours were unaccounted). I spent these 2.5 hours learning QMK and programming the Stormy 9’s firmware. The current features are: 16 programmable keys. 2 Keyboard Layers An adjustable knob for volume and brightness. An OLED display that shows off WPM and a static picture of my cat. Future Features: Display the current key being pressed on the OLED More utility and quality of life features. I need to spend some time researching what people really value in a good macropad. The 23 minutes being logged right now were spent buffing up the README file. I added the resources I utilized during the design and my thought process. I look forward to building the actual thing!
Ships:
I made the Stormy-9, a macropad designed for simplicity. It has 16 programmable keys separated out by 2 layers, an adjustable knob for volume and brightness control, and an OLED display showing off your WPM! Interestingly, I found the most challenging part of this project was designing the case. When designing, I took inspiration from my current keyboard, the KBD-75. The project isn’t physically built yet, but I will post on here the second it is. I look forward to seeing this brought to reality! This journey has definitely inspired me to pursue building full-fledged hand-wired keyboards....
|
1793083842.1215425
|
1793170242.1215425
|
|
8992
|
Trivia Game by @Justin-F | Stardance
|
Justin-F
|
1
|
2.0
|
6
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-17T20:25:41Z", "hours": 2.0, "multiplier": 3.47, "payout": 6, "blessing": "neutral", "text": "What I Made A command-line trivia game that fetches live questions from the Open Trivia Database API and lets you compete for a spot on a local leaderboard. What I’m Proud Of Learning how to style terminal output bold text, colors, panels— using the Rich library. It made the game feel way more polished than plain print statements. What You Need to Know Before Testing You need an internet connection (questions are fetched live from an API) Scores save locally to leaderboard.json — don’t delete it if you want to keep your scores Answer with the number next to your choice, not the text You will need to look at the repo to see how to play this game", "repo": "https://github.com/JF3800/Trivia-Game", "demo": "https://github.com/JF3800/Trivia-Game/releases/tag/v1.0.0"}]...
|
[{"post_id": 5359, "ts": "2026 [{"post_id": 5359, "ts": "2026-06-09T03:06:29Z", "hours": 1.6586, "text": "Finished Coding The project! I post devlogs due to hackatime and stardance not syncing properly at some point."}]...
|
Title: Trivia Game by @Justin-F | Stardance
Devlo Title: Trivia Game by @Justin-F | Stardance
Devlogs:
Finished Coding The project! I post devlogs due to hackatime and stardance not syncing properly at some point.
Ships:
What I Made A command-line trivia game that fetches live questions from the Open Trivia Database API and lets you compete for a spot on a local leaderboard. What I’m Proud Of Learning how to style terminal output bold text, colors, panels— using the Rich library. It made the game feel way more polished than plain print statements. What You Need to Know Before Testing You need an internet connection (questions are fetched live from an API) Scores save locally to leaderboard.json — don’t delete it if you want to keep your scores Answer with the number next to your choice, not the text You will need to look at the repo to see how to play this game...
|
1793083747.6011
|
1793170147.6011
|
|
9004
|
Trisolaris by @martin_chen_au | Stardance
|
martin_chen_au
|
1
|
14.0
|
212
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-15T04:05:10Z", "hours": 14.0, "multiplier": 15.92, "payout": 212, "blessing": "neutral", "text": "I finished Trisolaris! After fighting with camera zooming and clamping, I finally have a visually smooth and cohesive real-time TUI sim of three bodies, in three glorious, distance-scaled colours, in braille. After confirming renders, saving, and infinite-brute-force methods work, I updated README with screenshots and uploaded to PyPi. Hope you like it; it’s available with pip install trisolaris (or other package managers, e.g. uv tool install trisolaris).", "repo": "https://github.com/BitPeppr/3-body", "demo": "https://pypi.org/project/trisolaris/"}]...
|
[{"post_id": 9052, "ts": "2026 [{"post_id": 9052, "ts": "2026-06-15T03:33:32Z", "hours": 1.4514, "text": "Uploaded to Pypi! You can now use with pip install trisolaris."}, {"post_id": 8623, "ts": "2026-06-14T10:36:43Z", "hours": 1.2508, "text": "Camera optimisations (more advanced smoothing and stricter body-within-frame regulation), plus more presets :D"}, {"post_id": 7996, "ts": "2026-06-13T10:30:59Z", "hours": 0.9603, "text": "Added colour averaging (direct average without squares or roots; seems to look more convincing!), presets (figure 8 and ephemeral twirls for now), along with other minor changes. Screenshot shows colour averaging; green and blue overlap become a more greyish colour."}, {"post_id": 7446, "ts": "2026-06-12T12:22:20Z", "hours": 0.7869, "text": "Added artificial damping (unrealistic but more pretty for live rendering) for TUI live mode, along with other QoL improvements and optimisations"}, {"post_id": 7413, "ts": "2026-06-12T10:44:20Z", "hours": 1.195, "text": "Updated visuals, and optimised variuos aspects (e.g. trail logic, anti-singularity, etc.) while adding more cli flags for customisation (e.g. trail length). Experimented and found a few presets for cool behaviour (more intertwined path, not instantly ejecting out into infinity). Planning to add a systematic –preset flag soon!"}, {"post_id": 7296, "ts": "2026-06-12T05:00:13Z", "hours": 0.6253, "text": "Infinite TUI mode! Implemented a continuous, live simulation, not unlike a terminal-based screensaver. (Forgot to update devlogs; this took much longer than 36 minutes)"}, {"post_id": 7256, "ts": "2026-06-12T03:16:18Z", "hours": 4.6847, "text": "Added infinite automatic config finder with judging mechanism, to brute-force try configurations and categorise them into interesting (e.g. butterly, figure-8), uninteresting (straying off into infinity), or unsure (complex patterns for human review)"}, {"post_id": 3084, "ts": "2026-06-05T23:52:50Z", "hours": 3.245, "text": "Early renders"}]...
|
Title: Trisolaris by @martin_chen_au | Stardance
Title: Trisolaris by @martin_chen_au | Stardance
Devlogs:
Early renders
Added infinite automatic config finder with judging mechanism, to brute-force try configurations and categorise them into interesting (e.g. butterly, figure-8), uninteresting (straying off into infinity), or unsure (complex patterns for human review)
Infinite TUI mode! Implemented a continuous, live simulation, not unlike a terminal-based screensaver. (Forgot to update devlogs; this took much longer than 36 minutes)
Updated visuals, and optimised variuos aspects (e.g. trail logic, anti-singularity, etc.) while adding more cli flags for customisation (e.g. trail length). Experimented and found a few presets for cool behaviour (more intertwined path, not instantly ejecting out into infinity). Planning to add a systematic –preset flag soon!
Added artificial damping (unrealistic but more pretty for live rendering) for TUI live mode, along with other QoL improvements and optimisations
Added colour averaging (direct average without squares or roots; seems to look more convincing!), presets (figure 8 and ephemeral twirls for now), along with other minor changes. Screenshot shows colour averaging; green and blue overlap become a more greyish colour.
Camera optimisations (more advanced smoothing and stricter body-within-frame regulation), plus more presets :D
Uploaded to Pypi! You can now use with pip install trisolaris.
Ships:
I finished Trisolaris! After fighting with camera zooming and clamping, I finally have a visually smooth and cohesive real-time TUI sim of three bodies, in three glorious, distance-scaled colours, in braille. After confirming renders, saving, and infinite-brute-force methods work, I updated README with screenshots and uploaded to PyPi. Hope you like it; it’s available with pip install trisolaris (or other package managers, e.g. uv tool install trisolaris)....
|
1792878558.161658
|
1793742558.161658
|
|
9016
|
url-tools slack bot by @crazydave | Stardance
|
|
1
|
2.1
|
4
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-25T13:30:07Z", "hours": 1.0, "multiplier": 2.98, "payout": 4, "blessing": "neutral", "text": "I made a slack bot that lets you shorten URLs and turn text or URLs into QR codes. I followed the slack bot tutorial and the shortened urls are generated by is.gd and the QR codes are generated by a free api.", "repo": "https://github.com/rufus-gh/slack-bot", "demo": "https://app.slack.com/client/E09V59WQY1E/C0P5NE354"}]...
|
[{"post_id": 18484, "ts": "202 [{"post_id": 18484, "ts": "2026-06-29T17:25:00Z", "hours": 0.4631, "text": "Added a longer delay before it times out so hopefully that fixes the errors that have been stopping it from getting approved."}, {"post_id": 16147, "ts": "2026-06-26T07:37:02Z", "hours": 0.6417, "text": "I switched to using my own url shortener as the other api’s weren’t working with slack (so my ship got rejected, should be fixed now), it kept on timing out on the response so it would just send an error message. I used the url shortening from my other projecting and just wrote a small bit of code to have an api for short url creation. I then set it up with nest again and it took forever to get the Nest server working as for some reason the internet connection on the nest would just randomly stop working so the bot wouldn’t work either."}, {"post_id": 15641, "ts": "2026-06-25T13:10:51Z", "hours": 1.4167, "text": "Added bot commands to create QR codes as well as url shortening. I was trying to create the QR generation myself using an npm package but I couldn’t figure out how to send an image from a “data:” url so I instead switched to a free API, and I did the same for the url shortening. I also tried to host it using vercel but it didn’t work so I instead switched to using the hack club nest. Feel free to try it out with this on the slack: /url-tools-help ."}]...
|
Title: url-tools slack bot by @crazydave | Stardan Title: url-tools slack bot by @crazydave | Stardance
Devlogs:
Added bot commands to create QR codes as well as url shortening. I was trying to create the QR generation myself using an npm package but I couldn’t figure out how to send an image from a “data:” url so I instead switched to a free API, and I did the same for the url shortening. I also tried to host it using vercel but it didn’t work so I instead switched to using the hack club nest. Feel free to try it out with this on the slack: /url-tools-help .
I switched to using my own url shortener as the other api’s weren’t working with slack (so my ship got rejected, should be fixed now), it kept on timing out on the response so it would just send an error message. I used the url shortening from my other projecting and just wrote a small bit of code to have an api for short url creation. I then set it up with nest again and it took forever to get the Nest server working as for some reason the internet connection on the nest would just randomly stop working so the bot wouldn’t work either.
Added a longer delay before it times out so hopefully that fixes the errors that have been stopping it from getting approved.
Ships:
I made a slack bot that lets you shorten URLs and turn text or URLs into QR codes. I followed the slack bot tutorial and the shortened urls are generated by is.gd and the QR codes are generated by a free api....
|
1793156087.1215892
|
1793242487.1215892
|
|
9039
|
Demus Converter by @q | Stardance
|
q
|
1
|
6.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-11T23:04:50Z", "hours": 6.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a website that converts a Demus .playlist file into YouTube links/playlists. It works completely in the browser with a simple React/Tailwind UI. I am guessing nobody knows what Demus is or uses it, so I have an example .playlist file here that you can download to test the website: https://github.com/HydrogenMacro/demus-converter/blob/main/assets/Creo%20Discography.playlist", "repo": "https://github.com/HydrogenMacro/demus-converter", "demo": "https://demus-converter.256.lol"}]...
|
[{"post_id": 26892, "ts": "202 [{"post_id": 26892, "ts": "2026-07-11T22:56:39Z", "hours": 2.4272, "text": "I worked on finishing the project with everything that I needed. I added a section that just lists the links as well as a section for external programs that use the list of links. There was also some stuff I did outside VSCode that weren’t tracked, like making the Dockerfile (I did that on my server initially) as well as the script linked in the Additional Resources. I have used this project for converting my playlist from Demus to my own self hosted solutions, so I’d say it’s in a completely finished and usable state."}, {"post_id": 3200, "ts": "2026-06-06T00:54:07Z", "hours": 3.6894, "text": "I grinded out the website from a React Vite template with Tailwind. The logic didn’t take too much to be implemented; the only library I used in that regard was something that can decode xz files. There honestly isn’t too much else to say other than how I absolutely utterly despise web development. Like, who thought it would be a good idea to force everything with flexboxes to break unless you added min-width: 0; to every god forsaken thing, and the entire working group who thought CORS would be even remotely close to being a good idea should be hanged, drawn, and quartered immediately. Anyways, this was more or less just a quick personal tool that has more than enough for what I need, so there isn’t too much that I’m going to be adding probably."}]...
|
Title: Demus Converter by @q | Stardance
Devlogs: Title: Demus Converter by @q | Stardance
Devlogs:
I grinded out the website from a React Vite template with Tailwind. The logic didn’t take too much to be implemented; the only library I used in that regard was something that can decode xz files. There honestly isn’t too much else to say other than how I absolutely utterly despise web development. Like, who thought it would be a good idea to force everything with flexboxes to break unless you added min-width: 0; to every god forsaken thing, and the entire working group who thought CORS would be even remotely close to being a good idea should be hanged, drawn, and quartered immediately. Anyways, this was more or less just a quick personal tool that has more than enough for what I need, so there isn’t too much that I’m going to be adding probably.
I worked on finishing the project with everything that I needed. I added a section that just lists the links as well as a section for external programs that use the list of links. There was also some stuff I did outside VSCode that weren’t tracked, like making the Dockerfile (I did that on my server initially) as well as the script linked in the Additional Resources. I have used this project for converting my playlist from Demus to my own self hosted solutions, so I’d say it’s in a completely finished and usable state.
Ships:
I made a website that converts a Demus .playlist file into YouTube links/playlists. It works completely in the browser with a simple React/Tailwind UI. I am guessing nobody knows what Demus is or uses it, so I have an example .playlist file here that you can download to test the website: https://github.com/HydrogenMacro/demus-converter/blob/main/assets/Creo%20Discography.playlist...
|
1793091035.1373246
|
1793177435.1373246
|
|
9068
|
Personal Website Made with Quartz by @sidmaji | St Personal Website Made with Quartz by @sidmaji | Stardance...
|
sidmaji
|
1
|
7.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-05T17:17:18Z", "hours": 7.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a personal website (with a digital garden philosophy) powered by Quartz, a static site generator that integrates really well with Obsidian, my choice of note-taking app. To try it out, click the “Try project” button below!", "repo": "https://github.com/sidmaji/sidmaji.github.io", "demo": "https://sidmaji.github.io"}]...
|
[{"post_id": 22960, "ts": "202 [{"post_id": 22960, "ts": "2026-07-05T17:12:44Z", "hours": 6.4608, "text": "My website is ready! I changed the theme significantly, added some bases to my Obsidian vault to keep track of my courses, projects, media collection, etc. (and tweaked the site so it displays bases well)."}, {"post_id": 4346, "ts": "2026-06-07T17:02:34Z", "hours": 0.47, "text": "Only 26 mins have been logged so far but I have done some work before registering for Stardance. So far, I have pretty much built the website completely to my liking using Quartz (a Static Site Generator that pairs very well with Obsidian). Only some small tweaks to the theming are needed. I can now take notes in Obsidian using Obsidian-specific features like wikilinks and Bases, all of which work perfectly with Quartz."}]...
|
Title: Personal Website Made with Quartz by @sidma Title: Personal Website Made with Quartz by @sidmaji | Stardance
Devlogs:
Only 26 mins have been logged so far but I have done some work before registering for Stardance. So far, I have pretty much built the website completely to my liking using Quartz (a Static Site Generator that pairs very well with Obsidian). Only some small tweaks to the theming are needed. I can now take notes in Obsidian using Obsidian-specific features like wikilinks and Bases, all of which work perfectly with Quartz.
My website is ready! I changed the theme significantly, added some bases to my Obsidian vault to keep track of my courses, projects, media collection, etc. (and tweaked the site so it displays bases well).
Ships:
I made a personal website (with a digital garden philosophy) powered by Quartz, a static site generator that integrates really well with Obsidian, my choice of note-taking app. To try it out, click the “Try project” button below!...
|
1792878676.8846815
|
1793742676.8846815
|
|
9071
|
MacroMax703! by @Mdkhazar703 | Stardance
|
Mdkhazar703
|
1
|
6.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-26T00:46:02Z", "hours": 6.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "MacroMax is a A QMK-powered macro pad built around a Seeeduino XIAO, with a 3×3 switch matrix and two rotary encoders for volume and screen brightness. It also incorporates hidden features like a secret pass code to activate secret function, isnt that awesome. I had no idea that i has just accepted a project which will have me intrigued, and have me hooked on till late nights. To be honest this roller costar wasn’t only Funsies, it also involved countless seemingly unsolvable problems, for instance I had run into a error with DRC where it said thermal relief spoke was lover the the minimum, I tried everything rerouting again and again but it dint work, i even tried to delete the whole PCB and start again with scratch, eventually i found out that i couldn’t keep any wires close to the spokes. Its a pad where i tried to use the XIAO to its full potential, and I learnt a lot during the process. It might see basic but I did put my heart and soul into it, and also dint know that there was Hackatime for KICAD, i wish i had know that sooner", "repo": "https://github.com/mdkhazar703-maker/MicroMax703", "demo": ""}]...
|
[{"post_id": 15953, "ts": "202 [{"post_id": 15953, "ts": "2026-06-25T22:21:25Z", "hours": 2.6392, "text": "Devlog3 - -Finally completed the firmware and Onshape Designing *First I had to take all the measurements form KI ca, implemented mounting holes and, according to the measurements making supporting beams, and walla it was done *Later I worked on QMK firmware, broo not gonna lie it looked super intimidating initially but when I actually sat down and started working on it everything unraveled itself to form this not perfect but, one which logically made sense. Cant wait to test it physically test it!!!!"}, {"post_id": 15484, "ts": "2026-06-25T05:22:35Z", "hours": 2.0975, "text": "Devlog 2- The regret and redemption 😭 I was so hyped up to make a macro pad, I posted my first devlog, after all that time tweaking the wire routes, figuring out why gerber files are called gerber files, running the DRC just to find out that 3 error, and redoing everything, I accomplished my dream board, OHHH noooooooooooo, bro i read the FAQ the next day and found out tht you cannot use other microcontrollers for this project, that feeling was awful, but it sparked evenmore tenacity in me, i worked in kicad for about 6 hours just to run into more DRC issues, 30 mins of rerouting everything. AND FINIALLY - I was done with KICAD just to began the CAD, 2 hours in i found out that you have hackatime for onshape, isn’t that cool, bro 😭 couldn’t anyone hv told me that sooner. even after these setbacks i installed the extension and moved on. AND FINNALY I WAS DONE WITH CAD AND KICAD on first glance it might not look much but for a noob, and a learner i really took alot of time"}, {"post_id": 5083, "ts": "2026-06-08T19:27:13Z", "hours": 1.2569, "text": "Just learnt to use KICAD, its just the start wait for more to come.😆– What else should I add to maxx it out!!!!?"}]...
|
Title: MacroMax703! by @Mdkhazar703 | Stardance
D Title: MacroMax703! by @Mdkhazar703 | Stardance
Devlogs:
Just learnt to use KICAD, its just the start wait for more to come.😆– What else should I add to maxx it out!!!!?
Devlog 2- The regret and redemption 😭 I was so hyped up to make a macro pad, I posted my first devlog, after all that time tweaking the wire routes, figuring out why gerber files are called gerber files, running the DRC just to find out that 3 error, and redoing everything, I accomplished my dream board, OHHH noooooooooooo, bro i read the FAQ the next day and found out tht you cannot use other microcontrollers for this project, that feeling was awful, but it sparked evenmore tenacity in me, i worked in kicad for about 6 hours just to run into more DRC issues, 30 mins of rerouting everything. AND FINIALLY - I was done with KICAD just to began the CAD, 2 hours in i found out that you have hackatime for onshape, isn’t that cool, bro 😭 couldn’t anyone hv told me that sooner. even after these setbacks i installed the extension and moved on. AND FINNALY I WAS DONE WITH CAD AND KICAD on first glance it might not look much but for a noob, and a learner i really took alot of time
Devlog3 - -Finally completed the firmware and Onshape Designing *First I had to take all the measurements form KI ca, implemented mounting holes and, according to the measurements making supporting beams, and walla it was done *Later I worked on QMK firmware, broo not gonna lie it looked super intimidating initially but when I actually sat down and started working on it everything unraveled itself to form this not perfect but, one which logically made sense. Cant wait to test it physically test it!!!!
Ships:
MacroMax is a A QMK-powered macro pad built around a Seeeduino XIAO, with a 3×3 switch matrix and two rotary encoders for volume and screen brightness. It also incorporates hidden features like a secret pass code to activate secret function, isnt that awesome. I had no idea that i has just accepted a project which will have me intrigued, and have me hooked on till late nights. To be honest this roller costar wasn’t only Funsies, it also involved countless seemingly unsolvable problems, for instance I had run into a error with DRC where it said thermal relief spoke was lover the the minimum, I tried everything rerouting again and again but it dint work, i even tried to delete the whole PCB and start again with scratch, eventually i found out that i couldn’t keep any wires close to the spokes. Its a pad where i tried to use the XIAO to its full potential, and I learnt a lot during the process. It might see basic but I did put my heart and soul into it, and also dint know that there was Hackatime for KICAD, i wish i had know that sooner...
|
1793116105.6085145
|
1793202505.6085145
|
|
9093
|
Matrix Transformation Visualiser by @crazydave | S Matrix Transformation Visualiser by @crazydave | Stardance...
|
|
1
|
2.0
|
20
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-15T14:32:40Z", "hours": 2.0, "multiplier": 8.58, "payout": 20, "blessing": "neutral", "text": "I made a website that lets you visualise linear transformations with matrices where you can enter a transformation matrix and it will apply it to a grid so you can visually see what is going on. It was challenging to figure out converting the canvas coordinates to world coordinates so the matrix transformations were to scale, and it was cool when I added the animation of the matrix transformation so you can see the grid move from one position to the next.", "repo": "https://github.com/rufus-gh/matrix-transformation", "demo": "https://matrix-transformation-visualiser.vercel.app"}]...
|
[{"post_id": 9212, "ts": "2026 [{"post_id": 9212, "ts": "2026-06-15T13:52:48Z", "hours": 0.275, "text": "finished the ui so it doesn’t suck"}, {"post_id": 4135, "ts": "2026-06-07T10:30:01Z", "hours": 0.4344, "text": "added animation to the vector transformations so now I just need to improve the ui and then the MVP will be complete, also added an FPS counter to see how it performs when I change the size of the grid."}, {"post_id": 3453, "ts": "2026-06-06T12:13:43Z", "hours": 0.3206, "text": "just a quick one, made it so that the matrix transform also applies to the coordinate grid by making the line coordinates be based off of the transformed world coordinates"}, {"post_id": 3252, "ts": "2026-06-06T03:04:53Z", "hours": 1.3619, "text": "I started making a website that will allow people to visualise how matrix transformations change how the 2d grid looks. I have so far set up the project, made a 2d grid using html canvas, and added an input where the user can type in a transformation matrix and it will apply it to the red vector. Next time I work on it I will make the matrix transformation apply to the entire grid. For some reason the grid doesn’t display properly on the vercel deployment so I will try to fix that next time. Let me know if you have any suggestions."}]...
|
Title: Matrix Transformation Visualiser by @crazyd Title: Matrix Transformation Visualiser by @crazydave | Stardance
Devlogs:
I started making a website that will allow people to visualise how matrix transformations change how the 2d grid looks. I have so far set up the project, made a 2d grid using html canvas, and added an input where the user can type in a transformation matrix and it will apply it to the red vector. Next time I work on it I will make the matrix transformation apply to the entire grid. For some reason the grid doesn’t display properly on the vercel deployment so I will try to fix that next time. Let me know if you have any suggestions.
just a quick one, made it so that the matrix transform also applies to the coordinate grid by making the line coordinates be based off of the transformed world coordinates
added animation to the vector transformations so now I just need to improve the ui and then the MVP will be complete, also added an FPS counter to see how it performs when I change the size of the grid.
finished the ui so it doesn’t suck
Ships:
I made a website that lets you visualise linear transformations with matrices where you can enter a transformation matrix and it will apply it to a grid so you can visually see what is going on. It was challenging to figure out converting the canvas coordinates to world coordinates so the matrix transformations were to scale, and it was cool when I added the animation of the matrix transformation so you can see the grid move from one position to the next....
|
1793156078.968651
|
1793242478.968651
|
|
9106
|
My first slack bot! by @gabino | Stardance
|
gabino
|
1
|
2.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-30T03:02:25Z", "hours": 2.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a Slack bot that has a bunch of animal commands. You can ask for a dog picture, a dog fact, a cat picture, cat facts, and more. I am pretty proud of this project because it is the first bot I made and hosted online. I learned so much throughout this project, and now I know what APIs are (and why everybody keeps talking about leaking them) and ssh, and so much more. You can test this project by either DMing the gabot, or doing /gabot-(something) in the bot-spam channel in the Hack Club slack", "repo": "https://github.com/ggkchen/bot-slacking-off", "demo": "https://hackclub.enterprise.slack.com/archives/C0P5NE354"}]...
|
[{"post_id": 18898, "ts": "202 [{"post_id": 18898, "ts": "2026-06-30T02:54:54Z", "hours": 1.3872, "text": "I added a couple new commands: /gabot-catpic /gabot-dogpic /gabot-dogfact I managed to add tags to catpic, and added an error handler for when the tags weren’t recognized I also added a new feature where if your message contains the word “bye” the bot automatically responds with a random message like bye, buh bye, ect."}, {"post_id": 12975, "ts": "2026-06-21T07:13:39Z", "hours": 0.4064, "text": "I just finished the guide to make a Slack bot, and now im just waiting for my nest application to go though! I messed around a little with apis, and I think i learned a lot!"}]...
|
Title: My first slack bot! by @gabino | Stardance
Title: My first slack bot! by @gabino | Stardance
Devlogs:
I just finished the guide to make a Slack bot, and now im just waiting for my nest application to go though! I messed around a little with apis, and I think i learned a lot!
I added a couple new commands: /gabot-catpic /gabot-dogpic /gabot-dogfact I managed to add tags to catpic, and added an error handler for when the tags weren’t recognized I also added a new feature where if your message contains the word “bye” the bot automatically responds with a random message like bye, buh bye, ect.
Ships:
I made a Slack bot that has a bunch of animal commands. You can ask for a dog picture, a dog fact, a cat picture, cat facts, and more. I am pretty proud of this project because it is the first bot I made and hosted online. I learned so much throughout this project, and now I know what APIs are (and why everybody keeps talking about leaking them) and ssh, and so much more. You can test this project by either DMing the gabot, or doing /gabot-(something) in the bot-spam channel in the Hack Club slack...
|
1793109339.6133373
|
1793195739.6133373
|
|
9156
|
My first slack bot! by @sirius | Stardance
|
sirius
|
1
|
0.46
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-16T16:07:06Z", "hours": 0.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Built a Slack bot called Sirius Bot for the Hack Club workspace! It has 5 slash commands with the unique /sirius- prefix: /sirius-hello (motivational greetings), /sirius-weather (live weather via wttr.in API), /sirius-fact (random fun facts with fallbacks), /sirius-calc (safe math evaluator with regex validation), and /sirius-8ball (magic 8-ball with 14 responses). The hardest part was setting up Socket Mode with @slack /bolt so no public server is needed. Super proud of the weather command that pulls real live data! To test it, join the Hack Club Slack and try any /sirius- command.", "repo": "https://github.com/SiriusW823/sirius-slack-bot", "demo": "https://hackclub.slack.com/"}]...
|
[{"post_id": 29891, "ts": "202 [{"post_id": 29891, "ts": "2026-07-17T01:46:34Z", "hours": 0.4586, "text": "Verified the deployed Sirius Bot is still online in #sirius-bot-demo by running /sirius-hello and receiving a live reply. While reviewing /sirius-calc, I found that ^ was being interpreted as JavaScript bitwise XOR, so 2 ^ 3 returned 1 instead of 8. I replaced the Function-based evaluator with a small safe expression parser, fixed ^ to mean exponentiation, and added sqrt(…) support. I also added Node test coverage for precedence, powers, square roots, unsafe input, negative roots, and division by zero; all 4 test groups pass. Example: /sirius-calc sqrt(81) + 2 ^ 3 now returns 17."}, {"post_id": 10008, "ts": "2026-06-16T15:28:07Z", "hours": 0.3183, "text": "Built a Slack bot using Node.js and the @slack /bolt framework with Socket Mode — no public server needed! The bot runs in the Hack Club workspace and supports 5 slash commands: /sirius-hello (motivational greetings), /sirius-weather (live weather via wttr.in), /sirius-fact (random fun facts), /sirius-calc (safe math evaluator), and /sirius-8ball (magic 8-ball). Set up the GitHub repo and got the bot connected and running locally. Next step: deploy to Hack Club Nest for 24/7 uptime!"}]...
|
Title: My first slack bot! by @sirius | Stardance
Title: My first slack bot! by @sirius | Stardance
Devlogs:
Built a Slack bot using Node.js and the @slack /bolt framework with Socket Mode — no public server needed! The bot runs in the Hack Club workspace and supports 5 slash commands: /sirius-hello (motivational greetings), /sirius-weather (live weather via wttr.in), /sirius-fact (random fun facts), /sirius-calc (safe math evaluator), and /sirius-8ball (magic 8-ball). Set up the GitHub repo and got the bot connected and running locally. Next step: deploy to Hack Club Nest for 24/7 uptime!
Verified the deployed Sirius Bot is still online in #sirius-bot-demo by running /sirius-hello and receiving a live reply. While reviewing /sirius-calc, I found that ^ was being interpreted as JavaScript bitwise XOR, so 2 ^ 3 returned 1 instead of 8. I replaced the Function-based evaluator with a small safe expression parser, fixed ^ to mean exponentiation, and added sqrt(…) support. I also added Node test coverage for precedence, powers, square roots, unsafe input, negative roots, and division by zero; all 4 test groups pass. Example: /sirius-calc sqrt(81) + 2 ^ 3 now returns 17.
Ships:
Built a Slack bot called Sirius Bot for the Hack Club workspace! It has 5 slash commands with the unique /sirius- prefix: /sirius-hello (motivational greetings), /sirius-weather (live weather via wttr.in API), /sirius-fact (random fun facts with fallbacks), /sirius-calc (safe math evaluator with regex validation), and /sirius-8ball (magic 8-ball with 14 responses). The hardest part was setting up Socket Mode with @slack /bolt so no public server is needed. Super proud of the weather command that pulls real live data! To test it, join the Hack Club Slack and try any /sirius- command....
|
1793112461.7215686
|
1793198861.7215686
|
|
9181
|
Echo! by @Selim | Stardance
|
Selim
|
1
|
0.0
|
1
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-07T23:56:06Z", "hours": 0.0, "multiplier": 1.3, "payout": 1, "blessing": "neutral", "text": "I finished building the base for the echo slack bot, following this tutorial was more trouble than I excepted, but that’s what makes this project worth more. Going through the steps required some troubleshooting and downtime, but it was all worth it. Echo currently does the bare minimum but I do have a vision for what it could be in the future, im putting echo out there just to get started somewhere and im excited to continue working on Echo!", "repo": "https://github.com/Echo-Sel/Echo-Slack-Bot", "demo": "https://hackclub.enterprise.slack.com/archives/C0B8UG57Q3Y"}]...
|
[{"post_id": 4363, "ts": "2026 [{"post_id": 4363, "ts": "2026-06-07T17:38:14Z", "hours": 0.4769, "text": "Today I finished the bare minimum working model for the Echo Slack bot! While I didn’t add anything special, I do have extreme plans to make echo a slack powerhouse! This project was extremely fun to work on and I learn a lot of key features and how to use slack. This log will be the first of many as I slowly but surely make echo into the most efficient and important slack bot! Existing features: ✅ /dsb-ping-echo: This checks the latency of the connection ✅ /dsb-catfact-echo: Echo is very into cats and loves sharing new fun facts! ✅ /dsb-joke-echo: In Echo’s lighthearted manner, he will tell an extremely old Joke ✅ /dsb-help-echo: this command is going to be especially useful later down the line when more commands are being used Future Implementations: 📥 Context clues: Echo will be able to respond based on the context of the last message 📥 Truth telling: Echo will have access to a magic 8-ball to see the future 📥News: Echo will have access to the latest news updates to stay up-to-date on the world Follow along to see what Echo can become in the future! P.S please laugh at Echos joke"}]...
|
Title: Echo! by @Selim | Stardance
Devlogs:
Today Title: Echo! by @Selim | Stardance
Devlogs:
Today I finished the bare minimum working model for the Echo Slack bot! While I didn’t add anything special, I do have extreme plans to make echo a slack powerhouse! This project was extremely fun to work on and I learn a lot of key features and how to use slack. This log will be the first of many as I slowly but surely make echo into the most efficient and important slack bot! Existing features: ✅ /dsb-ping-echo: This checks the latency of the connection ✅ /dsb-catfact-echo: Echo is very into cats and loves sharing new fun facts! ✅ /dsb-joke-echo: In Echo’s lighthearted manner, he will tell an extremely old Joke ✅ /dsb-help-echo: this command is going to be especially useful later down the line when more commands are being used Future Implementations: 📥 Context clues: Echo will be able to respond based on the context of the last message 📥 Truth telling: Echo will have access to a magic 8-ball to see the future 📥News: Echo will have access to the latest news updates to stay up-to-date on the world Follow along to see what Echo can become in the future! P.S please laugh at Echos joke
Ships:
I finished building the base for the echo slack bot, following this tutorial was more trouble than I excepted, but that’s what makes this project worth more. Going through the steps required some troubleshooting and downtime, but it was all worth it. Echo currently does the bare minimum but I do have a vision for what it could be in the future, im putting echo out there just to get started somewhere and im excited to continue working on Echo!...
|
1793087579.340144
|
1793173979.340144
|
|
9184
|
my neovim by @wil0 | Stardance
|
wil0
|
1
|
11.48
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-06T03:29:49Z", "hours": 10.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "These are my personal neovim flake (nvf) configs with import-tree for modularity. Feel free to use it as a starting point for your own configs", "repo": "https://github.com/owo93/nvim.nix", "demo": "https://github.com/owo93/nvim.nix.git"}]...
|
[{"post_id": 13021, "ts": "202 [{"post_id": 13021, "ts": "2026-06-21T09:20:05Z", "hours": 1.4811, "text": "Some minor changes this week"}, {"post_id": 3257, "ts": "2026-06-06T03:11:36Z", "hours": 10.3772, "text": "Hello, world!"}]...
|
Title: my neovim by @wil0 | Stardance
Devlogs:
He Title: my neovim by @wil0 | Stardance
Devlogs:
Hello, world!
Some minor changes this week
Ships:
These are my personal neovim flake (nvf) configs with import-tree for modularity. Feel free to use it as a starting point for your own configs...
|
1793094909.2850254
|
1793181309.2850254
|
|
9210
|
Calculator by @SK | Stardance
|
SK
|
1
|
5.28
|
10
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-08T02:45:02Z", "hours": 5.0, "multiplier": 2.15, "payout": 10, "blessing": "neutral", "text": "I built a fully functional calculator using React, Vite, and Bootstrap. The calculator supports basic arithmetic operations such as addition, subtraction, multiplication, and division with a clean and responsive user interface. The most challenging part was managing the calculator logic, handling user inputs correctly, and ensuring calculations were performed accurately while maintaining the application state in React. I am proud of successfully creating a working calculator from scratch and implementing a responsive design using Bootstrap. This project helped me strengthen my understanding of React components, state management, event handling, and modern frontend development practices. Through this project, I learned how to build interactive user interfaces with React, organize components efficiently, and deploy applications using GitHub and Render. To test the project, users can enter numbers using the calculator buttons, perform arithmetic operations, clear inputs, and verify that the displayed results are calculated correctly.", "repo": "https://github.com/somyakhuteta/React", "demo": "https://somyakhuteta.github.io/React/"}]...
|
[{"post_id": 6112, "ts": "2026 [{"post_id": 6112, "ts": "2026-06-10T08:43:59Z", "hours": 0.2794, "text": "Deployment Debugging and Re-Certification Journey Today’s ship turned into a deployment debugging session rather than a coding session. I had already completed my React + Vite calculator and deployed it on Render. After submitting it for review, I received feedback that Render free-tier links are not accepted because they may become unavailable in the future. To solve this, I decided to migrate the project to GitHub Pages and began setting up a new deployment workflow. The migration wasn’t smooth. Although GitHub Pages reported that the site was live, opening the link only showed a blank white screen. After checking the repository structure, deployment settings, and project configuration, I traced the issue to the Vite base path configuration. Once the base path was corrected, I rebuilt the project, redeployed it, and tested the site again. Success — the calculator loaded correctly and the GitHub Pages deployment worked as expected. This experience taught me that shipping a project isn’t only about writing code. Understanding deployment, hosting platforms, project structure, and debugging production issues is just as important. The calculator is now successfully hosted, ready for re-certification, and I’m ready to move on to building and shipping the next project."}, {"post_id": 4107, "ts": "2026-06-07T09:30:55Z", "hours": 2.6839, "text": "Completed the code for project calculator"}, {"post_id": 4000, "ts": "2026-06-07T04:33:38Z", "hours": 0.9286, "text": "Started working on the basic project"}, {"post_id": 3299, "ts": "2026-06-06T04:57:36Z", "hours": 1.0189, "text": "I am currently working on the functioning of react by implementing html, js and css in it."}]...
|
Title: Calculator by @SK | Stardance
Devlogs:
I a Title: Calculator by @SK | Stardance
Devlogs:
I am currently working on the functioning of react by implementing html, js and css in it.
Started working on the basic project
Completed the code for project calculator
Deployment Debugging and Re-Certification Journey Today’s ship turned into a deployment debugging session rather than a coding session. I had already completed my React + Vite calculator and deployed it on Render. After submitting it for review, I received feedback that Render free-tier links are not accepted because they may become unavailable in the future. To solve this, I decided to migrate the project to GitHub Pages and began setting up a new deployment workflow. The migration wasn’t smooth. Although GitHub Pages reported that the site was live, opening the link only showed a blank white screen. After checking the repository structure, deployment settings, and project configuration, I traced the issue to the Vite base path configuration. Once the base path was corrected, I rebuilt the project, redeployed it, and tested the site again. Success — the calculator loaded correctly and the GitHub Pages deployment worked as expected. This experience taught me that shipping a project isn’t only about writing code. Understanding deployment, hosting platforms, project structure, and debugging production issues is just as important. The calculator is now successfully hosted, ready for re-certification, and I’m ready to move on to building and shipping the next project.
Ships:
I built a fully functional calculator using React, Vite, and Bootstrap. The calculator supports basic arithmetic operations such as addition, subtraction, multiplication, and division with a clean and responsive user interface. The most challenging part was managing the calculator logic, handling user inputs correctly, and ensuring calculations were performed accurately while maintaining the application state in React. I am proud of successfully creating a working calculator from scratch and implementing a responsive design using Bootstrap. This project helped me strengthen my understanding of React components, state management, event handling, and modern frontend development practices. Through this project, I learned how to build interactive user interfaces with React, organize components efficiently, and deploy applications using GitHub and Render. To test the project, users can enter numbers using the calculator buttons, perform arithmetic operations, clear inputs, and verify that the displayed results are calculated correctly....
|
1793105354.244343
|
1793191754.244343
|
|
9217
|
My first slack bot! by @markduda | Stardance
|
markduda
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-19T04:25:22Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a simple slackbot to get used to how stardance festival works. You can test it out in the bot channel on slack.", "repo": "https://github.com/mark-duda-maker/slackbot", "demo": "https://hackclub.enterprise.slack.com/archives/C0P5NE354"}]...
|
[{"post_id": 11756, "ts": "202 [{"post_id": 11756, "ts": "2026-06-19T04:18:02Z", "hours": 1.4272, "text": "completed the tutorial and added a random number generator feature"}]...
|
Title: My first slack bot! by @markduda | Stardanc Title: My first slack bot! by @markduda | Stardance
Devlogs:
completed the tutorial and added a random number generator feature
Ships:
I made a simple slackbot to get used to how stardance festival works. You can test it out in the bot channel on slack....
|
1793130563.6039321
|
1793216963.6039321
|
|
9234
|
Stopwatch Website by @Ram_Kondapalli | Stardance
|
Ram_Kondapalli
|
1
|
3.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-06T05:59:18Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "A fast, minimalist stopwatch web app built with vanilla HTML, CSS, and JavaScript for accurate timing down to the millisecond. Features: 1) Start, Pause, and Reset stopwatch 2) Millisecond-level timing accuracy 3) Clean, centered UI with dark theme 4) Responsive layout for both mobile and desktop 5) Real-time updates using setInterval() 6) Start button becomes a resume button after stop is pressed Built With: HTML5 - structure CSS3 - styling and layout JavaScript - stopwatch logic and timing functionality How It Works: The stopwatch uses JavaScript setInterval() function to repeatedly update the display at fixed intervals of approximately 10 milliseconds. It tracks elapsed time by incrementing milliseconds, seconds, minutes, and hours over time. Each tick (interval) updates the DOM, which keeps the display in sync with the interval counters. The app simulates a stopwatch by incrementing values at fixed intervals. The website itself it hosted through Vercel. Demo Link: https://stopwatch-website-sage.vercel.app/ Challenges: One of the main challenges that I faced was trying to get my boxes and buttons to align and look symmetrical. I also had to figure out how to make certain elements bigger and more separated so I spent quite a while experimenting with style.css file and trying to make the website look good. On that note, I am also very proud of how the website ended up looking with its symmetry and dark color scheme. I had a small issue with my stopwatch box shaking, so I was very happy when I figured out how to minimize the shaking. Finally, I am very proud with regards to the project itself, since this is my first major website and the only one that I have made fully public.", "repo": "https://github.com/Dragoman23/Stopwatch_Website", "demo": "https://stopwatch-website-sage.vercel.app/"}]...
|
[{"post_id": 3317, "ts": "2026 [{"post_id": 3317, "ts": "2026-06-06T05:44:52Z", "hours": 3.2872, "text": "A fast, minimalist stopwatch web app built with vanilla HTML, CSS, and JavaScript for accurate timing down to the millisecond. Features: 1) Start, Pause, and Reset stopwatch 2) Millisecond-level timing accuracy 3) Clean, centered UI with dark theme 4) Responsive layout for both mobile and desktop 5) Real-time updates using setInterval() 6) Start button becomes a resume button after stop is pressed Built With: HTML5 - structure CSS3 - styling and layout JavaScript - stopwatch logic and timing functionality How It Works: The stopwatch uses JavaScript setInterval() function to repeatedly update the display at fixed intervals of approximately 10 milliseconds. It tracks elapsed time by incrementing milliseconds, seconds, minutes, and hours over time. Each tick (interval) updates the DOM, which keeps the display in sync with the interval counters. The app simulates a stopwatch by incrementing values at fixed intervals."}]...
|
Title: Stopwatch Website by @Ram_Kondapalli | Star Title: Stopwatch Website by @Ram_Kondapalli | Stardance
Devlogs:
A fast, minimalist stopwatch web app built with vanilla HTML, CSS, and JavaScript for accurate timing down to the millisecond. Features: 1) Start, Pause, and Reset stopwatch 2) Millisecond-level timing accuracy 3) Clean, centered UI with dark theme 4) Responsive layout for both mobile and desktop 5) Real-time updates using setInterval() 6) Start button becomes a resume button after stop is pressed Built With: HTML5 - structure CSS3 - styling and layout JavaScript - stopwatch logic and timing functionality How It Works: The stopwatch uses JavaScript setInterval() function to repeatedly update the display at fixed intervals of approximately 10 milliseconds. It tracks elapsed time by incrementing milliseconds, seconds, minutes, and hours over time. Each tick (interval) updates the DOM, which keeps the display in sync with the interval counters. The app simulates a stopwatch by incrementing values at fixed intervals.
Ships:
A fast, minimalist stopwatch web app built with vanilla HTML, CSS, and JavaScript for accurate timing down to the millisecond. Features: 1) Start, Pause, and Reset stopwatch 2) Millisecond-level timing accuracy 3) Clean, centered UI with dark theme 4) Responsive layout for both mobile and desktop 5) Real-time updates using setInterval() 6) Start button becomes a resume button after stop is pressed Built With: HTML5 - structure CSS3 - styling and layout JavaScript - stopwatch logic and timing functionality How It Works: The stopwatch uses JavaScript setInterval() function to repeatedly update the display at fixed intervals of approximately 10 milliseconds. It tracks elapsed time by incrementing milliseconds, seconds, minutes, and hours over time. Each tick (interval) updates the DOM, which keeps the display in sync with the interval counters. The app simulates a stopwatch by incrementing values at fixed intervals. The website itself it hosted through Vercel. Demo Link: https://stopwatch-website-sage.vercel.app/ Challenges: One of the main challenges that I faced was trying to get my boxes and buttons to align and look symmetrical. I also had to figure out how to make certain elements bigger and more separated so I spent quite a while experimenting with style.css file and trying to make the website look good. On that note, I am also very proud of how the website ended up looking with its symmetry and dark color scheme. I had a small issue with my stopwatch box shaking, so I was very happy when I figured out how to minimize the shaking. Finally, I am very proud with regards to the project itself, since this is my first major website and the only one that I have made fully public....
|
1793102115.4441257
|
1793188515.4441257
|
|
9269
|
My website by @Blxm | Stardance
|
Blxm
|
1
|
11.0
|
20
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-06T08:19:18Z", "hours": 11.0, "multiplier": 1.71, "payout": 20, "blessing": "neutral", "text": "I made my website Admidditally, not my best work, but dosn’t matter. What did i build? I built a simple portfolio website using svelte, and tailwind. Challenges This was my first project i used svelte, and tailwind in, so it’s basically to get my feet wet in both svelte and tailwind.", "repo": "https://github.com/BlxCode/blxmwebsitev4", "demo": "https://blxm.me/"}]...
|
[{"post_id": 77243, "ts": "202 [{"post_id": 77243, "ts": "2026-10-06T08:12:16Z", "hours": 0.4228, "text": "Changed languages stats board Changed the languages stas board from being hackatime to github stats"}, {"post_id": 74648, "ts": "2026-09-27T20:56:44Z", "hours": 0.6978, "text": "Added about me and stats Added an about me, and hackatime & github stats"}, {"post_id": 74230, "ts": "2026-09-27T00:35:09Z", "hours": 0.3431, "text": "Added languages I know section Alright… so i added a section where i list langueges i know."}, {"post_id": 73842, "ts": "2026-09-26T04:47:14Z", "hours": 1.3631, "text": "Added a Projects component to the website ALright, projects. It’s quite simple. just a new svelte file and some more tailwind. Nothing that much tbh"}, {"post_id": 73024, "ts": "2026-09-24T07:20:00Z", "hours": 2.3736, "text": "Added A body to the website alright, so last dev log there was litterally nothing in my website, just a header. Today, I added some things inside the website, like a carousel for an about me, and a contact me page!"}, {"post_id": 72553, "ts": "2026-09-23T06:17:34Z", "hours": 6.2411, "text": "Experimenting W/ Svelte (I need a mousepad lol) Ok, so why am I experimenting? well. My current website, which I had already taken down just loooks old, and unprofetional. Especially with the yellow background. Hense, why I took it down, and I’m going to replace it with a new one! It’ll be quite similar to my other website project, but this one would be more cooler. This is actually my first project with svelte, and tailwind! It’ll be fun figruing out svelte, tailwind, and eventually vite, cuz i gotta ship this for stardust you know… I need a mousepad. Tailwind imo is just more powerful than bootstrap, and because I used bootstrap to make my old website, tailwind should be quite easy to grasp."}]...
|
Title: My website by @Blxm | Stardance
Devlogs:
E Title: My website by @Blxm | Stardance
Devlogs:
Experimenting W/ Svelte (I need a mousepad lol) Ok, so why am I experimenting? well. My current website, which I had already taken down just loooks old, and unprofetional. Especially with the yellow background. Hense, why I took it down, and I’m going to replace it with a new one! It’ll be quite similar to my other website project, but this one would be more cooler. This is actually my first project with svelte, and tailwind! It’ll be fun figruing out svelte, tailwind, and eventually vite, cuz i gotta ship this for stardust you know… I need a mousepad. Tailwind imo is just more powerful than bootstrap, and because I used bootstrap to make my old website, tailwind should be quite easy to grasp.
Added A body to the website alright, so last dev log there was litterally nothing in my website, just a header. Today, I added some things inside the website, like a carousel for an about me, and a contact me page!
Added a Projects component to the website ALright, projects. It’s quite simple. just a new svelte file and some more tailwind. Nothing that much tbh
Added languages I know section Alright… so i added a section where i list langueges i know.
Added about me and stats Added an about me, and hackatime & github stats
Changed languages stats board Changed the languages stas board from being hackatime to github stats
Ships:
I made my website Admidditally, not my best work, but dosn’t matter. What did i build? I built a simple portfolio website using svelte, and tailwind. Challenges This was my first project i used svelte, and tailwind in, so it’s basically to get my feet wet in both svelte and tailwind....
|
1793145253.6156244
|
1793231653.6156244
|
|
9291
|
HuruInk by @nero_404 | Stardance
|
nero_404
|
1
|
0.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-04T14:44:40Z", "hours": 0.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "HuruInk Draw in the air. Leave ink on the screen. A privacy-friendly, browser-based gesture drawing studio powered by real-time hand tracking. Webcams normally just record us. HuruInk asks a different question: what if a webcam could understand what you want to create? Raise your hand and your index finger becomes a brush. HuruInk tracks hand landmarks in real time, translates gestures into drawing actions, and renders the result on an HTML Canvas—all inside the browser. No account. No special controller. No camera feed uploaded to a server.", "repo": "https://github.com/BeBecpp/HuruInk", "demo": "https://bebecpp.github.io/HuruInk/"}]...
|
[{"post_id": 3357, "ts": "2026 [{"post_id": 3357, "ts": "2026-06-06T07:40:11Z", "hours": 0.4936, "text": "Today I started turning HuruInk into a cleaner v2 release for Stardance. HuruInk is a webcam-powered gesture drawing app where users can draw in the air with their hand and turn movement into digital ink. For this update, I focused on setting up the project direction, improving the documentation, and preparing the repo for a proper v2 release. I also worked on making the project easier to understand for reviewers by adding a clearer README, explaining the main features, and planning the new drawing controls like draw/erase mode, brush settings, PNG export, and local gallery/history. The main goal for this version is to turn HuruInk from an early prototype into a polished open-source creative tool that people can actually try from a live demo. https://bebecpp.github.io/HuruInk/"}]...
|
Title: HuruInk by @nero_404 | Stardance
Devlogs:
Title: HuruInk by @nero_404 | Stardance
Devlogs:
Today I started turning HuruInk into a cleaner v2 release for Stardance. HuruInk is a webcam-powered gesture drawing app where users can draw in the air with their hand and turn movement into digital ink. For this update, I focused on setting up the project direction, improving the documentation, and preparing the repo for a proper v2 release. I also worked on making the project easier to understand for reviewers by adding a clearer README, explaining the main features, and planning the new drawing controls like draw/erase mode, brush settings, PNG export, and local gallery/history. The main goal for this version is to turn HuruInk from an early prototype into a polished open-source creative tool that people can actually try from a live demo. https://bebecpp.github.io/HuruInk/
Ships:
HuruInk Draw in the air. Leave ink on the screen. A privacy-friendly, browser-based gesture drawing studio powered by real-time hand tracking. Webcams normally just record us. HuruInk asks a different question: what if a webcam could understand what you want to create? Raise your hand and your index finger becomes a brush. HuruInk tracks hand landmarks in real time, translates gestures into drawing actions, and renders the result on an HTML Canvas—all inside the browser. No account. No special controller. No camera feed uploaded to a server....
|
1792878501.1414309
|
1793742501.1414309
|
|
9318
|
My first slack bot! by @darshjain | Stardance
|
darshjain
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-06T17:15:54Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Dude Bot is my first Slack bot, built with Node.js + Slack Bolt running in Socket Mode. It has a few slash commands: /dsb-darsh-ping (latency check), /dsb-darsh-help, /dsb-darsh-catfact, and /dsb-darsh-joke (both pull from free APIs). It also has a full trivia game - /dsb-darsh-trivia asks a multiple-choice question, /dsb-darsh-answer checks it, and /dsb-darsh-score shows a leaderboard that persists across restarts. Most challenging: getting it deployed and running 24/7. I got it running on a Nest container with a systemd service, then spent way too long fighting GitHub Actions’ “Permission denied (publickey)” error before figuring out that Nest sits behind a bastion that only accepts account-registered SSH keys, not the local authorized_keys file. That whole process taught me a lot about how SSH authentication actually works. Most proud of: the trivia game with persistent scores, and the fact that I documented everything properly - README, deployment guide, Makefile, and CI config - instead of leaving everything as a bunch of commands I’d forget later. To test: run /dsb-darsh-help to see all commands, then try /dsb-darsh-trivia and answer with /dsb-darsh-answer A. Source code is on GitHub.", "repo": "https://github.com/darshnerd/slack-bot", "demo": "https://hackclub.enterprise.slack.com/archives/C0B8W3HUL92"}]...
|
[{"post_id": 3623, "ts": "2026 [{"post_id": 3623, "ts": "2026-06-06T17:12:36Z", "hours": 0.6781, "text": "Devlog 02 - Added Trivia Picked up dude bot again and added a bunch more commands, help, catfact, joke (pulling from free apis), and a trivia game with score tracking. /dsb-darsh-trivia grabs a question from the open trivia db, you answer A/B/C/D, and it keeps a leaderboard that saves to a json file so scores survive restarts. (Try this out) got it running 24/7 on my nest container with a systemd service instead of just my laptop. also wrote proper docs - readme, deployment guide, makefile. next: actually finish the auto deploy."}, {"post_id": 3481, "ts": "2026-06-06T13:08:23Z", "hours": 0.5386, "text": "Devlog 01: My First Slack Bot 🎉 ok so this is my first time actually making a slack bot and honestly i didnt expect it to work lol built it with slack bolt in socket mode. picked socket mode bc i didnt wanna deal with hosting a public url just to test stuff locally. that made it way less painful tbh started with just one command /dsb-darsh-ping that tells you the latency. seeing it reply in slack the first time was kinda hype so i ended up adding more: /dsb-darsh-ping – latency check /dsb-darsh-help – lists the commands /dsb-darsh-catfact – random cat fact from an api /dsb-darsh-joke – random joke the api ones were the fun part. you basically ack() the command first (you only get like 3 sec, found that out the annoying way), then fetch with axios and throw it in a try/catch so the whole thing doesnt die if the api is down also wasted a solid 10 min confused why /dsb-ping wouldnt register… turns out someone in the workspace already used that name and they have to be unique. so i just slapped dsb-darsh- in front of all of mine. also moved my tokens into a .env so i dont accidentally push them to github anyway small thing but learned a lot."}]...
|
Title: My first slack bot! by @darshjain | Stardan Title: My first slack bot! by @darshjain | Stardance
Devlogs:
Devlog 01: My First Slack Bot 🎉 ok so this is my first time actually making a slack bot and honestly i didnt expect it to work lol built it with slack bolt in socket mode. picked socket mode bc i didnt wanna deal with hosting a public url just to test stuff locally. that made it way less painful tbh started with just one command /dsb-darsh-ping that tells you the latency. seeing it reply in slack the first time was kinda hype so i ended up adding more: /dsb-darsh-ping – latency check /dsb-darsh-help – lists the commands /dsb-darsh-catfact – random cat fact from an api /dsb-darsh-joke – random joke the api ones were the fun part. you basically ack() the command first (you only get like 3 sec, found that out the annoying way), then fetch with axios and throw it in a try/catch so the whole thing doesnt die if the api is down also wasted a solid 10 min confused why /dsb-ping wouldnt register… turns out someone in the workspace already used that name and they have to be unique. so i just slapped dsb-darsh- in front of all of mine. also moved my tokens into a .env so i dont accidentally push them to github anyway small thing but learned a lot.
Devlog 02 - Added Trivia Picked up dude bot again and added a bunch more commands, help, catfact, joke (pulling from free apis), and a trivia game with score tracking. /dsb-darsh-trivia grabs a question from the open trivia db, you answer A/B/C/D, and it keeps a leaderboard that saves to a json file so scores survive restarts. (Try this out) got it running 24/7 on my nest container with a systemd service instead of just my laptop. also wrote proper docs - readme, deployment guide, makefile. next: actually finish the auto deploy.
Ships:
Dude Bot is my first Slack bot, built with Node.js + Slack Bolt running in Socket Mode. It has a few slash commands: /dsb-darsh-ping (latency check), /dsb-darsh-help, /dsb-darsh-catfact, and /dsb-darsh-joke (both pull from free APIs). It also has a full trivia game - /dsb-darsh-trivia asks a multiple-choice question, /dsb-darsh-answer checks it, and /dsb-darsh-score shows a leaderboard that persists across restarts. Most challenging: getting it deployed and running 24/7. I got it running on a Nest container with a systemd service, then spent way too long fighting GitHub Actions’ “Permission denied (publickey)” error before figuring out that Nest sits behind a bastion that only accepts account-registered SSH keys, not the local authorized_keys file. That whole process taught me a lot about how SSH authentication actually works. Most proud of: the trivia game with persistent scores, and the fact that I documented everything properly - README, deployment guide, Makefile, and CI config - instead of leaving everything as a bunch of commands I’d forget later. To test: run /dsb-darsh-help to see all commands, then try /dsb-darsh-trivia and answer with /dsb-darsh-answer A. Source code is on GitHub....
|
1792878692.8101318
|
1793742692.8101318
|
|
9329
|
rocky by @deadinside | Stardance
|
deadinside
|
1
|
4.0
|
17
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-17T08:20:29Z", "hours": 4.0, "multiplier": 4.1, "payout": 17, "blessing": "neutral", "text": "rocky is a slack bot that uses NASA’s landsat images and APIs to get cool pictures of the world. you can get your name printed in landsat (like the Your Name in Landsat on NASA’s website), or see the astronomy picture of the day (APOD) Here’s a picture of what happens when you run the /landsat command on Slack try the bot in your channel by inviting rocky to it", "repo": "https://github.com/deadinside911/rocky-slack-bot", "demo": "https://hackclub.enterprise.slack.com/archives/C04RVCWHARJ"}]...
|
[{"post_id": 10504, "ts": "202 [{"post_id": 10504, "ts": "2026-06-17T08:04:16Z", "hours": 1.1317, "text": "Just finished the /apod command! It uses NASA’s APOD (astronomy picture of the day) to get cool images"}, {"post_id": 7354, "ts": "2026-06-12T08:14:44Z", "hours": 2.5767, "text": "Just finished the /landsat command!"}, {"post_id": 4842, "ts": "2026-06-08T11:23:10Z", "hours": 0.4061, "text": "currently planning out the rover images bot, using NASA’s open APIs to get cool images, and hooking up NASA’s Your Name in Landsat so Rocky (the bot) can generate it"}]...
|
Title: rocky by @deadinside | Stardance
Devlogs:
Title: rocky by @deadinside | Stardance
Devlogs:
currently planning out the rover images bot, using NASA’s open APIs to get cool images, and hooking up NASA’s Your Name in Landsat so Rocky (the bot) can generate it
Just finished the /landsat command!
Just finished the /apod command! It uses NASA’s APOD (astronomy picture of the day) to get cool images
Ships:
rocky is a slack bot that uses NASA’s landsat images and APIs to get cool pictures of the world. you can get your name printed in landsat (like the Your Name in Landsat on NASA’s website), or see the astronomy picture of the day (APOD) Here’s a picture of what happens when you run the /landsat command on Slack try the bot in your channel by inviting rocky to it...
|
1793091187.4528537
|
1793177587.4528537
|
|
9338
|
Custom Hacking HackPad by @Umang | Stardance
|
Umang
|
1
|
1.5
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-06T13:48:07Z", "hours": 0.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I built a custom 7-key macropad called CodePlanet CyberPad using a Seeed XIAO RP2040 and a custom PCB designed in KiCad. The biggest challenge was learning PCB design from scratch. I had to learn how schematics, footprints, routing, ERC, and DRC work, and I spent a lot of time debugging wiring and PCB layout issues before getting a clean design. I’m most proud of designing and routing my own PCB rather than simply using a premade board. This project taught me the complete workflow from schematic design to PCB layout and manufacturing files. The macropad is designed to be used for programming, Linux, and cybersecurity workflows. The 7 keys can be programmed with custom shortcuts, macros, and commands to speed up everyday tasks. To test the project, flash firmware to the XIAO RP2040 and assign actions to each key. The board is intended to be fully programmable and customizable. Future improvements: Rotary encoder OLED display Custom case Additional macro layers Cybersecurity-focused shortcuts and workflows", "repo": "https://github.com/UKASITECH/HackPad", "demo": ""}]...
|
[{"post_id": 4826, "ts": "2026 [{"post_id": 4826, "ts": "2026-06-08T10:37:37Z", "hours": 0.2533, "text": "Done!!! Submiting Now…"}, {"post_id": 4046, "ts": "2026-06-07T07:05:59Z", "hours": 0.7844, "text": "So I am done creating the Stuff, i also created the 3D model of the case you can see at https://github.com/UKASITECH/HackPad , Lets see…"}, {"post_id": 3687, "ts": "2026-06-06T18:51:26Z", "hours": 0.4592, "text": "Currently working on the 3D Model of the HackPad….Using FreeCad. Any tips?"}, {"post_id": 3476, "ts": "2026-06-06T12:57:21Z", "hours": 0.3417, "text": "Yayyy! Done Desinging the PCB…"}, {"post_id": 3316, "ts": "2026-06-06T05:39:50Z", "hours": 0.0, "text": "Thanks! Stardance for this opprtunity. I am really exicted to earn a new skill…."}]...
|
Title: Custom Hacking HackPad by @Umang | Stardanc Title: Custom Hacking HackPad by @Umang | Stardance
Devlogs:
Thanks! Stardance for this opprtunity. I am really exicted to earn a new skill….
Yayyy! Done Desinging the PCB…
Currently working on the 3D Model of the HackPad….Using FreeCad. Any tips?
So I am done creating the Stuff, i also created the 3D model of the case you can see at https://github.com/UKASITECH/HackPad , Lets see…
Done!!! Submiting Now…
Ships:
I built a custom 7-key macropad called CodePlanet CyberPad using a Seeed XIAO RP2040 and a custom PCB designed in KiCad. The biggest challenge was learning PCB design from scratch. I had to learn how schematics, footprints, routing, ERC, and DRC work, and I spent a lot of time debugging wiring and PCB layout issues before getting a clean design. I’m most proud of designing and routing my own PCB rather than simply using a premade board. This project taught me the complete workflow from schematic design to PCB layout and manufacturing files. The macropad is designed to be used for programming, Linux, and cybersecurity workflows. The 7 keys can be programmed with custom shortcuts, macros, and commands to speed up everyday tasks. To test the project, flash firmware to the XIAO RP2040 and assign actions to each key. The board is intended to be fully programmable and customizable. Future improvements: Rotary encoder OLED display Custom case Additional macro layers Cybersecurity-focused shortcuts and workflows...
|
1793130697.4586375
|
1793217097.4586375
|
|
9342
|
SonoPad by @ben_leader | Stardance
|
ben_leader
|
1
|
3.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-19T18:46:02Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "A macropad designed for sound control under the hackpad project. Despite being familiar with Kicad and Fusion, this project still took a while especially in making sure that all the components will fit together properly. Other than that the readme should have every piece of information to build this if you choose to or just want a reference for your own hackpad project. I seriously recommend this project to anyone looking to combine all disciplines involved in the prototyping of a tech product, from pcb design to enclosure and firmware. individually, each part is pretty simple, but together it makes for a fun challenge.", "repo": "https://github.com/B-Leadr/SonoPad", "demo": ""}]...
|
[{"post_id": 10989, "ts": "202 [{"post_id": 10989, "ts": "2026-06-18T00:35:31Z", "hours": 1.0, "text": "Devlog #3 Finished modeling the case and customizing the firmware for basic use. For the case I went with 15 degree tilt and simple design to be printed in two parts: base, and plate. Holes inside line up with the PCB’s drilled holes for alignment if needed. The back hole for usb c connection is intentionally left big for this first iteration to allow for better alignment and will be cleaned up later. A knob for the rotary encoder also needs to be made once I have the exact physical measurements I need to ensure there are no collisions. For the firmware I used QMK and customized my own keyboard and keymapings. Right now this is just basic and only accounts for the switches. The oled and rotary encoder will be added in another commit."}, {"post_id": 7208, "ts": "2026-06-12T01:13:34Z", "hours": 0.0, "text": "Devlog #2 First iteration of the PCB layout is done. I went with a 2x4 layout of keys to allow enough pins for the screen and rotary encoder peripherals. The plan is for the screen to display some useful information about the sound or some graphic. The rotary encoder should be useful for volume control of different applications. The rest of the keys will likely just be fore shortcuts or pause/play on music. As for this pcb layout I went with the screen and the xiao overlapping for space with the xiao being mounted on the back of the board. I’m hoping that if I solder headers to raise the xiao and the screen away from the board they wont interfere with one another, but it might be tricky to solder. The copper pour on the back layer makes ground connections really easy and should improve emi but I doubt it would cause much trouble if left out. I’m pretty sure the diodes should fit below the keycaps and not physically interfere but we’ll see The Place Footprints plugin for Kicad makes placing the button matrix so much easier I would recommend checking it out for this project."}, {"post_id": 7169, "ts": "2026-06-11T23:35:58Z", "hours": 0.0, "text": "Devlog #1 Finished the Schematic a few days ago but updated to improve readability and pin assignments on the XIAO"}]...
|
Title: SonoPad by @ben_leader | Stardance
Devlogs Title: SonoPad by @ben_leader | Stardance
Devlogs:
Devlog #1 Finished the Schematic a few days ago but updated to improve readability and pin assignments on the XIAO
Devlog #2 First iteration of the PCB layout is done. I went with a 2x4 layout of keys to allow enough pins for the screen and rotary encoder peripherals. The plan is for the screen to display some useful information about the sound or some graphic. The rotary encoder should be useful for volume control of different applications. The rest of the keys will likely just be fore shortcuts or pause/play on music. As for this pcb layout I went with the screen and the xiao overlapping for space with the xiao being mounted on the back of the board. I’m hoping that if I solder headers to raise the xiao and the screen away from the board they wont interfere with one another, but it might be tricky to solder. The copper pour on the back layer makes ground connections really easy and should improve emi but I doubt it would cause much trouble if left out. I’m pretty sure the diodes should fit below the keycaps and not physically interfere but we’ll see The Place Footprints plugin for Kicad makes placing the button matrix so much easier I would recommend checking it out for this project.
Devlog #3 Finished modeling the case and customizing the firmware for basic use. For the case I went with 15 degree tilt and simple design to be printed in two parts: base, and plate. Holes inside line up with the PCB’s drilled holes for alignment if needed. The back hole for usb c connection is intentionally left big for this first iteration to allow for better alignment and will be cleaned up later. A knob for the rotary encoder also needs to be made once I have the exact physical measurements I need to ensure there are no collisions. For the firmware I used QMK and customized my own keyboard and keymapings. Right now this is just basic and only accounts for the switches. The oled and rotary encoder will be added in another commit.
Ships:
A macropad designed for sound control under the hackpad project. Despite being familiar with Kicad and Fusion, this project still took a while especially in making sure that all the components will fit together properly. Other than that the readme should have every piece of information to build this if you choose to or just want a reference for your own hackpad project. I seriously recommend this project to anyone looking to combine all disciplines involved in the prototyping of a tech product, from pcb design to enclosure and firmware. individually, each part is pretty simple, but together it makes for a fun challenge....
|
1793083722.4836428
|
1793170122.4836428
|
|
9349
|
Configuring my Neovim by @sanji | Stardance
|
sanji
|
1
|
7.0
|
118
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-24T04:47:47Z", "hours": 7.0, "multiplier": 15.73, "payout": 118, "blessing": "neutral", "text": "I built a fully customized, lightweight Neovim IDE from scratch using Lua. It’s my first time I configured my neovim and its simple and just have main feature of IDE. Right now it’s Not a Full VSCode like configuration. I did it just for fun. And I really enjoyed it, I used documentation available on the internet for my help. Cause it’s my first time working with Lua language its challenging for me but I used the documentation and little bit ai(just for learning ) and then tried myself. I am incredibly proud of transforming a raw, blank terminal editor into a professional-grade development environment. I added a demo video so other can see what I have done, but if you want to try it by user-self then follow the readme.md file for installation.", "repo": "https://github.com/balu401/nvim", "demo": "https://github.com/balu401/nvim/releases/tag/v1.0.0"}]...
|
[{"post_id": 14862, "ts": "202 [{"post_id": 14862, "ts": "2026-06-24T04:02:53Z", "hours": 0.5533, "text": "Added a README.MD file and tested all the features of my neovim configuration. I used some AI for creating the readme"}, {"post_id": 13627, "ts": "2026-06-22T11:04:23Z", "hours": 0.3925, "text": "Added Terminal Feature a built-in terminal that slides up from the bottom of the screen is exactly like VSCode. Now when I Press Ctrl + \\ on your keyboard.A sleek terminal will instantly slide up from the bottom of my screen, ready to type git commands, run servers, or compile code. If you press Ctrl + \\ again, it will hide away but keep whatever process you started running in the background! Hit Esc (or type jk fast) to exit terminal insert mode."}, {"post_id": 13523, "ts": "2026-06-22T04:13:14Z", "hours": 0.6117, "text": "Nvim-Tree Sidebar! Having a visual file tree on the left side of your screen is essential for navigating a large project. It lets you explore folders, create new files, and delete directories visually without memorizing paths. How It works - Press Space then e then e ( <leader>ee ). A clean, structural file panel will slide open on the left hand side of your screen! Use your standard j and k movements to navigate up and down the file tree. Press Enter on a folder to expand it, or Enter on a file to open it in your main window. To close the panel, just tap <leader>ee again. and more…"}, {"post_id": 13509, "ts": "2026-06-22T03:22:33Z", "hours": 0.4181, "text": "Added Conform Formatter ( code formatter) for Neovim This plugin is going to take Prettier (for your JavaScript/HTML) and hook it directly into your save command. Now the moment I save my file, it will instantly snap all my messy indentation and brackets into perfect alignment. Earlier in the setup, I mapped my Leader key + s (Space + s) to save the file. Now when I press Space + s. Conform will catch the save command, perfectly format the entire file using Prettier/Stylua, and then write it to the disk, all in a fraction of a millisecond!"}, {"post_id": 13483, "ts": "2026-06-22T02:32:24Z", "hours": 0.5458, "text": "Autocomplete Menu Feature Added a A beautiful, responsive autocomplete menu.without an autocomplete plugin, it has no way to actually show those suggestions while typing. This feature configures nvim-cmp, which is the autocomplete engine for your Neovim setup So I added Autocomplete menu feature, which - popup menu appears when you start typing code It decides what to show you (functions, variables, file paths, snippets) Gives auto code snippet"}, {"post_id": 13164, "ts": "2026-06-21T15:18:23Z", "hours": 0.4436, "text": "Configured Mason and LSP think of them as an app store and an interpreter Mason: It is the Language Server. It’s the most powerful tool as it allows us to implement language validation, import dependencies, go to definition, renaming, and much more. It is your built-in App Store It downloads Language Engines It manages dependencies safely LSP: In Neovim, the Language Server Protocol (LSP) acts as a standardized bridge between the editor and external language servers, enabling IDE-like features without requiring a full IDE. This separation allows Neovim to handle text editing while third-party servers manage code analysis, resulting in support for many languages and composable components. It acts as the Bridge/Interpreter It activates servers dynamically It maps your power-shortcuts"}, {"post_id": 13118, "ts": "2026-06-21T13:35:10Z", "hours": 0.6119, "text": "Added Status Line And I ndentation It displays contextual information about the current buffer, cursor, and editor state. By default, it shows the file path, modification status (e.g., [+] for unsaved changes), LSP diagnostics (error/warning counts), and cursor position (line and column). By default, this specific layout divides status line into distinct visual chunks: Far Left: Instantly shows what mode you are in (NORMAL, INSERT, VISUAL) with clear color changes. Middle Left: Hooks directly into your GitHub configuration to show you which branch you are on and if you have any uncommitted changes. Far Right: Displays the exact line and column number your cursor is sitting on, along with the file type (like lua or markdown). Indentation - plugin for displaying indentation in the file. You can see that vertical lines which show the indentation in the code."}, {"post_id": 12421, "ts": "2026-06-20T08:25:39Z", "hours": 0.7008, "text": "Added Fuzzy finder in my Neovim It will help us find any files or text that we need quickly and efficiently. Ctrl + p finds files in the project Space + b shows a fuzzy finder with the list of opened buffers Space + / gives you live search in the project."}, {"post_id": 12381, "ts": "2026-06-20T06:32:28Z", "hours": 0.3853, "text": "A plugin is for commenting code. Now, I can use gcc , for example, to comment a line or gcG to comment the whole file. I used numToStr/Comment.nvim github repo and doc for this"}, {"post_id": 7346, "ts": "2026-06-12T07:43:42Z", "hours": 0.9264, "text": "Custom Keymaps For my Neovim setup, I kept the custom keymaps minimal. Neovim already provides many useful default keybindings, so there is no need to create hundreds of custom shortcuts. Some of the keymaps I added include: Space + s to save the current file k and j for smoother cursor movement H and L to jump to the beginning and end of a line Q to close the current buffer vv and ss to create vertical and horizontal splits Ctrl + h/j/k/l to navigate between splits Tab and Shift + Tab for indentation in visual mode Improved y and p behavior to move the cursor to the end of copied or pasted text Space + h to clear search highlights"}, {"post_id": 6716, "ts": "2026-06-11T07:51:25Z", "hours": 0.7219, "text": "configured all my settings in Neovim, here what I have done: -Map our Leader key to Space -Highlight search in the file. -Show line numbers. -Disable the mouse completely. -Enable copying between Neovim and the system clipboard. -Wrap our lines. -Disable swap files but keep undo history. -Decrease update time to make Neovim faster. -Configure how and where we open splits. -Change the indentation. -Adjust how we scroll on the screen."}, {"post_id": 6646, "ts": "2026-06-11T04:21:10Z", "hours": 0.3619, "text": "configured colors scheme for my editor, explored various colors schemes available by installing and I picked gruvbox.nvim for my IDE"}, {"post_id": 6104, "ts": "2026-06-10T08:24:16Z", "hours": 0.42, "text": "Today I started working on configuring my own Neovim setup and turning it into a personal IDE. I have : -installed neovim -created directory structure and setup files -Started Using Lua for Configuration(using documentation) -I installed and configured Lazy.nvim as my plugin manager. -configured hackatime for neovim following documentation for configuration & debugging issues some of my time spent on debuggin and solving the errors, because it’s my first time working with Lua language"}]...
|
Title: Configuring my Neovim by @sanji | Stardance Title: Configuring my Neovim by @sanji | Stardance
Devlogs:
Today I started working on configuring my own Neovim setup and turning it into a personal IDE. I have : -installed neovim -created directory structure and setup files -Started Using Lua for Configuration(using documentation) -I installed and configured Lazy.nvim as my plugin manager. -configured hackatime for neovim following documentation for configuration & debugging issues some of my time spent on debuggin and solving the errors, because it’s my first time working with Lua language
configured colors scheme for my editor, explored various colors schemes available by installing and I picked gruvbox.nvim for my IDE
configured all my settings in Neovim, here what I have done: -Map our Leader key to Space -Highlight search in the file. -Show line numbers. -Disable the mouse completely. -Enable copying between Neovim and the system clipboard. -Wrap our lines. -Disable swap files but keep undo history. -Decrease update time to make Neovim faster. -Configure how and where we open splits. -Change the indentation. -Adjust how we scroll on the screen.
Custom Keymaps For my Neovim setup, I kept the custom keymaps minimal. Neovim already provides many useful default keybindings, so there is no need to create hundreds of custom shortcuts. Some of the keymaps I added include: Space + s to save the current file k and j for smoother cursor movement H and L to jump to the beginning and end of a line Q to close the current buffer vv and ss to create vertical and horizontal splits Ctrl + h/j/k/l to navigate between splits Tab and Shift + Tab for indentation in visual mode Improved y and p behavior to move the cursor to the end of copied or pasted text Space + h to clear search highlights
A plugin is for commenting code. Now, I can use gcc , for example, to comment a line or gcG to comment the whole file. I used numToStr/Comment.nvim github repo and doc for this
Added Fuzzy finder in my Neovim It will help us find any files or text that we need quickly and efficiently. Ctrl + p finds files in the project Space + b shows a fuzzy finder with the list of opened buffers Space + / gives you live search in the project.
Added Status Line And I ndentation It displays contextual information about the current buffer, cursor, and editor state. By default, it shows the file path, modification status (e.g., [+] for unsaved changes), LSP diagnostics (error/warning counts), and cursor position (line and column). By default, this specific layout divides status line into distinct visual chunks: Far Left: Instantly shows what mode you are in (NORMAL, INSERT, VISUAL) with clear color changes. Middle Left: Hooks directly into your GitHub configuration to show you which branch you are on and if you have any uncommitted changes. Far Right: Displays the exact line and column number your cursor is sitting on, along with the file type (like lua or markdown). Indentation - plugin for displaying indentation in the file. You can see that vertical lines which show the indentation in the code.
Configured Mason and LSP think of them as an app store and an interpreter Mason: It is the Language Server. It’s the most powerful tool as it allows us to implement language validation, import dependencies, go to definition, renaming, and much more. It is your built-in App Store It downloads Language Engines It manages dependencies safely LSP: In Neovim, the Language Server Protocol (LSP) acts as a standardized bridge between the editor and external language servers, enabling IDE-like features without requiring a full IDE. This separation allows Neovim to handle text editing while third-party servers manage code analysis, resulting in support for many languages and composable components. It acts as the Bridge/Interpreter It activates servers dynamically It maps your power-shortcuts
Autocomplete Menu Feature Added a A beautiful, responsive autocomplete menu.without an autocomplete plugin, it has no way to actually show those suggestions while typing. This feature configures nvim-cmp, which is the autocomplete engine for your Neovim setup So I added Autocomplete menu feature, which - popup menu appears when you start typing code It decides what to show you (functions, variables, file paths, snippets) Gives auto code snippet
Added Conform Formatter ( code formatter) for Neovim This plugin is going to take Prettier (for your JavaScript/HTML) and hook it directly into your save command. Now the moment I save my file, it will instantly snap all my messy indentation and brackets into perfect alignment. Earlier in the setup, I mapped my Leader key + s (Space + s) to save the file. Now when I press Space + s. Conform will catch the save command, perfectly format the entire file using Prettier/Stylua, and then write it to the disk, all in a fraction of a millisecond!
Nvim-Tree Sidebar! Having a visual file tree on the left side of your screen is essential for navigating a large project. It lets you explore folders, create new files, and delete directories visually without memorizing paths. How It works - Press Space then e then e ( <leader>ee ). A clean, structural file panel will slide open on the left hand side of your screen! Use your standard j and k movements to navigate up and down the file tree. Press Enter on a folder to expand it, or Enter on a file to open it in your main window. To close the panel, just tap <leader>ee again. and more…
Added Terminal Feature a built-in terminal that slides up from the bottom of the screen is exactly like VSCode. Now when I Press Ctrl + \ on your keyboard.A sleek terminal will instantly slide up from the bottom of my screen, ready to type git commands, run servers, or compile code. If you press Ctrl + \ again, it will hide away but keep whatever process you started running in the background! Hit Esc (or type jk fast) to exit terminal insert mode.
Added a README.MD file and tested all the features of my neovim configuration. I used some AI for creating the readme
Ships:
I built a fully customized, lightweight Neovim IDE from scratch using Lua. It’s my first time I configured my neovim and its simple and just have main feature of IDE. Right now it’s Not a Full VSCode like configuration. I did it just for fun. And I really enjoyed it, I used documentation available on the internet for my help. Cause it’s my first time working with Lua language its challenging for me but I used the documentation and little bit ai(just for learning ) and then tried myself. I am incredibly proud of transforming a raw, blank terminal editor into a professional-grade development environment. I added a demo video so other can see what I have done, but if you want to try it by user-self then follow the readme.md file for installation....
|
1793098313.0003242
|
1793184713.0003242
|
|
9377
|
Yet another music app by @MHanak | Stardance
|
MHanak
|
1
|
100.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-09T15:17:13Z", "hours": 100.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Well, the do-it-all * music app is done * * . It took longer than I expected, and i wasn’t able to squeeze in all of the features i wanted to add, but i’m still happy with the result. *okay, maybe not “all”, but quite a lot. **except for a bunch of features i’m hoping to add down the line.", "repo": "https://github.com/MHanak1/Yama", "demo": "https://github.com/MHanak1/Yama/releases/latest"}]...
|
[{"post_id": 59203, "ts": "202 [{"post_id": 59203, "ts": "2026-08-31T21:12:58Z", "hours": 3.9753, "text": "Soo, I did some more work, mostly on the desktop polishing front, anything from keyboard controls, to better Windows support and the ability to change the app theme through a file (for all of you spicers out there). Other than that, the one feature i’ve added is the ability to edit playlists, which has been missing for quite a while now."}, {"post_id": 50805, "ts": "2026-08-20T06:40:36Z", "hours": 6.9714, "text": "You wake up. You don’t remember a lot from last night; in fact, you aren’t really sure if you remember anything from the previous day. Regardless, you are filled with a overwhelming need to listen to something. Remembering only the title, you search for it, and in an instant your room if filled with soothing music, exactly the song you wanted. Listening to it slowly reminds you what happened on the previous day. Hey, i’ve gotten pretty good at writing these, anyway, I’ve added a global search function to the app, which searches through tracks, albums, artists, etc. all at once. I also did a * ton * of other small fixes and improvements. If you want to test out the app, You can get it from https://github.com/MHanak1/Yama/releases/latest"}, {"post_id": 46159, "ts": "2026-08-13T05:38:16Z", "hours": 2.9431, "text": "No fancy speak again, it’s too early for that and I haven’t finished my coffe yet, but i finally made a homescreen to the app! I have made it configurable, so you can select which shelves to include on it, and i’ll be adding more configuration options later (i need some ideas here). Other than that i worked on some minor bug fixes, mostly layout based like mismatched padding, and finally set up a github CI to package the app, so you can now get it from the github’s releases page (i should probably test the windows build shouldn’t i?)"}, {"post_id": 40611, "ts": "2026-08-04T08:34:13Z", "hours": 6.1036, "text": "Sooo. a bunch of time went into trying to implement proper playback caching, and i am glad to announce it was an absolute disaster. That aside, I made a pretty README! frankly, the best one I’ve made yet, full of screenshots and the such. I’ll probably be slowly trying to bundle the app for all platforms, and will be publishing the app fairly soon"}, {"post_id": 31750, "ts": "2026-07-20T12:04:32Z", "hours": 6.4519, "text": "Well, again no groundbreaking features, but i’ve made the app’s design more in line with material3 expressive, so the player’s appearance has been improved. I have also iproved the login screen’s appearance, added listens scrobbling to ListebBrainz, and solved some issues with the playback status not being reported properly to the server."}, {"post_id": 21685, "ts": "2026-07-03T19:29:54Z", "hours": 10.1486, "text": "You stop the music. Blissful silence surrounds you as you delve into the sea of tranquillity. You float in the endless void for minutes, hours; the passage of time becomes meaningless in a space devoid of change. Suddenly, you hear a faint sound. You feel compelled to drift toward it. The chirping gets louder and louder; the periodic pings become almost hypnotising. Then you see it - the yellow submarine, faintly lit by its onboard lights. On its hull you can see its name - Subsonic. Added Subsonic support. Other than that, there were a lot of changes under the hood to organise the code and how the state flows throughout the app. I have also re-designed the source switcher, which you can see on the screenshot"}, {"post_id": 11122, "ts": "2026-06-18T06:01:13Z", "hours": 9.6864, "text": "Before, you could only listen to music on earth, where you can mingle with the with the ubiquitous ‘internet’. But now, you can go higher. You can listen to music on the moon! That’s right Kennedy, you can listen to music on the moon! i added a system for downloading music from jellyfin (and others). This way when you go offline you can listen to songs you downloaded. Additionally, the app can cache songs which were listened to recently, and it will keep a certain amount of the files for local playback as well"}, {"post_id": 8942, "ts": "2026-06-14T21:15:11Z", "hours": 12.1736, "text": "Okay this time no fancy speak, i am way overdue a devlog, but i haven’t worked on a single feature which would have justified a devlog devoted solely to it, so here’s a roundup of things i implemented over the past couple days: Improved remote jellyfin playback handling, < rant > Hey, would you believe it that Jellyfin’s “Play on” is a piece of crap when it comes to music? Even the official client’s implementation is really broken when using it for music. there’s no mechanism through which i could measure the delay with which the music is playing, so you can expect a couple second delay between the lyrics on your phone and the music playing on the TV. i have to make educated guesses about the TV’s playback state. Also, there’s no websocket command to rearrange the playback queue, you can only push a new queue, but i’ve gotten around that. Also i had a ton of desync issues even after i spent more time on this than i reasonably should have . Oh, and did i mention there is no documentation whatsoever? you gotta figure out what you have to do by looking at the messages and the SDK < /rant > Did some tweaks to the UI colors (now it’s prettier ) You can favorite/unfavorite albums now There’s a new, prettier and more functional queue manager (visible in the screenshot) Tried (and failed) to make the TV focus issues go away Added support for local audio files along with metadata scanning (no remote fetching though), so you can use this app as an mp3 player even if you don’t have a media server Made the album, artist, etc. detail pages prettier . To the library, added the tracks page, in which you can view them in order of most played, date added, random, etc. Added the ability to play/shuffle entire albums, artists, etc, and multiple of them at once. and more"}, {"post_id": 6789, "ts": "2026-06-11T11:31:51Z", "hours": 1.1922, "text": "What is a book without a cover? well, still a book but it looks kinda bad on the bookshelf. Nonetheless, i have meticulously pondered the appearance of the icon, drawing my inspiration from mathematics, which some describe as the most beautiful of sciences. I made the app icon, and it’s basically the graph of sin(x)/x"}, {"post_id": 6758, "ts": "2026-06-11T09:46:02Z", "hours": 0.5372, "text": "Oh also i found a bug where i could play movies through the app XD this really shouldn’t be its own devlog, but i found that funny enough that i needed to share this. This isn’t the movie’s soundtrack, the entire movie’s audio is playing through the app"}, {"post_id": 6731, "ts": "2026-06-11T08:28:57Z", "hours": 11.3311, "text": "You behold the screen, your window into the melody. but what you see this time is not the decorations imprinted into the tracks, oh no, what you see is the words of the song itself, dancing happily to the rhythm. You sing with them, as you are just as happy. added the lyrics screen Next, you reach down towards your pocket. You pull out your phone, and through it you open the app. To your amazement, a command travels through waves of ether, casting a different melody upon your television. added support for Jellyfin’s “Play on” feature, which allows for remote playback Okay this time i probably should have made a devlog earlier, and i guess you’re getting a bit of a bigger devlog. Other than the above two i did some more changes: made it so the UI is recolored based on the album covers did some cover prefetching so images should load on-screen less often made the player UI prettier, also if the device is not interacted with for a bit, it will hide away the player controls which i think looks pretty neat and more™"}, {"post_id": 5023, "ts": "2026-06-08T17:52:47Z", "hours": 3.3983, "text": "After many hours, i find the perfect song, i press it, and in this moment the app floods my ears with a beautiful symphony. The sound is almost soothing, yet reassuring. The music app has ultimately gained the ability to fulfill its paramount function, to fill its users ears with melody. nah who am i kidding i vibecoded the hell out of that, still took me a while to get the UI to be decent, also hey, look! it works on the tv too!"}, {"post_id": 4839, "ts": "2026-06-08T11:18:36Z", "hours": 3.8478, "text": "What is a music app that does not allow one to gaze upon their songs, beautifully laid in a tidy, yet not overly strict list? Well, still a music app, as one does not look at music, but rather hears it. Alas, the graphical layer still felt to me to have equal importance. What you behold in this attached screenshot is a page meant to express, in a visually appealing manner, the songs that make up a music album. Yes i will write all my devlogs like that and you can’t stop me"}, {"post_id": 3543, "ts": "2026-06-06T15:04:19Z", "hours": 20.9111, "text": "So stardance is apparently a thing… well, I’ve been making a music app for jellyfin (and others) over the last bit, so i decided i’d track it with stardance! No detailed devlogs for the 20 hours because i wasn’t planning on doing stardance, but from now on i promise i will be a good cookie and post detailed devlogs from now on But what i did up to this point, is setting up a compose app, fiddling with the jellyfin sdk (this gives me the server discovery feature, but means that for now it will be incompatible with ios), did some layouting, sweet-sweet blurring with haze for that liquid glass aesthetic, and then much, much more layouting but thanks to that lot-of-layouting, the app will be usable across mobile, desktop and even your TV!"}]...
|
Title: Yet another music app by @MHanak | Stardanc Title: Yet another music app by @MHanak | Stardance
Devlogs:
So stardance is apparently a thing… well, I’ve been making a music app for jellyfin (and others) over the last bit, so i decided i’d track it with stardance! No detailed devlogs for the 20 hours because i wasn’t planning on doing stardance, but from now on i promise i will be a good cookie and post detailed devlogs from now on But what i did up to this point, is setting up a compose app, fiddling with the jellyfin sdk (this gives me the server discovery feature, but means that for now it will be incompatible with ios), did some layouting, sweet-sweet blurring with haze for that liquid glass aesthetic, and then much, much more layouting but thanks to that lot-of-layouting, the app will be usable across mobile, desktop and even your TV!
What is a music app that does not allow one to gaze upon their songs, beautifully laid in a tidy, yet not overly strict list? Well, still a music app, as one does not look at music, but rather hears it. Alas, the graphical layer still felt to me to have equal importance. What you behold in this attached screenshot is a page meant to express, in a visually appealing manner, the songs that make up a music album. Yes i will write all my devlogs like that and you can’t stop me
After many hours, i find the perfect song, i press it, and in this moment the app floods my ears with a beautiful symphony. The sound is almost soothing, yet reassuring. The music app has ultimately gained the ability to fulfill its paramount function, to fill its users ears with melody. nah who am i kidding i vibecoded the hell out of that, still took me a while to get the UI to be decent, also hey, look! it works on the tv too!
You behold the screen, your window into the melody. but what you see this time is not the decorations imprinted into the tracks, oh no, what you see is the words of the song itself, dancing happily to the rhythm. You sing with them, as you are just as happy. added the lyrics screen Next, you reach down towards your pocket. You pull out your phone, and through it you open the app. To your amazement, a command travels through waves of ether, casting a different melody upon your television. added support for Jellyfin’s “Play on” feature, which allows for remote playback Okay this time i probably should have made a devlog earlier, and i guess you’re getting a bit of a bigger devlog. Other than the above two i did some more changes: made it so the UI is recolored based on the album covers did some cover prefetching so images should load on-screen less often made the player UI prettier, also if the device is not interacted with for a bit, it will hide away the player controls which i think looks pretty neat and more™
Oh also i found a bug where i could play movies through the app XD this really shouldn’t be its own devlog, but i found that funny enough that i needed to share this. This isn’t the movie’s soundtrack, the entire movie’s audio is playing through the app
What is a book without a cover? well, still a book but it looks kinda bad on the bookshelf. Nonetheless, i have meticulously pondered the appearance of the icon, drawing my inspiration from mathematics, which some describe as the most beautiful of sciences. I made the app icon, and it’s basically the graph of sin(x)/x
Okay this time no fancy speak, i am way overdue a devlog, but i haven’t worked on a single feature which would have justified a devlog devoted solely to it, so here’s a roundup of things i implemented over the past couple days: Improved remote jellyfin playback handling, < rant > Hey, would you believe it that Jellyfin’s “Play on” is a piece of crap when it comes to music? Even the official client’s implementation is really broken when using it for music. there’s no mechanism through which i could measure the delay with which the music is playing, so you can expect a couple second delay between the lyrics on your phone and the music playing on the TV. i have to make educated guesses about the TV’s playback state. Also, there’s no websocket command to rearrange the playback queue, you can only push a new queue, but i’ve gotten around that. Also i had a ton of desync issues even after i spent more time on this than i reasonably should have . Oh, and did i mention there is no documentation whatsoever? you gotta figure out what you have to do by looking at the messages and the SDK < /rant > Did some tweaks to the UI colors (now it’s prettier ) You can favorite/unfavorite albums now There’s a new, prettier and more functional queue manager (visible in the screenshot) Tried (and failed) to make the TV focus issues go away Added support for local audio files along with metadata scanning (no remote fetching though), so you can use this app as an mp3 player even if you don’t have a media server Made the album, artist, etc. detail pages prettier . To the library, added the tracks page, in which you can view them in order of most played, date added, random, etc. Added the ability to play/shuffle entire albums, artists, etc, and multiple of them at once. and more
Before, you could only listen to music on earth, where you can mingle with the with the ubiquitous ‘internet’. But now, you can go higher. You can listen to music on the moon! That’s right Kennedy, you can listen to music on the moon! i added a system for downloading music from jellyfin (and others). This way when you go offline you can listen to songs you downloaded. Additionally, the app can cache songs which were listened to recently, and it will keep a certain amount of the files for local playback as well
You stop the music. Blissful silence surrounds you as you delve into the sea of tranquillity. You float in the endless void for minutes, hours; the passage of time becomes meaningless in a space devoid of change. Suddenly, you hear a faint sound. You feel compelled to drift toward it. The chirping gets louder and louder; the periodic pings become almost hypnotising. Then you see it - the yellow submarine, faintly lit by its onboard lights. On its hull you can see its name - Subsonic. Added Subsonic support. Other than that, there were a lot of changes under the hood to organise the code and how the state flows throughout the app. I have also re-designed the source switcher, which you can see on the screenshot
Well, again no groundbreaking features, but i’ve made the app’s design more in line with material3 expressive, so the player’s appearance has been improved. I have also iproved the login screen’s appearance, added listens scrobbling to ListebBrainz, and solved some issues with the playback status not being reported properly to the server.
Sooo. a bunch of time went into trying to implement proper playback caching, and i am glad to announce it was an absolute disaster. That aside, I made a pretty README! frankly, the best one I’ve made yet, full of screenshots and the such. I’ll probably be slowly trying to bundle the app for all platforms, and will be publishing the app fairly soon
No fancy speak again, it’s too early for that and I haven’t finished my coffe yet, but i finally made a homescreen to the app! I have made it configurable, so you can select which shelves to include on it, and i’ll be adding more configuration options later (i need some ideas here). Other than that i worked on some minor bug fixes, mostly layout based like mismatched padding, and finally set up a github CI to package the app, so you can now get it from the github’s releases page (i should probably test the windows build shouldn’t i?)
You wake up. You don’t remember a lot from last night; in fact, you aren’t really sure if you remember anything from the previous day. Regardless, you are filled with a overwhelming need to listen to something. Remembering only the title, you search for it, and in an instant your room if filled with soothing music, exactly the song you wanted. Listening to it slowly reminds you what happened on the previous day. Hey, i’ve gotten pretty good at writing these, anyway, I’ve added a global search function to the app, which searches through tracks, albums, artists, etc. all at once. I also did a * ton * of other small fixes and improvements. If you want to test out the app, You can get it from https://github.com/MHanak1/Yama/releases/latest
Soo, I did some more work, mostly on the desktop polishing front, anything from keyboard controls, to better Windows support and the ability to change the app theme through a file (for all of you spicers out there). Other than that, the one feature i’ve added is the ability to edit playlists, which has been missing for quite a while now.
Ships:
Well, the do-it-all * music app is done * * . It took longer than I expected, and i wasn’t able to squeeze in all of the features i wanted to add, but i’m still happy with the result. *okay, maybe not “all”, but quite a lot. **except for a bunch of features i’m hoping to add down the line....
|
1793134272.1058242
|
1793220672.1058242
|
|
9455
|
risuko-over-slack by @yuemiyuki4737 | Stardance
|
yuemiyuki4737
|
1
|
3.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-06T08:04:42Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Made a downloader on slack… wait, its not as stupid as it sound, it use the high-performance download engine, RIsuko (created by me) to download content from the internet, compress it, and send it back to slack. The challenging part was actually making the bot reply, it is my first time making. a slack bot, while I do have experience on discord bot before, they are quite different. Really happy that everything works well after tons of debugging :)", "repo": "https://github.com/YueMiyuki/risuko-over-slack", "demo": "https://app.slack.com/client/E09V59WQY1E/C0B8MKR12G5"}]...
|
[{"post_id": 3366, "ts": "2026 [{"post_id": 3366, "ts": "2026-06-06T08:02:31Z", "hours": 3.4428, "text": "Made things work, added four comamnds: Help, ping, health check and download. Used a random image i found online to test, everything works really well :)"}]...
|
Title: risuko-over-slack by @yuemiyuki4737 | Stard Title: risuko-over-slack by @yuemiyuki4737 | Stardance
Devlogs:
Made things work, added four comamnds: Help, ping, health check and download. Used a random image i found online to test, everything works really well :)
Ships:
Made a downloader on slack… wait, its not as stupid as it sound, it use the high-performance download engine, RIsuko (created by me) to download content from the internet, compress it, and send it back to slack. The challenging part was actually making the bot reply, it is my first time making. a slack bot, while I do have experience on discord bot before, they are quite different. Really happy that everything works well after tons of debugging :)...
|
1793076473.0207243
|
1793162873.0207243
|
|
9461
|
ConvoComplete- Kusum by @shauryaladdha | Stardance
|
shauryaladdha
|
1
|
14.04
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-15T05:44:33Z", "hours": 11.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "very tough, to get into playstore and running app in background", "repo": "https://github.com/itsshera/ConvoComplete", "demo": "https://play.google.com/store/apps/details?id=com.kusum.app&hl=en_IN"}]...
|
[{"post_id": 14290, "ts": "202 [{"post_id": 14290, "ts": "2026-06-23T10:53:02Z", "hours": 3.0414, "text": "ConvoComplete Devlog Overview ConvoComplete is being developed as an AI-powered call intelligence tool. The main idea is to convert phone calls into transcripts, summaries, tasks, and follow-ups. The project focuses on helping teams save time after calls and avoid missing important next steps. Problem Business calls often contain important information, but most of it is not stored in a useful format. Common problems: Teams forget important follow-ups Managers cannot review every call manually Tasks discussed on calls are not always written down CRM notes are often incomplete Important decisions are lost inside long recordings Sales and support teams waste time writing manual summaries Solution ConvoComplete solves this by automatically processing calls and converting them into structured outputs. The system should be able to: Accept a call recording or audio file Convert speech to text Summarize the conversation Extract action items Identify deadlines and follow-ups Make the output easy to review and share Development Goals Goal 1: Build the Basic Call Processing Flow The first goal is to create a working flow where a user can provide call audio and get a transcript. Goal 2: Add AI Summaries After transcription, the next step is to generate a short and useful summary of the call. Goal 3: Extract Action Items The system should identify tasks from the conversation and present them clearly. Example: Task: Send proposal to customer Owner: Sales executive Due: Tomorrow Status: Pending Goal 4: Make the Output Useful for Teams The output should not just be a plain summary. It should help teams take action. Useful outputs may include: Call summary Customer needs Objections Follow-up tasks Deadlines Next meeting details CRM-ready notes Goal 5: Add Integrations Later Future versions can connect with: Google Calendar CRM tools WhatsApp Email Phone systems Task managers Current Progress Project idea defined Core use case identified README structure created Product description written Roadmap created Next Steps Finalize the tech stack Create project folder structure Build audio upload or call input flow Add speech-to-text processing Add AI summary generation Add action item extraction Create a simple dashboard Test with real call examples Challenges Audio Quality Call recordings may have background noise, multiple speakers, or unclear speech. The transcription system needs to handle this as well as possible. Accurate Task Extraction The AI must correctly understand what is actually a task and avoid creating fake or unnecessary action items. Business Usefulness The output should be simple, clear, and useful for real teams. The goal is not just to generate text, but to create something people can act on. Learnings Calls contain a lot of hidden business value Summaries are useful, but action items are more important The product should focus on saving time and preventing missed follow-ups The best output is structured, short, and easy to share Future Improvements Speaker identification Sentiment analysis CRM sync Calendar event creation WhatsApp summary delivery Searchable call history Team dashboard Role-based access Customer-wise call timeline"}, {"post_id": 9082, "ts": "2026-06-15T05:37:02Z", "hours": 3.8783, "text": "going well, play store closed testing"}, {"post_id": 3354, "ts": "2026-06-06T07:35:17Z", "hours": 6.6417, "text": "App is made beta 10"}]...
|
Title: ConvoComplete- Kusum by @shauryaladdha | St Title: ConvoComplete- Kusum by @shauryaladdha | Stardance
Devlogs:
App is made beta 10
going well, play store closed testing
ConvoComplete Devlog Overview ConvoComplete is being developed as an AI-powered call intelligence tool. The main idea is to convert phone calls into transcripts, summaries, tasks, and follow-ups. The project focuses on helping teams save time after calls and avoid missing important next steps. Problem Business calls often contain important information, but most of it is not stored in a useful format. Common problems: Teams forget important follow-ups Managers cannot review every call manually Tasks discussed on calls are not always written down CRM notes are often incomplete Important decisions are lost inside long recordings Sales and support teams waste time writing manual summaries Solution ConvoComplete solves this by automatically processing calls and converting them into structured outputs. The system should be able to: Accept a call recording or audio file Convert speech to text Summarize the conversation Extract action items Identify deadlines and follow-ups Make the output easy to review and share Development Goals Goal 1: Build the Basic Call Processing Flow The first goal is to create a working flow where a user can provide call audio and get a transcript. Goal 2: Add AI Summaries After transcription, the next step is to generate a short and useful summary of the call. Goal 3: Extract Action Items The system should identify tasks from the conversation and present them clearly. Example: Task: Send proposal to customer Owner: Sales executive Due: Tomorrow Status: Pending Goal 4: Make the Output Useful for Teams The output should not just be a plain summary. It should help teams take action. Useful outputs may include: Call summary Customer needs Objections Follow-up tasks Deadlines Next meeting details CRM-ready notes Goal 5: Add Integrations Later Future versions can connect with: Google Calendar CRM tools WhatsApp Email Phone systems Task managers Current Progress Project idea defined Core use case identified README structure created Product description written Roadmap created Next Steps Finalize the tech stack Create project folder structure Build audio upload or call input flow Add speech-to-text processing Add AI summary generation Add action item extraction Create a simple dashboard Test with real call examples Challenges Audio Quality Call recordings may have background noise, multiple speakers, or unclear speech. The transcription system needs to handle this as well as possible. Accurate Task Extraction The AI must correctly understand what is actually a task and avoid creating fake or unnecessary action items. Business Usefulness The output should be simple, clear, and useful for real teams. The goal is not just to generate text, but to create something people can act on. Learnings Calls contain a lot of hidden business value Summaries are useful, but action items are more important The product should focus on saving time and preventing missed follow-ups The best output is structured, short, and easy to share Future Improvements Speaker identification Sentiment analysis CRM sync Calendar event creation WhatsApp summary delivery Searchable call history Team dashboard Role-based access Customer-wise call timeline
Ships:
very tough, to get into playstore and running app in background...
|
1793127218.6147394
|
1793213618.6147394
|
|
9507
|
New_UI_addon_Veyra by @Doctor_Notch | Stardance
|
Doctor_Notch
|
1
|
7.28
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-10T21:29:46Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "V1.0 of the new UI focused addon for veyra", "repo": "https://github.com/DBerkey/new-ui-addon", "demo": "https://github.com/DBerkey/new-ui-addon/releases"}]...
|
[{"post_id": 13917, "ts": "202 [{"post_id": 13917, "ts": "2026-06-22T20:29:09Z", "hours": 0.9417, "text": "made a new system that makes it posible to quick switch between logged in acounts instead of repeatatly needing to log in and log out"}, {"post_id": 9917, "ts": "2026-06-16T13:00:19Z", "hours": 1.7408, "text": "worked on the guild page so the most importand guild dungeons are shown on the top so less scrolling is needed"}, {"post_id": 8622, "ts": "2026-06-14T10:30:05Z", "hours": 0.3711, "text": "Updated the readme so its easier to understand and follow"}, {"post_id": 8611, "ts": "2026-06-14T09:50:35Z", "hours": 1.2286, "text": "A small update for the changes i made to the dashboard | all cards are made more compact so it can all be visable in a single screen"}, {"post_id": 6463, "ts": "2026-06-10T21:27:28Z", "hours": 0.3472, "text": "Added some of the first instalation info"}, {"post_id": 5788, "ts": "2026-06-09T18:19:31Z", "hours": 0.4919, "text": "added item grouping to the battle pages"}, {"post_id": 5756, "ts": "2026-06-09T17:34:56Z", "hours": 1.3958, "text": "First cleaning done and got it back to 16.5k lines of code"}, {"post_id": 5683, "ts": "2026-06-09T15:44:41Z", "hours": 0.3992, "text": "cleaning up the outdated and not used functions from my code becouse the current 18k+ lines are to much"}]...
|
Title: New_UI_addon_Veyra by @Doctor_Notch | Stard Title: New_UI_addon_Veyra by @Doctor_Notch | Stardance
Devlogs:
cleaning up the outdated and not used functions from my code becouse the current 18k+ lines are to much
First cleaning done and got it back to 16.5k lines of code
added item grouping to the battle pages
Added some of the first instalation info
A small update for the changes i made to the dashboard | all cards are made more compact so it can all be visable in a single screen
Updated the readme so its easier to understand and follow
worked on the guild page so the most importand guild dungeons are shown on the top so less scrolling is needed
made a new system that makes it posible to quick switch between logged in acounts instead of repeatatly needing to log in and log out
Ships:
V1.0 of the new UI focused addon for veyra...
|
1793084294.1151352
|
1793170694.1151352
|
|
9536
|
AI collision detector by @shivamgupta_official13 | AI collision detector by @shivamgupta_official13 | Stardance...
|
shivamgupta_official13
|
1
|
3.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-13T12:11:11Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I have made a AI collsion detector which can detect colssions and do the object tracking too. its use can be tweaked and changed too.I have coded this in python and us ed the architecture transfomers for it and also used open cv for the main camera use while running the model and making this model was hard too beucase after making the model and then training it on google colab there were many dimesion matching errors and the time history errors of the open cv and etc more but I did evnetually fix it and got the model weigths and then made the github repo which ahs evrything from the library needed to run the model and the traning code but its not needed as i have also kept the model weights folder and also the code to run the model", "repo": "https://github.com/Shivam430-stack/Ai-collision-detector", "demo": "https://huggingface.co/spaces/Shivam-430/Ai-collsion-detector"}]...
|
[{"post_id": 8030, "ts": "2026 [{"post_id": 8030, "ts": "2026-06-13T12:03:42Z", "hours": 0.5039, "text": "i have made the more changes need for a better readbality and some chnages for better warning statements and a better bias ratio in the code so the ai model detects much better wihtout being too senstive and the github repo is all done mostly too any updates i will post a devlog and change it."}, {"post_id": 4113, "ts": "2026-06-07T09:40:53Z", "hours": 2.3828, "text": "Hi ,I was working on a transformer based Ai model which is an time series sequence classifier with also using and encoder and decoder .this time series transformer unlike other models like gpt which are decoder only and basic vision models use encoder only ,my model uses both halves and the encoder ingests the past values and processes 15 frame history matrix of coordinates (x,y,area) to check for the speed,patterns and movement contexts while the decoder takes the multi head attention map outputted by the encoder and cacultes what state it looks like in edge of impact or futute_state also and also uses cross-layer entropy loss or the weigthed croos layer entropy loss in my training code to take and check the diffrence between what the model thinks and waht the label is (collision,warn,safe) and it penalized the model heavily if it is confident in a wrong answer or a prediction. you can also see a picture below of my rc car crashing into the wall and see it flags it as a collision.you can also try out my model by visting my project repository and look at the instructions and in depth detail of my project and the Ai model."}]...
|
Title: AI collision detector by @shivamgupta_offic Title: AI collision detector by @shivamgupta_official13 | Stardance
Devlogs:
Hi ,I was working on a transformer based Ai model which is an time series sequence classifier with also using and encoder and decoder .this time series transformer unlike other models like gpt which are decoder only and basic vision models use encoder only ,my model uses both halves and the encoder ingests the past values and processes 15 frame history matrix of coordinates (x,y,area) to check for the speed,patterns and movement contexts while the decoder takes the multi head attention map outputted by the encoder and cacultes what state it looks like in edge of impact or futute_state also and also uses cross-layer entropy loss or the weigthed croos layer entropy loss in my training code to take and check the diffrence between what the model thinks and waht the label is (collision,warn,safe) and it penalized the model heavily if it is confident in a wrong answer or a prediction. you can also see a picture below of my rc car crashing into the wall and see it flags it as a collision.you can also try out my model by visting my project repository and look at the instructions and in depth detail of my project and the Ai model.
i have made the more changes need for a better readbality and some chnages for better warning statements and a better bias ratio in the code so the ai model detects much better wihtout being too senstive and the github repo is all done mostly too any updates i will post a devlog and change it.
Ships:
I have made a AI collsion detector which can detect colssions and do the object tracking too. its use can be tweaked and changed too.I have coded this in python and us ed the architecture transfomers for it and also used open cv for the main camera use while running the model and making this model was hard too beucase after making the model and then training it on google colab there were many dimesion matching errors and the time history errors of the open cv and etc more but I did evnetually fix it and got the model weigths and then made the github repo which ahs evrything from the library needed to run the model and the traning code but its not needed as i have also kept the model weights folder and also the code to run the model...
|
1793098148.363664
|
1793184548.363664
|
|
9541
|
FolderContentLister by @obro1984 | Stardance
|
obro1984
|
1
|
19.0
|
58
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-12T05:43:54Z", "hours": 19.0, "multiplier": 3.15, "payout": 58, "blessing": "neutral", "text": "This is FolderContentLister ! A program that does… exactly what it sounds like! You give it some folders, and it will list everything contained inside those folders, and write it to a txt file. This may sound kind of useless, but it’s very helpful for getting a good idea of what you have stored on your computer, especially if you’re thinking of factory resetting: it’s going to be a lot easier to reinstall the important stuff if you have an exact recollection of what you had before. This project also contains some nifty features not present in the original version I made for myself a few years ago, including a configurable depth limit (how deep into the root folders it will search), toggleable size percentages (so you know what takes up the most space in a given folder), and dirChar / fileChar (to spice up the representation of folders and files); to name a few! To use, make sure you have Java 21 installed, follow the simple README instructions, and let the program do its thing! At the end of the day, this is nothing jaw-dropping, but could prove useful for a handful of individuals - and that’s really what open-source is all about. Thanks for reading and enjoy!", "repo": "https://codeberg.org/obro1961/FolderContentLister", "demo": "https://codeberg.org/obro1961/FolderContentLister/src/branch/main/foldercontentlister-2.0.0-real.jar"}]...
|
[{"post_id": 45584, "ts": "202 [{"post_id": 45584, "ts": "2026-08-12T05:27:28Z", "hours": 0.3967, "text": "alr just found out you couldn’t even run that generated file. sigh. but NOW YOU CAN! during setup just run ./gradlew realJar instead of jar !! then just invoke Java via java -jar ... [regular program args] and you’re all set! yay"}, {"post_id": 45576, "ts": "2026-08-12T04:59:03Z", "hours": 10.7978, "text": "okay so it’s been what has felt like 10 years just trying to make this comparitavely very simple project. but alas i am FINALLY about ready to ship. okay that’s enough complain-yapping, the main changes are: switched to Gradle bc Intellij buildscripts suck now uses Clikt for easy CLI option configuration and help ! everything is now configurable fixed folders reporting incorrect sizes ( this falls apart with symbolic links though ) this project is pretty much ready to ship now so i hope at least 2 people can get any sort of use out of this! (:"}, {"post_id": 35524, "ts": "2026-07-27T00:35:13Z", "hours": 7.9683, "text": "this is super late and was mostly finished a long time ago… but i forgot to log it… sorry! this project is super straightforward - it just lists all the folders and files inside a given array of folders. this is a Kotlin port of the original i made some ~5 years ago (which mostly still works!?!) - that being said, i haven’t expanded much because the use-case of this tool is quite limited. i originally made it so that, when i finally factory reset my computer, i could have some reference point of what programs i previously had installed, as my current backup and restore setup does not work. however this is kind of useless so i just thought i’d port most of it and leave it at that. additionally, intellij started absolutely crashing out at me when i tried to load this on my laptop (instead of my PC) so i gave up on this for a couple weeks. as of now, it works just fine but isn’t very user-friendly or utilitarian or efficient, but it gets the job done."}]...
|
Title: FolderContentLister by @obro1984 | Stardanc Title: FolderContentLister by @obro1984 | Stardance
Devlogs:
this is super late and was mostly finished a long time ago… but i forgot to log it… sorry! this project is super straightforward - it just lists all the folders and files inside a given array of folders. this is a Kotlin port of the original i made some ~5 years ago (which mostly still works!?!) - that being said, i haven’t expanded much because the use-case of this tool is quite limited. i originally made it so that, when i finally factory reset my computer, i could have some reference point of what programs i previously had installed, as my current backup and restore setup does not work. however this is kind of useless so i just thought i’d port most of it and leave it at that. additionally, intellij started absolutely crashing out at me when i tried to load this on my laptop (instead of my PC) so i gave up on this for a couple weeks. as of now, it works just fine but isn’t very user-friendly or utilitarian or efficient, but it gets the job done.
okay so it’s been what has felt like 10 years just trying to make this comparitavely very simple project. but alas i am FINALLY about ready to ship. okay that’s enough complain-yapping, the main changes are: switched to Gradle bc Intellij buildscripts suck now uses Clikt for easy CLI option configuration and help ! everything is now configurable fixed folders reporting incorrect sizes ( this falls apart with symbolic links though ) this project is pretty much ready to ship now so i hope at least 2 people can get any sort of use out of this! (:
alr just found out you couldn’t even run that generated file. sigh. but NOW YOU CAN! during setup just run ./gradlew realJar instead of jar !! then just invoke Java via java -jar ... [regular program args] and you’re all set! yay
Ships:
This is FolderContentLister ! A program that does… exactly what it sounds like! You give it some folders, and it will list everything contained inside those folders, and write it to a txt file. This may sound kind of useless, but it’s very helpful for getting a good idea of what you have stored on your computer, especially if you’re thinking of factory resetting: it’s going to be a lot easier to reinstall the important stuff if you have an exact recollection of what you had before. This project also contains some nifty features not present in the original version I made for myself a few years ago, including a configurable depth limit (how deep into the root folders it will search), toggleable size percentages (so you know what takes up the most space in a given folder), and dirChar / fileChar (to spice up the representation of folders and files); to name a few! To use, make sure you have Java 21 installed, follow the simple README instructions, and let the program do its thing! At the end of the day, this is nothing jaw-dropping, but could prove useful for a handful of individuals - and that’s really what open-source is all about. Thanks for reading and enjoy!...
|
1793094453.6328819
|
1793180853.6328819
|
|
9554
|
My first slack bot! by @mokshjain939 | Stardance
|
mokshjain939
|
1
|
3.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-11T00:20:56Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I built a Slack bot using Node.js and Slack Bolt. The bot responds to several slash commands, including ping, hello, echo, random cat facts, random jokes, a help command that lists all available commands, and a few other commands. Writing the code part was straightforward, as the guide provided examples of how code for the slash command to be executed looks like, so one could identify the changes required to achieve the desired result for a similar command. The harder part was learning how all the different technologies (Node.js, Git, GitHub server) worked together through the Git push and git pull mechanism. I had to first learn how to set up a Slack app, followed by connecting it to my code, use Git and GitHub, deploy the bot to a VPS, and keep it running using systemd. I also ran into a few debugging issues where the older versions of the code were still being used, which taught me how deployment, Git, SSH, and updating the server actually work. I am proud that I was able to get the bot running 24/7 on a remote server and understand how coding locally, then pushing and pulling the changes, and updating the live bot works. To test the bot, use any of the following commands in Slack: /dsb-ping-mj - Check the bot’s latency. /dsb-echo-mj - Repeat what you say. /dsb-hello-mj - Greet the bot. /dsb-catfact-mj - Get a random cat fact. /dsb-joke-mj - Get a random joke. /dsb-help-mj - Show this help message. /dsb-dogpic-mj - Get a random dog picture. /dsb-catpic-mj - Get a random cat picture. /dsb-howareyou-mj - Ask the bot how it’s doing. /dsb-napd-mj - View the NASA Astronomy Picture of the Day. /dsb-meme-mj - Get a random meme. The source code and README are in the GitHub repository- https://github.com/mokshjain939-cmd/MJ-s-Stardance-Bot .", "repo": "https://github.com/mokshjain939-cmd/MJ-s-Stardance-Bot", "demo": "https://hackclub.enterprise.slack.com/archives/C0B9XALC1NH"}]...
|
[{"post_id": 6259, "ts": "2026 [{"post_id": 6259, "ts": "2026-06-10T14:53:10Z", "hours": 0.9819, "text": "Added some more prompts, finally the bot has 10+ commands, will make it more attractive after a while. I need to learn javascript right now to improve the bot further"}, {"post_id": 5525, "ts": "2026-06-09T10:32:49Z", "hours": 1.0683, "text": "The slackbot is finally coded and all the prompts can be checked by /dsb-help-mj. Now I plan to make some changes/additions that would make the slackbot more useful"}, {"post_id": 5458, "ts": "2026-06-09T07:49:07Z", "hours": 0.7053, "text": "I am currently working on building a slackbot that will respond to several slash commands and additional events. Right now I am using the guide to make the slack bot but I plan to use the internet to learn about various prompts of javascript applicable here and apply that knowledge here"}]...
|
Title: My first slack bot! by @mokshjain939 | Star Title: My first slack bot! by @mokshjain939 | Stardance
Devlogs:
I am currently working on building a slackbot that will respond to several slash commands and additional events. Right now I am using the guide to make the slack bot but I plan to use the internet to learn about various prompts of javascript applicable here and apply that knowledge here
The slackbot is finally coded and all the prompts can be checked by /dsb-help-mj. Now I plan to make some changes/additions that would make the slackbot more useful
Added some more prompts, finally the bot has 10+ commands, will make it more attractive after a while. I need to learn javascript right now to improve the bot further
Ships:
I built a Slack bot using Node.js and Slack Bolt. The bot responds to several slash commands, including ping, hello, echo, random cat facts, random jokes, a help command that lists all available commands, and a few other commands. Writing the code part was straightforward, as the guide provided examples of how code for the slash command to be executed looks like, so one could identify the changes required to achieve the desired result for a similar command. The harder part was learning how all the different technologies (Node.js, Git, GitHub server) worked together through the Git push and git pull mechanism. I had to first learn how to set up a Slack app, followed by connecting it to my code, use Git and GitHub, deploy the bot to a VPS, and keep it running using systemd. I also ran into a few debugging issues where the older versions of the code were still being used, which taught me how deployment, Git, SSH, and updating the server actually work. I am proud that I was able to get the bot running 24/7 on a remote server and understand how coding locally, then pushing and pulling the changes, and updating the live bot works. To test the bot, use any of the following commands in Slack: /dsb-ping-mj - Check the bot’s latency. /dsb-echo-mj - Repeat what you say. /dsb-hello-mj - Greet the bot. /dsb-catfact-mj - Get a random cat fact. /dsb-joke-mj - Get a random joke. /dsb-help-mj - Show this help message. /dsb-dogpic-mj - Get a random dog picture. /dsb-catpic-mj - Get a random cat picture. /dsb-howareyou-mj - Ask the bot how it’s doing. /dsb-napd-mj - View the NASA Astronomy Picture of the Day. /dsb-meme-mj - Get a random meme. The source code and README are in the GitHub repository- https://github.com/mokshjain939-cmd/MJ-s-Stardance-Bot ....
|
1793130472.6323385
|
1793216872.6323385
|
|
9555
|
HelioGuard AI by @nero_404 | Stardance
|
nero_404
|
1
|
24.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-04T15:30:06Z", "hours": 24.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "After around 24 hours of work across 8 devlogs, I made HelioGuard AI — an educational space risk intelligence dashboard that turns NASA public asteroid and space weather data into understandable risk scores, object reports, and student-friendly mission briefings. I built the project because NASA open data is very powerful, but the raw JSON can be difficult for students and non-experts to understand. HelioGuard fetches near-Earth object data from NASA NeoWs and space weather events from NASA DONKI, cleans the data, calculates risk scores, and presents everything through a responsive arcade-inspired interface. The risk system is transparent instead of being a black box. Each asteroid is scored using its estimated diameter, velocity, miss distance, and NASA hazardous classification: Asteroid Risk = 100 × clamp( 0.30 × diameter score + 0.20 × velocity score + 0.35 × closeness score + 0.15 × hazardous flag ) The final HelioGuard Index combines asteroid and space weather conditions: HelioGuard Index = 0.45 × Asteroid Risk + 0.55 × Space Weather Risk The most challenging part was combining different NASA APIs and turning very different scientific values into one understandable system. I also had to handle API failures safely, create loading and fallback states, design a rule-based ORBIT-01 briefing engine, and make the full landing page and detailed dashboard work on both desktop and mobile. I am most proud that this became more than a simple API wrapper. The project includes a complete visual experience, a documented mathematical model, asteroid reports, space weather summaries, educational explanations, transparent limitations, and a full research proposal. Research PDF: https://github.com/BeBecpp/helioguard-ai/blob/main/docs/HelioGuard_AI_Research_Proposal.pdf Research notes: https://github.com/BeBecpp/helioguard-ai/blob/main/docs/RESEARCH.md When trying the project, click Launch App, explore the top asteroid reports, open the risk explanation, and read the ORBIT-01 mission briefing. HelioGuard AI uses NASA public data, but its scores are an educational mathematical model. It is not an official NASA or NOAA product and must not be used as an emergency warning system.", "repo": "https://github.com/BeBecpp/helioguard-ai", "demo": "https://bebecpp.github.io/helioguard-ai/"}]...
|
[{"post_id": 40788, "ts": "202 [{"post_id": 40788, "ts": "2026-08-04T15:24:34Z", "hours": 2.2217, "text": "Today I spent around 2 hours and 13 minutes doing the final testing and polish for HelioGuard AI before shipping.I tested the live NASA data again, fixed and checked the API connection, and confirmed that the asteroid and space weather sections are loading correctly. I also tested the landing page, Launch App flow, detailed dashboard, risk scores, asteroid cards, ORBIT-01 mission briefing, animations, and mobile responsive layout.I cleaned up the final UI, checked the GitHub repository, README, research PDF, live demo links, and educational disclaimer. HelioGuard AI now feels like a complete student space learning experience instead of only a simple API dashboard.The project uses NASA public data, mathematical risk scoring, and AI-style mission briefings to help students understand asteroid and space weather information in a fun arcade-inspired interface.This is my final devlog before shipping. Next, I am submitting HelioGuard AI for review and continuing to improve it based on feedback."}, {"post_id": 6020, "ts": "2026-06-10T02:51:43Z", "hours": 10.1667, "text": "I spent about 10 hours working on HelioGuard AI, focusing on the premium arcade-style frontend, the Launch App dashboard flow, NASA public data presentation, and student-friendly explanations. I improved how the project explains the HelioGuard Index, asteroid risk scores, space weather summaries, and ORBIT-01 mission briefings. I also worked on the README, research PDF links, GitHub cleanup, deployment preparation, and overall project presentation so reviewers can understand the project more easily. This session helped HelioGuard AI feel more like a complete educational space learning tool instead of just a simple API dashboard. Next, I’m going to keep testing the live demo, polish screenshots, improve dashboard details, and prepare the project for shipping after identity verification."}, {"post_id": 5712, "ts": "2026-06-09T16:40:03Z", "hours": 5.5694, "text": "I spent about 5 hours and 30 minutes continuing work on HelioGuard AI. This was a bigger polish session where I focused on improving both the project presentation and the actual user experience. I worked on the frontend direction, the premium arcade-style layout, and the flow between the landing page and the detailed dashboard. I also kept refining how the project explains NASA public data, the HelioGuard Index, asteroid risk scores, and mission briefings in a way that students can understand without reading raw API data. One important part of this session was making the project feel more complete and serious: I worked on the README, research PDF links, project cleanup, and making sure the live demo and GitHub repo are easier for reviewers to understand. My goal is to make HelioGuard AI feel like a real educational space learning tool, not just a quick API demo. Next, I’m going to keep testing the live demo, improve screenshots, clean up the final GitHub presentation, and prepare the project for shipping once identity verification is complete."}, {"post_id": 4171, "ts": "2026-06-07T12:05:12Z", "hours": 0.4714, "text": "Today I continued polishing HelioGuard AI and improved the project presentation for Stardance. I worked on making the frontend feel more like a premium arcade-style space learning experience, with a cleaner landing page, stronger mission visuals, and a better flow from the homepage into the detailed dashboard. I also prepared the research side of the project so it feels more serious and explainable. HelioGuard AI is not just a visual dashboard — it uses NASA public data, a mathematical risk scoring model, and AI-style mission briefings to help students understand asteroid and space weather information. I added a research PDF that explains the project motivation, data sources, system architecture, mathematical risk model, limitations, and educational purpose. Research PDF: https://github.com/BeBecpp/helioguard-ai/blob/main/docs/HelioGuard_AI_Research_Proposal.pdf Next, I’m going to keep testing the live demo, improve screenshots, and continue polishing the detailed dashboard so the project is ready for shipping after identity verification."}, {"post_id": 4149, "ts": "2026-06-07T11:09:46Z", "hours": 0.7278, "text": "cheacking the design"}, {"post_id": 4130, "ts": "2026-06-07T10:11:07Z", "hours": 2.6983, "text": "I spent about 2 hours and 40 minutes continuing work on HelioGuard AI. This session focused on making the project feel more like a real educational space mission tool instead of just a normal dashboard. I worked on improving the visual direction, organizing the NASA data into a more understandable structure, and refining the student-friendly explanation flow. The project now feels more connected: real NASA public data comes in, the risk model turns it into scores, and the mission briefing explains what the data means for students. Next, I’m going to keep polishing the interface, improve the asteroid object reports, and make the HelioGuard Index easier to understand with clearer explanations and better screenshots."}, {"post_id": 3903, "ts": "2026-06-07T00:33:19Z", "hours": 1.9711, "text": "I spent about 1.5 hours setting up the first working version of HelioGuard AI. I focused on building the core structure of the project: connecting the NASA data idea, planning the risk scoring system, and creating the first dashboard layout. The main goal of this session was to turn the concept into something real instead of just an idea. I worked on the React/TypeScript structure, the NASA API direction, the HelioGuard Index concept, and the first version of the student-friendly mission briefing. Next, I want to improve the UI so it feels less like a normal dashboard and more like a space learning lab for students."}, {"post_id": 3525, "ts": "2026-06-06T14:38:13Z", "hours": 0.6094, "text": "WELCOME TO HELIOGUARD_AI NASA-data-powered AI dashboard for asteroid and space weather risk intelligence."}]...
|
Title: HelioGuard AI by @nero_404 | Stardance
Dev Title: HelioGuard AI by @nero_404 | Stardance
Devlogs:
WELCOME TO HELIOGUARD_AI NASA-data-powered AI dashboard for asteroid and space weather risk intelligence.
I spent about 1.5 hours setting up the first working version of HelioGuard AI. I focused on building the core structure of the project: connecting the NASA data idea, planning the risk scoring system, and creating the first dashboard layout. The main goal of this session was to turn the concept into something real instead of just an idea. I worked on the React/TypeScript structure, the NASA API direction, the HelioGuard Index concept, and the first version of the student-friendly mission briefing. Next, I want to improve the UI so it feels less like a normal dashboard and more like a space learning lab for students.
I spent about 2 hours and 40 minutes continuing work on HelioGuard AI. This session focused on making the project feel more like a real educational space mission tool instead of just a normal dashboard. I worked on improving the visual direction, organizing the NASA data into a more understandable structure, and refining the student-friendly explanation flow. The project now feels more connected: real NASA public data comes in, the risk model turns it into scores, and the mission briefing explains what the data means for students. Next, I’m going to keep polishing the interface, improve the asteroid object reports, and make the HelioGuard Index easier to understand with clearer explanations and better screenshots.
cheacking the design
Today I continued polishing HelioGuard AI and improved the project presentation for Stardance. I worked on making the frontend feel more like a premium arcade-style space learning experience, with a cleaner landing page, stronger mission visuals, and a better flow from the homepage into the detailed dashboard. I also prepared the research side of the project so it feels more serious and explainable. HelioGuard AI is not just a visual dashboard — it uses NASA public data, a mathematical risk scoring model, and AI-style mission briefings to help students understand asteroid and space weather information. I added a research PDF that explains the project motivation, data sources, system architecture, mathematical risk model, limitations, and educational purpose. Research PDF: https://github.com/BeBecpp/helioguard-ai/blob/main/docs/HelioGuard_AI_Research_Proposal.pdf Next, I’m going to keep testing the live demo, improve screenshots, and continue polishing the detailed dashboard so the project is ready for shipping after identity verification.
I spent about 5 hours and 30 minutes continuing work on HelioGuard AI. This was a bigger polish session where I focused on improving both the project presentation and the actual user experience. I worked on the frontend direction, the premium arcade-style layout, and the flow between the landing page and the detailed dashboard. I also kept refining how the project explains NASA public data, the HelioGuard Index, asteroid risk scores, and mission briefings in a way that students can understand without reading raw API data. One important part of this session was making the project feel more complete and serious: I worked on the README, research PDF links, project cleanup, and making sure the live demo and GitHub repo are easier for reviewers to understand. My goal is to make HelioGuard AI feel like a real educational space learning tool, not just a quick API demo. Next, I’m going to keep testing the live demo, improve screenshots, clean up the final GitHub presentation, and prepare the project for shipping once identity verification is complete.
I spent about 10 hours working on HelioGuard AI, focusing on the premium arcade-style frontend, the Launch App dashboard flow, NASA public data presentation, and student-friendly explanations. I improved how the project explains the HelioGuard Index, asteroid risk scores, space weather summaries, and ORBIT-01 mission briefings. I also worked on the README, research PDF links, GitHub cleanup, deployment preparation, and overall project presentation so reviewers can understand the project more easily. This session helped HelioGuard AI feel more like a complete educational space learning tool instead of just a simple API dashboard. Next, I’m going to keep testing the live demo, polish screenshots, improve dashboard details, and prepare the project for shipping after identity verification.
Today I spent around 2 hours and 13 minutes doing the final testing and polish for HelioGuard AI before shipping.I tested the live NASA data again, fixed and checked the API connection, and confirmed that the asteroid and space weather sections are loading correctly. I also tested the landing page, Launch App flow, detailed dashboard, risk scores, asteroid cards, ORBIT-01 mission briefing, animations, and mobile responsive layout.I cleaned up the final UI, checked the GitHub repository, README, research PDF, live demo links, and educational disclaimer. HelioGuard AI now feels like a complete student space learning experience instead of only a simple API dashboard.The project uses NASA public data, mathematical risk scoring, and AI-style mission briefings to help students understand asteroid and space weather information in a fun arcade-inspired interface.This is my final devlog before shipping. Next, I am submitting HelioGuard AI for review and continuing to improve it based on feedback.
Ships:
After around 24 hours of work across 8 devlogs, I made HelioGuard AI — an educational space risk intelligence dashboard that turns NASA public asteroid and space weather data into understandable risk scores, object reports, and student-friendly mission briefings. I built the project because NASA open data is very powerful, but the raw JSON can be difficult for students and non-experts to understand. HelioGuard fetches near-Earth object data from NASA NeoWs and space weather events from NASA DONKI, cleans the data, calculates risk scores, and presents everything through a responsive arcade-inspired interface. The risk system is transparent instead of being a black box. Each asteroid is scored using its estimated diameter, velocity, miss distance, and NASA hazardous classification: Asteroid Risk = 100 × clamp( 0.30 × diameter score + 0.20 × velocity score + 0.35 × closeness score + 0.15 × hazardous flag ) The final HelioGuard Index combines asteroid and space weather conditions: HelioGuard Index = 0.45 × Asteroid Risk + 0.55 × Space Weather Risk The most challenging part was combining different NASA APIs and turning very different scientific values into one understandable system. I also had to handle API failures safely, create loading and fallback states, design a rule-based ORBIT-01 briefing engine, and make the full landing page and detailed dashboard work on both desktop and mobile. I am most proud that this became more than a simple API wrapper. The project includes a complete visual experience, a documented mathematical model, asteroid reports, space weather summaries, educational explanations, transparent limitations, and a full research proposal. Research PDF: https://github.com/BeBecpp/helioguard-ai/blob/main/docs/HelioGuard_AI_Research_Proposal.pdf Research notes: https://github.com/BeBecpp/helioguard-ai/blob/main/docs/RESEARCH.md When trying the project, click Launch App, explore the top asteroid reports, open the risk explanation, and read the ORBIT-01 mission briefing. HelioGuard AI uses NASA public data, but its scores are an educational mathematical model. It is not an official NASA or NOAA product and must not be used as an emergency warning system....
|
1792878612.978165
|
1793742612.978165
|
|
9559
|
My awesome macropad! by @Dasher2801 | Stardance
|
|
1
|
0.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-18T18:51:16Z", "hours": 0.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I developed a “hackpad” featuring four buttons (like keyboard arrow keys), a rotary encoder, and an OLED display, all connected via a XIAO RP2040. The buttons are designed for Discord—specifically for hanging up calls or using the soundboard.", "repo": "https://github.com/Dasher2801/Hackpad", "demo": ""}]...
|
[{"post_id": 11454, "ts": "202 [{"post_id": 11454, "ts": "2026-06-18T18:44:46Z", "hours": 0.0, "text": "I’m working on my Hackpad, which is for Discord (mute, disconnect, etc.)"}]...
|
Title: My awesome macropad! by @Dasher2801 | Stard Title: My awesome macropad! by @Dasher2801 | Stardance
Devlogs:
I’m working on my Hackpad, which is for Discord (mute, disconnect, etc.)
Ships:
I developed a “hackpad” featuring four buttons (like keyboard arrow keys), a rotary encoder, and an OLED display, all connected via a XIAO RP2040. The buttons are designed for Discord—specifically for hanging up calls or using the soundboard....
|
1793066078.0172706
|
1793152478.0172706
|
|
9570
|
Capital Chaos by @sol4r_on_hackclub | Stardance
|
sol4r_on_hackclub
|
1
|
171.6
|
3336
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-22T19:42:41Z", "hours": 171.0, "multiplier": 19.54, "payout": 3336, "blessing": "neutral", "text": "Welcome to Capital Chaos! One of Stardance’s most awaited projects ;) (hopefully anyways) We’ve got chaos, a bunch of random events, a boss fight and so much more for you to explore. SKIP if you are on Linux/MacOS (or you can vote based on the videos - completely up to you) as I only have a windows executable for now. I am honestly super proud of this, and the community built around this game. I hope you enjoy it as well. There have been TONNES of challenges, such as pathfinding, the initial grid also seemed really daunting. To the vacancy count which was literally plaguing me for the past MONTH and got fixed today (it was one line… i know.. maybe I should have used AI). But besides, it’s a sick project. I hope you all love it. Unzip the file in the release and it should be good to go. READ THE README FOR INSTRUCTIONS AND CONTROLS!! THERE IS NO TUTORIAL Read the story, watch the videos if you can and just enjoy the game! It will be on steam in 8-9 months so maybe subscribe?", "repo": "https://github.com/Sol4rOnGit/PocketCity", "demo": "https://github.com/Sol4rOnGit/PocketCity/releases"}]...
|
[{"post_id": 57569, "ts": "202 [{"post_id": 57569, "ts": "2026-08-29T19:13:24Z", "hours": 0.5961, "text": "Thank you all so much for the support! Framework 12 is on it’s way (and this wait is painful). After 171 hours! 19.54x is actually insane and I appreciate it a lot. Join the Discord! I made a discord (click above) and i’ll give you all an early supporter role before I put it out on YouTube and stuff for the “wishlist” when the full game comes out (if you want to stay in touch after stardance is done. ALSO IF YOU COMMENTED WHILE THE GAME WAS STILL CALLED POCKET CITY DM ME ILL GIVE U A SPECIAL ROLE The game beta is still up and you can try it out Currently just doing some minor stuff to the game (Fixed some normal/easy mode not settings correct phases. B2 Bomber should destroy itself and stop the nuke siren once launched), and slowly adding a tutorial but I’m like 90% focused on revising for uni entrance exams"}, {"post_id": 52586, "ts": "2026-08-22T19:35:44Z", "hours": 3.4139, "text": "BETA TEST! Nvm I have to devlog my final changes But lemme talk to those stardance reviewers real quick. Scroll down to see the endless content of my story, and all the community feedback (also on my youtube). Playing the game is a bit of a learning curve so you can watch my videos and stuff on it as well. I’d say watch this one: Boss Fight for the boss fight and maybe one of the other ones that you find interesting. Maybe this one because it has over 1,000 views and still climbing! The game is released there but it is windows only for now (i will release linux and maybe mac on the actual release game don’t worry but I’m super restricted for time right now) SKIP IF YOU’RE ON LINUX / MAC For everyone: Changes: Amended GameAudioManager to adjust for max voices which uses a List based system that appends and unappends. Boss fight also toggles and untoggles the game audio dependant on each audio source, because the game could currently have hundreds or even thousands of audio source which is really bad optimisation. So each audio source that I want to track has a ManagedAudioSource attached which automatically registers and unregisters itself from the GameAudioManager. I also edited the boss fight to make it a touch harder and amended the moves ;) And come and beta test NOWWW. leave all your comments, suggestions etc. on THE NEW DISCORD COMMUNITY!! or youtube, i’ll read it all and, again, thank you all for your support . I don’t know what to put as the image so here."}, {"post_id": 51908, "ts": "2026-08-21T20:18:25Z", "hours": 8.8033, "text": "Final DevLog before First Ship - Boss Battle I don’t think words can explain what I made so click here to watch a video on my probably final major addition (no pressure) & also help with a small dilemma I have. NO!! that does not mean this game will stop development, but i think i finally have enough hours (+10-15 more safety) to get a Framework 12! (and then i will be able to crack on with entrance exams - so i guess development will slow a touch). Of course I’ll ship once the game is polished enough. You might see a devlog or two from the “Capital Chaos Website” - follow me ;) I really hope you guys all enjoy it and now I need to do the readme and stuff. I also realised I was one of the most viewed on Stardance which is honestly amazing and I appreciate all of the support :) And thank you to all the new friends I’ve made and all the followers and commenters. It’s honestly been insane."}, {"post_id": 49800, "ts": "2026-08-18T18:52:58Z", "hours": 3.8472, "text": "Game Sountrack? But before I talk about that, lemme just say the game audio is almost finished, we have menu sounds for clicks and stuff, and i added support for main menu music. The firetruck hoses actually do stuff, floods sound like floods, theres some peaceful background nature sounds and yeah it makes the game feel so much nicer. although i forgot place sounds which was a massive oversight. also my wifi is still working. no idea why, but not complaining. and i’m cooking on a soundtrack lowk although none of it seems correlated in any way and idk how i’ll make it fit into this game but you know what maybe it’ll just all go into some random album. None of the hours put into these songs count but its okay. i’m no pro tho so. all i’ll say is i love some bass"}, {"post_id": 49147, "ts": "2026-08-17T19:36:51Z", "hours": 2.6206, "text": "I’m getting new wifi lol, & 150 hours so yeah i won’t be here and probably will have to post a 10 hour thing BUT on the plus side, we got a nice death screen that has a bunch of quotes that you can read below [SerializeField] private string[] quotes = { \"Opportunities multiply as they are seized \\n - Sun Tzu\", \"If you are going through hell, keep going \\n - Winston Churchill\", \"No empire was built on the first draft\", \"Fall seven times, stand up eight\", \"That which does not kill us, makes us stronger \\n - Friedrich Nietzsche\", \"Out of ash, a new foundation\", \"I have not failed. I just found 10,000 ways that don't work \\n - Thomas Edison\", \"A man is not finished when he is defeated. He is finished when he quits \\n - Richard M. Nixon\", \"It does not matter how slowly you go as long as you do not stop \\n - Confucius\", \"Out of difficulties grow miracles \\n - Jean de La Bruyère\", \"The greater the obstactle, the more glory in overcoming it \\n - Molière\", \"A Pocket Sized City is too small for your ambition. Build again \\n - The Dev\", \"Success usually comes to those who are too busy to be looking for it \\n - Henry David Thoreau\", \"Go big or go home\", \"You can't give up just yet. Stay determined... \\n - Undertale\" }; Maybe you’ll catch the little easter egg there as well ;) Working on adding game audio!! and probably finally enough hours to get the framework 12 (btw I wouldn’t recommend this as a daily laptop (f13 better), I just want something I can write on lol)"}, {"post_id": 48073, "ts": "2026-08-16T11:08:59Z", "hours": 3.8794, "text": "INSANE tree optimisations Went from 60-80 fps @ 4K to 400-450 (in game). Yes a 6 to 7x increase. How you ask? GPU Mesh Instance drawing offloading the CPU work of handling thousands of game objects. In English, I’m no longer spawning thousands of tree objects, but instead telling the GPU to draw the tree instances every frame. This seems quite unintuitive because you’re now drawing thousands of things every second. BUT this means that there are no game objects, so the CPU doesn’t even know that these exist. Also the GPU draws it thousands of times anyways. A game object handles transforms, rotations, etc. that the CPU has to keep track of whether it is active or not. This had the added benefit of the trees having no overhead when the trees are disabled, so you regain all of your framerate! Also I used some neat little script that combined the meshes all together in the GameObject prefab. Now it really should be able to run on your potato PC/Laptop. Combine script using UnityEngine; public class MeshCombineUtility : MonoBehaviour { [ContextMenu(\"Combine Children Meshes\")] public void Combine() { MeshFilter[] meshFilters = GetComponentsInChildren<MeshFilter>(); CombineInstance[] combine = new CombineInstance[meshFilters.Length]; Matrix4x4 matrix = transform.worldToLocalMatrix; for (int i = 0; i < meshFilters.Length; i++) { if (meshFilters[i].gameObject == gameObject) continue; combine[i].mesh = meshFilters[i].sharedMesh; combine[i].transform = matrix * meshFilters[i].transform.localToWorldMatrix; } Mesh combinedMesh = new Mesh(); combinedMesh.CombineMeshes(combine, true, true); #if UNITY_EDITOR string directory = $\"Assets/Assets/Mesh/Tree/{gameObject.name}.asset\"; UnityEditor.AssetDatabase.CreateAsset(combinedMesh, directory); UnityEditor.AssetDatabase.SaveAssets(); Debug.Log($\"Combined mesh saved to {directory}\"); #endif } } Draw section of GPU Mesh Instancing private void DrawTreeMeshes() { if (treeMesh == null || treeMaterial == null) return; foreach (var kvp in generatedChunks) { ChunkData chunk = kvp.Value; if (chunk.spawnedTrees == null || chunk.spawnedTrees.Count == 0) continue; int batchSize = 1023; int totalTrees = chunk.spawnedTrees.Count; for(int i = 0; i < totalTrees; i+=batchSize) { int length = Mathf.Min(batchSize, totalTrees - i); Matrix4x4[] subMatrices = new Matrix4x4[length]; for (int j = 0; j < length; j++) { subMatrices[j] = chunk.spawnedTrees[i + j].matrix; } int meshIndex = Mathf.Abs(chunk.chunkCord.GetHashCode() + i) % treeMesh.Length; Graphics.DrawMeshInstanced(treeMesh[meshIndex], 0, treeMaterial, subMatrices, length); } } }"}, {"post_id": 47547, "ts": "2026-08-15T14:59:51Z", "hours": 1.4756, "text": "You won’t believe it. I got it working FIRST TRY That’s actually crazy to be honest. Tells you how much expirience those 8 hours of menu development have given me. Someone give me a Unity menu doctorate or sum But on a serious note, we have game difficulty selection and its all nice and self contained. With controller support of course. You can see we have Previous Saves but that isn’t really functional yet. One of the things I learnt is to never rely on the UI giving you the data, only the click, so you’d manually add the elements and then call .value or .isOn respective to the component, and the same goes for dropdowns although I didn’t use one here. Let me know if you think it looks clean or any improvements to the UI readability, etc."}, {"post_id": 47161, "ts": "2026-08-14T20:58:41Z", "hours": 10.3042, "text": "I HATE Menus (in Unity at least) Genuinely hate them. But yeah we got settings menu working (which genuinely took like 5-6 hours because of stupid unity legacy stuff vs new stuff and then unity 6 vs 2023 version stuff i was used to) AHHHH I don’t remember it being this painful in Godot to be honest so maybe Godot is better for that? i had to get rid of VSync because it only worked on refresh. Created a debug menu to test performance, just to see that the only useful thing there was FPS and like RAM usage, and some engine stuff like active Rigidbodys. I couldn’t see the CPU utilisation or GPU utilisation which was… the thing I wanted to see. Although don’t worry performance does seem to be reasonable and early to mid game I can push over 1000 FPS on potato settings (specs at bottom if you care about them). It does obviously go down as the game continues on, but I think it’s quite optimised. Even with shadows its on 500+ FPS with a mid sized down. Although adding trees will quarter your FPS numbers. but it looks pretty so there’s your tradeoff. Although problematically if you turn trees off and you had already generated trees the fps stays low even though you’re not rendering it? I don’t know why unity is so weird. The game is quite unbalanced, but we’re in the final polishing stages (my target is 150 hours for the framework and hopefully it’s secure! (vote nice and high thanks - i did put a lot of effort into this game.) Up next: Difficulty selection Polishing Rebalancing updates Release!"}, {"post_id": 45186, "ts": "2026-08-11T14:41:21Z", "hours": 5.9322, "text": "NEW NAME!!! Flash Floods + Main Menu If you remember, Pocket City is a game that already exists so now it’s called Capital Chaos. Thank you YouTube comments! And all of you as well, for the suggestions. Ofc new video to go with it: watch by clicking here! I created flash floods that.. well flood the entire map. It’s meant to be a little toned down of a disaster, thats more survivable because it gives the game a touch more balance. It stops all services from working, so that could be detrimental during a virus attack. But on the other hand, it stops every single fire and prevents new ones and explosions. A lifesaver if theres a nuke, it gets completely nullified. Also new main menu, I think it looks pretty neat. Especially compared to the old one."}, {"post_id": 43501, "ts": "2026-08-08T20:10:46Z", "hours": 9.3828, "text": "Nukes… from a plane A famous plane. The B2 Bomber. Idk gng I got bored. No but it drops a nuke that decimates everything in a decent radius and then sets everything in a bigger radius on fire, and now we have a new rare event called a “military invasion”.. that spawns like 8 helicotpers AS WELL as the b2 bomber. The B2 Bomber starts a few clicks out and then flies toward the set target building. Then it drops the nuke, and you have a few seconds to try and kill the nuke before it kills you, and on impact (yes we are finally using rigidbodys as they are intended) it explodes. You better have that turret system ready. Of course, it’s clearly not enough. So maybe I’ll add a anti-missile system as a YouTube comment said. Speaking of YouTube, thank you for all the support :) 100+ comments goes crazy, and we’re on 73 subs up from the previous 29 literally 3 weeks ago. Not subscribed? Help a fellow dev out: TechScope Channel"}, {"post_id": 36089, "ts": "2026-07-27T23:24:15Z", "hours": 6.7969, "text": "WORKING AIR DEFENCE + ATTACK HELICOPTERS So we got working air defence turrets with some predictive aiming, and attack helicopters that shoot missiles at random buildings. Although you’re unlikely to get 3 attack helicopters at once… for now. The helicopters blades do spin, they bob up and down, they go towards buildings. They shoot out these missiles, which pathfind their way to the targetted building. They all have a healthsystem which means that the turrets do some damage on collisions only though, one turret might take a while but two (or the 7 you see below) will MOW them down. Still have to hook it all up to the Finance Manager, Special Building placement and other boring stuff, but… I need more IDEAS!! (read this thx) …for more Military stuff that can be added. Tank wars? Who knows. I was thinking of a military invasion as being one of the rare events which spawns like 10 missiles and 5 attack helicopters and maybe a B2 bomber or some stuff. I also need more allied options, maybe I’ll add like an anti-bomb turret that is specifically for the B2 bomber or something and does 100000 damage. Or maybe your own airbase that spawns an allied helicopter and now you have dogwars. or maybe your own plane. idk So yes @Adam_Lotfalla this is what the helicopter was for. Yay more things to worry about!!! Still have integrations left! I’ll see you (hopefully) tomorrow once that’s done. but its midnight now so goodbye."}, {"post_id": 35447, "ts": "2026-07-26T21:18:10Z", "hours": 1.8178, "text": "Hmmmm… What’s cooking? (Blender just WON’T count toward my hours but prolly spent 2-3 extra hours here) The helicopter blades actually spin. And W Unity particle system for the missile."}, {"post_id": 33603, "ts": "2026-07-23T17:37:47Z", "hours": 2.6228, "text": "I NEED YOUR HELP Pocket City already exists as a game. I know this is stupid and I should have checked this before starting since I had the intention of publishing it to steam but here we are. If you want more details, or more knowledge about the game check this video out: Video Oops…"}, {"post_id": 32074, "ts": "2026-07-20T23:48:35Z", "hours": 6.6703, "text": "UFOs in an Alien Invasion 💔💔 The second rare event addition to Pocket City! Get a chunk of your population zapped up by some not so friendly aliens… Any more ideas, let me know below! But it was pretty neat to implement. 3D modelled it and everything. 3 hours of doing god knows what. Tried to figure quality settings out and probably did smth else but was too busy with the World Cup to remember what I did. Probably bug fixes and stuff. Oh yeah and you see a pretty cool ripple pulse thing that propogates through the map. Although it is a little weak right now but i’ll fix that next time. Super tired. mb"}, {"post_id": 27226, "ts": "2026-07-12T16:41:03Z", "hours": 4.4661, "text": "Bugs are genuinely taking the life out of me Genuinely the worst thing ever. I STILL can’t figure it out but I had to post my weekly devlog anyways. Can you believe we’re 28 weeks into 2026??! Here’s the chaos where I accidentally created a “Pocket Empire” (Day 1105) Watch the video (click the title) if you wanna see how I ended up here and a minor crash out. very minor."}, {"post_id": 26578, "ts": "2026-07-11T14:19:18Z", "hours": 9.2114, "text": "I’m being forced to post Yeah thanks stardance. 10 hour limit for what. Probably spam filter. Also MASSIVE BUG(s). One is that the game just randomly deletes all the buildings from a chunk. No idea why, I’ve been at it for so long. Another issue is the stupid vacancy counter which has been broken FOREVER but atleast now it doesn’t go negative. I have a serious feeling I will have to spend a week just POLISHING the game. Whatever, Currently working through a new feature of allowing you to use your money that you spent so long accumulating to try and fix the chaos that you went through. This is done through the “Council FX” which I may rename if you guys can think of a better name, and you can see the countless things to do such as: Taking On DEBT!! YAY!! 100k that gains 1% every day. Seems low.. but it will pile up very quickly since it’s compound interest. Overclocking the grid for free placement + infinite water/power Maximising Housing/Business revenue Curing all infections … and many more as well as the ??? at level 100… who knows what that does. £2.5 million btw. Of course, those levels are the XP, which has finally given that a use. And no you wont be at level 11000 just like that, i’m just being lazy for testing. Also rebalanced so that all of the commercial buildings have ~10-15% of their previous employment caps. So that you’re not just spamming residential. It also makes industrial more useful as they have more employers even though they produce less money."}, {"post_id": 23054, "ts": "2026-07-05T19:50:43Z", "hours": 2.3469, "text": "Main menu 👀 I need help. UI clearly isn’t for me"}, {"post_id": 22419, "ts": "2026-07-04T21:33:08Z", "hours": 7.5172, "text": "CRIME!!! + C# Generics I added Arson and added a Police manager that goes out and solves these crimes. Lots more to come, let me know of any ideas you have! But before that let me teach you ALL something. C# Generics. I had a bunch of scripts that all did ABOUT the same thing but with different. This was FindClosestHospital, FindClosestFireStation and the thing I was adding which was FindClosestPoliceStation. It felt quire redundant to copy the same lines but instead of Hopsital it was replaced with FireStation or PoliceStation. //Generic functions private T FindClosestReachableService<T>(Vector2Int targetPos, Func<T, bool> hasAvailableVehicles, out List<Vector2Int> bestRoute) where T : Building { T closestBuilding = null; bestRoute = null; int shortestRouteLength = int.MaxValue; bool foundBuildingOfThisType = false; foreach (var kvp in gridManager.GetMapGrid()) { GridManager.GridTile tile = kvp.Value; if (tile.buildingScript != null && tile.buildingScript is T serviceBuilding) { foundBuildingOfThisType = true; if (!hasAvailableVehicles(serviceBuilding)) continue; List<Vector2Int> testRoute = CalculateRoadPath(tile.buildingScript.gridPos, targetPos); if (testRoute == null || testRoute.Count == 0) continue; if (testRoute.Count < shortestRouteLength) { shortestRouteLength = testRoute.Count; bestRoute = testRoute; closestBuilding = serviceBuilding; } } } if (!foundBuildingOfThisType) { bestRoute = null; return null; } return closestBuilding; } Above is an example of the C# generic. We have “T” type, and I think this is a good place to learn about them. Instead of defining the function as returning something like Building , we make T a type. and you can see it passed in a little <T> after the function name. We can also pass in entire functions like Func<T, bool> which is utilised as shown below: Building bestStation = FindClosestReachableService<PoliceStation>(building.gridPos, ps => ps.HasPolice(), out route); you can see ps => ps.HasPolice() calls that out. And finally, to define what T is meant to be, I’ve added where T : Building . You can do this many times, such as by having both a T as well as a U! and you’d have a repeated where T : Building where U: PotatoChips or something idk what U is meant to be bro. This was my first time using it but it’s pretty cool and if you’re using C# I’d recommend learning it as it saved me like 200 lines of code and changing something 3 times to change the same thing! And yes, I added a third thing which is Arson! which is a crime based thing, and you have a visual that shows up as a timer. if a police doesn’t solve the crime it sets on fire. It’s not too bad but it adds a use for the police, with much more to come for the police to deal with in the future! Also added asteroid BOMBARDMENT as a debuff. Yeah it’s brutal. 3 strikes… thats up to 108 tiles DESTROYED and set on fire. And of course, the image is from a youtube video: Click me!"}, {"post_id": 20327, "ts": "2026-07-01T22:02:59Z", "hours": 4.1806, "text": "BETTER UI + XP At the top of the image you can see a little progress bar… yep I’ve added XP now. Got plans for that, probably going to allow you to unlock stuff later. Like the lockdown ability etc. The UI has been overhauled. The actual images are a touch on the placeholder side apart from the road but it looks pretty good. You cycle between road, zoning and special building placement with 1, 2 and 3. Use R to rotate between the modes like residential, commercial and industrial zoning as well as Utilities & Emergency for the special buildings. Then finally T to rotate between those specific buildings. Complicated? Maybe? But it’s also a lot faster. I have completely lost my muscle memory of spamming R like the “good old days” though. Looks good? Bad? Horrible update and the game should never be changed ever again? Best update in the world and I should win £1 trillion? What do you think?"}, {"post_id": 17186, "ts": "2026-06-27T21:52:31Z", "hours": 9.9433, "text": "MAKE IT RAIN ASTEROIDS Pretty long run honestly. But before that, let’s talk about retrofitting your buildings. Earthquakes are pretty bad. Very bad when you loose your 100k building in a moment. So upgrade it. Yes it’ll cost you 35 to 55k now. But is your peace of mind worth that? And I added asteroids! These fly down and annihilate everything in a 3 unit radius and then set everything else in the 6 unit radius on fire. Lots of minor bug fixes as well, trying to get the game really polished now. Some rejigging of the game’s back end, such as creating a new abstract class for employer and reworking the systems to ensure that they run more smoothly and I believe almost finally fixing the unemployment/vacancy problem. I say almost because every 5 runs I see the game yell at me that it didn’t count something correctly but honestly I’ve spent so long on this I don’t even know if it’d be harder to just rewrite the entire employment system. For more detail, see my video linked below! See if you guys like it, my first proper long form I Added ASTEROIDS that ANNIHILATE your Adorable City And boy will this thing cook your economy."}, {"post_id": 15293, "ts": "2026-06-24T20:46:40Z", "hours": 7.6331, "text": "POLITICS!! + Debugging Hell v2 I mean I guess it is? Not too sure. Event Manager completely overhauled. Double events now no longer have the chance of repeating the same event. Created a new GameEffects script which just takes a bunch of simple code away from EventManager and plays the basic functions such as the “tax revenue increases” which you see below. This was quite a headache to create, and I severely underestimated how much time this would take. I have 2 extra nested classes inside of EventManager for Political Question and Political Scenario. [... inside EventManager.cs ...] public class PoliticalQuestion { public string Question; public TaskCompletionSource<bool> TaskCompletionSource = new TaskCompletionSource<bool>(); public Action onAccept; public PoliticalQuestion(string question, Action onAccept) { Question = question; this.onAccept = onAccept; } } public class PoliticalScenario { public string description; public Action runnable; public PoliticalScenario(string featureDescription, Action functionality) { description = featureDescription; runnable = functionality; } } [Header(\"Political Question Variables\")] public List<PoliticalQuestion> PendingQuestions = new List<PoliticalQuestion>(); public event Action onQueueChanged; private PoliticalScenario[] goodFeatures; private PoliticalScenario[] badFeatures; The political question is sent off to the UI manager, which displays it as shown below. Then it handles user input pressing Y/Enter or N/Esc to accept the user choice, and returns it back to the Event Manager. Seems simple enough, yet there are many ways to do it but I think that the above implementation works the best out of all the ones that I tried. I attempted to use Game Manager as a middleman but that did not work out - so I resorted to passing an entire class. The political scenario allows for the string to actually do something, so that the game knows what to process and what the user agreed to without creating a bunch of variables, and can allow for stacked political question events which is nice. Game’s looking really neat, and the multipliers and stuff can make the game go very crazy very quickly. Too much of a good thing is a bad thing!! Debugged the entire system for like a solid 3 hours it was actually bad. Came first in the UK tho!! I’m back after those 6 exams are done. Yes I know the UI looks pretty bad but it’s good enough for pre-beta testing. Oh yeah, speaking of UI everything is more bold. Figured out how to do that."}, {"post_id": 14641, "ts": "2026-06-23T20:29:50Z", "hours": 2.74, "text": "I HAVE A PLANN For the spinal sprint toward completion. Should end up taking me to hour 70-75? Then we polish the UI and add a main menu… lacking feature I guess. Anyways, reorganised the code base and split game manager up, created folders and fixed dependencies for everything. There is now an event manager, which handles all of the events separately, and as you can see from this simple to-do list (should my next project be the to do list to end all to do lists with calendar integration and stuff???) that I have completed the first bit “Weighted Event system”. So now nothing has an equal chance of happening! Also as a side effect made adding new effects a lot easier due to the nested WeightedEvents class which was similar to an idea I had in my old minecraft mod plugin and transferred the skills across the languages. Quite nice neat code actually, that isn’t 600 lines long, so I can quickly show it to you below. It’s very applicable and I believe I have used it twice or three times in the past 4 months alone. The declarations for the events now look like this, very centralised and easy to add/remove events and modify the weightings. Called in the Start() function. weightedEvents.Add(new WeightedEvent(\"Nothing\", 20, () => { })); weightedEvents.Add(new WeightedEvent(\"Earthquake\", 5, Earthquake)); weightedEvents.Add(new WeightedEvent(\"Fire\", 40, SetBuildingOnFire)); weightedEvents.Add(new WeightedEvent(\"Virus\", 20, () => { TriggerVirusOutbreak(); } )); and the class is just simply storing the name, the weight and a weighted Event. public class WeightedEvent { public string name; public int weight; public Action weightedEvent; public WeightedEvent(string name, int weight, Action weightedEvent) { this.name = name; this.weight = weight; this.weightedEvent = weightedEvent; } } we do need to store the total weight which happens on the Start() function currently. When playRandomEvent() is called, we increase the cursor by the event’s weight until it is greater than the rolled random number between 0 and the total weight, at which point the class’ event is called. Broke nothing in the end! That’s great isn’t it, especially after migrating a bunch of “legacy” code. Hopefully didn’t jinx it."}, {"post_id": 12737, "ts": "2026-06-20T20:33:13Z", "hours": 4.3403, "text": "Okay now i SUCK at my own video game. Don’t worry it’s hard mode. Also lost 2 hours of work somewhere cuz it didn’t save? Don’t understand how. That’s always great isn’t it. But still, 62 days in and I’m fried because of one silly mistake I made 40 days ago. Really teaches you consequences I guess. Spent my time completely overhauling how everything works. You used to make too much money, so I made the revenue even more population based, by making the max revenue a multiplier of the max population. Completely rewrote the losing population, unemployment and vacancy calculations to prevent strange negative numbers which was irritating me for the past one and a half weeks. Also overhauled the inflation to use a formula instead of a very rudimentary lookup table from if statements which is staged into a end-game (130 days+) and early game stage with 20% and 2% simple interest respectively (no not compound for once - that would make the game too hard. Extreme mode?) The game is actually like a good game now. I don’t know how to explain apart from that though."}, {"post_id": 11524, "ts": "2026-06-18T20:22:52Z", "hours": 2.1214, "text": "I FINALLY LOST IN MY OWN GAME!! Rebalancing the game slowly but surely. Currently added inflation, which increases the price of everything as the days go by. It gets less severe the longer you play but the inflation rate stays high. The game days now vary, take 5 seconds at the start and slowly get faster and faster toward 1.5s linearly. The inflation rate also increases with bands as the game progresses so you need to keep up. This makes the game a good progression, but make one mistake during an earthquake and it might be ggs for you. There is now finally a game over function… although no restart but don’t worry about it. It just pauses the game and tells you that the game is finished. Next up: Detailed Finances, Rubbish? (follow thx)"}, {"post_id": 10848, "ts": "2026-06-17T19:53:45Z", "hours": 1.2564, "text": "Currently rebalancing the video game to make the game progression more realistic as it is currently extremely difficult at the start and stupidly impossible to die toward the end. Completely forgot to tell you guys that you can follow my projects on my YouTube: Video Like & sub if you can… mb for the self promo though. Sadly I have 6 exams next week so the next 2 weeks are most likely going to be slow ones… not dominating the leaderboards anymore."}, {"post_id": 10754, "ts": "2026-06-17T17:25:21Z", "hours": 4.8722, "text": "Working healthcare! The game now has a virus… and it spreads pretty quickly. Houses get infected, added to the random event chances on top of earthquakes and fires. I created hospitals that dispatch ambulances as required. Now all services cost money. Using the same A* algorithm from last time, but a little more complex due to the nature of the virus spreading to random buildings. This requires the game to check for any viruses. I created an UI that displays the day progression, using actions & delegates again. The day length is now no longer fixed, but instead it becomes smaller the longer you stay on the map, to try and add difficulty ramping. The game is currently very difficult at the start and incredibly easy at the end, so I’m trying to reverse this a bit and make it hard at the start but terrible towards the end. Also just realised there’s no ending lol - you just become broke and softlock yourself. Never done it to myself which really speaks out about how UNBALANCED the game is. I think it’s time to work on game balancing now before implementing new features, and over half way to shipping? maybe at 65-80 hours in at this rate?"}, {"post_id": 8771, "ts": "2026-06-14T16:10:08Z", "hours": 4.5692, "text": "WORKING PATHFINDING ON THE GRID! Created new assets so the game looks complete now! You can see the firetruck going from the Fire station all the way to the burning building where it will extinguish it. Yes, it follows the roads as intended and uses the A* algorithm to figure out the best path. And they shoot water out, so visual feedback for everything. This was super fun as it was the first time I’ve implemented the A* in a video game on a grid that procedurally generated. The coal power generator, fire station and fire trucks have models now, I think I made them good enough to fit with the game. Police station and healthcare to still be implemented but it’s looking good so far. This required creating a new services manager, creating a pathfinding script, updating global services and how everything interacts with the fire, and creating reverse pathfinding and small details. It’s coming together really cleanly now."}, {"post_id": 8393, "ts": "2026-06-13T23:23:02Z", "hours": 7.1706, "text": "Debugging HELL I added fires, which you can see in the corner. Unity Particle system actually really cool for that by the way. This forced me to rewrite how fires work and add new bits to the Building parent class. That was fine. Had to update the UI to show you that an earthquake was happening, which works more reliably than last time and I figured the ghost error out. I decided to implement water & energy requirements. Overhauled ChunkManager to allow for this, as each chunk needs enough. If it doesn’t produce enough, it imports from other chunks. If it can’t do that, everyone starts packing it up and leaving. Added this to city stats. Then modelled a cute little water tower as you can see below. Then I added energy, lots of chaos. Trying really hard to avoid circular loops to avoid a stack overflow, but it’s looking pretty good. User warnings now show up, like when an earthquake happens, or if a building burns down or if you can’t do something or don’t have money for something. Now I think I have time to do the fun part - creating chaotic fun stuff to make the city feel even more alive. But it’s looking pretty good right now. It’s getting close to being shipped, almost 40 hours in. Like & follow for the link ;) Now I really need to sleep. OH NO AND REVISE FOR THE PHYSICS TEST ON TUESDAY"}, {"post_id": 8051, "ts": "2026-06-13T13:04:47Z", "hours": 2.0944, "text": "It’s been a really long time since I’ve posted. Some progress going on here. Little sneak peak of the fires… yep. You thought the game was gonna be peaceful? On another 7+ hour sprint today"}, {"post_id": 7093, "ts": "2026-06-11T21:27:16Z", "hours": 4.3672, "text": "Clean codebase always pays off (unless you want to keep your job apparently?) Fixed the vacancies counter, as before I was using = instead of +=. Told you it’s the little things that catch you out. Created a safer version of the draft forceRemoveElement() that accounts for jobs and residents when destroying a building (houses/shops/industry). This now updates the game realistically, e.g. if you destroy a house, then you reduce from the population. If the residents were employed, then it removes positions from buildings. If they were unemployed, then we remove it from the stats. Since I am not storing direct references between buildings but creating a game pool for performance, this makes the operations require lots of calling. This could probably be optimised in the future but I will do that near the first release due to the ever-changing code base. This required updating GameManager.cs to have LosePopulation(), LoseJobs() with a helper RemoveWorkersFromBuildings() function. Luckily the lists in GridMananger that I made like 20 hours ago for “future proofing” came in useful. Finally, you can press F to show city statistics and it updates in real time."}, {"post_id": 6481, "ts": "2026-06-10T22:00:31Z", "hours": 1.0161, "text": "What’s the difference between these two: int maxEmployees = 50; int employees = 25; float taxRevenue = 1500.0f; ONE : float revenue = (employees / maxEmployees) * taxRevenue; TWO: float revenue = (employees * taxRevenue) / maxEmployees; Mathematically, they’re the same. a/b * c = c/b * a However, I missed one thing while coding (a lot harder to see when it’s not just this). They’re both integers. now what C# does is it divides 25/50. we get 0.5. but they’re both integers, so it tries to store it as an integer, which floors it to a 0. Therefore, it’ll suddenly jump to max revenue when the company is full. obviously not what was intended. Option 2 makes you multiply the integer with a float, and stores 25 * 1500 as a float, which can now be nicely divided by 50 to get the value that we inteded. Sometimes… actually, no MOST of the time it’s the little things that catch you out. Anyways, this has very much balanced the game. The companies get as many employees as they can, then grow by 1 employee each day. Their revenue scales with the employee count, so now residential houses are useful for once. If anything, essential. Next up: Road tax, Land tax. This might be the one time you want tax… or maybe it’s too much?"}, {"post_id": 6445, "ts": "2026-06-10T20:48:12Z", "hours": 1.1464, "text": "Sometimes, the most productive thing you can do is destroying everything for a clean slate. So that’s what I did and refactored my codebase, painting my GitHub red. The old city generation code ended up becoming messy spaghetti code that made it difficult to debug and work on it. And that sort of legacy code when I look back in a month is what ends up shelving projects for years on end. This half an hour will save me many in the future. I also removed the cluster expansion method of building expansion completely as it created annoying expansions that didn’t make sense of everything being 1 square off a road. Also created a GameManager and moved aspects of GridManager and FinanceManager to the new script, to try and centralise the logic and stop having random bits such as the day manager in the FinanceMananger, which didn’t make an sense. Also yes, I wasted 20 minutes trying to figure out what was going wrong when I forgot to add GameManager.cs to the scene 💔"}, {"post_id": 6367, "ts": "2026-06-10T18:39:39Z", "hours": 3.0794, "text": "It can’t POSSIBLY BE THAT HARD CAN IT? No but you have to mix up TAGS AND LAYERS. There’s some error you got 5 builds ago but NEVER APPEARED AGAIN. EVEN HOURS INTO TESTING. HOW DID IT FIX ITSELF?! The UI now updates how much you gained in the past day! But anyways, you can finally toggle between the layers… after too much debugging (and realising it was just me being stupid). But it’s okay I’ll hopefully get that laptop from this blood sweat and tears. Look how gorgeous it looks now!"}, {"post_id": 5918, "ts": "2026-06-09T22:00:15Z", "hours": 5.0561, "text": "Did you know it costs more to remove a road than create one?! Strange… Finally have a working economy in the game now! It’s VERY unbalanced. You WILL become very rich. And residential is currently useless, and everything just has a set employee count for now. But that will change soon, and we’ll make the game intelligent. Also the game clock is currently in the Finance Manager which is a little odd so maybe I’ll fix that later. But, I have used actions & delegates to optimise the game handling of the ridiculous amount of scripts for each building that will be running once the cities become larger and larger. Created a UI manager to update the script, which uses the above actions & delegates from the script manager. Created a Finance Manager which led me to have to recode GridManager for monetary support, but that was honestly less painful than it sounds. I also spent a considerable amount of time debugging last post’s Zoning. The code has multiple ways of producing a building and this caused me to have to go back and go through all of the code line by line to figure all the pathways out and debug it eventually. And yes, as promised I made it cost money to zone. Every action, such as creating a road and destroying them cost money and using my amazing research skills of using the first google result, destroying a road costs double placing a road! I think I should sleep. See you soon!"}, {"post_id": 5134, "ts": "2026-06-08T20:27:14Z", "hours": 2.4142, "text": "CITY ZONING! Annoyed that a massive skyscraper decided to spawn right next to a nice cozy cottage? Not anymore! You can zone areas by residential, commercial and industrial. There is also a “No Build” zone for areas that you just want to keep clear for now. This will eventually cost you money, because paperwork is really expensive apparently. (And to keep the game balanced of course). But there’s no money yet. I think you should like & follow to see how the game’s economy works."}, {"post_id": 4989, "ts": "2026-06-08T17:13:15Z", "hours": 2.5267, "text": "Pocket City Dev 5 The terrain was a little bland, so I decided to spice it up with nature. To fill the grid up, I decided to implement trees. Created a few basic tree grid varieties and implemented it into GridManager.cs. However, this forced me to spawn all of the trees in the Start() function which causes a longer loading time, CPU spike and worst of all it makes it so that after the initial radius no more trees spawn. Increasing the radius exponentially increases the amount of trees being added (because each ring has more grid sections to cover). So i had to pivot. I created a new Chunk Manager, split the main grid up into 16x16 chunks, and checked the player camera and only loaded the surrounding chunks. This makes trees spawn around the player continuously. However, this would become laggy as it would happen every frame. Two ways I decided to prevent this: Check if the player had changed chunks. If it’s still the same chunk, early return to skip the entire code process. Check if the nature has already been loaded. Only load if not loaded. This obviously saves on time complexity, and allows me to have the freedom of creating varying tree density. It also makes it so that the trees do not regenerate constantly. And that completes the visuals for now. Probably will add more foliage and other variety in the future, but for now this will suffice. Finally, this has a severe performance penalty. To cater for lower-end devices, I added a toggle which will later come to a settings menu for ~4x the performance without impacting gameplay. Optimisations, such as chunkloading and LODs will be added later to increase the performance with trees, but that will come after the core game is finalised."}, {"post_id": 3868, "ts": "2026-06-06T23:09:38Z", "hours": 2.8567, "text": "Hello everyone! The city is finally generating. They automatically generate alongside roads or try grow in clusters with each other. Game looks pretty sweet. Almost 9 hours in, I think it’s time to get some sleep now."}, {"post_id": 3730, "ts": "2026-06-06T19:33:02Z", "hours": 4.095, "text": "Coming first in the UK leaderboard is pretty honourable. Anyways, working on Pocket City and we’ve almost got generation of buildings and I’ve got a lot of things lined up for this project. I really need that framework 12 💔. The roads have a cursor and you can destroy and create them in a row as well, camera movement is more polished with a sprint key. Got all the building assets and everything ready. What a entry to stardance & hackclub!"}, {"post_id": 3473, "ts": "2026-06-06T12:53:43Z", "hours": 1.3806, "text": "Procedural road addition, so that when you add a tile (which is still done through code currently), it will decide which road layout to add, be it an intersection, 4 way, 3 way, a road turn or anything else. Added clean camera movement with WSAD + scroll as well."}, {"post_id": 3429, "ts": "2026-06-06T11:20:47Z", "hours": 1.0264, "text": "Hello! I’m working on creating a top-down 2D-styled but 3D game where you control a city. I’ve got this grid layout so far and it works fabulously and I somehow got the rotations correct on the first try 🤣"}]...
|
Title: Capital Chaos by @sol4r_on_hackclub | Stard Title: Capital Chaos by @sol4r_on_hackclub | Stardance
Devlogs:
Hello! I’m working on creating a top-down 2D-styled but 3D game where you control a city. I’ve got this grid layout so far and it works fabulously and I somehow got the rotations correct on the first try 🤣
Procedural road addition, so that when you add a tile (which is still done through code currently), it will decide which road layout to add, be it an intersection, 4 way, 3 way, a road turn or anything else. Added clean camera movement with WSAD + scroll as well.
Coming first in the UK leaderboard is pretty honourable. Anyways, working on Pocket City and we’ve almost got generation of buildings and I’ve got a lot of things lined up for this project. I really need that framework 12 💔. The roads have a cursor and you can destroy and create them in a row as well, camera movement is more polished with a sprint key. Got all the building assets and everything ready. What a entry to stardance & hackclub!
Hello everyone! The city is finally generating. They automatically generate alongside roads or try grow in clusters with each other. Game looks pretty sweet. Almost 9 hours in, I think it’s time to get some sleep now.
Pocket City Dev 5 The terrain was a little bland, so I decided to spice it up with nature. To fill the grid up, I decided to implement trees. Created a few basic tree grid varieties and implemented it into GridManager.cs. However, this forced me to spawn all of the trees in the Start() function which causes a longer loading time, CPU spike and worst of all it makes it so that after the initial radius no more trees spawn. Increasing the radius exponentially increases the amount of trees being added (because each ring has more grid sections to cover). So i had to pivot. I created a new Chunk Manager, split the main grid up into 16x16 chunks, and checked the player camera and only loaded the surrounding chunks. This makes trees spawn around the player continuously. However, this would become laggy as it would happen every frame. Two ways I decided to prevent this: Check if the player had changed chunks. If it’s still the same chunk, early return to skip the entire code process. Check if the nature has already been loaded. Only load if not loaded. This obviously saves on time complexity, and allows me to have the freedom of creating varying tree density. It also makes it so that the trees do not regenerate constantly. And that completes the visuals for now. Probably will add more foliage and other variety in the future, but for now this will suffice. Finally, this has a severe performance penalty. To cater for lower-end devices, I added a toggle which will later come to a settings menu for ~4x the performance without impacting gameplay. Optimisations, such as chunkloading and LODs will be added later to increase the performance with trees, but that will come after the core game is finalised.
CITY ZONING! Annoyed that a massive skyscraper decided to spawn right next to a nice cozy cottage? Not anymore! You can zone areas by residential, commercial and industrial. There is also a “No Build” zone for areas that you just want to keep clear for now. This will eventually cost you money, because paperwork is really expensive apparently. (And to keep the game balanced of course). But there’s no money yet. I think you should like & follow to see how the game’s economy works.
Did you know it costs more to remove a road than create one?! Strange… Finally have a working economy in the game now! It’s VERY unbalanced. You WILL become very rich. And residential is currently useless, and everything just has a set employee count for now. But that will change soon, and we’ll make the game intelligent. Also the game clock is currently in the Finance Manager which is a little odd so maybe I’ll fix that later. But, I have used actions & delegates to optimise the game handling of the ridiculous amount of scripts for each building that will be running once the cities become larger and larger. Created a UI manager to update the script, which uses the above actions & delegates from the script manager. Created a Finance Manager which led me to have to recode GridManager for monetary support, but that was honestly less painful than it sounds. I also spent a considerable amount of time debugging last post’s Zoning. The code has multiple ways of producing a building and this caused me to have to go back and go through all of the code line by line to figure all the pathways out and debug it eventually. And yes, as promised I made it cost money to zone. Every action, such as creating a road and destroying them cost money and using my amazing research skills of using the first google result, destroying a road costs double placing a road! I think I should sleep. See you soon!
It can’t POSSIBLY BE THAT HARD CAN IT? No but you have to mix up TAGS AND LAYERS. There’s some error you got 5 builds ago but NEVER APPEARED AGAIN. EVEN HOURS INTO TESTING. HOW DID IT FIX ITSELF?! The UI now updates how much you gained in the past day! But anyways, you can finally toggle between the layers… after too much debugging (and realising it was just me being stupid). But it’s okay I’ll hopefully get that laptop from this blood sweat and tears. Look how gorgeous it looks now!
Sometimes, the most productive thing you can do is destroying everything for a clean slate. So that’s what I did and refactored my codebase, painting my GitHub red. The old city generation code ended up becoming messy spaghetti code that made it difficult to debug and work on it. And that sort of legacy code when I look back in a month is what ends up shelving projects for years on end. This half an hour will save me many in the future. I also removed the cluster expansion method of building expansion completely as it created annoying expansions that didn’t make sense of everything being 1 square off a road. Also created a GameManager and moved aspects of GridManager and FinanceManager to the new script, to try and centralise the logic and stop having random bits such as the day manager in the FinanceMananger, which didn’t make an sense. Also yes, I wasted 20 minutes trying to figure out what was going wrong when I forgot to add GameManager.cs to the scene 💔
What’s the difference between these two: int maxEmployees = 50; int employees = 25; float taxRevenue = 1500.0f; ONE : float revenue = (employees / maxEmployees) * taxRevenue; TWO: float revenue = (employees * taxRevenue) / maxEmployees; Mathematically, they’re the same. a/b * c = c/b * a However, I missed one thing while coding (a lot harder to see when it’s not just this). They’re both integers. now what C# does is it divides 25/50. we get 0.5. but they’re both integers, so it tries to store it as an integer, which floors it to a 0. Therefore, it’ll suddenly jump to max revenue when the company is full. obviously not what was intended. Option 2 makes you multiply the integer with a float, and stores 25 * 1500 as a float, which can now be nicely divided by 50 to get the value that we inteded. Sometimes… actually, no MOST of the time it’s the little things that catch you out. Anyways, this has very much balanced the game. The companies get as many employees as they can, then grow by 1 employee each day. Their revenue scales with the employee count, so now residential houses are useful for once. If anything, essential. Next up: Road tax, Land tax. This might be the one time you want tax… or maybe it’s too much?
Clean codebase always pays off (unless you want to keep your job apparently?) Fixed the vacancies counter, as before I was using = instead of +=. Told you it’s the little things that catch you out. Created a safer version of the draft forceRemoveElement() that accounts for jobs and residents when destroying a building (houses/shops/industry). This now updates the game realistically, e.g. if you destroy a house, then you reduce from the population. If the residents were employed, then it removes positions from buildings. If they were unemployed, then we remove it from the stats. Since I am not storing direct references between buildings but creating a game pool for performance, this makes the operations require lots of calling. This could probably be optimised in the future but I will do that near the first release due to the ever-changing code base. This required updating GameManager.cs to have LosePopulation(), LoseJobs() with a helper RemoveWorkersFromBuildings() function. Luckily the lists in GridMananger that I made like 20 hours ago for “future proofing” came in useful. Finally, you can press F to show city statistics and it updates in real time.
It’s been a really long time since I’ve posted. Some progress going on here. Little sneak peak of the fires… yep. You thought the game was gonna be peaceful? On another 7+ hour sprint today
Debugging HELL I added fires, which you can see in the corner. Unity Particle system actually really cool for that by the way. This forced me to rewrite how fires work and add new bits to the Building parent class. That was fine. Had to update the UI to show you that an earthquake was happening, which works more reliably than last time and I figured the ghost error out. I decided to implement water & energy requirements. Overhauled ChunkManager to allow for this, as each chunk needs enough. If it doesn’t produce enough, it imports from other chunks. If it can’t do that, everyone starts packing it up and leaving. Added this to city stats. Then modelled a cute little water tower as you can see below. Then I added energy, lots of chaos. Trying really hard to avoid circular loops to avoid a stack overflow, but it’s looking pretty good. User warnings now show up, like when an earthquake happens, or if a building burns down or if you can’t do something or don’t have money for something. Now I think I have time to do the fun part - creating chaotic fun stuff to make the city feel even more alive. But it’s looking pretty good right now. It’s getting close to being shipped, almost 40 hours in. Like & follow for the link ;) Now I really need to sleep. OH NO AND REVISE FOR THE PHYSICS TEST ON TUESDAY
WORKING PATHFINDING ON THE GRID! Created new assets so the game looks complete now! You can see the firetruck going from the Fire station all the way to the burning building where it will extinguish it. Yes, it follows the roads as intended and uses the A* algorithm to figure out the best path. And they shoot water out, so visual feedback for everything. This was super fun as it was the first time I’ve implemented the A* in a video game on a grid that procedurally generated. The coal power generator, fire station and fire trucks have models now, I think I made them good enough to fit with the game. Police station and healthcare to still be implemented but it’s looking good so far. This required creating a new services manager, creating a pathfinding script, updating global services and how everything interacts with the fire, and creating reverse pathfinding and small details. It’s coming together really cleanly now.
Working healthcare! The game now has a virus… and it spreads pretty quickly. Houses get infected, added to the random event chances on top of earthquakes and fires. I created hospitals that dispatch ambulances as required. Now all services cost money. Using the same A* algorithm from last time, but a little more complex due to the nature of the virus spreading to random buildings. This requires the game to check for any viruses. I created an UI that displays the day progression, using actions & delegates again. The day length is now no longer fixed, but instead it becomes smaller the longer you stay on the map, to try and add difficulty ramping. The game is currently very difficult at the start and incredibly easy at the end, so I’m trying to reverse this a bit and make it hard at the start but terrible towards the end. Also just realised there’s no ending lol - you just become broke and softlock yourself. Never done it to myself which really speaks out about how UNBALANCED the game is. I think it’s time to work on game balancing now before implementing new features, and over half way to shipping? maybe at 65-80 hours in at this rate?
Currently rebalancing the video game to make the game progression more realistic as it is currently extremely difficult at the start and stupidly impossible to die toward the end. Completely forgot to tell you guys that you can follow my projects on my YouTube: Video Like & sub if you can… mb for the self promo though. Sadly I have 6 exams next week so the next 2 weeks are most likely going to be slow ones… not dominating the leaderboards anymore.
I FINALLY LOST IN MY OWN GAME!! Rebalancing the game slowly but surely. Currently added inflation, which increases the price of everything as the days go by. It gets less severe the longer you play but the inflation rate stays high. The game days now vary, take 5 seconds at the start and slowly get faster and faster toward 1.5s linearly. The inflation rate also increases with bands as the game progresses so you need to keep up. This makes the game a good progression, but make one mistake during an earthquake and it might be ggs for you. There is now finally a game over function… although no restart but don’t worry about it. It just pauses the game and tells you that the game is finished. Next up: Detailed Finances, Rubbish? (follow thx)
Okay now i SUCK at my own video game. Don’t worry it’s hard mode. Also lost 2 hours of work somewhere cuz it didn’t save? Don’t understand how. That’s always great isn’t it. But still, 62 days in and I’m fried because of one silly mistake I made 40 days ago. Really teaches you consequences I guess. Spent my time completely overhauling how everything works. You used to make too much money, so I made the revenue even more population based, by making the max revenue a multiplier of the max population. Completely rewrote the losing population, unemployment and vacancy calculations to prevent strange negative numbers which was irritating me for the past one and a half weeks. Also overhauled the inflation to use a formula instead of a very rudimentary lookup table from if statements which is staged into a end-game (130 days+) and early game stage with 20% and 2% simple interest respectively (no not compound for once - that would make the game too hard. Extreme mode?) The game is actually like a good game now. I don’t know how to explain apart from that though.
I HAVE A PLANN For the spinal sprint toward completion. Should end up taking me to hour 70-75? Then we polish the UI and add a main menu… lacking feature I guess. Anyways, reorganised the code base and split game manager up, created folders and fixed dependencies for everything. There is now an event manager, which handles all of the events separately, and as you can see from this simple to-do list (should my next project be the to do list to end all to do lists with calendar integration and stuff???) that I have completed the first bit “Weighted Event system”. So now nothing has an equal chance of happening! Also as a side effect made adding new effects a lot easier due to the nested WeightedEvents class which was similar to an idea I had in my old minecraft mod plugin and transferred the skills across the languages. Quite nice neat code actually, that isn’t 600 lines long, so I can quickly show it to you below. It’s very applicable and I believe I have used it twice or three times in the past 4 months alone. The declarations for the events now look like this, very centralised and easy to add/remove events and modify the weightings. Called in the Start() function. weightedEvents.Add(new WeightedEvent("Nothing", 20, () => { })); weightedEvents.Add(new WeightedEvent("Earthquake", 5, Earthquake)); weightedEvents.Add(new WeightedEvent("Fire", 40, SetBuildingOnFire)); weightedEvents.Add(new WeightedEvent("Virus", 20, () => { TriggerVirusOutbreak(); } )); and the class is just simply storing the name, the weight and a weighted Event. public class WeightedEvent { public string name; public int weight; public Action weightedEvent; public WeightedEvent(string name, int weight, Action weightedEvent) { this.name = name; this.weight = weight; this.weightedEvent = weightedEvent; } } we do need to store the total weight which happens on the Start() function currently. When playRandomEvent() is called, we increase the cursor by the event’s weight until it is greater than the rolled random number between 0 and the total weight, at which point the class’ event is called. Broke nothing in the end! That’s great isn’t it, especially after migrating a bunch of “legacy” code. Hopefully didn’t jinx it.
POLITICS!! + Debugging Hell v2 I mean I guess it is? Not too sure. Event Manager completely overhauled. Double events now no longer have the chance of repeating the same event. Created a new GameEffects script which just takes a bunch of simple code away from EventManager and plays the basic functions such as the “tax revenue increases” which you see below. This was quite a headache to create, and I severely underestimated how much time this would take. I have 2 extra nested classes inside of EventManager for Political Question and Political Scenario. [... inside EventManager.cs ...] public class PoliticalQuestion { public string Question; public TaskCompletionSource<bool> TaskCompletionSource = new TaskCompletionSource<bool>(); public Action onAccept; public PoliticalQuestion(string question, Action onAccept) { Question = question; this.onAccept = onAccept; } } public class PoliticalScenario { public string description; public Action runnable; public PoliticalScenario(string featureDescription, Action functionality) { description = featureDescription; runnable = functionality; } } [Header("Political Question Variables")] public List<PoliticalQuestion> PendingQuestions = new List<PoliticalQuestion>(); public event Action onQueueChanged; private PoliticalScenario[] goodFeatures; private PoliticalScenario[] badFeatures; The political question is sent off to the UI manager, which displays it as shown below. Then it handles user input pressing Y/Enter or N/Esc to accept the user choice, and returns it back to the Event Manager. Seems simple enough, yet there are many ways to do it but I think that the above implementation works the best out of all the ones that I tried. I attempted to use Game Manager as a middleman but that did not work out - so I resorted to passing an entire class. The political scenario allows for the string to actually do something, so that the game knows what to process and what the user agreed to without creating a bunch of variables, and can allow for stacked political question events which is nice. Game’s looking really neat, and the multipliers and stuff can make the game go very crazy very quickly. Too much of a good thing is a bad thing!! Debugged the entire system for like a solid 3 hours it was actually bad. Came first in the UK tho!! I’m back after those 6 exams are done. Yes I know the UI looks pretty bad but it’s good enough for pre-beta testing. Oh yeah, speaking of UI everything is more bold. Figured out how to do that.
MAKE IT RAIN ASTEROIDS Pretty long run honestly. But before that, let’s talk about retrofitting your buildings. Earthquakes are pretty bad. Very bad when you loose your 100k building in a moment. So upgrade it. Yes it’ll cost you 35 to 55k now. But is your peace of mind worth that? And I added asteroids! These fly down and annihilate everything in a 3 unit radius and then set everything else in the 6 unit radius on fire. Lots of minor bug fixes as well, trying to get the game really polished now. Some rejigging of the game’s back end, such as creating a new abstract class for employer and reworking the systems to ensure that they run more smoothly and I believe almost finally fixing the unemployment/vacancy problem. I say almost because every 5 runs I see the game yell at me that it didn’t count something correctly but honestly I’ve spent so long on this I don’t even know if it’d be harder to just rewrite the entire employment system. For more detail, see my video linked below! See if you guys like it, my first proper long form I Added ASTEROIDS that ANNIHILATE your Adorable City And boy will this thing cook your economy.
BETTER UI + XP At the top of the image you can see a little progress bar… yep I’ve added XP now. Got plans for that, probably going to allow you to unlock stuff later. Like the lockdown ability etc. The UI has been overhauled. The actual images are a touch on the placeholder side apart from the road but it looks pretty good. You cycle between road, zoning and special building placement with 1, 2 and 3. Use R to rotate between the modes like residential, commercial and industrial zoning as well as Utilities & Emergency for the special buildings. Then finally T to rotate between those specific buildings. Complicated? Maybe? But it’s also a lot faster. I have completely lost my muscle memory of spamming R like the “good old days” though. Looks good? Bad? Horrible update and the game should never be changed ever again? Best update in the world and I should win £1 trillion? What do you think?
CRIME!!! + C# Generics I added Arson and added a Police manager that goes out and solves these crimes. Lots more to come, let me know of any ideas you have! But before that let me teach you ALL something. C# Generics. I had a bunch of scripts that all did ABOUT the same thing but with different. This was FindClosestHospital, FindClosestFireStation and the thing I was adding which was FindClosestPoliceStation. It felt quire redundant to copy the same lines but instead of Hopsital it was replaced with FireStation or PoliceStation. //Generic functions private T FindClosestReachableService<T>(Vector2Int targetPos, Func<T, bool> hasAvailableVehicles, out List<Vector2Int> bestRoute) where T : Building { T closestBuilding = null; bestRoute = null; int shortestRouteLength = int.MaxValue; bool foundBuildingOfThisType = false; foreach (var kvp in gridManager.GetMapGrid()) { GridManager.GridTile tile = kvp.Value; if (tile.buildingScript != null && tile.buildingScript is T serviceBuilding) { foundBuildingOfThisType = true; if (!hasAvailableVehicles(serviceBuilding)) continue; List<Vector2Int> testRoute = CalculateRoadPath(tile.buildingScript.gridPos, targetPos); if (testRoute == null || testRoute.Count == 0) continue; if (testRoute.Count < shortestRouteLength) { shortestRouteLength = testRoute.Count; bestRoute = testRoute; closestBuilding = serviceBuilding; } } } if (!foundBuildingOfThisType) { bestRoute = null; return null; } return closestBuilding; } Above is an example of the C# generic. We have “T” type, and I think this is a good place to learn about them. Instead of defining the function as returning something like Building , we make T a type. and you can see it passed in a little <T> after the function name. We can also pass in entire functions like Func<T, bool> which is utilised as shown below: Building bestStation = FindClosestReachableService<PoliceStation>(building.gridPos, ps => ps.HasPolice(), out route); you can see ps => ps.HasPolice() calls that out. And finally, to define what T is meant to be, I’ve added where T : Building . You can do this many times, such as by having both a T as well as a U! and you’d have a repeated where T : Building where U: PotatoChips or something idk what U is meant to be bro. This was my first time using it but it’s pretty cool and if you’re using C# I’d recommend learning it as it saved me like 200 lines of code and changing something 3 times to change the same thing! And yes, I added a third thing which is Arson! which is a crime based thing, and you have a visual that shows up as a timer. if a police doesn’t solve the crime it sets on fire. It’s not too bad but it adds a use for the police, with much more to come for the police to deal with in the future! Also added asteroid BOMBARDMENT as a debuff. Yeah it’s brutal. 3 strikes… thats up to 108 tiles DESTROYED and set on fire. And of course, the image is from a youtube video: Click me!
Main menu 👀 I need help. UI clearly isn’t for me
I’m being forced to post Yeah thanks stardance. 10 hour limit for what. Probably spam filter. Also MASSIVE BUG(s). One is that the game just randomly deletes all the buildings from a chunk. No idea why, I’ve been at it for so long. Another issue is the stupid vacancy counter which has been broken FOREVER but atleast now it doesn’t go negative. I have a serious feeling I will have to spend a week just POLISHING the game. Whatever, Currently working through a new feature of allowing you to use your money that you spent so long accumulating to try and fix the chaos that you went through. This is done through the “Council FX” which I may rename if you guys can think of a better name, and you can see the countless things to do such as: Taking On DEBT!! YAY!! 100k that gains 1% every day. Seems low.. but it will pile up very quickly since it’s compound interest. Overclocking the grid for free placement + infinite water/power Maximising Housing/Business revenue Curing all infections … and many more as well as the ??? at level 100… who knows what that does. £2.5 million btw. Of course, those levels are the XP, which has finally given that a use. And no you wont be at level 11000 just like that, i’m just being lazy for testing. Also rebalanced so that all of the commercial buildings have ~10-15% of their previous employment caps. So that you’re not just spamming residential. It also makes industrial more useful as they have more employers even though they produce less money.
Bugs are genuinely taking the life out of me Genuinely the worst thing ever. I STILL can’t figure it out but I had to post my weekly devlog anyways. Can you believe we’re 28 weeks into 2026??! Here’s the chaos where I accidentally created a “Pocket Empire” (Day 1105) Watch the video (click the title) if you wanna see how I ended up here and a minor crash out. very minor.
UFOs in an Alien Invasion 💔💔 The second rare event addition to Pocket City! Get a chunk of your population zapped up by some not so friendly aliens… Any more ideas, let me know below! But it was pretty neat to implement. 3D modelled it and everything. 3 hours of doing god knows what. Tried to figure quality settings out and probably did smth else but was too busy with the World Cup to remember what I did. Probably bug fixes and stuff. Oh yeah and you see a pretty cool ripple pulse thing that propogates through the map. Although it is a little weak right now but i’ll fix that next time. Super tired. mb
I NEED YOUR HELP Pocket City already exists as a game. I know this is stupid and I should have checked this before starting since I had the intention of publishing it to steam but here we are. If you want more details, or more knowledge about the game check this video out: Video Oops…
Hmmmm… What’s cooking? (Blender just WON’T count toward my hours but prolly spent 2-3 extra hours here) The helicopter blades actually spin. And W Unity particle system for the missile.
WORKING AIR DEFENCE + ATTACK HELICOPTERS So we got working air defence turrets with some predictive aiming, and attack helicopters that shoot missiles at random buildings. Although you’re unlikely to get 3 attack helicopters at once… for now. The helicopters blades do spin, they bob up and down, they go towards buildings. They shoot out these missiles, which pathfind their way to the targetted building. They all have a healthsystem which means that the turrets do some damage on collisions only though, one turret might take a while but two (or the 7 you see below) will MOW them down. Still have to hook it all up to the Finance Manager, Special Building placement and other boring stuff, but… I need more IDEAS!! (read this thx) …for more Military stuff that can be added. Tank wars? Who knows. I was thinking of a military invasion as being one of the rare events which spawns like 10 missiles and 5 attack helicopters and maybe a B2 bomber or some stuff. I also need more allied options, maybe I’ll add like an anti-bomb turret that is specifically for the B2 bomber or something and does 100000 damage. Or maybe your own airbase that spawns an allied helicopter and now you have dogwars. or maybe your own plane. idk So yes @Adam_Lotfalla this is what the helicopter was for. Yay more things to worry about!!! Still have integrations left! I’ll see you (hopefully) tomorrow once that’s done. but its midnight now so goodbye.
Nukes… from a plane A famous plane. The B2 Bomber. Idk gng I got bored. No but it drops a nuke that decimates everything in a decent radius and then sets everything in a bigger radius on fire, and now we have a new rare event called a “military invasion”.. that spawns like 8 helicotpers AS WELL as the b2 bomber. The B2 Bomber starts a few clicks out and then flies toward the set target building. Then it drops the nuke, and you have a few seconds to try and kill the nuke before it kills you, and on impact (yes we are finally using rigidbodys as they are intended) it explodes. You better have that turret system ready. Of course, it’s clearly not enough. So maybe I’ll add a anti-missile system as a YouTube comment said. Speaking of YouTube, thank you for all the support :) 100+ comments goes crazy, and we’re on 73 subs up from the previous 29 literally 3 weeks ago. Not subscribed? Help a fellow dev out: TechScope Channel
NEW NAME!!! Flash Floods + Main Menu If you remember, Pocket City is a game that already exists so now it’s called Capital Chaos. Thank you YouTube comments! And all of you as well, for the suggestions. Ofc new video to go with it: watch by clicking here! I created flash floods that.. well flood the entire map. It’s meant to be a little toned down of a disaster, thats more survivable because it gives the game a touch more balance. It stops all services from working, so that could be detrimental during a virus attack. But on the other hand, it stops every single fire and prevents new ones and explosions. A lifesaver if theres a nuke, it gets completely nullified. Also new main menu, I think it looks pretty neat. Especially compared to the old one.
I HATE Menus (in Unity at least) Genuinely hate them. But yeah we got settings menu working (which genuinely took like 5-6 hours because of stupid unity legacy stuff vs new stuff and then unity 6 vs 2023 version stuff i was used to) AHHHH I don’t remember it being this painful in Godot to be honest so maybe Godot is better for that? i had to get rid of VSync because it only worked on refresh. Created a debug menu to test performance, just to see that the only useful thing there was FPS and like RAM usage, and some engine stuff like active Rigidbodys. I couldn’t see the CPU utilisation or GPU utilisation which was… the thing I wanted to see. Although don’t worry performance does seem to be reasonable and early to mid game I can push over 1000 FPS on potato settings (specs at bottom if you care about them). It does obviously go down as the game continues on, but I think it’s quite optimised. Even with shadows its on 500+ FPS with a mid sized down. Although adding trees will quarter your FPS numbers. but it looks pretty so there’s your tradeoff. Although problematically if you turn trees off and you had already generated trees the fps stays low even though you’re not rendering it? I don’t know why unity is so weird. The game is quite unbalanced, but we’re in the final polishing stages (my target is 150 hours for the framework and hopefully it’s secure! (vote nice and high thanks - i did put a lot of effort into this game.) Up next: Difficulty selection Polishing Rebalancing updates Release!
You won’t believe it. I got it working FIRST TRY That’s actually crazy to be honest. Tells you how much expirience those 8 hours of menu development have given me. Someone give me a Unity menu doctorate or sum But on a serious note, we have game difficulty selection and its all nice and self contained. With controller support of course. You can see we have Previous Saves but that isn’t really functional yet. One of the things I learnt is to never rely on the UI giving you the data, only the click, so you’d manually add the elements and then call .value or .isOn respective to the component, and the same goes for dropdowns although I didn’t use one here. Let me know if you think it looks clean or any improvements to the UI readability, etc.
INSANE tree optimisations Went from 60-80 fps @ 4K to 400-450 (in game). Yes a 6 to 7x increase. How you ask? GPU Mesh Instance drawing offloading the CPU work of handling thousands of game objects. In English, I’m no longer spawning thousands of tree objects, but instead telling the GPU to draw the tree instances every frame. This seems quite unintuitive because you’re now drawing thousands of things every second. BUT this means that there are no game objects, so the CPU doesn’t even know that these exist. Also the GPU draws it thousands of times anyways. A game object handles transforms, rotations, etc. that the CPU has to keep track of whether it is active or not. This had the added benefit of the trees having no overhead when the trees are disabled, so you regain all of your framerate! Also I used some neat little script that combined the meshes all together in the GameObject prefab. Now it really should be able to run on your potato PC/Laptop. Combine script using UnityEngine; public class MeshCombineUtility : MonoBehaviour { [ContextMenu("Combine Children Meshes")] public void Combine() { MeshFilter[] meshFilters = GetComponentsInChildren<MeshFilter>(); CombineInstance[] combine = new CombineInstance[meshFilters.Length]; Matrix4x4 matrix = transform.worldToLocalMatrix; for (int i = 0; i < meshFilters.Length; i++) { if (meshFilters[i].gameObject == gameObject) continue; combine[i].mesh = meshFilters[i].sharedMesh; combine[i].transform = matrix * meshFilters[i].transform.localToWorldMatrix; } Mesh combinedMesh = new Mesh(); combinedMesh.CombineMeshes(combine, true, true); #if UNITY_EDITOR string directory = $"Assets/Assets/Mesh/Tree/{gameObject.name}.asset"; UnityEditor.AssetDatabase.CreateAsset(combinedMesh, directory); UnityEditor.AssetDatabase.SaveAssets(); Debug.Log($"Combined mesh saved to {directory}"); #endif } } Draw section of GPU Mesh Instancing private void DrawTreeMeshes() { if (treeMesh == null || treeMaterial == null) return; foreach (var kvp in generatedChunks) { ChunkData chunk = kvp.Value; if (chunk.spawnedTrees == null || chunk.spawnedTrees.Count == 0) continue; int batchSize = 1023; int totalTrees = chunk.spawnedTrees.Count; for(int i = 0; i < totalTrees; i+=batchSize) { int length = Mathf.Min(batchSize, totalTrees - i); Matrix4x4[] subMatrices = new Matrix4x4[length]; for (int j = 0; j < length; j++) { subMatrices[j] = chunk.spawnedTrees[i + j].matrix; } int meshIndex = Mathf.Abs(chunk.chunkCord.GetHashCode() + i) % treeMesh.Length; Graphics.DrawMeshInstanced(treeMesh[meshIndex], 0, treeMaterial, subMatrices, length); } } }
I’m getting new wifi lol, & 150 hours so yeah i won’t be here and probably will have to post a 10 hour thing BUT on the plus side, we got a nice death screen that has a bunch of quotes that you can read below [SerializeField] private string[] quotes = { "Opportunities multiply as they are seized \n - Sun Tzu", "If you are going through hell, keep going \n - Winston Churchill", "No empire was built on the first draft", "Fall seven times, stand up eight", "That which does not kill us, makes us stronger \n - Friedrich Nietzsche", "Out of ash, a new foundation", "I have not failed. I just found 10,000 ways that don't work \n - Thomas Edison", "A man is not finished when he is defeated. He is finished when he quits \n - Richard M. Nixon", "It does not matter how slowly you go as long as you do not stop \n - Confucius", "Out of difficulties grow miracles \n - Jean de La Bruyère", "The greater the obstactle, the more glory in overcoming it \n - Molière", "A Pocket Sized City is too small for your ambition. Build again \n - The Dev", "Success usually comes to those who are too busy to be looking for it \n - Henry David Thoreau", "Go big or go home", "You can't give up just yet. Stay determined... \n - Undertale" }; Maybe you’ll catch the little easter egg there as well ;) Working on adding game audio!! and probably finally enough hours to get the framework 12 (btw I wouldn’t recommend this as a daily laptop (f13 better), I just want something I can write on lol)
Game Sountrack? But before I talk about that, lemme just say the game audio is almost finished, we have menu sounds for clicks and stuff, and i added support for main menu music. The firetruck hoses actually do stuff, floods sound like floods, theres some peaceful background nature sounds and yeah it makes the game feel so much nicer. although i forgot place sounds which was a massive oversight. also my wifi is still working. no idea why, but not complaining. and i’m cooking on a soundtrack lowk although none of it seems correlated in any way and idk how i’ll make it fit into this game but you know what maybe it’ll just all go into some random album. None of the hours put into these songs count but its okay. i’m no pro tho so. all i’ll say is i love some bass
Final DevLog before First Ship - Boss Battle I don’t think words can explain what I made so click here to watch a video on my probably final major addition (no pressure) & also help with a small dilemma I have. NO!! that does not mean this game will stop development, but i think i finally have enough hours (+10-15 more safety) to get a Framework 12! (and then i will be able to crack on with entrance exams - so i guess development will slow a touch). Of course I’ll ship once the game is polished enough. You might see a devlog or two from the “Capital Chaos Website” - follow me ;) I really hope you guys all enjoy it and now I need to do the readme and stuff. I also realised I was one of the most viewed on Stardance which is honestly amazing and I appreciate all of the support :) And thank you to all the new friends I’ve made and all the followers and commenters. It’s honestly been insane.
BETA TEST! Nvm I have to devlog my final changes But lemme talk to those stardance reviewers real quick. Scroll down to see the endless content of my story, and all the community feedback (also on my youtube). Playing the game is a bit of a learning curve so you can watch my videos and stuff on it as well. I’d say watch this one: Boss Fight for the boss fight and maybe one of the other ones that you find interesting. Maybe this one because it has over 1,000 views and still climbing! The game is released there but it is windows only for now (i will release linux and maybe mac on the actual release game don’t worry but I’m super restricted for time right now) SKIP IF YOU’RE ON LINUX / MAC For everyone: Changes: Amended GameAudioManager to adjust for max voices which uses a List based system that appends and unappends. Boss fight also toggles and untoggles the game audio dependant on each audio source, because the game could currently have hundreds or even thousands of audio source which is really bad optimisation. So each audio source that I want to track has a ManagedAudioSource attached which automatically registers and unregisters itself from the GameAudioManager. I also edited the boss fight to make it a touch harder and amended the moves ;) And come and beta test NOWWW. leave all your comments, suggestions etc. on THE NEW DISCORD COMMUNITY!! or youtube, i’ll read it all and, again, thank you all for your support . I don’t know what to put as the image so here.
Thank you all so much for the support! Framework 12 is on it’s way (and this wait is painful). After 171 hours! 19.54x is actually insane and I appreciate it a lot. Join the Discord! I made a discord (click above) and i’ll give you all an early supporter role before I put it out on YouTube and stuff for the “wishlist” when the full game comes out (if you want to stay in touch after stardance is done. ALSO IF YOU COMMENTED WHILE THE GAME WAS STILL CALLED POCKET CITY DM ME ILL GIVE U A SPECIAL ROLE The game beta is still up and you can try it out Currently just doing some minor stuff to the game (Fixed some normal/easy mode not settings correct phases. B2 Bomber should destroy itself and stop the nuke siren once launched), and slowly adding a tutorial but I’m like 90% focused on revising for uni entrance exams
Ships:
Welcome to Capital Chaos! One of Stardance’s most awaited projects ;) (hopefully anyways) We’ve got chaos, a bunch of random events, a boss fight and so much more for you to explore. SKIP if you are on Linux/MacOS (or you can vote based on the videos - completely up to you) as I only have a windows executable for now. I am honestly super proud of this, and the community built around this game. I hope you enjoy it as well. There have been TONNES of challenges, such as pathfinding, the initial grid also seemed really daunting. To the vacancy count which was literally plaguing me for the past MONTH and got fixed today (it was one line… i know.. maybe I should have used AI). But besides, it’s a sick project. I hope you all love it. Unzip the file in the release and it should be good to go. READ THE README FOR INSTRUCTIONS AND CONTROLS!! THERE IS NO TUTORIAL Read the story, watch the videos if you can and just enjoy the game! It will be on steam in 8-9 months so maybe subscribe?...
|
1793123744.0705569
|
1793210144.0705569
|
|
9579
|
TableTop by @baker | Stardance
|
baker
|
1
|
13.0
|
77
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-09T13:00:59Z", "hours": 13.0, "multiplier": 5.73, "payout": 77, "blessing": "neutral", "text": "I made an online monopoly board. It was way harder than expected. Really proud of it though. Do not use vpn when trying to play since you cant find rooms.", "repo": "https://github.com/Hamdan772/TableTop", "demo": "https://tabletop-monopoly-night.vercel.app"}]...
|
[{"post_id": 5579, "ts": "2026 [{"post_id": 5579, "ts": "2026-06-09T12:57:13Z", "hours": 7.0, "text": "was sick today so I skipped school so I worked 7hrs on TableTop hehe. Added rules from the rulebook to be functional everything seems to be working. And for some reason you cant play with VPN on. Gonna ship it now"}, {"post_id": 4950, "ts": "2026-06-08T16:13:20Z", "hours": 1.0, "text": "FAAA there is SO many bugs in the game logic gotta fix it…………………. (tbh its more of an oversight on my part)"}, {"post_id": 4918, "ts": "2026-06-08T14:48:01Z", "hours": 0.0, "text": "Fixed online rooms allowing peer to peer play. fixing public tables and game logic. would love suggestions"}, {"post_id": 4879, "ts": "2026-06-08T13:18:12Z", "hours": 2.0, "text": "I decided not to make risk global domination and make it focused on monopoly. fixing this rn"}, {"post_id": 4089, "ts": "2026-06-07T08:55:40Z", "hours": 0.0, "text": "literally relearning how to play risk (25% done with game logic)"}, {"post_id": 4067, "ts": "2026-06-07T08:00:35Z", "hours": 0.0, "text": "working on new board (ill fix online play later)"}, {"post_id": 4044, "ts": "2026-06-07T07:03:36Z", "hours": 0.0, "text": "Done with monopoly (online rooms is in works) what do yall think? What games should I add next?"}]...
|
Title: TableTop by @baker | Stardance
Devlogs:
Do Title: TableTop by @baker | Stardance
Devlogs:
Done with monopoly (online rooms is in works) what do yall think? What games should I add next?
working on new board (ill fix online play later)
literally relearning how to play risk (25% done with game logic)
I decided not to make risk global domination and make it focused on monopoly. fixing this rn
Fixed online rooms allowing peer to peer play. fixing public tables and game logic. would love suggestions
FAAA there is SO many bugs in the game logic gotta fix it…………………. (tbh its more of an oversight on my part)
was sick today so I skipped school so I worked 7hrs on TableTop hehe. Added rules from the rulebook to be functional everything seems to be working. And for some reason you cant play with VPN on. Gonna ship it now
Ships:
I made an online monopoly board. It was way harder than expected. Really proud of it though. Do not use vpn when trying to play since you cant find rooms....
|
1792878759.8847857
|
1793742759.8847857
|
|
9583
|
My awesome macropad! by @Elnur | Stardance
|
Elnur
|
1
|
0.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-06T13:38:19Z", "hours": 0.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made macropad. Learned how to work in kiCAD", "repo": "https://github.com/ElnurMavlonov/macropad_hardware", "demo": ""}]...
|
[{"post_id": 3462, "ts": "2026 [{"post_id": 3462, "ts": "2026-06-06T12:38:17Z", "hours": 0.2625, "text": "Today, I did something crazy. At 2:00 PM, I had absolutely no idea what to do, but I had this intense urge to finally learn KiCad. I just wanted to build something and figure it out. Fast forward to 5:30 PM, and it’s finally done! The peace of mind I feel right now is incredible. big thanks to whoever made the guide."}]...
|
Title: My awesome macropad! by @Elnur | Stardance
Title: My awesome macropad! by @Elnur | Stardance
Devlogs:
Today, I did something crazy. At 2:00 PM, I had absolutely no idea what to do, but I had this intense urge to finally learn KiCad. I just wanted to build something and figure it out. Fast forward to 5:30 PM, and it’s finally done! The peace of mind I feel right now is incredible. big thanks to whoever made the guide.
Ships:
I made macropad. Learned how to work in kiCAD...
|
1793123715.1905165
|
1793210115.1905165
|
|
9616
|
revo by @ratmuds | Stardance
|
ratmuds
|
1
|
134.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-21T01:26:40Z", "hours": 134.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I wanted to make a robot arm that punched above it’s weight. The price is pretty similar to smaller robot arms on Amazon that may not include cameras, which would need to be purchased seperately. The way this is achieved by using cheap servos, servos that are 100% NOT made for this purpose, and adding most of the functionality of a smart servo back by using a TON of PCBs. It was a lot of soldering. I just wanted to make something that had more features for less money :) This project was SUPER difficult for me, and pushed my limits a bit. The amount of tolerences especially for the stupid custom motor case and magnet and PCBs and the crazy mainboard and generally having everything play well together took so long, I had many days where I quit frustrated. I’m very happy about how it turned out though, even seeing the lots of shortcomings it has.", "repo": "https://github.com/ratmuds/revo", "demo": ""}]...
|
[{"post_id": 71545, "ts": "202 [{"post_id": 71545, "ts": "2026-09-21T01:17:14Z", "hours": 1.7336, "text": "Finish Project Up :) I wrote a ton in the repository im tired :( https://github.com/ratmuds/revo"}, {"post_id": 71258, "ts": "2026-09-20T15:14:42Z", "hours": 3.1572, "text": "Setup VR and Gripper, Robot Rapidly Disassembles my robot arm is broken I setup VR and fixed some more IK when I go into VR and try playing around, it instantly flies out and throws itself off the table and breaks into pieces. This is going to be fun to fix."}, {"post_id": 70809, "ts": "2026-09-19T19:55:52Z", "hours": 3.8861, "text": "Integration Hell I’ve just been like trying to get this stupid project to work. Screws keep falling out, the IK keeps failing, things are hitting each other and wires are being strained I’m in integration hell. Everything works fine on its own, but combining everything is horrible. I’ve been reassembling and trying to fix this stupid thing for so long. Anyway I’ve went through a few more revisions of some CAD and some more refinements and the gripper and camera is now mounted but this is just incredibly incredibly annoying :(((("}, {"post_id": 69881, "ts": "2026-09-18T00:05:17Z", "hours": 3.8311, "text": "Fixed Broken Magnet, Redoing all IK joint data and offsets, Stereo depth test An encoder magnet broke off, so I had to disassemble and reassemble the top half of the arm to get to the encoder magnet and glue it back on. I also started properly punching in the IK joint data, before it was mostly just random data but now almost all of the data is mostly correct, and I’m waiting for a print to complete that will flip a motor to finally get the IK simulation matching with real life and have the IK endpoint be tracked at the tip of the gripper. It was a lot of trial and error and measurements. I also started experimenting with adding depth estimation. Eventually this could add collision avoidance IK pathfinding, which would be really cool but it’s just a pointcloud in the render right now. But the robot arm is slowly coming together finally! I’ll be able to grab something soon I think."}, {"post_id": 68903, "ts": "2026-09-16T00:31:34Z", "hours": 2.8461, "text": "Assembled Full Arm (not all motors active yet for safety) and Basic Interpolation for Control I assembled the new full arm assembly minus the end effector and didn’t plug in the first two motors as they have the highest chance of doing something really bad. I also made some general changes to the code and also added a flag to some motors to interpolate their movement slowly to not explode the robot arm while controlling it."}, {"post_id": 68352, "ts": "2026-09-15T00:17:44Z", "hours": 2.5044, "text": "Significantly Better Motor Control and Gripper CAD The motor code was getting a bit messy, so I rewrote it. I separated the motor code from the main control code which cleaned it up a bit. LADRC I’m using LADRC now. It’s kind of like PID, but advanced. I took the implementation from online. I feed it the motor current, encoder value, and the target and it goes. The algorithm or whatever somehow calculates the velocity of the motor and how much “effort” it’s using and then gives an effort to put to the motor. It somehow cancels out like disturbances like gravity, backlash, the general physics, etc. As you can see, the motor control is so so so much better than before. It cleanly decelerates. It handles load and dynamically increases effort. Before there was some oscillation because it just couldn’t figure out how to get to the target, this one is just so much better and so hands off. There’s basically like no calibration as it does it over time :)))"}, {"post_id": 67779, "ts": "2026-09-14T00:57:25Z", "hours": 1.4489, "text": "Assembled last 4 DoF for Integrated Test I assembled the MG996R servos in a test piece that will represent the full regular arm segment to test if everything worked. With some fiddling it worked. As you can see there’s more transparent pieces. The pieces that connect the previous joint are transparent to show the Neopixel below it a lot better as before the LED was almost completely occluded. The bright green LEDs power status ones are too bright but I can cover them later."}, {"post_id": 67735, "ts": "2026-09-13T23:20:04Z", "hours": 6.6769, "text": "Dashboard Revamp WIP, Tons of CAD changes, Code Updates, Tolerances I’ve just been refining everything and it’s just going really slowly. Many problems. Magnets shorting out stuff. Magnet too far and not being detected. Wires breaking. I’ve also redesigned the dashboard UI to hopefully look better. I’m still working on it, hopefully it will look more polished later. The dashboard It shows a load speedometer type thing, with the load (max current from a motor out of 500mA) and the temp on the right (for now just dummy value) The motors have cool little animations now too and look less cluttered. I’ve just been working on it a lot. Just everything in general tbh."}, {"post_id": 65061, "ts": "2026-09-09T22:13:56Z", "hours": 5.7644, "text": "Debugging and Fixing Is Killing Me and the Mainboard Exploded :( I have spent SO many hours trying to get this to work. It’s so annoying. This isn’t near how many hours I spent, I’ve been too frustrated to log it. The case is incredibly annoying. Getting the initial case works fine. Doing all of this stuff makes it complicated and break and jam up. The RS485 busses just randomly stop working. The servo output is wiggly and not stable. A PCB header snapped and I didn’t have replacements so I had to bodge solder it back on. The mainboard voltage regulator literally exploded. It was a cheap part but yeah that literally just broke stuff. Fixes to everything. CAD. Firmware. bruh"}, {"post_id": 60577, "ts": "2026-09-03T00:49:54Z", "hours": 6.7731, "text": "MG996Rs Finally Working The servos finally work. I don’t even think this amount of hours logged is equal to how long this took, because I just got tired of it. I think I printed like 20 new revisions of the case and servo mount. It was just so so annoying. While the general case worked, getting a reliable magnet output shaft was impossible. From tolerances, to my own errors to binding to hot glue getting everywhere, or superglue binding random gears, or my getting my fingers stuck to the actual case from superglue (was not fun and hurt) The case finally works. And the prototype code somewhat works too. It basically rotates until the sensor hits zero, it resets the “ticks”. A tick is a raw output from the AS5600. Because this magnet shaft spins faster than the output shaft, like 10x faster, the MCU needs to poll the sensor super quickly, which also needed some optimizations to clear the blocking bus communication wait that would let the magnet skip multiple full turns. The sensor doesn’t internally count turns so we just need to count manually and detect when it jumps from 4096-0 or the other way around. It then spins around until the sensor is hit AGAIN to calculate tick to degrees, assuming the sensor was zeroed before, and then the current ticks would equal 360 degrees. Another problem was the servo needs a PWM signal to move. The threshold from stop to go is pretty garbage on these cheap servos, leading it to spin quite fast already when at the lowest PWM value. Instead when far from the value it increases the PWM signal, closer it brings to minimum and starts linearly flickering the PWM signal from 0 to the speed, with the closer it is the more ratio of time stopped to inch it closer to the target. It actually surprisingly works. It’s very fragile though, any skipped reads, from potentially slow bus transfers would completely throw it off, so all the code running locally on the weak 8 bit MCU needs to be extremely lightweight. Yeah this was super super painful. I’ve been sitting here redoing superglue and code for hours."}, {"post_id": 58979, "ts": "2026-08-31T15:36:35Z", "hours": 3.4036, "text": "Servo Code I did some slight refining to the servo case again, making the tolerances tighter to keep the gears from wobbling. It’s still sort of loose, so I need to just keep trying over and over again. I’m also still writing the servo code. It’s already much more organized than before. I’m also learning Vim keybinds and stuff to try and code faster. The RS485 bus communication works now, and it’s just sending dummy telemetry data back right now. It can also control the servo fine. I’ve just been doing like the lower level architecting I guess, or not really I’m not sure. Before everything was crammed into a single file and now there’s actually header files and multiple source files and it’s actually somewhat readable. I had an issue with LED control for a second but that’s fixed now :)"}, {"post_id": 58467, "ts": "2026-08-30T21:44:37Z", "hours": 2.4922, "text": "V2 Servo Case Working; Servo Code Revamp WIP After around 10 more revisions, the new servo case is fully working with the magnetic extender. The V2 is significantly better designed and higher efficiency than the last, more guess and check result. I’ve also started to rewrite the servo code. Right now, its really messy and just kind of snowballed over time as I’ve slapped on patches and features to a fundamentally weak base. I’m in the progress of writing that now, hopefully it will be done soon. It will also include the new auto calibration and encoder usage and PID (and potentially advanced auto tuned curve to combat motor acceleration overshoot and backlash)"}, {"post_id": 57778, "ts": "2026-08-30T02:16:49Z", "hours": 3.8514, "text": "Working on IK System & Resoldered Joints Again Bruh so my robot arm after finally being assembled by the way exceeded it’s limits and tore its wires out. I had to take apart the mainboard assembly again, which just is SO TEDIOUS. I just dumped solder and hot glue again and fixed a short caused from another wire being sheared off. Also I’m working on the IK system, but it’s not really going well right now. I need to add offsets and config to each of the motors to get them to work correctly. The motors hooked up right now started crashing into my table sadly. Hopefully it will work soon. I also continued working on the servo case. I still haven’t added the code to calibrate and get closed loop control on the MG996R servos. The DS5180 encoders should be easier though."}, {"post_id": 57272, "ts": "2026-08-29T11:42:11Z", "hours": 3.1006, "text": "Reprinted Arm Segments; Added Segment Cover; Servo Mount Working; Working on Web UI I reprinted the arm segments, hopefully for one of the last times, I’ve went through so much filament already. It now allows the mainboard to be neatly packed inside, hiding most of it while still allowing wires to come out. Due to the design of the mainboard, the wires do have to stick out the front like that sadly. To avoid crushing wires, the servo mount has been expanded to allow more clearance for wires and general electronics. The servo mount works now with a new design. I remeasured and adjusted the sketches and added proper hole sizes and a little chamfer to allow the insert to slot in before using a soldering iron to melt it in to help align much better than before. The web UI now shows a representation of the arm. It’s not tuned yet, so the angles are wrong but I’ll fix it soon. I had to move everything from Fusion to Onshape to create the assemblies, and then use a Python library to convert the Onshape assembly into a URDF file that can be rendered with the correct joints inside ThreeJS. Next, I’ll be adding IK and general arm control."}, {"post_id": 56800, "ts": "2026-08-28T18:32:28Z", "hours": 3.1978, "text": "Heatset Inserts Working; Fixing Faulty Motor Power Connections; Internal Fan Power Connectors I verified that the servo cover works, and it’s much much better than the last version. The tolerances are much better this time, leading to less stress on the gears. The same amount of turning uses around 100mA compared to 300mA before, almost reaching it’s limit without any load. Some motor power connectors disconnected, so I found it with a multimeter and added hot glue to some connectors to secure them. I soldered the fan power things inside the PCB, but realized that the JST connectors I’m using are different from the fans. I might have to make a sort of adapter or something by crimping more wires. And the heatset inserts finally work after some tweaking, before the inserts would get misaligned when put in, now with a aligning lip thing it can be slotted in and melted in more accurately."}, {"post_id": 56316, "ts": "2026-08-28T01:34:32Z", "hours": 4.6306, "text": "New Mainboard Cover, Wiring, Bearing Revamp, Heatset Inserts, Servo Cover I added space for the mainboard segment, now it has clearance to actually fit, I redid the cover for this segment, and now it can allow the wires to come out The servo mount now has heatset inserts, because the previous screw in print kept slipping out, but this time the screws just would not go into the inserts through the mount for some reason? The screws went in normally, but with the tolerances, when multiple screws go in they just fight and push against the edge of the insert instead of going in. The MG996R servo housing now has been redesigned, based off of picture references and calipers to attempt to be more accurate than the last one to try and reduce the amount of bad tolerances affecting the gears and making them misaligned, reducing torque output. And just general wiring and CAD work."}, {"post_id": 55294, "ts": "2026-08-27T01:14:32Z", "hours": 2.9064, "text": "Assembled Basic Arm Parts and Packaged Main Board Assembly; Reprogrammed servo MCUs & worked on web UI I redid some soldering on the mainboard PCB, secured connections, and secured everything with tape for now. I’ll likely have to reprint the first arm segment to fit everything in flush because as you can see there are wires and things bulging out of the segment itself right now. I also redesigned the CAD to include heat set inserts. I did programming and a bunch of bug testing and fixing too. An hour of time was lost because Lapse errored out :((((( very sad about that :( I also had an issue with data corruption on the RS485 bus but that is fixed now, and it works like it should."}, {"post_id": 54840, "ts": "2026-08-26T00:29:08Z", "hours": 4.3236, "text": "Mainboard Stack Redo & Firmware Updates and Test Web UI I had to take the electronics out, and redo some of the wiring. The screw terminals are pretty cheap and suck, which makes it incredibly annoying to use as it’s impossible to fit these thicker AWG wires in and they sometimes slide out of the terminals. When I’m done I’m probably going to hot glue the wires. The incredibly fragile flexible extension jumpers for data transfer between the stack is also super fragile, and especially doesn’t grip. Sometimes the data wires just slip out. I took apart the arm, as during testing the motor stripped some screws. I’ve ordered some heat set inserts to prevent that from happening again, which will require me to reprint all the arm segments again. I also added a simple web UI for moving the joints. There is an empty ThreeJS sidebar and the right has some graphs (real data) from the mainboard sensors. The smaller MG996R servos haven’t been mounted yet due to a power delivery issue from the mainboard but hopefully that will be fixed soon."}, {"post_id": 28657, "ts": "2026-07-15T01:25:27Z", "hours": 4.0167, "text": "Test assembly and fitting of robot arm I am mostly done with the core functionality of the mainboard, so i packed everything together and double checked eerything works including power Then I started assembling most of the servos The smaller servo casing doesn’t fit very well, and the transparent window doesn’t fit either But the magnetic cover for the arm segments works great :) It was a lot of fitting, screwing, testing with multimeter, etc"}, {"post_id": 28409, "ts": "2026-07-14T17:26:49Z", "hours": 5.1303, "text": "Finalizing hardware I crimped and soldered almost the remaining wires, I’ve made some last redesigns to the arm CAD and I’m now fitting everything into the new prints and assembling. I’ve also had a ton of trouble with my servo PCBs lately, but I found out a lot of the issue was my programmer is actually fried somehow, so I’m now using an old RPi Pico to act as a UPDI adapter so PlatformIO can now successfully program the ATtinys much better now. A lot of the CAD was slightly tweaked so that everything fits better"}, {"post_id": 26853, "ts": "2026-07-11T21:36:43Z", "hours": 1.175, "text": "Servo firmware almost done The servo firmware now (with the mainboard) sends validation data back and forth so both the servo and mainboard can verify that the data was sent successfully and can ignore corrupted packets because my wiring can be flaky sometimes The firmware now sends real data again and is much more robust, with a proper stateful LED that shows useful information, like offline, online and driving motor, homing, error (fast flashing of LED as red), and the error state is also triggered in the case of corrupted packets (I tried it and it works :)) I’m also still printing out the pieces to assemble the arm. I actually have more hours working on it, I just forgot to log :((((((("}, {"post_id": 26218, "ts": "2026-07-10T21:40:32Z", "hours": 8.1217, "text": "Rewrote all firmware; Fixing Servo Cover and a ton of other CAD; Almost fried everything For the CAD, it doesn’t look like much changed, but I’ve basically redesigned a bunch of things and fixed tolerances and now it should move really smoothly. With the bearings added, everything moves incredibly smoothly now Especially the servo cover was annoying. I needed to attach a magnet to the shaft which was really annoying. I haven’t logged that well, I’ve done more like 15 hours of work instead of just 5 but whatever Most of those hours was the painful debugging. RS-485 busses, JSON not communcating with the PC, dropped connections, corrupted data, disconnected jumpers, FTDI programmer becoming flaky for some reason It’s just been pain :((( Now the PC (screenshot) recieves all the data and sends all the data You can see a lot (not all) of the telemetry being received. Ignore the volts though my math is wrong. Realtime connecting now works smoothly, as you can see the other RS485 servos are offline."}, {"post_id": 24091, "ts": "2026-07-07T13:11:08Z", "hours": 5.9586, "text": "Bidirectional Communication To PC/RPi 5 with LeRobot & More CAD changes I setup a basic class for my robot in LeRobot (which was a little confusing) and then I also got communication between the Pico and my PC working. Originally I have SPI pins exposed on my mainboard PCB to connect to the RPi 5’s GPIO pins, but for some reason after lots of debugging, even running it at super low speeds it just would not work. So I switched to just using serial over USB, and using the SerialTransfer library to send data more reliably. The script on the PC now can send target joint angles, and receive a lot of data back, like if the joint is online, temp, current, angle, homing sensor, home status, LED, firmware version, voltage, etc I also iterated on the CAD for everything, and it should be done soon. It’s just a bunch of tolerance fixes to make everything fit at this point and some new things like mounts for encoders and DC buck modules and fixing the CAD for the custom MG996R case."}, {"post_id": 23468, "ts": "2026-07-06T13:46:37Z", "hours": 1.9767, "text": "Mainboard and other CAD I got the mainboard to stack on top of each other with a weird jumper and two piece jumper holder and some screws setup which required some revisions and trying to get everything to fit. I’ve squeezed one of the DC buck modules into between the mainboard, and the second arm segment will hold the two remaining DC buck modules. The bottom mainboard PCB also has 2 smaller buck modules. There’s a lot of things going on with the voltages in this project due to the servos peak current draw being so large. I also refined the arm segment CAD by some reprints and made the DS5180 servo fit better. I’ve also made one of the buck module mounts for the second arm segment to fit more cleanly."}, {"post_id": 22393, "ts": "2026-07-04T21:03:02Z", "hours": 4.3272, "text": "Servo Control Working, More CAD and 3D Printing I got the mainboard to be able to control the servo on the servo PCBs. I also tested a bunch of the functions, like the magnetic sensor, neopixel LED, etc The communication now sends the PCB ID, and the target speed and the servo PCB echos it back and moves the servo. I also worked on the CAD (and refined) for the mainboard connector that will make connecting the two mainboards not a total pain. I also soldered the connectors on the mainboard PCBs for them to connect to each other."}, {"post_id": 21568, "ts": "2026-07-03T16:23:00Z", "hours": 0.4833, "text": "Servo PCB Daisy Chaining Working I plugged in the JST VH and JST 1.25mm wires into the PCBs, and they seem to work! I adjusted the message struct to hold a desired PCB sort of address or ID. When the MCU detects that the ID matches the PCB (by using the solder jumpers at the bottom of each PCB to program the PCB ID), only then it lights up the LED and replies to the main board. The mainboard now loops through IDs and sends a message and waits for a response. I’m very very happy this worked without any really big problems."}, {"post_id": 21540, "ts": "2026-07-03T15:45:12Z", "hours": 3.4667, "text": "Crimped JST VH wires, Connected JST 1.25mm wires, Soldered more PCB connectors Crimping JST VH wires is a ton easier than JST 1.25mm, and after a bunch of failed attempts still, I got some okay crimps that work finally. It took me a long time because I didn’t know that I had to rotate the wire for the hook on the terminal to go into the housing hole, and then also that the box shape part on the terminal actually has to stick out of the crimper or the crimper will crush the whole terminal into bits"}, {"post_id": 21185, "ts": "2026-07-03T00:14:50Z", "hours": 4.7722, "text": "Finished Soldering all Smaller PCBs & Got RS-485 communication working from main board to servo PCBs First, I finished soldering the PCBs. I added the connectors for power and the small data connectors. I also finished the servo expansion boards that hold the magnetic encoder and sensor. I also finished soldering the joint encoder PCBs that will track shoulder and elbow lift servo positions. I also got the bus communication to work. It was really really painful and I was really scared it wouldn’t work. First, the PCBs wouldn’t communicate at all. But eventually, I realized that it was because I wasn’t supplying 3.3V to the main board. This is when I realized that I haven’t adjusted the buck converters on the main board to supply the correct voltage, so I was about to unsolder the buck converter when I realized that I could just set the power supply to 5V (which the ICs on the mainboard can handle luckily), and then adjust the voltage down to 3.3V. But after a really long time of debugging, it still wasn’t working. The connection would sometimes work but was really flaky. Eventually, I soldered on the RPi Pico 2 onto the board completely and then found out the reason, it was because the ATtiny3216 was set to clock at a slow speed that would mess with the communication. I made them use the SerialTransfer library to send data more reliably and it now can communicate properly :)"}, {"post_id": 20354, "ts": "2026-07-01T22:40:54Z", "hours": 5.5597, "text": "Done Soldering Most PCBs, Crimped JST wires kind of I’m pretty much done soldering, I just have like 3 more tiny PCBs and I should be done. The big main board PCBs are pretty much done, I just need to make some botched tall headers since the clearance of regular headers are too small, and the servo PCBs are almost done, with just some connectors left to solder. Soldering JST 1.25mm wires ARE THE WORST EVER THING TO EVER EXIST I spent 2 hours crimping terminals on multiple wires and its so so so annoying. I can barely hold the terminal itself and they are so easy to bend. I couldn’t afford the real tool to crimp them, so I have cheap crimpers that are the wrong size and can’t technically crimp these. If crimping the metal things wasn’t bad enough, inserting the terminals into the housing was even worse. The housing would bend, or I would accidentally somehow insert it where it shorts the pin next to it??? Also while soldering a JST 1.25mm connector on a PCB, I ripped the pads clean off the PCB. I guess that one just will be missing the daisy chain feature because it only has one connector for data now and all the components and MCU are already soldered on, which really sucks. The rest of the servo PCB (4 in total for now) went fine though, and I’m getting faster at it."}, {"post_id": 18843, "ts": "2026-06-30T01:27:03Z", "hours": 4.7572, "text": "Worked on firmware & CAD & Soldered Second PCB I got the PCB and ATtiny3216 to power a servo. I soldered on the remaining components on it, like the custom LED (which just turns on when the motor is spinning for now) and the 100uF capacitor and also the RS485 bus IC. I also changed the CAD of the arm to use a bearing and changed the servo horn to fit inside of the bearing. I’ve ordered right angle headers and the bearing and metal servo horn already. I also added some transparent parts to the arm design to make it look more interesting hopefully. I also am almost done soldering the second servo PCB. Now that I have all the parts ready and I actually got better at soldering ICs I can do it faster now."}, {"post_id": 17022, "ts": "2026-06-27T17:00:47Z", "hours": 4.0433, "text": "Finally got ATtiny3216 on PCB Working This took so so long. Basically, I spent hours trying to get it to work. First, the 3.3V rail wasn’t getting power and the LED wasn’t lighting so I had to resolder the voltage regulator and then both green LEDs lit up, meaning everything was working. Then I got my FTDI programmer, and plugged it into my PCB. Because I have a FTDI programmer and the ATtiny3216 has a UPDI programming interface, there is a resistor on the board to combine the two pins into one. Even just getting megaTinyCore installed in Arduino IDE was a pain. The website that hosted the package info was down again, with an expired certificate. Apparently, this happens very often with it but I found an alternative mirror. Then I tried flashing code, and it didn’t work. Then I realized that the board type I was using was the Optiboot version, and I couldn’t find the non Optiboot version so I had to flash Optiboot onto the MCU. I did not realize that doing this would cause problems later on. I also had to switch the programmer from the one that programs Arduinos to the UPDI programmer. But I STILL couldn’t get any GPIO to work. I just tried things for hours. I switched to PlatformIO. I tried switching from C to Arduino in PlatformIO. I tried unplugging the programmer because I saw some voltage leaking from it. I tried emptying the caps and trying again. I probed every single pin to see if I wrote the wrong pin. Then after all of that, when I switched to non Optiboot (having to find online that I have to downgrade megaTinyCore), and flashing that, it works. I think it was because flashing a bootloader burns some fuses to expect a bootloader, but when I flash my code it actually overwrites the bootloader code because I don’t have access to the TX and RX pins typically used to flash when Optiboot is installed, and that just caused the code to not run."}, {"post_id": 14058, "ts": "2026-06-23T01:15:22Z", "hours": 2.3747, "text": "Soldered Smaller PCBs, Ordered Missing Parts, Continued CAD work I soldered most of the small PCBs, but now I need to order the parts I missed from the first order I placed. I’m also running out of 0.1uF caps, which sucks. I added a spot and holes for a fan on the camera mount and also some arm segment CAD improvements and back plating to hold the metal rods in. I printed out a test and it works fine. As for the PCBs, I’m still waiting for a few parts."}, {"post_id": 13444, "ts": "2026-06-22T00:49:23Z", "hours": 2.6311, "text": "Continued Soldering PCB (Diodes/LEDs, power circuitry, etc) and worked on arm CAD. For the PCB, after some time, I got the power switching circuit to output power. It’s a collection of things that I hope will make it safer, with a some diodes and a fuse, some MOSFETs, so the main MCU can command to send power, and also another stage that requires the E-STOP to not be pressed to actually be able to send power through with two MOSFETs (one main power, another switch the main MOSFET). I added a fan to the global shutter main wrist camera since it gets hot, and added a new “head” to the arm segment CAD (the heads are swappable depending on what you need to print) for the smaller motor for the last DOFs in the arm. It fits my custom daisy chaining two part PCB hat for the MG996R to give it current, temp, power sensing, and daisy chaining power and data via a RS485 bus with an onboard MCU to provide communication and control. I added some holes for airflow for this PCB. I also added some screw holes to actually connect the halves of the arm together."}, {"post_id": 12830, "ts": "2026-06-21T00:22:41Z", "hours": 1.6036, "text": "Continued Soldering and Working on CAD I snapped some headers and soldered on some more ICs on the PCBs. I did also mess up and ordered a wrong footprint for a part, so now I have to delay that too. It’s so tiny I can barely see the pins. I also worked on the CAD, where I designed the stereo camera holder, added a spot for the RPi 5 to go on top, and maybe a display. I also made a V2 of my grabber since the old one didn’t work well. It also seems that Stardance isn’t syncing my time properly, and it’s missing a few hours so that’s annoying :("}, {"post_id": 12281, "ts": "2026-06-20T01:43:23Z", "hours": 5.3406, "text": "I soldered some parts on the PCB, and worked on the CAD files some more I did realize that I forgot some parts, so I ordered them on DigiKey. I’ll continue soldering the rest tomorrow. One of the parts was the LDO, which I only found out because I soldered the parts and realized that the voltage being put on the 3.3V rail is 5V My project needs both versions of the same LDO and I only bought the 5V one I also bought the wrong resistors. I’ve ordered them and they should arrive in a week or so. My design of stacking the PCBs and then adding the buck modules in the middle might be very challenging, and I might need to stack multiple headers on top of each other to fit the modules inside. Hopefully it will still fit inside my arm segment and not short anything. There also needs to be sufficient airflow, which is def a challenge"}, {"post_id": 10584, "ts": "2026-06-17T12:06:26Z", "hours": 1.8508, "text": "Added Bottom Reinforcements with holes for magnets and wiring Added Fans and airflow holes And just fixed and refined the CAD, like adding spots for magnetic attached front and back plates and more"}]...
|
Title: revo by @ratmuds | Stardance
Devlogs:
Adde Title: revo by @ratmuds | Stardance
Devlogs:
Added Bottom Reinforcements with holes for magnets and wiring Added Fans and airflow holes And just fixed and refined the CAD, like adding spots for magnetic attached front and back plates and more
I soldered some parts on the PCB, and worked on the CAD files some more I did realize that I forgot some parts, so I ordered them on DigiKey. I’ll continue soldering the rest tomorrow. One of the parts was the LDO, which I only found out because I soldered the parts and realized that the voltage being put on the 3.3V rail is 5V My project needs both versions of the same LDO and I only bought the 5V one I also bought the wrong resistors. I’ve ordered them and they should arrive in a week or so. My design of stacking the PCBs and then adding the buck modules in the middle might be very challenging, and I might need to stack multiple headers on top of each other to fit the modules inside. Hopefully it will still fit inside my arm segment and not short anything. There also needs to be sufficient airflow, which is def a challenge
Continued Soldering and Working on CAD I snapped some headers and soldered on some more ICs on the PCBs. I did also mess up and ordered a wrong footprint for a part, so now I have to delay that too. It’s so tiny I can barely see the pins. I also worked on the CAD, where I designed the stereo camera holder, added a spot for the RPi 5 to go on top, and maybe a display. I also made a V2 of my grabber since the old one didn’t work well. It also seems that Stardance isn’t syncing my time properly, and it’s missing a few hours so that’s annoying :(
Continued Soldering PCB (Diodes/LEDs, power circuitry, etc) and worked on arm CAD. For the PCB, after some time, I got the power switching circuit to output power. It’s a collection of things that I hope will make it safer, with a some diodes and a fuse, some MOSFETs, so the main MCU can command to send power, and also another stage that requires the E-STOP to not be pressed to actually be able to send power through with two MOSFETs (one main power, another switch the main MOSFET). I added a fan to the global shutter main wrist camera since it gets hot, and added a new “head” to the arm segment CAD (the heads are swappable depending on what you need to print) for the smaller motor for the last DOFs in the arm. It fits my custom daisy chaining two part PCB hat for the MG996R to give it current, temp, power sensing, and daisy chaining power and data via a RS485 bus with an onboard MCU to provide communication and control. I added some holes for airflow for this PCB. I also added some screw holes to actually connect the halves of the arm together.
Soldered Smaller PCBs, Ordered Missing Parts, Continued CAD work I soldered most of the small PCBs, but now I need to order the parts I missed from the first order I placed. I’m also running out of 0.1uF caps, which sucks. I added a spot and holes for a fan on the camera mount and also some arm segment CAD improvements and back plating to hold the metal rods in. I printed out a test and it works fine. As for the PCBs, I’m still waiting for a few parts.
Finally got ATtiny3216 on PCB Working This took so so long. Basically, I spent hours trying to get it to work. First, the 3.3V rail wasn’t getting power and the LED wasn’t lighting so I had to resolder the voltage regulator and then both green LEDs lit up, meaning everything was working. Then I got my FTDI programmer, and plugged it into my PCB. Because I have a FTDI programmer and the ATtiny3216 has a UPDI programming interface, there is a resistor on the board to combine the two pins into one. Even just getting megaTinyCore installed in Arduino IDE was a pain. The website that hosted the package info was down again, with an expired certificate. Apparently, this happens very often with it but I found an alternative mirror. Then I tried flashing code, and it didn’t work. Then I realized that the board type I was using was the Optiboot version, and I couldn’t find the non Optiboot version so I had to flash Optiboot onto the MCU. I did not realize that doing this would cause problems later on. I also had to switch the programmer from the one that programs Arduinos to the UPDI programmer. But I STILL couldn’t get any GPIO to work. I just tried things for hours. I switched to PlatformIO. I tried switching from C to Arduino in PlatformIO. I tried unplugging the programmer because I saw some voltage leaking from it. I tried emptying the caps and trying again. I probed every single pin to see if I wrote the wrong pin. Then after all of that, when I switched to non Optiboot (having to find online that I have to downgrade megaTinyCore), and flashing that, it works. I think it was because flashing a bootloader burns some fuses to expect a bootloader, but when I flash my code it actually overwrites the bootloader code because I don’t have access to the TX and RX pins typically used to flash when Optiboot is installed, and that just caused the code to not run.
Worked on firmware & CAD & Soldered Second PCB I got the PCB and ATtiny3216 to power a servo. I soldered on the remaining components on it, like the custom LED (which just turns on when the motor is spinning for now) and the 100uF capacitor and also the RS485 bus IC. I also changed the CAD of the arm to use a bearing and changed the servo horn to fit inside of the bearing. I’ve ordered right angle headers and the bearing and metal servo horn already. I also added some transparent parts to the arm design to make it look more interesting hopefully. I also am almost done soldering the second servo PCB. Now that I have all the parts ready and I actually got better at soldering ICs I can do it faster now.
Done Soldering Most PCBs, Crimped JST wires kind of I’m pretty much done soldering, I just have like 3 more tiny PCBs and I should be done. The big main board PCBs are pretty much done, I just need to make some botched tall headers since the clearance of regular headers are too small, and the servo PCBs are almost done, with just some connectors left to solder. Soldering JST 1.25mm wires ARE THE WORST EVER THING TO EVER EXIST I spent 2 hours crimping terminals on multiple wires and its so so so annoying. I can barely hold the terminal itself and they are so easy to bend. I couldn’t afford the real tool to crimp them, so I have cheap crimpers that are the wrong size and can’t technically crimp these. If crimping the metal things wasn’t bad enough, inserting the terminals into the housing was even worse. The housing would bend, or I would accidentally somehow insert it where it shorts the pin next to it??? Also while soldering a JST 1.25mm connector on a PCB, I ripped the pads clean off the PCB. I guess that one just will be missing the daisy chain feature because it only has one connector for data now and all the components and MCU are already soldered on, which really sucks. The rest of the servo PCB (4 in total for now) went fine though, and I’m getting faster at it.
Finished Soldering all Smaller PCBs & Got RS-485 communication working from main board to servo PCBs First, I finished soldering the PCBs. I added the connectors for power and the small data connectors. I also finished the servo expansion boards that hold the magnetic encoder and sensor. I also finished soldering the joint encoder PCBs that will track shoulder and elbow lift servo positions. I also got the bus communication to work. It was really really painful and I was really scared it wouldn’t work. First, the PCBs wouldn’t communicate at all. But eventually, I realized that it was because I wasn’t supplying 3.3V to the main board. This is when I realized that I haven’t adjusted the buck converters on the main board to supply the correct voltage, so I was about to unsolder the buck converter when I realized that I could just set the power supply to 5V (which the ICs on the mainboard can handle luckily), and then adjust the voltage down to 3.3V. But after a really long time of debugging, it still wasn’t working. The connection would sometimes work but was really flaky. Eventually, I soldered on the RPi Pico 2 onto the board completely and then found out the reason, it was because the ATtiny3216 was set to clock at a slow speed that would mess with the communication. I made them use the SerialTransfer library to send data more reliably and it now can communicate properly :)
Crimped JST VH wires, Connected JST 1.25mm wires, Soldered more PCB connectors Crimping JST VH wires is a ton easier than JST 1.25mm, and after a bunch of failed attempts still, I got some okay crimps that work finally. It took me a long time because I didn’t know that I had to rotate the wire for the hook on the terminal to go into the housing hole, and then also that the box shape part on the terminal actually has to stick out of the crimper or the crimper will crush the whole terminal into bits
Servo PCB Daisy Chaining Working I plugged in the JST VH and JST 1.25mm wires into the PCBs, and they seem to work! I adjusted the message struct to hold a desired PCB sort of address or ID. When the MCU detects that the ID matches the PCB (by using the solder jumpers at the bottom of each PCB to program the PCB ID), only then it lights up the LED and replies to the main board. The mainboard now loops through IDs and sends a message and waits for a response. I’m very very happy this worked without any really big problems.
Servo Control Working, More CAD and 3D Printing I got the mainboard to be able to control the servo on the servo PCBs. I also tested a bunch of the functions, like the magnetic sensor, neopixel LED, etc The communication now sends the PCB ID, and the target speed and the servo PCB echos it back and moves the servo. I also worked on the CAD (and refined) for the mainboard connector that will make connecting the two mainboards not a total pain. I also soldered the connectors on the mainboard PCBs for them to connect to each other.
Mainboard and other CAD I got the mainboard to stack on top of each other with a weird jumper and two piece jumper holder and some screws setup which required some revisions and trying to get everything to fit. I’ve squeezed one of the DC buck modules into between the mainboard, and the second arm segment will hold the two remaining DC buck modules. The bottom mainboard PCB also has 2 smaller buck modules. There’s a lot of things going on with the voltages in this project due to the servos peak current draw being so large. I also refined the arm segment CAD by some reprints and made the DS5180 servo fit better. I’ve also made one of the buck module mounts for the second arm segment to fit more cleanly.
Bidirectional Communication To PC/RPi 5 with LeRobot & More CAD changes I setup a basic class for my robot in LeRobot (which was a little confusing) and then I also got communication between the Pico and my PC working. Originally I have SPI pins exposed on my mainboard PCB to connect to the RPi 5’s GPIO pins, but for some reason after lots of debugging, even running it at super low speeds it just would not work. So I switched to just using serial over USB, and using the SerialTransfer library to send data more reliably. The script on the PC now can send target joint angles, and receive a lot of data back, like if the joint is online, temp, current, angle, homing sensor, home status, LED, firmware version, voltage, etc I also iterated on the CAD for everything, and it should be done soon. It’s just a bunch of tolerance fixes to make everything fit at this point and some new things like mounts for encoders and DC buck modules and fixing the CAD for the custom MG996R case.
Rewrote all firmware; Fixing Servo Cover and a ton of other CAD; Almost fried everything For the CAD, it doesn’t look like much changed, but I’ve basically redesigned a bunch of things and fixed tolerances and now it should move really smoothly. With the bearings added, everything moves incredibly smoothly now Especially the servo cover was annoying. I needed to attach a magnet to the shaft which was really annoying. I haven’t logged that well, I’ve done more like 15 hours of work instead of just 5 but whatever Most of those hours was the painful debugging. RS-485 busses, JSON not communcating with the PC, dropped connections, corrupted data, disconnected jumpers, FTDI programmer becoming flaky for some reason It’s just been pain :((( Now the PC (screenshot) recieves all the data and sends all the data You can see a lot (not all) of the telemetry being received. Ignore the volts though my math is wrong. Realtime connecting now works smoothly, as you can see the other RS485 servos are offline.
Servo firmware almost done The servo firmware now (with the mainboard) sends validation data back and forth so both the servo and mainboard can verify that the data was sent successfully and can ignore corrupted packets because my wiring can be flaky sometimes The firmware now sends real data again and is much more robust, with a proper stateful LED that shows useful information, like offline, online and driving motor, homing, error (fast flashing of LED as red), and the error state is also triggered in the case of corrupted packets (I tried it and it works :)) I’m also still printing out the pieces to assemble the arm. I actually have more hours working on it, I just forgot to log :(((((((
Finalizing hardware I crimped and soldered almost the remaining wires, I’ve made some last redesigns to the arm CAD and I’m now fitting everything into the new prints and assembling. I’ve also had a ton of trouble with my servo PCBs lately, but I found out a lot of the issue was my programmer is actually fried somehow, so I’m now using an old RPi Pico to act as a UPDI adapter so PlatformIO can now successfully program the ATtinys much better now. A lot of the CAD was slightly tweaked so that everything fits better
Test assembly and fitting of robot arm I am mostly done with the core functionality of the mainboard, so i packed everything together and double checked eerything works including power Then I started assembling most of the servos The smaller servo casing doesn’t fit very well, and the transparent window doesn’t fit either But the magnetic cover for the arm segments works great :) It was a lot of fitting, screwing, testing with multimeter, etc
Mainboard Stack Redo & Firmware Updates and Test Web UI I had to take the electronics out, and redo some of the wiring. The screw terminals are pretty cheap and suck, which makes it incredibly annoying to use as it’s impossible to fit these thicker AWG wires in and they sometimes slide out of the terminals. When I’m done I’m probably going to hot glue the wires. The incredibly fragile flexible extension jumpers for data transfer between the stack is also super fragile, and especially doesn’t grip. Sometimes the data wires just slip out. I took apart the arm, as during testing the motor stripped some screws. I’ve ordered some heat set inserts to prevent that from happening again, which will require me to reprint all the arm segments again. I also added a simple web UI for moving the joints. There is an empty ThreeJS sidebar and the right has some graphs (real data) from the mainboard sensors. The smaller MG996R servos haven’t been mounted yet due to a power delivery issue from the mainboard but hopefully that will be fixed soon.
Assembled Basic Arm Parts and Packaged Main Board Assembly; Reprogrammed servo MCUs & worked on web UI I redid some soldering on the mainboard PCB, secured connections, and secured everything with tape for now. I’ll likely have to reprint the first arm segment to fit everything in flush because as you can see there are wires and things bulging out of the segment itself right now. I also redesigned the CAD to include heat set inserts. I did programming and a bunch of bug testing and fixing too. An hour of time was lost because Lapse errored out :((((( very sad about that :( I also had an issue with data corruption on the RS485 bus but that is fixed now, and it works like it should.
New Mainboard Cover, Wiring, Bearing Revamp, Heatset Inserts, Servo Cover I added space for the mainboard segment, now it has clearance to actually fit, I redid the cover for this segment, and now it can allow the wires to come out The servo mount now has heatset inserts, because the previous screw in print kept slipping out, but this time the screws just would not go into the inserts through the mount for some reason? The screws went in normally, but with the tolerances, when multiple screws go in they just fight and push against the edge of the insert instead of going in. The MG996R servo housing now has been redesigned, based off of picture references and calipers to attempt to be more accurate than the last one to try and reduce the amount of bad tolerances affecting the gears and making them misaligned, reducing torque output. And just general wiring and CAD work.
Heatset Inserts Working; Fixing Faulty Motor Power Connections; Internal Fan Power Connectors I verified that the servo cover works, and it’s much much better than the last version. The tolerances are much better this time, leading to less stress on the gears. The same amount of turning uses around 100mA compared to 300mA before, almost reaching it’s limit without any load. Some motor power connectors disconnected, so I found it with a multimeter and added hot glue to some connectors to secure them. I soldered the fan power things inside the PCB, but realized that the JST connectors I’m using are different from the fans. I might have to make a sort of adapter or something by crimping more wires. And the heatset inserts finally work after some tweaking, before the inserts would get misaligned when put in, now with a aligning lip thing it can be slotted in and melted in more accurately.
Reprinted Arm Segments; Added Segment Cover; Servo Mount Working; Working on Web UI I reprinted the arm segments, hopefully for one of the last times, I’ve went through so much filament already. It now allows the mainboard to be neatly packed inside, hiding most of it while still allowing wires to come out. Due to the design of the mainboard, the wires do have to stick out the front like that sadly. To avoid crushing wires, the servo mount has been expanded to allow more clearance for wires and general electronics. The servo mount works now with a new design. I remeasured and adjusted the sketches and added proper hole sizes and a little chamfer to allow the insert to slot in before using a soldering iron to melt it in to help align much better than before. The web UI now shows a representation of the arm. It’s not tuned yet, so the angles are wrong but I’ll fix it soon. I had to move everything from Fusion to Onshape to create the assemblies, and then use a Python library to convert the Onshape assembly into a URDF file that can be rendered with the correct joints inside ThreeJS. Next, I’ll be adding IK and general arm control.
Working on IK System & Resoldered Joints Again Bruh so my robot arm after finally being assembled by the way exceeded it’s limits and tore its wires out. I had to take apart the mainboard assembly again, which just is SO TEDIOUS. I just dumped solder and hot glue again and fixed a short caused from another wire being sheared off. Also I’m working on the IK system, but it’s not really going well right now. I need to add offsets and config to each of the motors to get them to work correctly. The motors hooked up right now started crashing into my table sadly. Hopefully it will work soon. I also continued working on the servo case. I still haven’t added the code to calibrate and get closed loop control on the MG996R servos. The DS5180 encoders should be easier though.
V2 Servo Case Working; Servo Code Revamp WIP After around 10 more revisions, the new servo case is fully working with the magnetic extender. The V2 is significantly better designed and higher efficiency than the last, more guess and check result. I’ve also started to rewrite the servo code. Right now, its really messy and just kind of snowballed over time as I’ve slapped on patches and features to a fundamentally weak base. I’m in the progress of writing that now, hopefully it will be done soon. It will also include the new auto calibration and encoder usage and PID (and potentially advanced auto tuned curve to combat motor acceleration overshoot and backlash)
Servo Code I did some slight refining to the servo case again, making the tolerances tighter to keep the gears from wobbling. It’s still sort of loose, so I need to just keep trying over and over again. I’m also still writing the servo code. It’s already much more organized than before. I’m also learning Vim keybinds and stuff to try and code faster. The RS485 bus communication works now, and it’s just sending dummy telemetry data back right now. It can also control the servo fine. I’ve just been doing like the lower level architecting I guess, or not really I’m not sure. Before everything was crammed into a single file and now there’s actually header files and multiple source files and it’s actually somewhat readable. I had an issue with LED control for a second but that’s fixed now :)
MG996Rs Finally Working The servos finally work. I don’t even think this amount of hours logged is equal to how long this took, because I just got tired of it. I think I printed like 20 new revisions of the case and servo mount. It was just so so annoying. While the general case worked, getting a reliable magnet output shaft was impossible. From tolerances, to my own errors to binding to hot glue getting everywhere, or superglue binding random gears, or my getting my fingers stuck to the actual case from superglue (was not fun and hurt) The case finally works. And the prototype code somewhat works too. It basically rotates until the sensor hits zero, it resets the “ticks”. A tick is a raw output from the AS5600. Because this magnet shaft spins faster than the output shaft, like 10x faster, the MCU needs to poll the sensor super quickly, which also needed some optimizations to clear the blocking bus communication wait that would let the magnet skip multiple full turns. The sensor doesn’t internally count turns so we just need to count manually and detect when it jumps from 4096-0 or the other way around. It then spins around until the sensor is hit AGAIN to calculate tick to degrees, assuming the sensor was zeroed before, and then the current ticks would equal 360 degrees. Another problem was the servo needs a PWM signal to move. The threshold from stop to go is pretty garbage on these cheap servos, leading it to spin quite fast already when at the lowest PWM value. Instead when far from the value it increases the PWM signal, closer it brings to minimum and starts linearly flickering the PWM signal from 0 to the speed, with the closer it is the more ratio of time stopped to inch it closer to the target. It actually surprisingly works. It’s very fragile though, any skipped reads, from potentially slow bus transfers would completely throw it off, so all the code running locally on the weak 8 bit MCU needs to be extremely lightweight. Yeah this was super super painful. I’ve been sitting here redoing superglue and code for hours.
Debugging and Fixing Is Killing Me and the Mainboard Exploded :( I have spent SO many hours trying to get this to work. It’s so annoying. This isn’t near how many hours I spent, I’ve been too frustrated to log it. The case is incredibly annoying. Getting the initial case works fine. Doing all of this stuff makes it complicated and break and jam up. The RS485 busses just randomly stop working. The servo output is wiggly and not stable. A PCB header snapped and I didn’t have replacements so I had to bodge solder it back on. The mainboard voltage regulator literally exploded. It was a cheap part but yeah that literally just broke stuff. Fixes to everything. CAD. Firmware. bruh
Dashboard Revamp WIP, Tons of CAD changes, Code Updates, Tolerances I’ve just been refining everything and it’s just going really slowly. Many problems. Magnets shorting out stuff. Magnet too far and not being detected. Wires breaking. I’ve also redesigned the dashboard UI to hopefully look better. I’m still working on it, hopefully it will look more polished later. The dashboard It shows a load speedometer type thing, with the load (max current from a motor out of 500mA) and the temp on the right (for now just dummy value) The motors have cool little animations now too and look less cluttered. I’ve just been working on it a lot. Just everything in general tbh.
Assembled last 4 DoF for Integrated Test I assembled the MG996R servos in a test piece that will represent the full regular arm segment to test if everything worked. With some fiddling it worked. As you can see there’s more transparent pieces. The pieces that connect the previous joint are transparent to show the Neopixel below it a lot better as before the LED was almost completely occluded. The bright green LEDs power status ones are too bright but I can cover them later.
Significantly Better Motor Control and Gripper CAD The motor code was getting a bit messy, so I rewrote it. I separated the motor code from the main control code which cleaned it up a bit. LADRC I’m using LADRC now. It’s kind of like PID, but advanced. I took the implementation from online. I feed it the motor current, encoder value, and the target and it goes. The algorithm or whatever somehow calculates the velocity of the motor and how much “effort” it’s using and then gives an effort to put to the motor. It somehow cancels out like disturbances like gravity, backlash, the general physics, etc. As you can see, the motor control is so so so much better than before. It cleanly decelerates. It handles load and dynamically increases effort. Before there was some oscillation because it just couldn’t figure out how to get to the target, this one is just so much better and so hands off. There’s basically like no calibration as it does it over time :)))
Assembled Full Arm (not all motors active yet for safety) and Basic Interpolation for Control I assembled the new full arm assembly minus the end effector and didn’t plug in the first two motors as they have the highest chance of doing something really bad. I also made some general changes to the code and also added a flag to some motors to interpolate their movement slowly to not explode the robot arm while controlling it.
Fixed Broken Magnet, Redoing all IK joint data and offsets, Stereo depth test An encoder magnet broke off, so I had to disassemble and reassemble the top half of the arm to get to the encoder magnet and glue it back on. I also started properly punching in the IK joint data, before it was mostly just random data but now almost all of the data is mostly correct, and I’m waiting for a print to complete that will flip a motor to finally get the IK simulation matching with real life and have the IK endpoint be tracked at the tip of the gripper. It was a lot of trial and error and measurements. I also started experimenting with adding depth estimation. Eventually this could add collision avoidance IK pathfinding, which would be really cool but it’s just a pointcloud in the render right now. But the robot arm is slowly coming together finally! I’ll be able to grab something soon I think.
Integration Hell I’ve just been like trying to get this stupid project to work. Screws keep falling out, the IK keeps failing, things are hitting each other and wires are being strained I’m in integration hell. Everything works fine on its own, but combining everything is horrible. I’ve been reassembling and trying to fix this stupid thing for so long. Anyway I’ve went through a few more revisions of some CAD and some more refinements and the gripper and camera is now mounted but this is just incredibly incredibly annoying :((((
Setup VR and Gripper, Robot Rapidly Disassembles my robot arm is broken I setup VR and fixed some more IK when I go into VR and try playing around, it instantly flies out and throws itself off the table and breaks into pieces. This is going to be fun to fix.
Finish Project Up :) I wrote a ton in the repository im tired :( https://github.com/ratmuds/revo
Ships:
I wanted to make a robot arm that punched above it’s weight. The price is pretty similar to smaller robot arms on Amazon that may not include cameras, which would need to be purchased seperately. The way this is achieved by using cheap servos, servos that are 100% NOT made for this purpose, and adding most of the functionality of a smart servo back by using a TON of PCBs. It was a lot of soldering. I just wanted to make something that had more features for less money :) This project was SUPER difficult for me, and pushed my limits a bit. The amount of tolerences especially for the stupid custom motor case and magnet and PCBs and the crazy mainboard and generally having everything play well together took so long, I had many days where I quit frustrated. I’m very happy about how it turned out though, even seeing the lots of shortcomings it has....
|
1793152308.0471609
|
1793238708.0471609
|
|
9621
|
Isles by @derped1 | Stardance
|
derped1
|
1
|
4.0
|
10
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-15T19:19:36Z", "hours": 4.0, "multiplier": 2.57, "payout": 10, "blessing": "neutral", "text": "Isles is a small Minecraft plugin I made that generates Skyblock-style islands in a grid, with each player getting their own island. I built it for my SMP because I wanted something my friends and I could play for about a week that felt more interesting than starting another normal vanilla world. I’m honestly proud that it lasted that long, because most of my friends are not as into Minecraft anymore. Even though the plugin is simple, it created a good social environment where people could hang out, trade, bridge to each other, and actually interact instead of everyone splitting off and doing their own thing. The hardest part was probably figuring out island placement. I had to find a good middle ground where the islands were far enough apart to feel separate, but not so far that bridging to friends became annoying. That decision ended up mattering a lot because the whole point of Isles is that every island exists in the same physical world, with a center island connecting everything together. What makes Isles different from normal Skyblock is that it is not just a bunch of isolated islands. Everyone is still in the same world, so you can visit your friends, trade with them, and build connections between islands. My favorite part was not really one specific feature, but just seeing the server turn into a place where my friends could mess around together for a week. I would rather people try Isles with their own friends before voting on it instead of just upvoting or downvoting blindly. It is meant to be judged by how it feels to play socially, not just by looking at the code or the idea from the outside.", "repo": "https://github.com/Derpedyea/Isles", "demo": "https://modrinth.com/plugin/isles"}]...
|
[{"post_id": 9370, "ts": "2026 [{"post_id": 9370, "ts": "2026-06-15T18:26:40Z", "hours": 3.0722, "text": "I made some more changes but it was a while ago so I don’t remember exactly. I made a little wiki and the project is basically done as the server is over so I’m going to ship it. I also made gravel obtainable in the center to allow for more dirt."}, {"post_id": 3444, "ts": "2026-06-06T11:53:10Z", "hours": 0.8689, "text": "I made the basic plugin it has islands that generate in a grid around the center which is an array of “asteroids” with resources that players can pvp and bridge too."}]...
|
Title: Isles by @derped1 | Stardance
Devlogs:
I m Title: Isles by @derped1 | Stardance
Devlogs:
I made the basic plugin it has islands that generate in a grid around the center which is an array of “asteroids” with resources that players can pvp and bridge too.
I made some more changes but it was a while ago so I don’t remember exactly. I made a little wiki and the project is basically done as the server is over so I’m going to ship it. I also made gravel obtainable in the center to allow for more dirt.
Ships:
Isles is a small Minecraft plugin I made that generates Skyblock-style islands in a grid, with each player getting their own island. I built it for my SMP because I wanted something my friends and I could play for about a week that felt more interesting than starting another normal vanilla world. I’m honestly proud that it lasted that long, because most of my friends are not as into Minecraft anymore. Even though the plugin is simple, it created a good social environment where people could hang out, trade, bridge to each other, and actually interact instead of everyone splitting off and doing their own thing. The hardest part was probably figuring out island placement. I had to find a good middle ground where the islands were far enough apart to feel separate, but not so far that bridging to friends became annoying. That decision ended up mattering a lot because the whole point of Isles is that every island exists in the same physical world, with a center island connecting everything together. What makes Isles different from normal Skyblock is that it is not just a bunch of isolated islands. Everyone is still in the same world, so you can visit your friends, trade with them, and build connections between islands. My favorite part was not really one specific feature, but just seeing the server turn into a place where my friends could mess around together for a week. I would rather people try Isles with their own friends before voting on it instead of just upvoting or downvoting blindly. It is meant to be judged by how it feels to play socially, not just by looking at the code or the idea from the outside....
|
1793072867.0094755
|
1793159267.0094755
|
|
9625
|
My first slack bot! by @yellowissuchanoverratedcol My first slack bot! by @yellowissuchanoverratedcolor | Stardance...
|
yellowissuchanoverratedcolor
|
1
|
0.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-30T12:18:30Z", "hours": 0.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Hey, I recently completed the Slack Bot tutorial. I honestly just wanted to try this to gain some familiarity with the slack api (basically the same as the discord api lol). I added the following commands: help ping count-letters (which counts the individual letters from a to z in the message) thats it bye", "repo": "https://github.com/floopus44/slack-bot", "demo": "https://hackclub.enterprise.slack.com/archives/C0BTNC2E7QE"}]...
|
[{"post_id": 3820, "ts": "2026 [{"post_id": 3820, "ts": "2026-06-06T21:33:06Z", "hours": 0.4264, "text": "Got it to work and added two commands yay"}]...
|
Title: My first slack bot! by @yellowissuchanoverr Title: My first slack bot! by @yellowissuchanoverratedcolor | Stardance
Devlogs:
Got it to work and added two commands yay
Ships:
Hey, I recently completed the Slack Bot tutorial. I honestly just wanted to try this to gain some familiarity with the slack api (basically the same as the discord api lol). I added the following commands: help ping count-letters (which counts the individual letters from a to z in the message) thats it bye...
|
1793101756.03416
|
1793188156.03416
|
|
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
|