|
5347
|
Equiplane by @qqxzew | Stardance
|
qqxzew
|
1
|
14.0
|
217
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-15T20:28:36Z", "hours": 14.0, "multiplier": 15.16, "payout": 217, "blessing": "neutral", "text": "I made EquipLane, an industrial maintenance ticketing system where clients can report equipment problems, engineers can manage assigned repair tasks, and admins can control the whole maintenance workflow. The hardest part was coming up with the idea and building the project from scratch without much previous experience. I had to figure out the structure, database, roles, authentication, and the whole workflow step by step. I’m most proud that I was able to finish a working project and also make the GitHub repository look organized and well documented. This is my first major portfolio project, so I’m proud that it turned into something complete. To test it, just open the project link and log in using the demo credentials from the README.", "repo": "https://github.com/qqxzew/equiplane", "demo": "https://klidnapraha.fun/login.php"}]...
|
[{"post_id": 9458, "ts": "2026 [{"post_id": 9458, "ts": "2026-06-15T20:22:33Z", "hours": 0.5267, "text": "have add deployment😀"}, {"post_id": 9388, "ts": "2026-06-15T18:47:23Z", "hours": 1.4058, "text": "What I did: Wrapped up the EquipLane project and prepared it for my portfolio. I containerized the entire application using Docker and Docker Compose, linking a PHP 8.2 server with a MariaDB database so the whole environment can be spun up with a single command. I also set up a CI pipeline using GitHub Actions to automatically lint and check PHP syntax on every push. Finally, I generated a complete Entity-Relationship Diagram (ERD) to visualize the database architecture and wrote a comprehensive README explaining the core mechanics, security features, and the PRG pattern I implemented. The struggles: I definitely reached the limit of what makes sense to build with pure procedural PHP. Refactoring and maintaining this architecture showed me exactly why OOP and modern frameworks exist. It was a great learning experience for understanding the fundamentals, but I am definitely ready to move on to Nette for my next hackathon projects."}, {"post_id": 8946, "ts": "2026-06-14T21:29:13Z", "hours": 3.6275, "text": "What I did: Massive architectural and security overhaul today. I completely rewrote the form submission logic to follow the Post-Redirect-Get (PRG) pattern, integrating session-based Flash messages and strict CSRF token validation across all endpoints. I also implemented “Sticky Forms” so users never lose their detailed text inputs if a validation error occurs. For the administration side, I built full CRUD interfaces to manage personnel roles, corporate clients, and the equipment registry without needing direct database access. Finally, I wrote SQL-level pagination for the main tickets table to keep the application fast and scalable as data grows. The struggles: I finally switched from VS Code to PhpStorm today and I am just in shock at how insanely cool and powerful it is. It instantly highlighted database schema mismatches I missed and forced me to write much cleaner code, though getting used to its strict warnings definitely took some time."}, {"post_id": 6933, "ts": "2026-06-11T16:52:18Z", "hours": 2.3361, "text": "What I did: Expanded the engineer’s resource reporting logic. When resolving a ticket, engineers are now required to input the exact hours spent and the cost of replacement parts. Built a financial calculation module on the backend that automatically aggregates these costs, applies the Czech 21% VAT (DPH), and displays a detailed invoice summary to admins and clients. Also implemented a critical backup request feature: engineers can now submit a “Request Backup” flag along with a specific text reason if they encounter blocking issues on-site. Admins immediately see an approval panel to either accept the request (and assign additional help) or reject it. The struggles: I had no idea for frontend"}, {"post_id": 5086, "ts": "2026-06-08T19:30:11Z", "hours": 1.7997, "text": "Built the ticket creation page with role protection. Clients can now select their equipment, set priorities, and safely submit maintenance requests to the database via PDO prepared statements. The struggles: Broken the SQL query and html :>"}, {"post_id": 4452, "ts": "2026-06-07T19:34:13Z", "hours": 2.2319, "text": "Milestone: From Static UI to Secure Multi-User App What I did: Since the last update on the UI dashboard, I have completely transformed the project from a static frontend into a secure, functional multi-user system using native PHP and MariaDB. Authentication & Session Management: Built a backend login system from scratch. Implemented secure password hashing using bcrypt. Set up native PHP sessions to track users across pages. Security Guards & Logout: Created a centralized guard script to prevent unauthorized URI access. If a user isn’t logged in, they are killed and redirected to the login page. Added a full session-destroying logout mechanism. Role-Based Access Control (RBAC): Differentiated the system for Admins, Engineers, and Clients. The UI now dynamically hides navigation links based on roles, and the backend explicitly throws a 403 Forbidden error if a non-admin tries to access the core control panel. Profile & Password Updates: Built a personal profile page that fetches current user details and handles password modification with server-side validation. The struggles: Ran into multiple syntax walls, including incorrect sql, forgotten POST block brackets, and a lot of typo mismatches. Also had to deal with MariaDB unique constraint violations during database seed testing, which I resolved by writing a structured TRUNCATE routine to clear tables before fresh seeding. Now the app actually feels like a secure industrial tool rather than just a Tailwind template."}, {"post_id": 1647, "ts": "2026-06-03T19:33:34Z", "hours": 0.3758, "text": "After getting the database connected, I built the main dashboard U, also I dont have any idea for design after hard day so I asked AI about help…"}, {"post_id": 1619, "ts": "2026-06-03T19:08:20Z", "hours": 1.1228, "text": "Honestly, it is my first time building a real website in PHP, and I realized I had completely forgotten most of my HTML and CSS. Today I successfully parsed the environment variables, securely connected the MariaDB database via PDO, and built a clean industrial dashboard layout using Tailwind CSS. EquipLane is finally coming to life."}, {"post_id": 1002, "ts": "2026-06-02T19:45:55Z", "hours": 0.9236, "text": "Today I set up the initial structure for Equiplane, an industrial equipment maintenance workflow system I prepared the first part of the database schema for the project, including the base tables for users and companies. The goal is to build a system where clients can report equipment failures, admins can assign engineers, and engineers can manage repair tickets."}]...
|
Title: Equiplane by @qqxzew | Stardance
Devlogs:
Title: Equiplane by @qqxzew | Stardance
Devlogs:
Today I set up the initial structure for Equiplane, an industrial equipment maintenance workflow system I prepared the first part of the database schema for the project, including the base tables for users and companies. The goal is to build a system where clients can report equipment failures, admins can assign engineers, and engineers can manage repair tickets.
Honestly, it is my first time building a real website in PHP, and I realized I had completely forgotten most of my HTML and CSS. Today I successfully parsed the environment variables, securely connected the MariaDB database via PDO, and built a clean industrial dashboard layout using Tailwind CSS. EquipLane is finally coming to life.
After getting the database connected, I built the main dashboard U, also I dont have any idea for design after hard day so I asked AI about help…
Milestone: From Static UI to Secure Multi-User App What I did: Since the last update on the UI dashboard, I have completely transformed the project from a static frontend into a secure, functional multi-user system using native PHP and MariaDB. Authentication & Session Management: Built a backend login system from scratch. Implemented secure password hashing using bcrypt. Set up native PHP sessions to track users across pages. Security Guards & Logout: Created a centralized guard script to prevent unauthorized URI access. If a user isn’t logged in, they are killed and redirected to the login page. Added a full session-destroying logout mechanism. Role-Based Access Control (RBAC): Differentiated the system for Admins, Engineers, and Clients. The UI now dynamically hides navigation links based on roles, and the backend explicitly throws a 403 Forbidden error if a non-admin tries to access the core control panel. Profile & Password Updates: Built a personal profile page that fetches current user details and handles password modification with server-side validation. The struggles: Ran into multiple syntax walls, including incorrect sql, forgotten POST block brackets, and a lot of typo mismatches. Also had to deal with MariaDB unique constraint violations during database seed testing, which I resolved by writing a structured TRUNCATE routine to clear tables before fresh seeding. Now the app actually feels like a secure industrial tool rather than just a Tailwind template.
Built the ticket creation page with role protection. Clients can now select their equipment, set priorities, and safely submit maintenance requests to the database via PDO prepared statements. The struggles: Broken the SQL query and html :>
What I did: Expanded the engineer’s resource reporting logic. When resolving a ticket, engineers are now required to input the exact hours spent and the cost of replacement parts. Built a financial calculation module on the backend that automatically aggregates these costs, applies the Czech 21% VAT (DPH), and displays a detailed invoice summary to admins and clients. Also implemented a critical backup request feature: engineers can now submit a “Request Backup” flag along with a specific text reason if they encounter blocking issues on-site. Admins immediately see an approval panel to either accept the request (and assign additional help) or reject it. The struggles: I had no idea for frontend
What I did: Massive architectural and security overhaul today. I completely rewrote the form submission logic to follow the Post-Redirect-Get (PRG) pattern, integrating session-based Flash messages and strict CSRF token validation across all endpoints. I also implemented “Sticky Forms” so users never lose their detailed text inputs if a validation error occurs. For the administration side, I built full CRUD interfaces to manage personnel roles, corporate clients, and the equipment registry without needing direct database access. Finally, I wrote SQL-level pagination for the main tickets table to keep the application fast and scalable as data grows. The struggles: I finally switched from VS Code to PhpStorm today and I am just in shock at how insanely cool and powerful it is. It instantly highlighted database schema mismatches I missed and forced me to write much cleaner code, though getting used to its strict warnings definitely took some time.
What I did: Wrapped up the EquipLane project and prepared it for my portfolio. I containerized the entire application using Docker and Docker Compose, linking a PHP 8.2 server with a MariaDB database so the whole environment can be spun up with a single command. I also set up a CI pipeline using GitHub Actions to automatically lint and check PHP syntax on every push. Finally, I generated a complete Entity-Relationship Diagram (ERD) to visualize the database architecture and wrote a comprehensive README explaining the core mechanics, security features, and the PRG pattern I implemented. The struggles: I definitely reached the limit of what makes sense to build with pure procedural PHP. Refactoring and maintaining this architecture showed me exactly why OOP and modern frameworks exist. It was a great learning experience for understanding the fundamentals, but I am definitely ready to move on to Nette for my next hackathon projects.
have add deployment😀
Ships:
I made EquipLane, an industrial maintenance ticketing system where clients can report equipment problems, engineers can manage assigned repair tasks, and admins can control the whole maintenance workflow. The hardest part was coming up with the idea and building the project from scratch without much previous experience. I had to figure out the structure, database, roles, authentication, and the whole workflow step by step. I’m most proud that I was able to finish a working project and also make the GitHub repository look organized and well documented. This is my first major portfolio project, so I’m proud that it turned into something complete. To test it, just open the project link and log in using the demo credentials from the README....
|
1792986551.0074582
|
1793072951.0074582
|
|
5359
|
Multi Tenant Business Management Backend by @NHero Multi Tenant Business Management Backend by @NHero | Stardance...
|
NHero
|
1
|
45.35
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-10T18:18:26Z", "hours": 24.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "What did you make? I built an open-source business management platform backend with authentication, Google OAuth, workspaces, clients, products/services, invoices, payments, analytics, PDF invoice generation, email delivery, and Docker support. What was challenging? Building a scalable architecture, writing integration tests, handling workspace permissions, debugging file uploads, and getting Puppeteer PDF generation working reliably in Docker. What are you proud of? The complete business workflow, clean architecture, Dockerized deployment, and 39+ integration tests that help ensure reliability. How can people test it? Docker setup and environment configuration are included. They can directly docker compose or run using bun or npm", "repo": "https://github.com/NHeroOP/Business-Management-System-Backend", "demo": "https://bms-api.nhero.xyz/"}]...
|
[{"post_id": 81802, "ts": "202 [{"post_id": 81802, "ts": "2026-10-22T16:22:15Z", "hours": 4.79, "text": "Devlog 09 So, I combine two stardance projects (backend, frontend) into one (fullstack), at the time I thought I could ship both together but I had to have both repos connected in one project, I didn’t know at the time and I then abandoned the project and this project was the backend & I added the frontend repo to it so all the fronted devlogs are gone. In this devlog I will write the changes made to backend after the previous devlog + I will summarised what was done in the fronted so far and after this devlog, I will write the devlog as normal as you guys will catch up to speed. Backend (Express) In zod using z.number() or .date() were resulting in error if passed as a string as data would always get converted to string before reaching backend so i added z.coerce -> z.coerce.number() or .date Added github actions workflow to automatically pull changes and build with docker + fixed perms issue in Dockerfile. Added redirecting of / to /docs Frontend (NextJS) Auth Pages are done (Login, Signup, Forgot-Password, Reset-Password) with zod and react-hook-form validation Pages are made using shadcn ui components Home page is done with listing of business that user is a part of Sidebar, header, Create-business-form and BusinessCard, invoice table components are also commited"}, {"post_id": 14821, "ts": "2026-06-24T02:09:36Z", "hours": 12.4956, "text": "Devlog - 08 Since I was building a front end for this project and when designing the front end I didn’t had a route for getting all the businesses the logged in user is part of. So I added that route to show all the businesses on the home page of dashboard And also I have email, password login so I needed a route to verify the user who has used email password using a verification code sent on their email. So I updated the user model and added that route too. Next thing was I added those routes to my openApi docs and also I updated my readme.md and other mds in root docs/ folder. One more thing is left in this project is to have separate analytics routes for separate modules like clients analytics, products analytics then main dashboard analytics. I will make them once a get a jump on front end since I’m laking behind there"}, {"post_id": 7051, "ts": "2026-06-11T20:20:17Z", "hours": 4.06, "text": "Devlog - 07 Since its a Backend API so I needed to create a api endpoints docs to showcase the project to other people as some UI helps in showcasing I used scalar and openAPI docs for my project, It took me some time to understand what to do but I was finally able to do it And then during deployment I made an error of putting some dependencies into dev dependencies as they were prefixed with @ . Finally was able to get my docker deployment working"}, {"post_id": 6343, "ts": "2026-06-10T17:57:14Z", "hours": 0.4814, "text": "Devlog -6 Added a analytics endpoint and its time to end the backend project and move on to the frontend of the project. If issues come up designing the frontend, will have to comeback to fix it. Till then i have deployed it with docker on railway.com"}, {"post_id": 6303, "ts": "2026-06-10T16:33:42Z", "hours": 1.8367, "text": "Devlog - 05 After adding tests, I decided to dockerize the project. But i was using puppeteer and it causes some issues in docker so i changed it to puppeteer-core and add install commands for chromium separately in docker file. I made everything work after some brutal hours of debugging and fixing and learning as this is my first time working with docker"}, {"post_id": 5832, "ts": "2026-06-09T19:30:25Z", "hours": 10.0192, "text": "Devlog 4 - Backend Testing Marathon 🧪 Spent few days building out integration tests for my Express + TypeScript backend. Added test coverage for: User registration & login Refresh token flow Forgot/reset password Clients Products (including file uploads) Invoices & payments Workspace/business authorization Also set up: MongoDB Memory Server for isolated test databases Factories for generating users, businesses, invoices, products, etc. Mocks for Cloudinary, Resend, and bcrypt Ran into a pretty annoying EPIPE error while testing multipart file uploads. After a lot of debugging, I tracked it down to file stream handling in tests. Switching upload tests to use Buffers instead of fixture files made the suite stable again. Current stats: 39 tests 15 test files Full integration test suite passing ✅"}, {"post_id": 3764, "ts": "2026-06-06T20:16:39Z", "hours": 2.3275, "text": "Refactoring code and setup for tests"}, {"post_id": 2613, "ts": "2026-06-05T07:23:35Z", "hours": 4.2178, "text": "Bug Fixes, And Logic Polishing"}, {"post_id": 959, "ts": "2026-06-02T18:45:41Z", "hours": 4.6642, "text": "Added Zod validation to the project"}]...
|
Title: Multi Tenant Business Management Backend by Title: Multi Tenant Business Management Backend by @NHero | Stardance
Devlogs:
Added Zod validation to the project
Bug Fixes, And Logic Polishing
Refactoring code and setup for tests
Devlog 4 - Backend Testing Marathon 🧪 Spent few days building out integration tests for my Express + TypeScript backend. Added test coverage for: User registration & login Refresh token flow Forgot/reset password Clients Products (including file uploads) Invoices & payments Workspace/business authorization Also set up: MongoDB Memory Server for isolated test databases Factories for generating users, businesses, invoices, products, etc. Mocks for Cloudinary, Resend, and bcrypt Ran into a pretty annoying EPIPE error while testing multipart file uploads. After a lot of debugging, I tracked it down to file stream handling in tests. Switching upload tests to use Buffers instead of fixture files made the suite stable again. Current stats: 39 tests 15 test files Full integration test suite passing ✅
Devlog - 05 After adding tests, I decided to dockerize the project. But i was using puppeteer and it causes some issues in docker so i changed it to puppeteer-core and add install commands for chromium separately in docker file. I made everything work after some brutal hours of debugging and fixing and learning as this is my first time working with docker
Devlog -6 Added a analytics endpoint and its time to end the backend project and move on to the frontend of the project. If issues come up designing the frontend, will have to comeback to fix it. Till then i have deployed it with docker on railway.com
Devlog - 07 Since its a Backend API so I needed to create a api endpoints docs to showcase the project to other people as some UI helps in showcasing I used scalar and openAPI docs for my project, It took me some time to understand what to do but I was finally able to do it And then during deployment I made an error of putting some dependencies into dev dependencies as they were prefixed with @ . Finally was able to get my docker deployment working
Devlog - 08 Since I was building a front end for this project and when designing the front end I didn’t had a route for getting all the businesses the logged in user is part of. So I added that route to show all the businesses on the home page of dashboard And also I have email, password login so I needed a route to verify the user who has used email password using a verification code sent on their email. So I updated the user model and added that route too. Next thing was I added those routes to my openApi docs and also I updated my readme.md and other mds in root docs/ folder. One more thing is left in this project is to have separate analytics routes for separate modules like clients analytics, products analytics then main dashboard analytics. I will make them once a get a jump on front end since I’m laking behind there
Devlog 09 So, I combine two stardance projects (backend, frontend) into one (fullstack), at the time I thought I could ship both together but I had to have both repos connected in one project, I didn’t know at the time and I then abandoned the project and this project was the backend & I added the frontend repo to it so all the fronted devlogs are gone. In this devlog I will write the changes made to backend after the previous devlog + I will summarised what was done in the fronted so far and after this devlog, I will write the devlog as normal as you guys will catch up to speed. Backend (Express) In zod using z.number() or .date() were resulting in error if passed as a string as data would always get converted to string before reaching backend so i added z.coerce -> z.coerce.number() or .date Added github actions workflow to automatically pull changes and build with docker + fixed perms issue in Dockerfile. Added redirecting of / to /docs Frontend (NextJS) Auth Pages are done (Login, Signup, Forgot-Password, Reset-Password) with zod and react-hook-form validation Pages are made using shadcn ui components Home page is done with listing of business that user is a part of Sidebar, header, Create-business-form and BusinessCard, invoice table components are also commited
Ships:
What did you make? I built an open-source business management platform backend with authentication, Google OAuth, workspaces, clients, products/services, invoices, payments, analytics, PDF invoice generation, email delivery, and Docker support. What was challenging? Building a scalable architecture, writing integration tests, handling workspace permissions, debugging file uploads, and getting Puppeteer PDF generation working reliably in Docker. What are you proud of? The complete business workflow, clean architecture, Dockerized deployment, and 39+ integration tests that help ensure reliability. How can people test it? Docker setup and environment configuration are included. They can directly docker compose or run using bun or npm...
|
1792972527.1247857
|
1793058927.1247857
|
|
5377
|
Fight Game by @Hamstersarus | Stardance
|
Hamstersarus
|
1
|
5.0
|
39
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-23T02:31:26Z", "hours": 5.0, "multiplier": 7.23, "payout": 39, "blessing": "neutral", "text": "This is a Java turn-based fighting game where monsters, creatures, and chaos agents battle on a 10×10 arena. The intent of this project is to demonstrate software development in Java with heavy use of a modern LLM tool. I used Anthropic’s Claude Sonnet 4.6 with occasional use of Opus 4.7. The development environment I chose is VSCode along with Claude CLI. This project serves as the final project in my APCSA Java programming class. The use of these AI tools is in contrast to everything we’ve done in the course where prior use of LLMs was prohibited.", "repo": "https://github.com/Hamstersarus/FightGame", "demo": "https://fight.hamstersarus.hackclub.app/"}]...
|
[{"post_id": 14089, "ts": "202 [{"post_id": 14089, "ts": "2026-06-23T02:25:50Z", "hours": 1.8631, "text": "I added a demo url. I have a docker file that I connect to Render which hosts my website."}, {"post_id": 5698, "ts": "2026-06-09T16:16:04Z", "hours": 1.8578, "text": "The quit option: Added a Q — Quit option to the action menu so it appears on every turn. Typing it exits the game cleanly with a goodbye message. It’s also documented on the instructions screen now. Trimming dead code: Character.java carried a full set of getters and setters that nothing in the game actually called — every field is accessed directly. I removed all of them, so Character.java is now just its fields, the ANSI color constants, and a constructor, which is exactly what a data-model class should be. Board.java documentation: Added thorough inline comments throughout Board.java, explaining the grid primitives, the ANSI cursor-positioning trick used in printBoard() (the CELL/START column math that keeps emoji aligned), and every map-object method. The big one — an automated test harness: The headline addition is TestHarness.java, a standalone tool that stress-tests the whole combat system. It runs every character against every character — all 100 matchups, 20 times each, in two passes (once with map objects, once without) for roughly 4,000 battles. Both fighters are driven by the existing opponent AI, so no input is needed. Each battle is wrapped to catch any exception or assertion failure, and a turn cap catches any battle that never ends. At the end it prints a win-rate matrix plus a count of any crashes or timeouts. Making this fast required one small change to Fight.java: an animationsEnabled flag, because the attack animation uses Thread.sleep and 4,000 battles of real-time animation would take hours. The flag defaults to on, so normal play is unaffected; the harness flips it off. I wrote the full design into CLAUDE.md before building it. The first run came back completely clean — 0 exceptions, 0 timeouts, all in about 300ms — and the results matrix matched expectations (Dragon dominates, Goblin and Zombie struggle), which is a good sign the combat, ability, shield, and map-object systems all hold up under every pairing. Smaller touches: Added a credits line under the title screen, updated the README with the quit option, the new file, and a testing section."}, {"post_id": 1238, "ts": "2026-06-03T02:52:11Z", "hours": 1.7181, "text": "The biggest change this session was a major refactor of how the code is organized across files. Fight.java was getting bloated as the game controller, so logic was redistributed to the classes that actually own it. Board.java gained five new methods: printBoard() (the bordered grid renderer), spawnObjects(), checkObjectInteraction(), restoreHouseIfVacating(), and ejectFromHouseIfExpired(). All of the map object logic now lives alongside the board data it operates on, rather than sitting in the game controller as static helpers. Opponent.java absorbed moveOpponentToward() and opponentAI() as instance methods. An opponent now knows how to move and take its turn — Fight.java just calls opponent.opponentAI(…) instead of running all that logic externally. Fight.java is now significantly leaner, focused only on game setup, the turn loop, player input, and UI rendering. On the bug fix side, the shield raise failure messages (“Something is in the way”) were moved out of raiseShield() and into the player-only call site. Previously these messages would print whenever the opponent AI tried and failed to raise its shield, which confused players who weren’t doing anything with their shield. The board display was also reworked to use ANSI cursor column positioning (\\033[nG) to force each cell to a fixed terminal column, solving a long-standing alignment issue where emoji with different display widths would push cells out of place. The instructions screen was rewritten — cleaner language, shorter sentences, and a new map objects section explaining how the house, hospital, and heart work. The “(I) How to play” hint was moved to sit next to the “Choose your character” header so it’s visible before scrolling through the roster. The README was also reviewed and is current."}]...
|
Title: Fight Game by @Hamstersarus | Stardance
De Title: Fight Game by @Hamstersarus | Stardance
Devlogs:
The biggest change this session was a major refactor of how the code is organized across files. Fight.java was getting bloated as the game controller, so logic was redistributed to the classes that actually own it. Board.java gained five new methods: printBoard() (the bordered grid renderer), spawnObjects(), checkObjectInteraction(), restoreHouseIfVacating(), and ejectFromHouseIfExpired(). All of the map object logic now lives alongside the board data it operates on, rather than sitting in the game controller as static helpers. Opponent.java absorbed moveOpponentToward() and opponentAI() as instance methods. An opponent now knows how to move and take its turn — Fight.java just calls opponent.opponentAI(…) instead of running all that logic externally. Fight.java is now significantly leaner, focused only on game setup, the turn loop, player input, and UI rendering. On the bug fix side, the shield raise failure messages (“Something is in the way”) were moved out of raiseShield() and into the player-only call site. Previously these messages would print whenever the opponent AI tried and failed to raise its shield, which confused players who weren’t doing anything with their shield. The board display was also reworked to use ANSI cursor column positioning (\033[nG) to force each cell to a fixed terminal column, solving a long-standing alignment issue where emoji with different display widths would push cells out of place. The instructions screen was rewritten — cleaner language, shorter sentences, and a new map objects section explaining how the house, hospital, and heart work. The “(I) How to play” hint was moved to sit next to the “Choose your character” header so it’s visible before scrolling through the roster. The README was also reviewed and is current.
The quit option: Added a Q — Quit option to the action menu so it appears on every turn. Typing it exits the game cleanly with a goodbye message. It’s also documented on the instructions screen now. Trimming dead code: Character.java carried a full set of getters and setters that nothing in the game actually called — every field is accessed directly. I removed all of them, so Character.java is now just its fields, the ANSI color constants, and a constructor, which is exactly what a data-model class should be. Board.java documentation: Added thorough inline comments throughout Board.java, explaining the grid primitives, the ANSI cursor-positioning trick used in printBoard() (the CELL/START column math that keeps emoji aligned), and every map-object method. The big one — an automated test harness: The headline addition is TestHarness.java, a standalone tool that stress-tests the whole combat system. It runs every character against every character — all 100 matchups, 20 times each, in two passes (once with map objects, once without) for roughly 4,000 battles. Both fighters are driven by the existing opponent AI, so no input is needed. Each battle is wrapped to catch any exception or assertion failure, and a turn cap catches any battle that never ends. At the end it prints a win-rate matrix plus a count of any crashes or timeouts. Making this fast required one small change to Fight.java: an animationsEnabled flag, because the attack animation uses Thread.sleep and 4,000 battles of real-time animation would take hours. The flag defaults to on, so normal play is unaffected; the harness flips it off. I wrote the full design into CLAUDE.md before building it. The first run came back completely clean — 0 exceptions, 0 timeouts, all in about 300ms — and the results matrix matched expectations (Dragon dominates, Goblin and Zombie struggle), which is a good sign the combat, ability, shield, and map-object systems all hold up under every pairing. Smaller touches: Added a credits line under the title screen, updated the README with the quit option, the new file, and a testing section.
I added a demo url. I have a docker file that I connect to Render which hosts my website.
Ships:
This is a Java turn-based fighting game where monsters, creatures, and chaos agents battle on a 10×10 arena. The intent of this project is to demonstrate software development in Java with heavy use of a modern LLM tool. I used Anthropic’s Claude Sonnet 4.6 with occasional use of Opus 4.7. The development environment I chose is VSCode along with Claude CLI. This project serves as the final project in my APCSA Java programming class. The use of these AI tools is in contrast to everything we’ve done in the course where prior use of LLMs was prohibited....
|
1792982958.0819476
|
1793069358.0819476
|
|
5429
|
Simple ball physics by @Unknown | Stardance
|
Unknown
|
1
|
3.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-02T23:29:05Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made an simple physics engine with rust one of the most hardest language and this was tough i learned a lot of things on the way. for people to use this they just need to use cargo install ball-engine", "repo": "https://github.com/parth2152012/ball-engine", "demo": "https://youtu.be/wHnqk7BGGVs"}]...
|
[{"post_id": 1087, "ts": "2026 [{"post_id": 1087, "ts": "2026-06-02T22:12:11Z", "hours": 2.0731, "text": "Hi everyone i have finished my project"}, {"post_id": 988, "ts": "2026-06-02T19:25:04Z", "hours": 1.3894, "text": "Hello everyone so i am currently working on a rust project trying to make an physics engine of balls currently i can draw the balls and simulate them i will now try to add ball collision i will keep all of you updated after this project i am planing to make like an 2d game engine :)"}]...
|
Title: Simple ball physics by @Unknown | Stardance Title: Simple ball physics by @Unknown | Stardance
Devlogs:
Hello everyone so i am currently working on a rust project trying to make an physics engine of balls currently i can draw the balls and simulate them i will now try to add ball collision i will keep all of you updated after this project i am planing to make like an 2d game engine :)
Hi everyone i have finished my project
Ships:
I made an simple physics engine with rust one of the most hardest language and this was tough i learned a lot of things on the way. for people to use this they just need to use cargo install ball-engine...
|
1792993959.3859062
|
1793080359.3859062
|
|
5433
|
Google by @Ahmed_Gayipov | Stardance
|
Ahmed_Gayipov
|
1
|
3.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-16T16:39:34Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a similar working version of google", "repo": "https://github.com/Cr7-is-the-best/my3-python", "demo": "https://github.com/Cr7-is-the-best/my3-python.git"}]...
|
[{"post_id": 996, "ts": "2026- [{"post_id": 996, "ts": "2026-06-02T19:35:10Z", "hours": 2.6653, "text": "Look at the Google that i made so far"}]...
|
Title: Google by @Ahmed_Gayipov | Stardance
Devlo Title: Google by @Ahmed_Gayipov | Stardance
Devlogs:
Look at the Google that i made so far
Ships:
I made a similar working version of google...
|
1792878853.5403235
|
1793742853.5403235
|
|
5445
|
UpRevise by @porgsrpogs | Stardance
|
porgsrpogs
|
1
|
54.0
|
606
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-28T21:58:32Z", "hours": 54.0, "multiplier": 11.23, "payout": 606, "blessing": "neutral", "text": "I made an AI revision website that learns what question formats help the user improve the most. Having struggled to find any modules online that could be used for my specific case it was a struggle creating the right file to optimise the weights for each question format. I’m proud to have stuck with this project for such a large amount of time and I’m happy with the great structures and practices I’ve maintained. The main thing anyone should know BEFORE REVIEWING MY SITE is that this project should only be reviewed and tested on a DESKTOP/LAPTOP as small screens can hinder the website’s full experience.", "repo": "https://github.com/POrGSrPOGS/ai-revision-website", "demo": "https://porgsrpogs.hackclub.app/"}]...
|
[{"post_id": 36665, "ts": "202 [{"post_id": 36665, "ts": "2026-07-28T21:25:54Z", "hours": 1.4619, "text": "Devlog 14… Preparing to ship Updated README Updated questions to be space themed To view the website, Click Here"}, {"post_id": 34257, "ts": "2026-07-24T20:00:46Z", "hours": 3.8211, "text": "– Devlog 13 (AI UPDATE) Updated sessionShortcuts to use a factory function pattern which allows me to create an object using request as a parameter once, and then access session data easily without having to submit request as a parameter each time. e.g const questionId = sessionShortcuts.getCurrentQuestionId() no request parameter is required. Updated AI logic to track what the ai’s suggestion was for each answer and see how that suggestion affected improvement, previously the AI would look at the most recent proposal and credit that the improvement, the new logic tracks the ai’s predicted optimum ratio for each question and tracks improvement individually rather than the last system which would use gross improvement. To view the website, Click Here"}, {"post_id": 32524, "ts": "2026-07-21T19:16:45Z", "hours": 5.1464, "text": "Devlog 12 What is UpRevise? It’s a revision website which adapts to how the user learns best to improve efficiency when studying Changelog: General refactoring Added sessionShortcuts which includes helper functions involving session data Code now uses sessionShortcuts to get data rather than hardcoding session data keys throughout multiple files Fixed bug where the same question would appear multiple times in a row Fixed normaliser function so all punctuation is replaced from answers before comparing to correct answers Updated short answer and mark feedback styling To view the website, click here"}, {"post_id": 20767, "ts": "2026-07-02T13:45:37Z", "hours": 3.3989, "text": "Devlog 11 Recap: A revision website that uses AI to adapt to the most effective revision methods, personalised for each user Changelog: States for finding the best combination of question formats are now displayed via ratio format and is updated for every question answered Fixed marking logic for GapFill questions which would cause false negatives Switched the question topics for more general ones to give a better experience for anyone who wants to try it out VIEW SITE NOTE: Questions must be answered multiple times before the ratios can adapt"}, {"post_id": 17159, "ts": "2026-06-27T21:03:00Z", "hours": 9.4075, "text": "Devlog 10 Project: AI focused revision website to learn how you learn, and use that to improve revision Changelog: Tested two main AI models, used basic versions of Bayesian Bandits and Reinforcement learning Reinforcement learning performed the best and was chosen to be used as the model to learn a user’s preference of question formats (e.g GapFill, MultipleChoice, ShortAnswer) Add reward file for converting variables to a 0-1 score so it can be easily interpreted by ai models Data for models is saved in session data using express as a temporary fix, I plan to move data including past marks on questions and AI weights to a database further down the line. Media: Screenshot of the state and proposal of the reinforcement learning model after answering a few questions where only ShortAnswer question formats were answered correctly and the other formats were purposely answered wrong VIEW SITE"}, {"post_id": 15631, "ts": "2026-06-25T12:54:12Z", "hours": 0.5697, "text": "(Mini) Devlog 9 Project Recap: A website to help students revise faster and more efficiently using simple but effective AI Changelog: Fixed some of questionsBank.json because the mark points were written incorrectly Added colour coding to help users understand where they went wrong/right in their answer TRY OUT MY SITE"}, {"post_id": 15267, "ts": "2026-06-24T19:57:41Z", "hours": 2.7622, "text": "Devlog 8 Project Aim: Build a revision website that uses machine learning to help students learn new topics even faster Changelog: Users now receive additional feedback which specifies which of the “keywords” in their answers were correct, incorrect or ignored (Due to repetition etc) Updated marking logic so a user cannot gain multiple marks for the same marking point (E.g NOT getting 2 marks for saying “4 and four” in response to “2 + 2”) Reinforced old logic that had been lost to prevent keywords in an answer being detected as filler words (Such as “and” etc) VIEW SITE"}, {"post_id": 11989, "ts": "2026-06-19T15:51:11Z", "hours": 1.5108, "text": "Devlog 7 Project description: An ai-focused revision website to improve the efficiency in learning for students Changelog Edited structure of questions in questionBank.json to allow for synonym answers Reconfigured marking logic to suit new structure Reconstructed the mark feedback visuals to clearly separate each marking point CLICK TO TRY SITE"}, {"post_id": 10538, "ts": "2026-06-17T09:33:53Z", "hours": 2.6572, "text": "Devlog 6 RECAP: UpRevise is a revision website that will eventually use machine learning to adapt to how different students learn and progress fastest Changelog Added fill in the blank/gap question types Fixed marking logic causing answers to be case sensitive Debugged some things like input boxes being too small CLICK TO VIEW SITE"}, {"post_id": 10073, "ts": "2026-06-16T17:31:55Z", "hours": 5.7492, "text": "Devlog 5 RECAP: A revision website that aims to adapt to how a user learns to help them learn faster [Machine learning hasn’t been added YET] Changelog: Added the ability to select multiple options at once in multiple choice Updated marking logic to be more accurate when marking answers (Like punishing for extra, incorrect answers) Fixed some minor ui stuff like centering of feedback text Made it easier to add more question formats by giving more control to jsx files managing how different question formats display TLDR: Added multi-select to multiple choice questions and made the system mark more accurately CLICK TO TRY SITE"}, {"post_id": 7065, "ts": "2026-06-11T20:42:53Z", "hours": 5.1311, "text": "Devlog 4 Recap: UpRevise is a website for revising and will in the future, hopefully, use machine learning to help students learn more efficiently Changelog The enter key can now be used to easily cycle through questions instead of manually clicking submit and next Responses are colour coded, varying the visuals to reflect full marks, partial marks, and no marks. There is now a system for adding different question formats, currently the website includes: Short Answers and Multiple Choice. Refactored some of home.jsx so api calls are handled in client/src/services HIGHLIGHT: Made an easily expandable system to add multiple question formats like text input answers and multiple choice questions CLICK TO VIEW THE SITE"}, {"post_id": 5746, "ts": "2026-06-09T17:25:50Z", "hours": 8.2725, "text": "Devlog 3 Recap: Revision website to try and increase efficiency in learning so students can carry on spending the same amount of time revising, but with better results. Changelog Refactored loads of my Home.jsx and some other files to become more modular Switched to tailwindcss Updated UI Removed some unnecessary things like dark/light mode to focus on functionality rather than visuals Reduced the amount of react states I was using by like 50% whilst maintaining the same functionality TLDR: I focused mostly on improving my structure so I can greatly increase my future rates of progress Click To View The Site!"}, {"post_id": 2715, "ts": "2026-06-05T13:17:39Z", "hours": 1.9461, "text": "DevLog #2 About UpRevise - A revision website that will focus on adapting to how the user learns best Changes Shows you some of the answers you could have given to get full marks. Site is now publicly accessible thanks to Nest Updated logging and API to make debugging easier Access site: View Site Constructive criticism IS APPRECIATED"}, {"post_id": 1692, "ts": "2026-06-03T20:55:32Z", "hours": 2.3997, "text": "Devlog #1 Introduction For several years I’ve been exploring programming and, more specifically, machine learning. After a miserable attempt where Claude became the main contributor, I have decided to start from scratch and begin making my ai powered revision website. What is the aim? Reducing wasted time - Everyone learns differently, the intent is to make a website that can adapt to whoever is using it. Progress so far (Humble beginnings) Since the start of June I’ve: Polished a simple question prompting and answering system Created an easily expandable filtering system which currently uses subjects and topics Added sessions to track user data such as current question to create a server authoritative secure system. Attachments: A demo of answering questions with a filter of Subject: General and Topic: Academic"}]...
|
Title: UpRevise by @porgsrpogs | Stardance
Devlog Title: UpRevise by @porgsrpogs | Stardance
Devlogs:
Devlog #1 Introduction For several years I’ve been exploring programming and, more specifically, machine learning. After a miserable attempt where Claude became the main contributor, I have decided to start from scratch and begin making my ai powered revision website. What is the aim? Reducing wasted time - Everyone learns differently, the intent is to make a website that can adapt to whoever is using it. Progress so far (Humble beginnings) Since the start of June I’ve: Polished a simple question prompting and answering system Created an easily expandable filtering system which currently uses subjects and topics Added sessions to track user data such as current question to create a server authoritative secure system. Attachments: A demo of answering questions with a filter of Subject: General and Topic: Academic
DevLog #2 About UpRevise - A revision website that will focus on adapting to how the user learns best Changes Shows you some of the answers you could have given to get full marks. Site is now publicly accessible thanks to Nest Updated logging and API to make debugging easier Access site: View Site Constructive criticism IS APPRECIATED
Devlog 3 Recap: Revision website to try and increase efficiency in learning so students can carry on spending the same amount of time revising, but with better results. Changelog Refactored loads of my Home.jsx and some other files to become more modular Switched to tailwindcss Updated UI Removed some unnecessary things like dark/light mode to focus on functionality rather than visuals Reduced the amount of react states I was using by like 50% whilst maintaining the same functionality TLDR: I focused mostly on improving my structure so I can greatly increase my future rates of progress Click To View The Site!
Devlog 4 Recap: UpRevise is a website for revising and will in the future, hopefully, use machine learning to help students learn more efficiently Changelog The enter key can now be used to easily cycle through questions instead of manually clicking submit and next Responses are colour coded, varying the visuals to reflect full marks, partial marks, and no marks. There is now a system for adding different question formats, currently the website includes: Short Answers and Multiple Choice. Refactored some of home.jsx so api calls are handled in client/src/services HIGHLIGHT: Made an easily expandable system to add multiple question formats like text input answers and multiple choice questions CLICK TO VIEW THE SITE
Devlog 5 RECAP: A revision website that aims to adapt to how a user learns to help them learn faster [Machine learning hasn’t been added YET] Changelog: Added the ability to select multiple options at once in multiple choice Updated marking logic to be more accurate when marking answers (Like punishing for extra, incorrect answers) Fixed some minor ui stuff like centering of feedback text Made it easier to add more question formats by giving more control to jsx files managing how different question formats display TLDR: Added multi-select to multiple choice questions and made the system mark more accurately CLICK TO TRY SITE
Devlog 6 RECAP: UpRevise is a revision website that will eventually use machine learning to adapt to how different students learn and progress fastest Changelog Added fill in the blank/gap question types Fixed marking logic causing answers to be case sensitive Debugged some things like input boxes being too small CLICK TO VIEW SITE
Devlog 7 Project description: An ai-focused revision website to improve the efficiency in learning for students Changelog Edited structure of questions in questionBank.json to allow for synonym answers Reconfigured marking logic to suit new structure Reconstructed the mark feedback visuals to clearly separate each marking point CLICK TO TRY SITE
Devlog 8 Project Aim: Build a revision website that uses machine learning to help students learn new topics even faster Changelog: Users now receive additional feedback which specifies which of the “keywords” in their answers were correct, incorrect or ignored (Due to repetition etc) Updated marking logic so a user cannot gain multiple marks for the same marking point (E.g NOT getting 2 marks for saying “4 and four” in response to “2 + 2”) Reinforced old logic that had been lost to prevent keywords in an answer being detected as filler words (Such as “and” etc) VIEW SITE
(Mini) Devlog 9 Project Recap: A website to help students revise faster and more efficiently using simple but effective AI Changelog: Fixed some of questionsBank.json because the mark points were written incorrectly Added colour coding to help users understand where they went wrong/right in their answer TRY OUT MY SITE
Devlog 10 Project: AI focused revision website to learn how you learn, and use that to improve revision Changelog: Tested two main AI models, used basic versions of Bayesian Bandits and Reinforcement learning Reinforcement learning performed the best and was chosen to be used as the model to learn a user’s preference of question formats (e.g GapFill, MultipleChoice, ShortAnswer) Add reward file for converting variables to a 0-1 score so it can be easily interpreted by ai models Data for models is saved in session data using express as a temporary fix, I plan to move data including past marks on questions and AI weights to a database further down the line. Media: Screenshot of the state and proposal of the reinforcement learning model after answering a few questions where only ShortAnswer question formats were answered correctly and the other formats were purposely answered wrong VIEW SITE
Devlog 11 Recap: A revision website that uses AI to adapt to the most effective revision methods, personalised for each user Changelog: States for finding the best combination of question formats are now displayed via ratio format and is updated for every question answered Fixed marking logic for GapFill questions which would cause false negatives Switched the question topics for more general ones to give a better experience for anyone who wants to try it out VIEW SITE NOTE: Questions must be answered multiple times before the ratios can adapt
Devlog 12 What is UpRevise? It’s a revision website which adapts to how the user learns best to improve efficiency when studying Changelog: General refactoring Added sessionShortcuts which includes helper functions involving session data Code now uses sessionShortcuts to get data rather than hardcoding session data keys throughout multiple files Fixed bug where the same question would appear multiple times in a row Fixed normaliser function so all punctuation is replaced from answers before comparing to correct answers Updated short answer and mark feedback styling To view the website, click here
– Devlog 13 (AI UPDATE) Updated sessionShortcuts to use a factory function pattern which allows me to create an object using request as a parameter once, and then access session data easily without having to submit request as a parameter each time. e.g const questionId = sessionShortcuts.getCurrentQuestionId() no request parameter is required. Updated AI logic to track what the ai’s suggestion was for each answer and see how that suggestion affected improvement, previously the AI would look at the most recent proposal and credit that the improvement, the new logic tracks the ai’s predicted optimum ratio for each question and tracks improvement individually rather than the last system which would use gross improvement. To view the website, Click Here
Devlog 14… Preparing to ship Updated README Updated questions to be space themed To view the website, Click Here
Ships:
I made an AI revision website that learns what question formats help the user improve the most. Having struggled to find any modules online that could be used for my specific case it was a struggle creating the right file to optimise the weights for each question format. I’m proud to have stuck with this project for such a large amount of time and I’m happy with the great structures and practices I’ve maintained. The main thing anyone should know BEFORE REVIEWING MY SITE is that this project should only be reviewed and tested on a DESKTOP/LAPTOP as small screens can hinder the website’s full experience....
|
1792975725.1264439
|
1793062125.1264439
|
|
5451
|
Chess.com stats slack bot by @marcsello | Stardanc Chess.com stats slack bot by @marcsello | Stardance...
|
marcsello
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-02T22:33:39Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a Slack bot that returns data from the chess.com api. This is my first backend project and it was a lot of fun.", "repo": "https://github.com/MarcselloDev/chesscomstatsslackbot", "demo": "https://hackclub.enterprise.slack.com/archives/C0B7SD8GBTQ"}]...
|
[{"post_id": 1094, "ts": "2026 [{"post_id": 1094, "ts": "2026-06-02T22:26:19Z", "hours": 1.4853, "text": "Created the Slack Bot Commands: /chesscomprofile Displays stats about a user on Chess.com. /chesscomgames Displays the last 3 games of a user on Chess.com in the current month. /chesscompuzzle Returns a link to a random daily puzzle on Chess.com."}]...
|
Title: Chess.com stats slack bot by @marcsello | S Title: Chess.com stats slack bot by @marcsello | Stardance
Devlogs:
Created the Slack Bot Commands: /chesscomprofile Displays stats about a user on Chess.com. /chesscomgames Displays the last 3 games of a user on Chess.com in the current month. /chesscompuzzle Returns a link to a random daily puzzle on Chess.com.
Ships:
I made a Slack bot that returns data from the chess.com api. This is my first backend project and it was a lot of fun....
|
1792975940.7007134
|
1793062340.7007134
|
|
5456
|
ATLAS by @Scout | Stardance
|
Scout
|
1
|
1.33
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-08T20:27:31Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "This is ATLAS, a Image search and geo recognition tool that uses VLMs (Visual Language Models) to scan a string of images, guess where they were taken, and supply estimated coordinates. (As said in my Dev log the coordinates may be off wildly, this is a known issue being worked on currently) The code is being worked on every week and major updates are to come, V3.3 is not the final model. I plan a V4 very soon…", "repo": "https://github.com/ScoutV41/ATLAS", "demo": "https://github.com/ScoutV41/ATLAS/releases/tag/D1"}]...
|
[{"post_id": 25712, "ts": "202 [{"post_id": 25712, "ts": "2026-07-10T04:30:44Z", "hours": 0.3333, "text": "D-LOG #2 (Based on work from the past month, was on vaca sorry for taking forever) Build: ATLASV3.3(L) Biggest changes: Full luminance curve pre-pass Instead of just thresholding each frame’s brightness individually, the script now buckets every image into 5-minute slots, builds a brightness curve across the entire dataset, and derives actual sunrise/sunset intervals from where the curve crosses DAY_THRESHOLD (20.0). There’s also a MIN_DAY_DURATION floor (1 hour) so a passing cloud or a lens flare can’t fake a fake “day.” Anything outside a real daylight window gets logged as NIGHT_CURVE_SKIPPED and skipped before the VLM even sees it saves a ton of compute on a big folder. Results get merged: Shadow angle -> circular mean across models, flagged DISAGREE if spread > 45° Shadow length / density / rock texture / volcanic features -> majority vote Plant types / rock colors -> unioned into one combined list Latitude derivation Previous versions only estimated longitude. v3.3 adds a day-length-based latitude calc, it finds the longest daylight interval in the dataset, converts that duration into a sunset hour angle, and solves for latitude using solar declination for the day of year. Search area validation Both derived coordinates now get checked against a Haversine distance from a defined SEARCH_CENTER / SEARCH_RADIUS_KM, with a clean ✅ / ❌ status line and a fallback bounding box printed if the point lands outside the circle. Habitat classifier got smarter HABITAT_RULES is now a proper rule list -> each biome match is a lambda checking keyword hits across plant types, rock color, and vegetation density instead of a flat tally. Sonoran/Chihuahuan/Mojave/Colorado Plateau/Cascades/Sierra-Great Basin/High Desert/Mixed Conifer are all still in there, just with tighter matching logic. Parser resilience parse_field() handles models that randomly bold their output ( SHADOW_ANGLE: etc.) and normalizes stray ° symbols and none/n/a/null variants down to “unknown” so downstream math doesn’t choke on garbage strings. Known issue, flagging this for myself before I forget The longitude calc in main() is currently hardcoded, not pulling from the actual solar_noon_avg computed earlier in the run: day_of_year = 138 # May 18th eot = 3.65 # Verified EoT for Day 1 noon_secs = 84495 # Verified 23:28:15 UTC trajectory That’s leftover from debugging against the sample dataset, it means every run right now spits out the same longitude regardless of what images you actually feed it, which is obviously not the goal. Latitude is properly dynamic (built off intervals from the real daylight curve), longitude isn’t yet. Top priority fix for the next patch, need to swap those three constants for the real per-dataset solar_noon_avg / Julian day / EoT calc instead of the frozen debug values. Next up Wire the real solar_noon_avg (already computed in compute_solar_noon()) into the longitude block instead of the hardcoded Day 1 constants Maybe expand HABITAT_RULES matching beyond simple keyword hits, closer to weighted scoring Look into whether internvl2_5-4b is pulling its weight in the ensemble or just adding runtime for marginal disagreement value"}, {"post_id": 2525, "ts": "2026-06-05T01:55:27Z", "hours": 1.4319, "text": "Devlog - 01 A few weeks ago I almost helped find $20K buried somewhere in the American southwest. ATLAS is the image recognition pipeline I built to try. It Works by taking a feed of images (50+ for best results, I used 625 for my tests) sending them through Various Local VLMs for inference. (Via LM Studio) I’ve been working on this project for weeks, decided to share it with everyone here. Currently I am working on Version 3.3. Previous models of ATLAS only utilized one VLM for inference, I had noticed the outputs to be significantly off course. So In V3.3 I designed it to use an ensemble system. Instead of using one model, it cross checks data between 2 or more. Then determines the winning output from all models. This way if one model hallucinates and the others don’t, Your data wont be skewed… Though I am still working out some bugs, as V3.3 has been off course by a MARGIN. It runs a user defined boundary. So instead of having to manually check coordinates yourself you’d know if it was incorrect instantly. Though V3.3 doesn’t really respect the boundary, so I need to get that fixed. -(My latest test ran 4,355Km off target. this is a known geometry bug in the coordinate derivation, not the inference pipeline itself) The speed at which ATLAS Processes images depends entirely on your hardware and number/type of model(s) you are using. Example: (Using qwen 2.5 7B (Q4_K_M), and Moondream 2 (Q4) 600 Frames Estimated Times Best tier GPU: RTX 4090, Dual RTX 3090s, Mac Studio M3 Ultra, etc… Runtime: Qwen 2.5 7B ~0.25 seconds Moondream2 ~0.08 seconds Total: 3 to 4 minutes High Tier GPU: RTX 4080, RTX 4070 Ti Super, M3 Max, etc… Runtime Qwen 2.5 7B ~0.60 seconds Moondream2 ~0.20 seconds Total: 6 to 8 minutes Mid tier GPU: RTX 4060 Ti (16GB), RTX 4070, M3 Pro, etc… Runtime Qwen 2.5 7B ~2.00 seconds Moondream2 ~0.50 seconds Total: 22 to 30 minutes Low tier GPU: RTX 3050, GTX 1660 Super, Base M1/M2 Mac, etc… Runtime: Qwen 2.5 7B ~5.00 seconds Moondream2 ~1.20 seconds Total: 1 to 1.5 hours CPU Only: Core i9 / Ryzen 9 (32GB DDR5 RAM), etc… Runtime: Qwen 2.5 7B ~35.00 seconds Moondream2 ~7.00 seconds Total: 6 to 8 hours (tested on RX 9070 XT 16GB) Updated features: Global Luminance Profiling: maps brightness across the entire dataset to skip night frames before inference, saves ~10% compute Triple-Model Consensus Pass: runs 3 VLMs in parallel and cross-checks outputs to filter hallucinations Orbital Mechanics Longitude Tracking: derives longitude from solar noon timing in image timestamps Haversine Validator: checks derived coordinates against the search boundary using spherical earth math Currently working on fixing shadow angle calculation (Keeps returning unknown for certain vectors), and Search area constraint bias. (Image shows V3.3 running with a Tri-Qwen ensemble)"}]...
|
Title: ATLAS by @Scout | Stardance
Devlogs:
Devlo Title: ATLAS by @Scout | Stardance
Devlogs:
Devlog - 01 A few weeks ago I almost helped find $20K buried somewhere in the American southwest. ATLAS is the image recognition pipeline I built to try. It Works by taking a feed of images (50+ for best results, I used 625 for my tests) sending them through Various Local VLMs for inference. (Via LM Studio) I’ve been working on this project for weeks, decided to share it with everyone here. Currently I am working on Version 3.3. Previous models of ATLAS only utilized one VLM for inference, I had noticed the outputs to be significantly off course. So In V3.3 I designed it to use an ensemble system. Instead of using one model, it cross checks data between 2 or more. Then determines the winning output from all models. This way if one model hallucinates and the others don’t, Your data wont be skewed… Though I am still working out some bugs, as V3.3 has been off course by a MARGIN. It runs a user defined boundary. So instead of having to manually check coordinates yourself you’d know if it was incorrect instantly. Though V3.3 doesn’t really respect the boundary, so I need to get that fixed. -(My latest test ran 4,355Km off target. this is a known geometry bug in the coordinate derivation, not the inference pipeline itself) The speed at which ATLAS Processes images depends entirely on your hardware and number/type of model(s) you are using. Example: (Using qwen 2.5 7B (Q4_K_M), and Moondream 2 (Q4) 600 Frames Estimated Times Best tier GPU: RTX 4090, Dual RTX 3090s, Mac Studio M3 Ultra, etc… Runtime: Qwen 2.5 7B ~0.25 seconds Moondream2 ~0.08 seconds Total: 3 to 4 minutes High Tier GPU: RTX 4080, RTX 4070 Ti Super, M3 Max, etc… Runtime Qwen 2.5 7B ~0.60 seconds Moondream2 ~0.20 seconds Total: 6 to 8 minutes Mid tier GPU: RTX 4060 Ti (16GB), RTX 4070, M3 Pro, etc… Runtime Qwen 2.5 7B ~2.00 seconds Moondream2 ~0.50 seconds Total: 22 to 30 minutes Low tier GPU: RTX 3050, GTX 1660 Super, Base M1/M2 Mac, etc… Runtime: Qwen 2.5 7B ~5.00 seconds Moondream2 ~1.20 seconds Total: 1 to 1.5 hours CPU Only: Core i9 / Ryzen 9 (32GB DDR5 RAM), etc… Runtime: Qwen 2.5 7B ~35.00 seconds Moondream2 ~7.00 seconds Total: 6 to 8 hours (tested on RX 9070 XT 16GB) Updated features: Global Luminance Profiling: maps brightness across the entire dataset to skip night frames before inference, saves ~10% compute Triple-Model Consensus Pass: runs 3 VLMs in parallel and cross-checks outputs to filter hallucinations Orbital Mechanics Longitude Tracking: derives longitude from solar noon timing in image timestamps Haversine Validator: checks derived coordinates against the search boundary using spherical earth math Currently working on fixing shadow angle calculation (Keeps returning unknown for certain vectors), and Search area constraint bias. (Image shows V3.3 running with a Tri-Qwen ensemble)
D-LOG #2 (Based on work from the past month, was on vaca sorry for taking forever) Build: ATLASV3.3(L) Biggest changes: Full luminance curve pre-pass Instead of just thresholding each frame’s brightness individually, the script now buckets every image into 5-minute slots, builds a brightness curve across the entire dataset, and derives actual sunrise/sunset intervals from where the curve crosses DAY_THRESHOLD (20.0). There’s also a MIN_DAY_DURATION floor (1 hour) so a passing cloud or a lens flare can’t fake a fake “day.” Anything outside a real daylight window gets logged as NIGHT_CURVE_SKIPPED and skipped before the VLM even sees it saves a ton of compute on a big folder. Results get merged: Shadow angle -> circular mean across models, flagged DISAGREE if spread > 45° Shadow length / density / rock texture / volcanic features -> majority vote Plant types / rock colors -> unioned into one combined list Latitude derivation Previous versions only estimated longitude. v3.3 adds a day-length-based latitude calc, it finds the longest daylight interval in the dataset, converts that duration into a sunset hour angle, and solves for latitude using solar declination for the day of year. Search area validation Both derived coordinates now get checked against a Haversine distance from a defined SEARCH_CENTER / SEARCH_RADIUS_KM, with a clean ✅ / ❌ status line and a fallback bounding box printed if the point lands outside the circle. Habitat classifier got smarter HABITAT_RULES is now a proper rule list -> each biome match is a lambda checking keyword hits across plant types, rock color, and vegetation density instead of a flat tally. Sonoran/Chihuahuan/Mojave/Colorado Plateau/Cascades/Sierra-Great Basin/High Desert/Mixed Conifer are all still in there, just with tighter matching logic. Parser resilience parse_field() handles models that randomly bold their output ( SHADOW_ANGLE: etc.) and normalizes stray ° symbols and none/n/a/null variants down to “unknown” so downstream math doesn’t choke on garbage strings. Known issue, flagging this for myself before I forget The longitude calc in main() is currently hardcoded, not pulling from the actual solar_noon_avg computed earlier in the run: day_of_year = 138 # May 18th eot = 3.65 # Verified EoT for Day 1 noon_secs = 84495 # Verified 23:28:15 UTC trajectory That’s leftover from debugging against the sample dataset, it means every run right now spits out the same longitude regardless of what images you actually feed it, which is obviously not the goal. Latitude is properly dynamic (built off intervals from the real daylight curve), longitude isn’t yet. Top priority fix for the next patch, need to swap those three constants for the real per-dataset solar_noon_avg / Julian day / EoT calc instead of the frozen debug values. Next up Wire the real solar_noon_avg (already computed in compute_solar_noon()) into the longitude block instead of the hardcoded Day 1 constants Maybe expand HABITAT_RULES matching beyond simple keyword hits, closer to weighted scoring Look into whether internvl2_5-4b is pulling its weight in the ensemble or just adding runtime for marginal disagreement value
Ships:
This is ATLAS, a Image search and geo recognition tool that uses VLMs (Visual Language Models) to scan a string of images, guess where they were taken, and supply estimated coordinates. (As said in my Dev log the coordinates may be off wildly, this is a known issue being worked on currently) The code is being worked on every week and major updates are to come, V3.3 is not the final model. I plan a V4 very soon…...
|
1792972453.7229612
|
1793058853.7229612
|
|
5480
|
Jarned V1 by @Jarned | Stardance
|
Jarned
|
1
|
8.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-08T20:44:48Z", "hours": 8.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a small but functional hackpad with 5 keys, a volume knob and an OLED screen. The part that I found the most challenging was the KiCad and it’s routing tool. While I am now fairly good at it, I was definitely struggling at the start. The part that I’m the most proud of is the KMK python itself. I had never used it, I didn’t let AI write a single line of code for me and I managed to do it with the help of google and their documentation. I hope to get a grant from Outpost to get the materials to build my project.", "repo": "https://github.com/Jarned-rs/Jarned-V1", "demo": ""}]...
|
[{"post_id": 5142, "ts": "2026 [{"post_id": 5142, "ts": "2026-06-08T20:35:09Z", "hours": 1.6825, "text": "Devlog #4 (final) I have reached the end of this amazing (in some ways) project. In this time I managed to organise all my files and write an actual README and make some final tweaks. While my project isn’t the best or the most skilled, I think that I did very well for this being my first project of this sort ever. For the last time- Jarned"}, {"post_id": 4970, "ts": "2026-06-08T16:53:15Z", "hours": 2.6533, "text": "Devlog #3 Managed to finally finish my case and the code! (still in shock how I managed to string my 8 braincells together to make it work). All that remains is file management… The case is basic but functional and has 5 key spaces, a rotary encoder and an OLED. I honestly think that it could be better but for a first project I’m proud of it. The code is also extremely basic with all the keys set to F13 onwards so I can create my own shortcuts through Windows. Let’s hope that they approve my project! Jarned"}, {"post_id": 2887, "ts": "2026-06-05T19:47:18Z", "hours": 2.6356, "text": "Devlog #2 - Jarned V1 After dealing with my 41 errors, deleting my work twice, asking too many stupid questions to Claude. I got my KiCad exported and started my 3D model I haven’t used a 3D modelling engine in about 2 years… so let’s just say that I couldn’t draw a rectangle for 20 mins. However, it seems like my braincells have started to function and I have started my top section of the case. Let’s hope that my good luck continues Jarned"}, {"post_id": 2214, "ts": "2026-06-04T16:25:45Z", "hours": 0.7158, "text": "Devlog #1 - Jarned V1 Today, I made my initial design for my PCB using the basic guide. While it still has too many errors to count, my 5 push switches, my OLED screen and my rotary encoder seem to be coming together after reading a whole books worth of KiCad tutorials where people who know way more than me debate over the smallest of things. The PCB seems simple yet DRC keeps on giving me an error which forces me to start over!"}]...
|
Title: Jarned V1 by @Jarned | Stardance
Devlogs:
Title: Jarned V1 by @Jarned | Stardance
Devlogs:
Devlog #1 - Jarned V1 Today, I made my initial design for my PCB using the basic guide. While it still has too many errors to count, my 5 push switches, my OLED screen and my rotary encoder seem to be coming together after reading a whole books worth of KiCad tutorials where people who know way more than me debate over the smallest of things. The PCB seems simple yet DRC keeps on giving me an error which forces me to start over!
Devlog #2 - Jarned V1 After dealing with my 41 errors, deleting my work twice, asking too many stupid questions to Claude. I got my KiCad exported and started my 3D model I haven’t used a 3D modelling engine in about 2 years… so let’s just say that I couldn’t draw a rectangle for 20 mins. However, it seems like my braincells have started to function and I have started my top section of the case. Let’s hope that my good luck continues Jarned
Devlog #3 Managed to finally finish my case and the code! (still in shock how I managed to string my 8 braincells together to make it work). All that remains is file management… The case is basic but functional and has 5 key spaces, a rotary encoder and an OLED. I honestly think that it could be better but for a first project I’m proud of it. The code is also extremely basic with all the keys set to F13 onwards so I can create my own shortcuts through Windows. Let’s hope that they approve my project! Jarned
Devlog #4 (final) I have reached the end of this amazing (in some ways) project. In this time I managed to organise all my files and write an actual README and make some final tweaks. While my project isn’t the best or the most skilled, I think that I did very well for this being my first project of this sort ever. For the last time- Jarned
Ships:
I made a small but functional hackpad with 5 keys, a volume knob and an OLED screen. The part that I found the most challenging was the KiCad and it’s routing tool. While I am now fairly good at it, I was definitely struggling at the start. The part that I’m the most proud of is the KMK python itself. I had never used it, I didn’t let AI write a single line of code for me and I managed to do it with the help of google and their documentation. I hope to get a grant from Outpost to get the materials to build my project....
|
1792972232.4609456
|
1793058632.4609456
|
|
5502
|
SortPY by @panda | Stardance
|
panda
|
1
|
3.0
|
21
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-16T20:43:16Z", "hours": 3.0, "multiplier": 7.24, "payout": 21, "blessing": "neutral", "text": "A python-based filesorter that sorts files into folders based on either category or file extension - it can be run in the background too, for permanently sorted files :) P.S : I use it for my downloads folder, it works like a charm.", "repo": "https://github.com/mail2adnanyazik-bit/filesort/", "demo": "https://pypi.org/project/panda-filesorter/0.2.0/"}]...
|
[{"post_id": 1573, "ts": "2026 [{"post_id": 1573, "ts": "2026-06-03T17:50:29Z", "hours": 1.2533, "text": "Uploaded project to PyPI, pushed to GitHub, and added pip install as Installation method in readme"}, {"post_id": 1492, "ts": "2026-06-03T15:37:23Z", "hours": 0.8256, "text": "turned the .py file into an actual cli package and tested - did some troubleshooting. What i did : Added a contant running flag (-bg for backgorund), that lets it constantly watch for files in the given directory and then sorts them according to instructions added a simple banner that displays whenever the command is run made it easy to start and stop it in the background"}, {"post_id": 1053, "ts": "2026-06-02T21:11:00Z", "hours": 0.2658, "text": "Added a recursive flag (nested directories) and a copy flag (only copying, no moving files)"}, {"post_id": 1034, "ts": "2026-06-02T20:29:27Z", "hours": 0.4931, "text": "Just created the system to move files that end with specified extension from one folder to another"}]...
|
Title: SortPY by @panda | Stardance
Devlogs:
Just Title: SortPY by @panda | Stardance
Devlogs:
Just created the system to move files that end with specified extension from one folder to another
Added a recursive flag (nested directories) and a copy flag (only copying, no moving files)
turned the .py file into an actual cli package and tested - did some troubleshooting. What i did : Added a contant running flag (-bg for backgorund), that lets it constantly watch for files in the given directory and then sorts them according to instructions added a simple banner that displays whenever the command is run made it easy to start and stop it in the background
Uploaded project to PyPI, pushed to GitHub, and added pip install as Installation method in readme
Ships:
A python-based filesorter that sorts files into folders based on either category or file extension - it can be run in the background too, for permanently sorted files :) P.S : I use it for my downloads folder, it works like a charm....
|
1792997744.5052364
|
1793084144.5052364
|
|
5513
|
Virtual Pet Game by @shadxen-fx | Stardance
|
shadxen-fx
|
1
|
8.91
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-24T20:00:57Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made Thunder McKing — a tamagotchi-style virtual pet game where your pet is a race car. You have to keep his fuel, mood, energy and health up or it’s game over. The biggest challenge was ditching my entire Python build halfway through. I’d spent hours on the logic as a Python class before realising I actually needed a browser game, not a terminal app. Switching to JavaScript from scratch mid-project was rough but the right call. I’m most proud of how the car reacts visually — he has 5 custom illustrated states (happy, hungry, sad, sleepy, sick) and swaps between them in real time based on his stats. When his health is low he looks genuinely miserable, which makes you actually want to help him. To test it — just hit the demo link and try neglecting him for a bit. Let his fuel tank empty and watch him suffer. Then rescue him before his engine blows!", "repo": "https://github.com/Shadxen-fxcodes/Virtual-Pet", "demo": "https://shadxen-fxcodes.github.io/Virtual-Pet/"}]...
|
[{"post_id": 53385, "ts": "202 [{"post_id": 53385, "ts": "2026-08-23T22:17:42Z", "hours": 0.7853, "text": "Dev Log — Styling & Code Refactor CSS Redesign: I just realised I used the wrong images in my last dev log, but overall I slightly updated and polished the project’s CSS for a cleaner look and better UI responsiveness. Code Optimisation: Rewrote and refactored previous AI-generated code snippets to ensure every part of the codebase is 100% my own work."}, {"post_id": 49876, "ts": "2026-08-18T20:31:24Z", "hours": 5.1267, "text": "Today was a massive 5-hour grind, completely transforming the game from a basic pet project into a much deeper, higher-octane experience. The primary focus was a complete design overhaul for Thunder McKing, ditching the old look in favor of a modern, aggressive NASCAR stock car. The new character design features aerodynamic lines, a high-mounted rear spoiler, Goodyear-style racing slicks, and custom race decals. To make the garage look seamless, every character mood (happy, hungry, sad, sick, sleepy) was re-rendered on isolated transparent backgrounds. A smooth cross-fading system was implemented in the code so when Thunder’s state drops or recovers, the visuals morph fluidly without any clunky image snapping.With the core visuals locked in, the garage environment and pit crew system were expanded to give players more active control over Thunder’s stats. A brand-new tire service mechanic was added, requiring strategic pit stops to keep the race setup performing at its peak alongside the refuel, rest, and engine repair actions. The entire dashboard UI was also overhauled, featuring retro neon gauge tracks, critical low-stat warning alerts, and real-time state detection that reacts immediately to how well Thunder is cared for.The biggest chunk of the build session went into completely rewriting the Race Mode mini-game engine from the ground up. The basic track was replaced with an updated racing canvas that supports fresh map layouts, sharper cornering, and refined driving physics—including custom acceleration curves, drifting feedback, and off-track sand hazards. To make the track feel alive, dynamic AI competitor cars were added to weave around, along with a lap-timing system that tracks split times, triggers flash effects on new laps, and saves your absolute best lap and race records. The result is a much tighter, more rewarding game loop that bridges the gap between pet management and arcade racing!"}, {"post_id": 15263, "ts": "2026-06-24T19:38:03Z", "hours": 0.6186, "text": "Dev Log - Final Log So this project did NOT go how I planned. At all. I started out building Thunder McKing in Python. Made a whole Pet class, got the stats working — hunger, happiness, energy, health — even had a game loop ticking away. Spent a good few hours on it, honestly thought I was close to done. Then I hit a wall. Python is great for logic but the moment I wanted to actually show the pet on screen with images and buttons and stuff, it got complicated fast. I had these five custom illustrations of a little race car — happy, sad, hungry, sleepy, sick — and I really wanted them front and centre, not just some text in a terminal. So I made the call to scrap the Python build and switch to JavaScript + HTML. Bit of a painful decision after all that time, but the right one. JS just made way more sense for what I was actually trying to make — a proper interactive game you can open in a browser, tap buttons, see the car react. The rebuild went quicker than expected. I carried over all the core logic from my Python project — the stat system, the decay loop, the health penalty when hunger gets too low — and rewrote it in JS. Then built the UI around it: four action buttons (Refuel, Race, Rest, Fix Up), animated stat bars that pulse red when critical, and the car image swapping dynamically based on whatever state he’s in. If he’s hungry you see the hungry car. If he’s about to die you see the sick one. Little details like that make it feel alive. Got it running with Live Server in VS Code which was a nice workflow — save the file, browser updates instantly. Biggest lesson from this whole thing: don’t get too attached to your first approach. The Python version wasn’t wasted time — it helped me figure out the logic before I built the real thing. Sometimes you have to build it wrong first. BUT…. After an initial review after shipping I received feedback to change that overly AI generated look, and to change that up I decided to make the UI a bit more “Radiator Springs” vibe with that rustic Route 66, dusty desert, neon signs, cracked asphalt, the whole look to bring the simulator together. I tried to make a small mini game inside, and instead of an infinite road sim, i made a small track where you have to control a small 8-bit version of Thunder around the circuit and race him to victory!"}, {"post_id": 6723, "ts": "2026-06-11T08:16:39Z", "hours": 1.2964, "text": "Dev Log 2 - 09/06/2026 What works now Feed, Play, Sleep buttons all work Stats update in real time (hunger, happiness, energy, health, coins) Pet image changes based on stats (happy, sad, sick, hungry, sleepy) Game loop runs every 5 seconds and drains stats over time ⸻ Fixes done Fixed broken button commands Fixed sleep button bug Fixed unreliable colour changes Cleaned up update system Made one shared click effect system ⸻ Current state Fully playable basic pet game No crashes or broken buttons UI and stats stay in sync ⸻ Next ideas Save/load system Animations Coin shop Sound effects DISCLAIMER This is nowhere near the final product, I will be using some graphic design knowledge to make the UI more nice to look at and less blocky, I also want to make the images transition a bit better and add a few catchphrases and stuff as well. Any suggestions, please leave below."}, {"post_id": 6399, "ts": "2026-06-10T19:22:01Z", "hours": 0.9183, "text": "Dev Log 1 – Thunder McKing Date: 10/06/2026 Today I started my virtual pet project called Thunder McKing. I set up the basic project structure and created the main Python file using Tkinter to open a game window. I also began building a simple Pet class for the character. I had a few issues with setup and file paths at first, but I fixed them by organising my folders properly and testing the program step by step. Next, I will add a pet image and start working on basic interactions like mood and feeding."}]...
|
Title: Virtual Pet Game by @shadxen-fx | Stardance Title: Virtual Pet Game by @shadxen-fx | Stardance
Devlogs:
Dev Log 1 – Thunder McKing Date: 10/06/2026 Today I started my virtual pet project called Thunder McKing. I set up the basic project structure and created the main Python file using Tkinter to open a game window. I also began building a simple Pet class for the character. I had a few issues with setup and file paths at first, but I fixed them by organising my folders properly and testing the program step by step. Next, I will add a pet image and start working on basic interactions like mood and feeding.
Dev Log 2 - 09/06/2026 What works now Feed, Play, Sleep buttons all work Stats update in real time (hunger, happiness, energy, health, coins) Pet image changes based on stats (happy, sad, sick, hungry, sleepy) Game loop runs every 5 seconds and drains stats over time ⸻ Fixes done Fixed broken button commands Fixed sleep button bug Fixed unreliable colour changes Cleaned up update system Made one shared click effect system ⸻ Current state Fully playable basic pet game No crashes or broken buttons UI and stats stay in sync ⸻ Next ideas Save/load system Animations Coin shop Sound effects DISCLAIMER This is nowhere near the final product, I will be using some graphic design knowledge to make the UI more nice to look at and less blocky, I also want to make the images transition a bit better and add a few catchphrases and stuff as well. Any suggestions, please leave below.
Dev Log - Final Log So this project did NOT go how I planned. At all. I started out building Thunder McKing in Python. Made a whole Pet class, got the stats working — hunger, happiness, energy, health — even had a game loop ticking away. Spent a good few hours on it, honestly thought I was close to done. Then I hit a wall. Python is great for logic but the moment I wanted to actually show the pet on screen with images and buttons and stuff, it got complicated fast. I had these five custom illustrations of a little race car — happy, sad, hungry, sleepy, sick — and I really wanted them front and centre, not just some text in a terminal. So I made the call to scrap the Python build and switch to JavaScript + HTML. Bit of a painful decision after all that time, but the right one. JS just made way more sense for what I was actually trying to make — a proper interactive game you can open in a browser, tap buttons, see the car react. The rebuild went quicker than expected. I carried over all the core logic from my Python project — the stat system, the decay loop, the health penalty when hunger gets too low — and rewrote it in JS. Then built the UI around it: four action buttons (Refuel, Race, Rest, Fix Up), animated stat bars that pulse red when critical, and the car image swapping dynamically based on whatever state he’s in. If he’s hungry you see the hungry car. If he’s about to die you see the sick one. Little details like that make it feel alive. Got it running with Live Server in VS Code which was a nice workflow — save the file, browser updates instantly. Biggest lesson from this whole thing: don’t get too attached to your first approach. The Python version wasn’t wasted time — it helped me figure out the logic before I built the real thing. Sometimes you have to build it wrong first. BUT…. After an initial review after shipping I received feedback to change that overly AI generated look, and to change that up I decided to make the UI a bit more “Radiator Springs” vibe with that rustic Route 66, dusty desert, neon signs, cracked asphalt, the whole look to bring the simulator together. I tried to make a small mini game inside, and instead of an infinite road sim, i made a small track where you have to control a small 8-bit version of Thunder around the circuit and race him to victory!
Today was a massive 5-hour grind, completely transforming the game from a basic pet project into a much deeper, higher-octane experience. The primary focus was a complete design overhaul for Thunder McKing, ditching the old look in favor of a modern, aggressive NASCAR stock car. The new character design features aerodynamic lines, a high-mounted rear spoiler, Goodyear-style racing slicks, and custom race decals. To make the garage look seamless, every character mood (happy, hungry, sad, sick, sleepy) was re-rendered on isolated transparent backgrounds. A smooth cross-fading system was implemented in the code so when Thunder’s state drops or recovers, the visuals morph fluidly without any clunky image snapping.With the core visuals locked in, the garage environment and pit crew system were expanded to give players more active control over Thunder’s stats. A brand-new tire service mechanic was added, requiring strategic pit stops to keep the race setup performing at its peak alongside the refuel, rest, and engine repair actions. The entire dashboard UI was also overhauled, featuring retro neon gauge tracks, critical low-stat warning alerts, and real-time state detection that reacts immediately to how well Thunder is cared for.The biggest chunk of the build session went into completely rewriting the Race Mode mini-game engine from the ground up. The basic track was replaced with an updated racing canvas that supports fresh map layouts, sharper cornering, and refined driving physics—including custom acceleration curves, drifting feedback, and off-track sand hazards. To make the track feel alive, dynamic AI competitor cars were added to weave around, along with a lap-timing system that tracks split times, triggers flash effects on new laps, and saves your absolute best lap and race records. The result is a much tighter, more rewarding game loop that bridges the gap between pet management and arcade racing!
Dev Log — Styling & Code Refactor CSS Redesign: I just realised I used the wrong images in my last dev log, but overall I slightly updated and polished the project’s CSS for a cleaner look and better UI responsiveness. Code Optimisation: Rewrote and refactored previous AI-generated code snippets to ensure every part of the codebase is 100% my own work.
Ships:
I made Thunder McKing — a tamagotchi-style virtual pet game where your pet is a race car. You have to keep his fuel, mood, energy and health up or it’s game over. The biggest challenge was ditching my entire Python build halfway through. I’d spent hours on the logic as a Python class before realising I actually needed a browser game, not a terminal app. Switching to JavaScript from scratch mid-project was rough but the right call. I’m most proud of how the car reacts visually — he has 5 custom illustrated states (happy, hungry, sad, sleepy, sick) and swaps between them in real time based on his stats. When his health is low he looks genuinely miserable, which makes you actually want to help him. To test it — just hit the demo link and try neglecting him for a bit. Let his fuel tank empty and watch him suffer. Then rescue him before his engine blows!...
|
1792997529.2591352
|
1793083929.2591352
|
|
5530
|
Magic Ritual Mod by @m3e660 | Stardance
|
m3e660
|
1
|
9.21
|
41
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-04T14:22:23Z", "hours": 5.0, "multiplier": 8.58, "payout": 41, "blessing": "neutral", "text": "This is a 1.21.1 Neoforge Magic Mod for Mincraft, this mod differs from the past magic mods, and focus more on long term and thought out magic rituals!", "repo": "https://github.com/m3e66/magic_ritual_mod-source", "demo": "https://modrinth.com/mod/magic-ritual"}]...
|
[{"post_id": 12009, "ts": "202 [{"post_id": 12009, "ts": "2026-06-19T16:23:53Z", "hours": 2.4439, "text": "Made different grades for spirit stones Make it less laggy Increase the particle cap for minecraft"}, {"post_id": 2765, "ts": "2026-06-05T15:41:24Z", "hours": 1.7611, "text": "Fixed the structure of the particle data"}, {"post_id": 2149, "ts": "2026-06-04T14:17:39Z", "hours": 2.2792, "text": "Finally fix the combo detection code and even add a new effect when the combo is formed"}, {"post_id": 1255, "ts": "2026-06-03T03:40:57Z", "hours": 2.4672, "text": "Fixed the Patchouli entries and catergories"}]...
|
Title: Magic Ritual Mod by @m3e660 | Stardance
De Title: Magic Ritual Mod by @m3e660 | Stardance
Devlogs:
Fixed the Patchouli entries and catergories
Finally fix the combo detection code and even add a new effect when the combo is formed
Fixed the structure of the particle data
Made different grades for spirit stones Make it less laggy Increase the particle cap for minecraft
Ships:
This is a 1.21.1 Neoforge Magic Mod for Mincraft, this mod differs from the past magic mods, and focus more on long term and thought out magic rituals!...
|
1792979355.5512626
|
1793065755.5512626
|
|
5535
|
Ender Relay by @Oren | Stardance
|
Oren
|
1
|
13.79
|
96
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-03T23:35:21Z", "hours": 10.0, "multiplier": 9.63, "payout": 96, "blessing": "neutral", "text": "I made a Minecraft mod from the concept presented in this video https://www.youtube.com/watch?v=L1i4izl25V4 . This is a project I started two years ago and I now moved it into a multi-loader project, and actively working on porting it to more versions and modloaders and improving it in general. It was one of the first mods I’ve worked on although simple it was very fun. It is already released for 1.19.2 and 1.20.1 forge on CurseForge and Modrinth.", "repo": "https://github.com/CrownSheep/Ender-Relay", "demo": "https://modrinth.com/mod/ender-relay-ff"}]...
|
[{"post_id": 11648, "ts": "202 [{"post_id": 11648, "ts": "2026-06-18T23:57:33Z", "hours": 3.7864, "text": "I ported the project to fabric!!! although only 1.20.1 for now, I’m planning to release it for more versions in the future, especially the newer ones."}, {"post_id": 1749, "ts": "2026-06-03T22:45:54Z", "hours": 9.9675, "text": "This is a minecraft mod I started working on about two years ago, I now transformed it by using what’s called a Multi-Loader project instead of managing different projects for each minecraft version and mod loader I have them all grouped in up in one editor, even with auto publishing if I set it up!"}]...
|
Title: Ender Relay by @Oren | Stardance
Devlogs:
Title: Ender Relay by @Oren | Stardance
Devlogs:
This is a minecraft mod I started working on about two years ago, I now transformed it by using what’s called a Multi-Loader project instead of managing different projects for each minecraft version and mod loader I have them all grouped in up in one editor, even with auto publishing if I set it up!
I ported the project to fabric!!! although only 1.20.1 for now, I’m planning to release it for more versions in the future, especially the newer ones.
Ships:
I made a Minecraft mod from the concept presented in this video https://www.youtube.com/watch?v=L1i4izl25V4 . This is a project I started two years ago and I now moved it into a multi-loader project, and actively working on porting it to more versions and modloaders and improving it in general. It was one of the first mods I’ve worked on although simple it was very fun. It is already released for 1.19.2 and 1.20.1 forge on CurseForge and Modrinth....
|
1792979254.9490132
|
1793065654.9490132
|
|
5541
|
MeetPad by @planema | Stardance
|
planema
|
1
|
1.0
|
5
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-22T15:34:10Z", "hours": 1.0, "multiplier": 5.0, "payout": 5, "blessing": "neutral", "text": "I made a hack pad called meetpad for zoom meetings and other types of online calls. It has shortcuts like mute, leave, camera, and more. The hardest part of this project was a few times when I was confused about the exact measurements and things like that, I really liked this project because it it something people can make and get themselves. Overall my best project!", "repo": "https://github.com/dacowpilot/Meet-Pad", "demo": ""}]...
|
[{"post_id": 52426, "ts": "202 [{"post_id": 52426, "ts": "2026-08-22T15:31:47Z", "hours": 1.0889, "text": "I finally got everything working and put together!"}, {"post_id": 25375, "ts": "2026-07-09T17:01:27Z", "hours": 1.15, "text": "I finished the case for my hack pad with the pcb and all parts in it. Now I have to make the firmware then I will be done"}, {"post_id": 24903, "ts": "2026-07-08T19:20:33Z", "hours": 3.5547, "text": "I am almost done with the 3D printed case design. I made the holes for screws and switches, now I just gotta make a few more adjustments and finish it. after that im going to move onto the firmware. I put a few photos of the case renderings below."}, {"post_id": 17121, "ts": "2026-06-27T20:05:11Z", "hours": 1.9003, "text": "I finished the PCB design and defined the edges, then I routed the wires and ran the check to make sure everything would work. There are some pictures below of it. The OLED pins look a bit tall but it’s ok because I am going to make it higher up in the CAD model. My next step is to take the measurements of the board and make a fitting CAD model with all of the other custom designs. Any suggestions??? - my last post hasn’t gotten any yet it’s probably because i’m new :|"}, {"post_id": 16614, "ts": "2026-06-27T01:03:28Z", "hours": 0.5167, "text": "This is my first hardware project called MeetPad. The goal of my macropad is to make functions like mute, camera, volume controls, and other helpful shortcuts easier to use for online meetings. - So far, I have completed the schematic and started to build the actual PCB layout as you can see in the images below. ALSO, the 31 minutes that is logged was for the PCB only, but it was actually like an hour or 2 for the whole schematic but that was before I figured out how to do lapse. - My next steps are to work on and finish the PCB design so I can move on to the CAD model. Any Suggestions? i’m new :)"}]...
|
Title: MeetPad by @planema | Stardance
Devlogs:
T Title: MeetPad by @planema | Stardance
Devlogs:
This is my first hardware project called MeetPad. The goal of my macropad is to make functions like mute, camera, volume controls, and other helpful shortcuts easier to use for online meetings. - So far, I have completed the schematic and started to build the actual PCB layout as you can see in the images below. ALSO, the 31 minutes that is logged was for the PCB only, but it was actually like an hour or 2 for the whole schematic but that was before I figured out how to do lapse. - My next steps are to work on and finish the PCB design so I can move on to the CAD model. Any Suggestions? i’m new :)
I finished the PCB design and defined the edges, then I routed the wires and ran the check to make sure everything would work. There are some pictures below of it. The OLED pins look a bit tall but it’s ok because I am going to make it higher up in the CAD model. My next step is to take the measurements of the board and make a fitting CAD model with all of the other custom designs. Any suggestions??? - my last post hasn’t gotten any yet it’s probably because i’m new :|
I am almost done with the 3D printed case design. I made the holes for screws and switches, now I just gotta make a few more adjustments and finish it. after that im going to move onto the firmware. I put a few photos of the case renderings below.
I finished the case for my hack pad with the pcb and all parts in it. Now I have to make the firmware then I will be done
I finally got everything working and put together!
Ships:
I made a hack pad called meetpad for zoom meetings and other types of online calls. It has shortcuts like mute, leave, camera, and more. The hardest part of this project was a few times when I was confused about the exact measurements and things like that, I really liked this project because it it something people can make and get themselves. Overall my best project!...
|
1792983295.8057864
|
1793069695.8057864
|
|
5543
|
Joystick Journey Shop by @arhan_levaku4 | Stardanc Joystick Journey Shop by @arhan_levaku4 | Stardance...
|
arhan_levaku4
|
1
|
8.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-02T14:20:07Z", "hours": 8.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "What did I make? Joystick Journey is a full e-commerce website for a physical product I actually built — a joystick-controlled marble maze with swappable boards. The site is built from scratch in Next.js 15 with CSS Modules, Framer Motion animations, Stripe for real payments, and Resend for branded confirmation emails. You can browse the product, pick your maze color, joystick color, and bundle size, check out securely, and get a confirmation email automatically. The product is real and already has its first sales. What was challenging? Three things genuinely tripped me up. First, Next.js 15’s App Router has strict rules about client vs server components. I kept hitting “event handlers cannot be passed to client component props” and “useSearchParams must be wrapped in Suspense” errors that broke Vercel builds entirely. Second, getting Stripe to redirect back correctly after checkout required carefully managing environment variables between localhost and production. Third, confirmation emails kept landing in spam, turns out new domains always do this and you have to earn inbox placement over time through DKIM and DMARC records. What am I proud of? The whole thing looks and feels like a real premium brand. The dark UI with amber touches, Framer Motion scroll animations, particle backgrounds, and the product shop with color/bundle selectors all came together into something that genuinely looks like it could compete with established e-commerce stores. And it’s not just a demo because real people have bought the product through this site! What should people know to test it? Visit joystickjourney.shop. The full site is live. Browse the shop, try the color and bundle selectors, click “Swap the maze” on the home page to see the maze gallery, and watch the tutorial video. If you want to test checkout use a real card, the site is fully live with Stripe payments. The success page, confirmation email flow, and all animations are live too. Check your spam folder after checkout for the confirmation email!", "repo": "https://github.com/arhanlev/joystick-journey-public/", "demo": "https://www.joystickjourney.shop"}]...
|
[{"post_id": 17353, "ts": "202 [{"post_id": 17353, "ts": "2026-06-28T03:10:25Z", "hours": 4.6153, "text": "Devlog #4 - The shop page got a full update this week. I added a retro joystick color selector and a popup image feature so customers can actually see what they’re buying up close. Sounds simple, but this took way longer than expected as the popup image kept rendering as static, and I spent a good chunk of time fixing sizing issues before finally getting it to fit. On the backend side, I got Stripe out of sandbox mode and connected the real API key to hook a prebuilt checkout form after ordering, so payments are now fully live and secure. Two features that look small on the surface but had a lot of errors."}, {"post_id": 3898, "ts": "2026-06-07T00:22:12Z", "hours": 1.0639, "text": "Devlog #3 - As promised, I have now rebuilt the success page from scratch to match the theme. It now has the same floating amber particle background from the hero, a cool ring animation around the confirmation emoji, gradient text, and an order status tracker showing exactly where the customer is in the fulfillment process. The whole card animates in with Framer Motion on load. The hardest part was getting the particle canvas to sit behind the glassmorphism card without z-index fighting everything else. Took a few attempts but backdrop-filter: blur(20px) on the card with the canvas absolutely positioned behind it ended up being the cleanest solution."}, {"post_id": 1888, "ts": "2026-06-04T03:21:12Z", "hours": 1.7908, "text": "Devlog #2- Just finished wiring up the automatic confirmation emails through Resend’s API. After every purchase, the customer gets a branded email from [email protected] with their order details. First test email went straight to junk (new domain so expected) but the code worked after several minor issues."}, {"post_id": 1693, "ts": "2026-06-03T21:00:38Z", "hours": 0.5892, "text": "Devlog #1 — Added success confirmation page! Got the full checkout flow working end to end today. When a customer completes their purchase on Stripe, they now get redirected to a custom success page instead of a blank screen. The tricky part was getting the session ID from the URL after Stripe redirects back — Next.js 15 requires useSearchParams() to be wrapped in a Suspense boundary or the whole build fails. Took me a bit to figure out why Vercel kept rejecting the deployment, but two characters fixed it."}]...
|
Title: Joystick Journey Shop by @arhan_levaku4 | S Title: Joystick Journey Shop by @arhan_levaku4 | Stardance
Devlogs:
Devlog #1 — Added success confirmation page! Got the full checkout flow working end to end today. When a customer completes their purchase on Stripe, they now get redirected to a custom success page instead of a blank screen. The tricky part was getting the session ID from the URL after Stripe redirects back — Next.js 15 requires useSearchParams() to be wrapped in a Suspense boundary or the whole build fails. Took me a bit to figure out why Vercel kept rejecting the deployment, but two characters fixed it.
Devlog #2- Just finished wiring up the automatic confirmation emails through Resend’s API. After every purchase, the customer gets a branded email from [email protected] with their order details. First test email went straight to junk (new domain so expected) but the code worked after several minor issues.
Devlog #3 - As promised, I have now rebuilt the success page from scratch to match the theme. It now has the same floating amber particle background from the hero, a cool ring animation around the confirmation emoji, gradient text, and an order status tracker showing exactly where the customer is in the fulfillment process. The whole card animates in with Framer Motion on load. The hardest part was getting the particle canvas to sit behind the glassmorphism card without z-index fighting everything else. Took a few attempts but backdrop-filter: blur(20px) on the card with the canvas absolutely positioned behind it ended up being the cleanest solution.
Devlog #4 - The shop page got a full update this week. I added a retro joystick color selector and a popup image feature so customers can actually see what they’re buying up close. Sounds simple, but this took way longer than expected as the popup image kept rendering as static, and I spent a good chunk of time fixing sizing issues before finally getting it to fit. On the backend side, I got Stripe out of sandbox mode and connected the real API key to hook a prebuilt checkout form after ordering, so payments are now fully live and secure. Two features that look small on the surface but had a lot of errors.
Ships:
What did I make? Joystick Journey is a full e-commerce website for a physical product I actually built — a joystick-controlled marble maze with swappable boards. The site is built from scratch in Next.js 15 with CSS Modules, Framer Motion animations, Stripe for real payments, and Resend for branded confirmation emails. You can browse the product, pick your maze color, joystick color, and bundle size, check out securely, and get a confirmation email automatically. The product is real and already has its first sales. What was challenging? Three things genuinely tripped me up. First, Next.js 15’s App Router has strict rules about client vs server components. I kept hitting “event handlers cannot be passed to client component props” and “useSearchParams must be wrapped in Suspense” errors that broke Vercel builds entirely. Second, getting Stripe to redirect back correctly after checkout required carefully managing environment variables between localhost and production. Third, confirmation emails kept landing in spam, turns out new domains always do this and you have to earn inbox placement over time through DKIM and DMARC records. What am I proud of? The whole thing looks and feels like a real premium brand. The dark UI with amber touches, Framer Motion scroll animations, particle backgrounds, and the product shop with color/bundle selectors all came together into something that genuinely looks like it could compete with established e-commerce stores. And it’s not just a demo because real people have bought the product through this site! What should people know to test it? Visit joystickjourney.shop. The full site is live. Browse the shop, try the color and bundle selectors, click “Swap the maze” on the home page to see the maze gallery, and watch the tutorial video. If you want to test checkout use a real card, the site is fully live with Stripe payments. The success page, confirmation email flow, and all animations are live too. Check your spam folder after checkout for the confirmation email!...
|
1793054873.3089995
|
1793141273.3089995
|
|
5556
|
3D physics simulator by @qstorm | Stardance
|
qstorm
|
1
|
46.89
|
201
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-04T01:58:00Z", "hours": 45.0, "multiplier": 9.87, "payout": 201, "blessing": "neutral", "text": "The 3D renderer portion of this project is officially complete, importing unique objects like the teapot is currently not possible but adding objects is! This is the first stage before I implement collision and physics!", "repo": "https://github.com/qstorm1/3D-pysics-Simulator", "demo": "https://github.com/qstorm1/3D-pysics-Simulator/releases/tag/pre-1.1"}]...
|
[{"post_id": 44984, "ts": "202 [{"post_id": 44984, "ts": "2026-08-11T03:25:41Z", "hours": 1.8914, "text": "Update to build! I had some issues with building the project in git. almost lost my project files lmao. Anyway, I used maven to create a build, which basically means automatically pushing file to a .jar file. I had to use AI to get some automation done just because I didn’t know how to use build tools very well. Anyway now you don’t need to download off a shady google drive link! If anyone is curious as to what maven is check out this article https://www.geeksforgeeks.org/java/what-is-a-build-tool/"}, {"post_id": 40435, "ts": "2026-08-03T23:06:25Z", "hours": 11.8056, "text": "Currently in order to understand the more advance complexities of collision detection I’ve been working on a simple 2d particle collision engine, right now I’m working on correctly depicting movement using an rk4 movement system and continuous collision detection. I’ve also mananged to make a simple sweep and prune algorithm, once I get movement to work I plan on adding the axis alligned thing so that it works with other shapes. afterwards I may need to completely rearrange my code because of some thread related issues. In short, my program uses 3 threads the renderer, the physics engine, and the UI handler. Currently some issues have arose in the rendering thread due to swing not being very good with the override canvas feature, therefore meaning I have to rewrite the drawing system and rendering thread (though all the math and the pipeline it self shouldn’t face any changes). I plan on not adding shaders for a bit though. Furthermore, I plan on temporarly pausing work on this project, actually for the last week I haven’t really worked much on it because I spend so much time researching and not a lot of time coding. My current computer is on the verge of breaking so I really need to get hours in for a new one. Additionally I’ve been intrested in working on minecraft modding so IDK when I’ll start up this project again"}, {"post_id": 27328, "ts": "2026-07-12T20:15:23Z", "hours": 33.0056, "text": "Settings menu and new object creation menu has been implemented! (though not very good yet), After I fix all the bugs and make sure everything is working correctly, I plan on replacing the boring swing components with unique designs"}, {"post_id": 12874, "ts": "2026-06-21T02:50:42Z", "hours": 0.3347, "text": "Completed 3D renderer using perspective projection basic physics has been implemented (before joining Stardance but after June 1st) currently working on user interface and cleaning up code (If your rating me based off devlogs after my first ship then you should look at my later ships cause my first few suck)"}]...
|
Title: 3D physics simulator by @qstorm | Stardance Title: 3D physics simulator by @qstorm | Stardance
Devlogs:
Completed 3D renderer using perspective projection basic physics has been implemented (before joining Stardance but after June 1st) currently working on user interface and cleaning up code (If your rating me based off devlogs after my first ship then you should look at my later ships cause my first few suck)
Settings menu and new object creation menu has been implemented! (though not very good yet), After I fix all the bugs and make sure everything is working correctly, I plan on replacing the boring swing components with unique designs
Currently in order to understand the more advance complexities of collision detection I’ve been working on a simple 2d particle collision engine, right now I’m working on correctly depicting movement using an rk4 movement system and continuous collision detection. I’ve also mananged to make a simple sweep and prune algorithm, once I get movement to work I plan on adding the axis alligned thing so that it works with other shapes. afterwards I may need to completely rearrange my code because of some thread related issues. In short, my program uses 3 threads the renderer, the physics engine, and the UI handler. Currently some issues have arose in the rendering thread due to swing not being very good with the override canvas feature, therefore meaning I have to rewrite the drawing system and rendering thread (though all the math and the pipeline it self shouldn’t face any changes). I plan on not adding shaders for a bit though. Furthermore, I plan on temporarly pausing work on this project, actually for the last week I haven’t really worked much on it because I spend so much time researching and not a lot of time coding. My current computer is on the verge of breaking so I really need to get hours in for a new one. Additionally I’ve been intrested in working on minecraft modding so IDK when I’ll start up this project again
Update to build! I had some issues with building the project in git. almost lost my project files lmao. Anyway, I used maven to create a build, which basically means automatically pushing file to a .jar file. I had to use AI to get some automation done just because I didn’t know how to use build tools very well. Anyway now you don’t need to download off a shady google drive link! If anyone is curious as to what maven is check out this article https://www.geeksforgeeks.org/java/what-is-a-build-tool/
Ships:
The 3D renderer portion of this project is officially complete, importing unique objects like the teapot is currently not possible but adding objects is! This is the first stage before I implement collision and physics!...
|
1792972505.037032
|
1793058905.037032
|
|
5571
|
idktheflag website (full edition) by @riverdalecod idktheflag website (full edition) by @riverdalecoder | Stardance...
|
riverdalecoder
|
1
|
6.0
|
46
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-09T15:41:00Z", "hours": 6.0, "multiplier": 7.24, "payout": 46, "blessing": "neutral", "text": "i made a really cool website for my ctf team! really proud of how it turned out!", "repo": "https://github.com/idktheflag/Website", "demo": "https://idktheflag.sh"}]...
|
[{"post_id": 5678, "ts": "2026 [{"post_id": 5678, "ts": "2026-06-09T15:40:40Z", "hours": 6.3519, "text": "i redid the entire website from scratch, removed “terminal” mode because it took forever to maintain and was completely broken on certain browsers. i will hopefully re-add it, improve team system as there are two ways to access it, add backend, and re-add terminal mode soon!"}]...
|
Title: idktheflag website (full edition) by @river Title: idktheflag website (full edition) by @riverdalecoder | Stardance
Devlogs:
i redid the entire website from scratch, removed “terminal” mode because it took forever to maintain and was completely broken on certain browsers. i will hopefully re-add it, improve team system as there are two ways to access it, add backend, and re-add terminal mode soon!
Ships:
i made a really cool website for my ctf team! really proud of how it turned out!...
|
1792994094.6571643
|
1793080494.6571643
|
|
5607
|
Ninjapad by @LC | Stardance
|
LC
|
1
|
2.0
|
12
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-26T00:34:01Z", "hours": 2.0, "multiplier": 5.0, "payout": 12, "blessing": "neutral", "text": "Ninjapad is a macropad with 9 keys, 1 rotary encoder, and an 0.91 inch OLED display. It uses a custom PCB, 3D printed case, and QMK firmware. OLED features different animations based on keystroke. Initially, I didn’t know I had to solder every component so I ended up assembling and disassembling the case a number of times.", "repo": "https://github.com/lucaschi2026-code/ninjapad", "demo": ""}]...
|
[{"post_id": 54839, "ts": "202 [{"post_id": 54839, "ts": "2026-08-26T00:27:58Z", "hours": 1.0833, "text": "Soldered keycaps"}, {"post_id": 54792, "ts": "2026-08-25T22:11:45Z", "hours": 1.2833, "text": "Done building!"}, {"post_id": 20437, "ts": "2026-07-02T01:03:20Z", "hours": 0.9814, "text": "Firmware done!"}, {"post_id": 19736, "ts": "2026-07-01T03:56:35Z", "hours": 3.6314, "text": "Case is done! Firmware next!"}, {"post_id": 16490, "ts": "2026-06-26T20:42:20Z", "hours": 1.7669, "text": "PCB is built! I will modify my case accordingly now!"}, {"post_id": 15398, "ts": "2026-06-25T01:08:10Z", "hours": 1.1889, "text": "Built my schematic with 9 keys, a knob, and an OLED connector!"}, {"post_id": 15327, "ts": "2026-06-24T22:01:02Z", "hours": 0.2833, "text": "Added the cutout!"}, {"post_id": 15245, "ts": "2026-06-24T19:09:50Z", "hours": 0.7408, "text": "Finished an early version of my case. Next steps will be to add an USB port and some colour!"}]...
|
Title: Ninjapad by @LC | Stardance
Devlogs:
Finis Title: Ninjapad by @LC | Stardance
Devlogs:
Finished an early version of my case. Next steps will be to add an USB port and some colour!
Added the cutout!
Built my schematic with 9 keys, a knob, and an OLED connector!
PCB is built! I will modify my case accordingly now!
Case is done! Firmware next!
Firmware done!
Done building!
Soldered keycaps
Ships:
Ninjapad is a macropad with 9 keys, 1 rotary encoder, and an 0.91 inch OLED display. It uses a custom PCB, 3D printed case, and QMK firmware. OLED features different animations based on keystroke. Initially, I didn’t know I had to solder every component so I ended up assembling and disassembling the case a number of times....
|
1792979808.4853005
|
1793066208.4853005
|
|
5619
|
Manta Ray Microplastic Tracker & Filter by @pr Manta Ray Microplastic Tracker & Filter by @prajithvishnur | Stardance...
|
prajithvishnur
|
1
|
10.36
|
99
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-05T18:00:00Z", "hours": 5.0, "multiplier": 18.19, "payout": 99, "blessing": "neutral", "text": "What did I make? I made the Manta Ray CFD Architecture, a bio-inspired fluid dynamics simulation engine that models how manta rays filter microplastics without clogging. Instead of standard physical sieves, it simulates vortical separation to show how fluid currents deflect plastic particles away from a filter. The backend calculates real-time buoyancy and drag forces, while the front end displays the tracking simulation on a custom dark-mode HUD dashboard. I hope to use this for my future projects. What was challenging? The hardest part was optimizing the physics loop so the mass-continuity formulas and particle drag forces could render in real time without lagging the web interface. I also struggled with writing custom CSS overrides to achieve the exact glassmorphic dashboard look I wanted, alongside resolving some frustrating Git merge conflicts during the live cloud deployment. What am I proud of? I am incredibly proud of creating a highly polished, enterprise-grade interface that seamlessly integrates a live physics loop with a persistent telemetry database. Hitting a peak intake flux of 48.8 liters per minute with a perfect 100% deflection purity index during baseline stress tests proved that the underlying mathematical model I built genuinely works. What should people know so that they can test my project? To test it, just visit the live link and adjust the sidebar sliders for raker geometry, flow velocity, and debris count to watch the canvas metrics recalculate in real time. Make sure to toggle the Storm Surge Tensors switch, which injects chaotic velocity noise into the fluid grid to stress-test the system for boundary leakage. Thank you so much for taking the time to view my project. I really hope this is good, as this is one of my first shipped projects!", "repo": "https://github.com/prajith-vishnu/manta-ray-filtration-system", "demo": "https://manta-ray-filtration-system.streamlit.app/?"}]...
|
[{"post_id": 7257, "ts": "2026 [{"post_id": 7257, "ts": "2026-06-12T03:16:27Z", "hours": 0.7225, "text": "A few last-minute design tweaks. Ready to ship!"}, {"post_id": 5198, "ts": "2026-06-08T21:52:48Z", "hours": 0.9878, "text": "attempted to make changes but resulted in errors. went back to orignal code."}, {"post_id": 5094, "ts": "2026-06-08T19:38:21Z", "hours": 2.7667, "text": "Fixed minor bugs and reshipped!"}, {"post_id": 2901, "ts": "2026-06-05T20:08:50Z", "hours": 0.8842, "text": "The Compliance Patch & UI Optimization After submitting the initial build, I ran into a quick compliance hurdle regarding explicit AI disclosures on the actual platform interface. I jumped straight back into the codebase to make the entire workspace 100% airtight and transparent. I embedded a formal AI Attribution and Usage Declaration directly into the live user interface, placing a clean summary anchor inside the sidebar control console and a comprehensive engineering footer at the very bottom of the main dashboard viewport. While I was under the hood, I also took the opportunity to optimize the front end and clear out some native terminal warnings. I refactored the data logging layout, swapping out the deprecated use_container_width parameters for the updated width=“stretch” property to ensure full compatibility with the latest Streamlit engine standards. After wrestling with a quick remote branch sync in the terminal, the compliance patch was successfully merged and pushed live to GitHub. The digital twin is now fully transparent, warning-free, and officially certified for the final judging review!"}, {"post_id": 2832, "ts": "2026-06-05T17:45:00Z", "hours": 1.7072, "text": "For this final sprint, I focused entirely on turning this from a basic simulation script into a production-grade web application. I spent a lot of time stripping out the default Streamlit styling and injecting custom CSS overrides to build a bespoke, dark-mode HUD dashboard. Now, the platform features glowing cyan metric highlights and a translucent visualization canvas that gives it an elite, aerospace-grade engineering look. On the physics side, I ran rigorous baseline stress tests to validate the calculation pathways against real-world microplastic data. Under steady-state parameters, the simulation successfully managed an intake flux stream of 48.8 liters per minute and a filtrate discharge of 21.9 liters per minute, locking in a perfect 100% deflection purity index with zero boundary leaks. I also fully deployed a persistent data logging system using pandas, meaning every single time you tweak a slider for the raker geometry or debris load, the engine instantly tracks those telemetry changes inside a local session state. With the final documentation complete and the repository looking insanely clean, the digital twin is fully public, responsive, and ready to ship."}, {"post_id": 1512, "ts": "2026-06-03T16:17:01Z", "hours": 0.68, "text": "The interactive demo is officially live, and we have finally crossed the finish line. What started out as a quiet local Python script running in a terminal has been completely transformed, polished, and deployed into a public, dark-themed Streamlit web application. This final release brings together all the heavy engineering frameworks, integrating full hydrodynamic continuity tracking to maintain perfect mass balance across the filtration channel alongside a high-frequency Storm Surge Mode designed to stress-test the bio-inspired manta ray gill raker geometry against chaotic fluid vectors in real time. The entire codebase is public, fully synchronized with its environment handlers, and streaming live right now for the world to see. You can jump straight into the live web workspace at https://manta-ray-filtration-system.streamlit.app to test the parameters yourself or explore the open-source repository at https://github.com/prajith-vishnu/manta-ray-filtration-system to dive into the mathematical physics documentation and see how the final build came together."}, {"post_id": 1487, "ts": "2026-06-03T15:19:29Z", "hours": 0.8478, "text": "For this next leg of the build, the simulation officially made the massive leap from a quiet backend script running in the terminal into a full-blown, interactive engineering dashboard. I wanted to turn this into a live, playable workspace where anyone could mess with the variables on the fly, so I integrated real-time sliders for flow velocity and raker height alongside a dynamic polymer selector console. Now, instead of hardcoding numbers and re-running the script, you can instantly tweak the setup and watch how different plastics react to the changing fluid currents right in front of you. The absolute highlight of this session was shipping what I am calling “Storm Surge Mode.” This is basically a brutal stress-test toggle that injects chaotic vertical acceleration forces and fluid velocity eddies straight into the simulation. It completely disrupts the clean current to mimic critical, real-world storm conditions, letting me see if the bio-inspired raker geometry can actually hold its own when things get rough out in the open ocean. To back all of this up visually, I also had to do a major physics rewrite under the hood. Previously, there were some annoying visual path-clipping bugs where the particle trails would look jagged or cut off near the boundaries. By moving the coordinate logging logic directly inside the nested sub-stepping loop, I finally cleared out those tracking glitches. The engine now delivers pixel-perfect precision right around the edges of the rakers, making the visual simulation look incredibly sharp and professional."}, {"post_id": 1266, "ts": "2026-06-03T04:38:53Z", "hours": 1.5147, "text": "Once the basic single-particle loop was stable, it was time to scale up the complexity to see how the system handled a more realistic, crowded environment. I upgraded the core engine to process a chaotic intake cloud of 50 distinct microplastic particles, all spawning at completely randomized vertical entry points to simulate a true messy current. Throwing that many objects at a high flow velocity of 250 millimeters per second immediately triggered a classic simulation glitch called tunneling, where particles move so fast between frames that they literally skip straight through solid walls without registering a collision. To fix this boundary breakdown, I implemented a sub-stepping physics processor that cracks open each standard time frame and divides it into 10 microscopic intervals, dropping the delta time down to a razor-sharp one-thousandth of a second. Alongside the processing fix, I overhauled the raker profiles from flat shapes into true downstream-slanted fins using a two-slope geometric matrix that features a gentle leading edge paired with a steep trailing edge. This combination of tighter time tracking and accurate geometry paid off completely, with the high-fidelity engine locking in a mathematically verified 100% filtration efficiency yield and proving that the bio-inspired boundary layer forces can successfully override downward suction to execute clean ricochet separation. Honestly, working through these complex physics anomalies and structuring the data loops has made things click in a way they never had before, and I am really starting to feel like I’m getting the hang of programming now. My confidence with Python is hitting a whole new level, especially because I have been leveraging AI as an interactive coding partner throughout this entire sprint. Instead of just staring at errors or trying to guess why a boundary layer isn’t registering, I use the AI to brainstorm script architectures, debug tricky syntax bottlenecks, and deeply understand how to properly execute those micro-stepping intervals. It honestly feels like having a senior developer sitting right next to me, helping me bridge the gap between the fluid dynamics math in my head and the actual code, which has completely accelerated how fast I can learn and ship clean software."}, {"post_id": 1220, "ts": "2026-06-03T02:26:22Z", "hours": 0.7117, "text": "This project actually started because of a problem I ran into during a previous experiment. I had recently built a working microplastic filter using a homemade castor oil-based ferrofluid, and while it actually worked, it bothered me how much material was wasted in the process. I knew there had to be a cleaner, more sustainable way to separate these particles without constantly burning through physical resources, which is what led me deep into the research of marine biology. That is when I discovered how manta rays use vortical separation inside their gill rakers to filter food out of the ocean without ever clogging. My ultimate goal is to take this digital research and use it to manufacture a real, physical filter one day, but the first step was proving the math could work in a digital environment. To kick off development, I officially built and launched the core simulation engine inside a script called flow_model.py. The primary challenge here was establishing proper physical scaling, taking a real-world oceanic flow velocity of 31.3 kilometers per hour and accurately converting it down into localized millimeter-per-second computational forces inside the channel. I integrated a sine-wave mathematical function to simulate the unique, bio-inspired vortical fluid behavior that happens when water hits the geometry of the ray’s rakers. The initial tracking code is running incredibly well, calculating smooth coordinate paths for the particles and resolving a full 100mm transit loop in just 0.40 seconds."}]...
|
Title: Manta Ray Microplastic Tracker & Filter Title: Manta Ray Microplastic Tracker & Filter by @prajithvishnur | Stardance
Devlogs:
This project actually started because of a problem I ran into during a previous experiment. I had recently built a working microplastic filter using a homemade castor oil-based ferrofluid, and while it actually worked, it bothered me how much material was wasted in the process. I knew there had to be a cleaner, more sustainable way to separate these particles without constantly burning through physical resources, which is what led me deep into the research of marine biology. That is when I discovered how manta rays use vortical separation inside their gill rakers to filter food out of the ocean without ever clogging. My ultimate goal is to take this digital research and use it to manufacture a real, physical filter one day, but the first step was proving the math could work in a digital environment. To kick off development, I officially built and launched the core simulation engine inside a script called flow_model.py. The primary challenge here was establishing proper physical scaling, taking a real-world oceanic flow velocity of 31.3 kilometers per hour and accurately converting it down into localized millimeter-per-second computational forces inside the channel. I integrated a sine-wave mathematical function to simulate the unique, bio-inspired vortical fluid behavior that happens when water hits the geometry of the ray’s rakers. The initial tracking code is running incredibly well, calculating smooth coordinate paths for the particles and resolving a full 100mm transit loop in just 0.40 seconds.
Once the basic single-particle loop was stable, it was time to scale up the complexity to see how the system handled a more realistic, crowded environment. I upgraded the core engine to process a chaotic intake cloud of 50 distinct microplastic particles, all spawning at completely randomized vertical entry points to simulate a true messy current. Throwing that many objects at a high flow velocity of 250 millimeters per second immediately triggered a classic simulation glitch called tunneling, where particles move so fast between frames that they literally skip straight through solid walls without registering a collision. To fix this boundary breakdown, I implemented a sub-stepping physics processor that cracks open each standard time frame and divides it into 10 microscopic intervals, dropping the delta time down to a razor-sharp one-thousandth of a second. Alongside the processing fix, I overhauled the raker profiles from flat shapes into true downstream-slanted fins using a two-slope geometric matrix that features a gentle leading edge paired with a steep trailing edge. This combination of tighter time tracking and accurate geometry paid off completely, with the high-fidelity engine locking in a mathematically verified 100% filtration efficiency yield and proving that the bio-inspired boundary layer forces can successfully override downward suction to execute clean ricochet separation. Honestly, working through these complex physics anomalies and structuring the data loops has made things click in a way they never had before, and I am really starting to feel like I’m getting the hang of programming now. My confidence with Python is hitting a whole new level, especially because I have been leveraging AI as an interactive coding partner throughout this entire sprint. Instead of just staring at errors or trying to guess why a boundary layer isn’t registering, I use the AI to brainstorm script architectures, debug tricky syntax bottlenecks, and deeply understand how to properly execute those micro-stepping intervals. It honestly feels like having a senior developer sitting right next to me, helping me bridge the gap between the fluid dynamics math in my head and the actual code, which has completely accelerated how fast I can learn and ship clean software.
For this next leg of the build, the simulation officially made the massive leap from a quiet backend script running in the terminal into a full-blown, interactive engineering dashboard. I wanted to turn this into a live, playable workspace where anyone could mess with the variables on the fly, so I integrated real-time sliders for flow velocity and raker height alongside a dynamic polymer selector console. Now, instead of hardcoding numbers and re-running the script, you can instantly tweak the setup and watch how different plastics react to the changing fluid currents right in front of you. The absolute highlight of this session was shipping what I am calling “Storm Surge Mode.” This is basically a brutal stress-test toggle that injects chaotic vertical acceleration forces and fluid velocity eddies straight into the simulation. It completely disrupts the clean current to mimic critical, real-world storm conditions, letting me see if the bio-inspired raker geometry can actually hold its own when things get rough out in the open ocean. To back all of this up visually, I also had to do a major physics rewrite under the hood. Previously, there were some annoying visual path-clipping bugs where the particle trails would look jagged or cut off near the boundaries. By moving the coordinate logging logic directly inside the nested sub-stepping loop, I finally cleared out those tracking glitches. The engine now delivers pixel-perfect precision right around the edges of the rakers, making the visual simulation look incredibly sharp and professional.
The interactive demo is officially live, and we have finally crossed the finish line. What started out as a quiet local Python script running in a terminal has been completely transformed, polished, and deployed into a public, dark-themed Streamlit web application. This final release brings together all the heavy engineering frameworks, integrating full hydrodynamic continuity tracking to maintain perfect mass balance across the filtration channel alongside a high-frequency Storm Surge Mode designed to stress-test the bio-inspired manta ray gill raker geometry against chaotic fluid vectors in real time. The entire codebase is public, fully synchronized with its environment handlers, and streaming live right now for the world to see. You can jump straight into the live web workspace at https://manta-ray-filtration-system.streamlit.app to test the parameters yourself or explore the open-source repository at https://github.com/prajith-vishnu/manta-ray-filtration-system to dive into the mathematical physics documentation and see how the final build came together.
For this final sprint, I focused entirely on turning this from a basic simulation script into a production-grade web application. I spent a lot of time stripping out the default Streamlit styling and injecting custom CSS overrides to build a bespoke, dark-mode HUD dashboard. Now, the platform features glowing cyan metric highlights and a translucent visualization canvas that gives it an elite, aerospace-grade engineering look. On the physics side, I ran rigorous baseline stress tests to validate the calculation pathways against real-world microplastic data. Under steady-state parameters, the simulation successfully managed an intake flux stream of 48.8 liters per minute and a filtrate discharge of 21.9 liters per minute, locking in a perfect 100% deflection purity index with zero boundary leaks. I also fully deployed a persistent data logging system using pandas, meaning every single time you tweak a slider for the raker geometry or debris load, the engine instantly tracks those telemetry changes inside a local session state. With the final documentation complete and the repository looking insanely clean, the digital twin is fully public, responsive, and ready to ship.
The Compliance Patch & UI Optimization After submitting the initial build, I ran into a quick compliance hurdle regarding explicit AI disclosures on the actual platform interface. I jumped straight back into the codebase to make the entire workspace 100% airtight and transparent. I embedded a formal AI Attribution and Usage Declaration directly into the live user interface, placing a clean summary anchor inside the sidebar control console and a comprehensive engineering footer at the very bottom of the main dashboard viewport. While I was under the hood, I also took the opportunity to optimize the front end and clear out some native terminal warnings. I refactored the data logging layout, swapping out the deprecated use_container_width parameters for the updated width=“stretch” property to ensure full compatibility with the latest Streamlit engine standards. After wrestling with a quick remote branch sync in the terminal, the compliance patch was successfully merged and pushed live to GitHub. The digital twin is now fully transparent, warning-free, and officially certified for the final judging review!
Fixed minor bugs and reshipped!
attempted to make changes but resulted in errors. went back to orignal code.
A few last-minute design tweaks. Ready to ship!
Ships:
What did I make? I made the Manta Ray CFD Architecture, a bio-inspired fluid dynamics simulation engine that models how manta rays filter microplastics without clogging. Instead of standard physical sieves, it simulates vortical separation to show how fluid currents deflect plastic particles away from a filter. The backend calculates real-time buoyancy and drag forces, while the front end displays the tracking simulation on a custom dark-mode HUD dashboard. I hope to use this for my future projects. What was challenging? The hardest part was optimizing the physics loop so the mass-continuity formulas and particle drag forces could render in real time without lagging the web interface. I also struggled with writing custom CSS overrides to achieve the exact glassmorphic dashboard look I wanted, alongside resolving some frustrating Git merge conflicts during the live cloud deployment. What am I proud of? I am incredibly proud of creating a highly polished, enterprise-grade interface that seamlessly integrates a live physics loop with a persistent telemetry database. Hitting a peak intake flux of 48.8 liters per minute with a perfect 100% deflection purity index during baseline stress tests proved that the underlying mathematical model I built genuinely works. What should people know so that they can test my project? To test it, just visit the live link and adjust the sidebar sliders for raker geometry, flow velocity, and debris count to watch the canvas metrics recalculate in real time. Make sure to toggle the Storm Surge Tensors switch, which injects chaotic velocity noise into the fluid grid to stress-test the system for boundary leakage. Thank you so much for taking the time to view my project. I really hope this is good, as this is one of my first shipped projects!...
|
1792997328.7495499
|
1793083728.7495499
|
|
5624
|
Connect 4 180 by @Tyson_rottie | Stardance
|
Tyson_rottie
|
1
|
24.0
|
150
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-15T03:15:06Z", "hours": 24.0, "multiplier": 6.22, "payout": 150, "blessing": "neutral", "text": "I made connect 4 but the board flips every 6 turns, this is my first python project that uses imports something from another file so I had to learn how to do that, getting the board to accurately flip was the hardest part of this project, this is my first time using pygame so I had to learn how to display text, images and sounds, in order to run the project you need to run the main.py file", "repo": "https://github.com/tyson587/connect-4-Flip", "demo": "https://codeconqueror0209.itch.io/connect-4-flip"}]...
|
[{"post_id": 28681, "ts": "202 [{"post_id": 28681, "ts": "2026-07-15T02:32:37Z", "hours": 9.0661, "text": "Finished the game, added a settings menu which allows you to select different options such as, if you can see the countdown, how many turns in between flips, and if the turns between flips should be random, also fixed bugs where the player or ai could drop pieces while other pieces were falling and fixed bug where a false win would be detected"}, {"post_id": 25019, "ts": "2026-07-08T22:57:24Z", "hours": 4.6103, "text": "Finally got the AI to work, for a while the AI would just go filling roles from left to right without making any smart decisions or it just wouldn’t make a decision at all. I realized the problem was that one of my numbers that should’ve been negative was positive, whoops. I was also able to get board flipping to work so now after 6 turns it will flip. What I am adding: settings menu to change how often the board flips. Animation of the pieces falling."}, {"post_id": 22491, "ts": "2026-07-04T23:54:40Z", "hours": 6.2117, "text": "Added - win detection now fully working, main menu, and updated visuals. I am currently working on getting the board to flip and an AI to play against."}, {"post_id": 20291, "ts": "2026-07-01T20:58:35Z", "hours": 4.2628, "text": "Got pieces falling into place correctly and horizontal win detection working, currently need to implement vertical and diagonal win detection"}]...
|
Title: Connect 4 180 by @Tyson_rottie | Stardance
Title: Connect 4 180 by @Tyson_rottie | Stardance
Devlogs:
Got pieces falling into place correctly and horizontal win detection working, currently need to implement vertical and diagonal win detection
Added - win detection now fully working, main menu, and updated visuals. I am currently working on getting the board to flip and an AI to play against.
Finally got the AI to work, for a while the AI would just go filling roles from left to right without making any smart decisions or it just wouldn’t make a decision at all. I realized the problem was that one of my numbers that should’ve been negative was positive, whoops. I was also able to get board flipping to work so now after 6 turns it will flip. What I am adding: settings menu to change how often the board flips. Animation of the pieces falling.
Finished the game, added a settings menu which allows you to select different options such as, if you can see the countdown, how many turns in between flips, and if the turns between flips should be random, also fixed bugs where the player or ai could drop pieces while other pieces were falling and fixed bug where a false win would be detected
Ships:
I made connect 4 but the board flips every 6 turns, this is my first python project that uses imports something from another file so I had to learn how to do that, getting the board to accurately flip was the hardest part of this project, this is my first time using pygame so I had to learn how to display text, images and sounds, in order to run the project you need to run the main.py file...
|
1792979263.1193726
|
1793065663.1193726
|
|
5662
|
Obby Game by @thanuflora | Stardance
|
thanuflora
|
1
|
1.7
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-20T14:39:40Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a beginner friendly obby game on roblox studios. This was a very challenging project even though I doesn’t seem so hard to make. I am a beginner to coding and knew nothing about what I was doing and github was really hard to understand and I had little motivation to do this but found making these games easy and fast to do. I hope people who test these out have a fun time playing this game and give me feedback on how to improve myself.", "repo": "https://github.com/Thanuflora/Obby-Game", "demo": "https://github.com/Thanuflora/Obby-Game/releases/download/v1.1.0/obby_Game.rbxl"}]...
|
[{"post_id": 13122, "ts": "202 [{"post_id": 13122, "ts": "2026-06-21T13:42:50Z", "hours": 0.7011, "text": "I am currently adding more since the game seemed too short, and I am also adding code so if you step on the wrong path you will fall down if you choose the right one you will survive."}, {"post_id": 12549, "ts": "2026-06-20T14:33:26Z", "hours": 0.37, "text": "My obby game- I finished writing code for my checkpoints so if you die you will spawn at the latest checkpoint that you stepped on."}, {"post_id": 11999, "ts": "2026-06-19T16:03:40Z", "hours": 0.2667, "text": "I am working on how to make a simple obby game on roblox studios, and make it customized."}]...
|
Title: Obby Game by @thanuflora | Stardance
Devlo Title: Obby Game by @thanuflora | Stardance
Devlogs:
I am working on how to make a simple obby game on roblox studios, and make it customized.
My obby game- I finished writing code for my checkpoints so if you die you will spawn at the latest checkpoint that you stepped on.
I am currently adding more since the game seemed too short, and I am also adding code so if you step on the wrong path you will fall down if you choose the right one you will survive.
Ships:
I made a beginner friendly obby game on roblox studios. This was a very challenging project even though I doesn’t seem so hard to make. I am a beginner to coding and knew nothing about what I was doing and github was really hard to understand and I had little motivation to do this but found making these games easy and fast to do. I hope people who test these out have a fun time playing this game and give me feedback on how to improve myself....
|
1792976162.5753622
|
1793062562.5753622
|
|
5668
|
NoteHop by @adobhi | Stardance
|
adobhi
|
1
|
62.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-04T00:57:58Z", "hours": 62.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I’m aiming to build an app that makes music education free and fun for everyone! This summer was my first time EVER looking at SwiftUI and Xcode, the platform I used to code this app, as well as my first time actually working with GitHub, so I was learning how to code and make sure that code stayed safe every step of the way. For every code file I wrote, there are a hundred YouTube videos and Google Searches to thank right now. I’m proud that despite every debug session that took hours to resolve and through every error message that made me never want to open my project again, I made an effort to come back and learn from each mistake and to prove that with a determination, the sky’s the limit. The only issue right now is to test the project, I’ll need $99 for an Apple Developer Program account to be able to give you guys a usable link, so for now its sadly just a one-minute demo, but if I’m ever less broke, I’ll update it so everyone can see how amazing learning music for yourself can be. I hope you enjoy!", "repo": "https://github.com/adobhi/noteHop", "demo": "https://www.youtube.com/watch?v=KWcRyOvhUOo&feature=youtu.be"}]...
|
[{"post_id": 40469, "ts": "202 [{"post_id": 40469, "ts": "2026-08-04T00:49:12Z", "hours": 1.5922, "text": "Note Hop - Devlog 12 Guys I lied I didn’t ship last time like I said I would… BUT for good reason: After spending hours and hours on Stardance’s resource pages + Google, I realized that, despite what I was lead to believe, I had to get an Apple Developer’s Account for a hundred bucks just to generate a demo link that you all would use to try (guys I’m broke this project is on a budget). My Mac outright letting me refuse to try option two, which would be sideloading my app into another software which y’all would have to use to download my app… Recording a demo video. WRITING THIS ENTIRE DEVLOG WITH SO MUCH DETAIL JUST FOR IT TO GET WIPED OFF THE FACE OF THE PLANET BECAUSE I ATTACHED THE DEMO VIDEO HERE (the attachment was too large…) Rewriting the devlog (with less detail about the pain and suffering I went through sorry guys.) Anyway it has taken blood sweat and tears, and I’m sorry but I can’t attach the demo video 😢 BUT it is now in the project deets if you guys wanna check it out, but now I am ready for my Ship to set sail (I’m so funny 😁)!"}, {"post_id": 39696, "ts": "2026-08-02T20:39:00Z", "hours": 8.9247, "text": "Note Hop - Devlog 11 Today will be my first ship!!! This session was mainly just rewriting and organizing code and to take more user data to give my app some level of personalization before the ship, so now users can sign up, login, log out, and add courses that they like into their dashboard to practice their first lessons 🩷 !!!"}, {"post_id": 36555, "ts": "2026-07-28T19:03:15Z", "hours": 8.9889, "text": "Note Hop - Devlog 10 Finally double digits for my devlogs!!! I’ve been on a pretty locked in stint and started somewhat tracking user data via Firebase and a hundred YouTube tutorials! Everything was going well enough (which should have warned me), so imagine my surprise when I see this in my email 🙃. I Google Lensed it and it told me I was going to see hackers in my sleep if I didn’t fix it IMMEDIATELY so it took literal hours of working through git commands, more terminal prompts, compromised .plist files and API keys, just to eventually realize that all I needed to do was edit the access controls of the API keys and then mark the warning as a false positive in GitHub 🥀. 💻 Then came the second issue of the day! In the process of fixing the first problem, I guess I created an extra branch in my project, which meant all my changes weren’t saved across the main branch I was working in, as well as the edits that I made when I deleted my .plist file (which was holding some settings for my custom font, so my code was looking like the picture below and I was genuinely crashing out). I fixed it by adding a property in my fresh plist file and deleting the new branch I created, so everything remained the way I left it! 💻 After those hardships things got somewhat easier. I worked on the Login and Register pages for my code so now hopefully people can actually interact with my app instead of wistfully longing for a place to save their work! 💻 ALSO this is kinda new, but I’m realizing that I’m running out of ideas that I wanna implement in my app (I know I know there are a lot of lessons to create and sheet music to link) BUT if you guys have an ideas or things you’d like to see be added please let me know! Thank you! 🩷"}, {"post_id": 34985, "ts": "2026-07-26T03:59:10Z", "hours": 5.9297, "text": "Note Hop - Devlog 09 The barebones of this app are (somewhat?) coming together 🎉! Today was more focused on using my individual question banks and creating cohesive pages that connect those question banks into scrollable pages for each instrument. For the coding geeks (my people!), the one of the biggest struggles was trying to get the data structures right, especially when iterating with Lists and ForEach loops. Also WHY did no one warn me how hard organizing all my structs and variables and instances would be 😭 Actual footage of me trying to figure out where half of my code was."}, {"post_id": 34402, "ts": "2026-07-25T02:47:14Z", "hours": 7.6261, "text": "Note Hop - Devlog 08 This lock in was dedicated to actually code the purpose behind this app… AKA actually learning music 🙃 Just some of the things I’ve done so far! Created a question bank of question banks! Spent hours scouring for sound files for each note (didn’t get tracked by the way 🥀) . Writing and rewriting the interface code (no one told me it was this hard to make it look modern I still hate it 💀). Understand why the code to link an image to a note sound wouldn’t WORK (AHHH). Realizing the error was in a test call from a completely different file… Anyways blood sweat and tears were shed to build a struct that takes a question bank as a parameter and returns a UI that you can iterate questions through 😁 Me for 7 hours and 35 minutes 🥀."}, {"post_id": 30862, "ts": "2026-07-18T20:14:44Z", "hours": 10.065, "text": "Note Hop - Devlog 07 I finally made headway on the actual course pages and worked on updating the buttons in the homepage that were pretty but dysfunctional. What took a really really really big amount of time was trying to get my buttons to work, which required switching to a navigationLink() instead of Button() code, and making sure that the page that opened when clicking the button would have the corresponding sticky banner, which, for the longest time, refused to update on each webpage :( Just some of the frustrating scenes I’ve seen and now know how to avoid 🙃"}, {"post_id": 26542, "ts": "2026-07-11T12:48:28Z", "hours": 5.9269, "text": "Note Hop - Devlog 06 This lock in period was all about the music library 😁!!! The first real issue was finding actual, downloadable sheet music, which legitimately took HOURS that weren’t even tracked because it wasn’t on Xcode 😔, but after hours of blood, sweat, and tears, I was able to find a bunch of sheet music pdfs that were perfect for my cause! Then, was figuring out how to actually code the library… being a complete newbie in SwiftUI, it took hours of YouTube tutorials, thousands of google searches, and the trusted Rubber Duck method to work out every detail and push through every challenge, which include and are not limited to: Organizing the sheet music files within my Navigator Area (and accidentally deleting them at one point 😬) Having no way to title the top of my NavigationStack. Figuring out how to find the right amount of padding to make sure none of my titles were obscured. Creating new structs in previous files to handle my excessive catalogue of songs. Making sure all of my functions were calling each other in the right order with the right parameters. Adding details to each and every song like the title, composer, instrument, and key tips. Adding and formatting a back button to return the user to the music library. After getting the basics out of the way, I had to go back in and format everything with the app’s font and colors, only to realize that I couldn’t push all of my changes because I had no branch to push them to which ended up taking me a long, long while to fix 😭."}, {"post_id": 24902, "ts": "2026-07-08T19:12:23Z", "hours": 3.3028, "text": "Note Hop - Devlog 05 Was about to start with user data code when all the little things about the homepage started nagging at me 🫠… First, I cleaned up the code by adding functions for repeating segments like formatting images. Then, I added a sticky banner with the greeting that doesn’t move when the user scrolls down. Next, I added an extra sheet music button (Golden Hour!), and then stats buttons like a fire and gem for the potential streak calendar and shop. When making the sticky banner, I wanted more shades of the same color for UI Design, so I had to added lighter shades of the button colors into my assets tab, but then I realized that in dark mode, the text color in the banner would be white against a light yellow banner 😭 So I had to go back and add a whole other color set just to say “I want black font in my banners whether its light or dark mode!”"}, {"post_id": 24266, "ts": "2026-07-07T18:38:36Z", "hours": 4.2797, "text": "Note Hop - Devlog 04 Its been a little while since I’ve worked on this 😅. I spent almost four hours first getting back into the project and figuring out what feature to add next (coder’s block I guess 😭). I decided to start small and add more of the homepage with rows for the music library and other shortcut buttons, but with all the extra features the screen was quickly getting squished and words were getting cut out, so I coded a scroll feature that lets the complete text stay on screen and all you have to do to see it is scroll. Then, I added a cutesy font so it wasn’t boring and actually fun to look at 😁!"}, {"post_id": 10968, "ts": "2026-06-17T23:52:23Z", "hours": 2.4044, "text": "Note Hop - Devlog 03 Finally began working on Note Hop’s homepage! First I generated a list of greetings and wrote code to choose a random greeting to display on the dashboard, but for some reason the canvas kept throwing an error which could only be fixed by reducing the number of items in the list of greetings. Then, I started formatting the first set of features on the homepage, which would be buttons that take you to the next lesson of the course. With this I also added color sets for aesthetic and accessibility 😁. Next step is to add more buttons make it look like an actual app!"}, {"post_id": 8678, "ts": "2026-06-14T12:39:56Z", "hours": 1.7669, "text": "Note Hop - Devlog 02 Spent over an hour starting the design on the homepage… First I designed a set of tabs to go on top of the home screen, and then tried but couldn’t commit until I realized I didn’t have my GitHub Repo under remotes 😭. After figuring out how to commit, I finally finished the set of tabs with mini pages and drafts for content within those tabs."}, {"post_id": 7251, "ts": "2026-06-12T02:54:35Z", "hours": 0.9661, "text": "Note Hop - Devlog 01 Designed first basic wireframe drafts, color schemes, and app icon sketch! Hardest part so far was choosing colors that matched the vibe I want for the app (energetic and ready-to-learn) while complementing each other. (App icon is a work in progress 😅)"}]...
|
Title: NoteHop by @adobhi | Stardance
Devlogs:
No Title: NoteHop by @adobhi | Stardance
Devlogs:
Note Hop - Devlog 01 Designed first basic wireframe drafts, color schemes, and app icon sketch! Hardest part so far was choosing colors that matched the vibe I want for the app (energetic and ready-to-learn) while complementing each other. (App icon is a work in progress 😅)
Note Hop - Devlog 02 Spent over an hour starting the design on the homepage… First I designed a set of tabs to go on top of the home screen, and then tried but couldn’t commit until I realized I didn’t have my GitHub Repo under remotes 😭. After figuring out how to commit, I finally finished the set of tabs with mini pages and drafts for content within those tabs.
Note Hop - Devlog 03 Finally began working on Note Hop’s homepage! First I generated a list of greetings and wrote code to choose a random greeting to display on the dashboard, but for some reason the canvas kept throwing an error which could only be fixed by reducing the number of items in the list of greetings. Then, I started formatting the first set of features on the homepage, which would be buttons that take you to the next lesson of the course. With this I also added color sets for aesthetic and accessibility 😁. Next step is to add more buttons make it look like an actual app!
Note Hop - Devlog 04 Its been a little while since I’ve worked on this 😅. I spent almost four hours first getting back into the project and figuring out what feature to add next (coder’s block I guess 😭). I decided to start small and add more of the homepage with rows for the music library and other shortcut buttons, but with all the extra features the screen was quickly getting squished and words were getting cut out, so I coded a scroll feature that lets the complete text stay on screen and all you have to do to see it is scroll. Then, I added a cutesy font so it wasn’t boring and actually fun to look at 😁!
Note Hop - Devlog 05 Was about to start with user data code when all the little things about the homepage started nagging at me 🫠… First, I cleaned up the code by adding functions for repeating segments like formatting images. Then, I added a sticky banner with the greeting that doesn’t move when the user scrolls down. Next, I added an extra sheet music button (Golden Hour!), and then stats buttons like a fire and gem for the potential streak calendar and shop. When making the sticky banner, I wanted more shades of the same color for UI Design, so I had to added lighter shades of the button colors into my assets tab, but then I realized that in dark mode, the text color in the banner would be white against a light yellow banner 😭 So I had to go back and add a whole other color set just to say “I want black font in my banners whether its light or dark mode!”
Note Hop - Devlog 06 This lock in period was all about the music library 😁!!! The first real issue was finding actual, downloadable sheet music, which legitimately took HOURS that weren’t even tracked because it wasn’t on Xcode 😔, but after hours of blood, sweat, and tears, I was able to find a bunch of sheet music pdfs that were perfect for my cause! Then, was figuring out how to actually code the library… being a complete newbie in SwiftUI, it took hours of YouTube tutorials, thousands of google searches, and the trusted Rubber Duck method to work out every detail and push through every challenge, which include and are not limited to: Organizing the sheet music files within my Navigator Area (and accidentally deleting them at one point 😬) Having no way to title the top of my NavigationStack. Figuring out how to find the right amount of padding to make sure none of my titles were obscured. Creating new structs in previous files to handle my excessive catalogue of songs. Making sure all of my functions were calling each other in the right order with the right parameters. Adding details to each and every song like the title, composer, instrument, and key tips. Adding and formatting a back button to return the user to the music library. After getting the basics out of the way, I had to go back in and format everything with the app’s font and colors, only to realize that I couldn’t push all of my changes because I had no branch to push them to which ended up taking me a long, long while to fix 😭.
Note Hop - Devlog 07 I finally made headway on the actual course pages and worked on updating the buttons in the homepage that were pretty but dysfunctional. What took a really really really big amount of time was trying to get my buttons to work, which required switching to a navigationLink() instead of Button() code, and making sure that the page that opened when clicking the button would have the corresponding sticky banner, which, for the longest time, refused to update on each webpage :( Just some of the frustrating scenes I’ve seen and now know how to avoid 🙃
Note Hop - Devlog 08 This lock in was dedicated to actually code the purpose behind this app… AKA actually learning music 🙃 Just some of the things I’ve done so far! Created a question bank of question banks! Spent hours scouring for sound files for each note (didn’t get tracked by the way 🥀) . Writing and rewriting the interface code (no one told me it was this hard to make it look modern I still hate it 💀). Understand why the code to link an image to a note sound wouldn’t WORK (AHHH). Realizing the error was in a test call from a completely different file… Anyways blood sweat and tears were shed to build a struct that takes a question bank as a parameter and returns a UI that you can iterate questions through 😁 Me for 7 hours and 35 minutes 🥀.
Note Hop - Devlog 09 The barebones of this app are (somewhat?) coming together 🎉! Today was more focused on using my individual question banks and creating cohesive pages that connect those question banks into scrollable pages for each instrument. For the coding geeks (my people!), the one of the biggest struggles was trying to get the data structures right, especially when iterating with Lists and ForEach loops. Also WHY did no one warn me how hard organizing all my structs and variables and instances would be 😭 Actual footage of me trying to figure out where half of my code was.
Note Hop - Devlog 10 Finally double digits for my devlogs!!! I’ve been on a pretty locked in stint and started somewhat tracking user data via Firebase and a hundred YouTube tutorials! Everything was going well enough (which should have warned me), so imagine my surprise when I see this in my email 🙃. I Google Lensed it and it told me I was going to see hackers in my sleep if I didn’t fix it IMMEDIATELY so it took literal hours of working through git commands, more terminal prompts, compromised .plist files and API keys, just to eventually realize that all I needed to do was edit the access controls of the API keys and then mark the warning as a false positive in GitHub 🥀. 💻 Then came the second issue of the day! In the process of fixing the first problem, I guess I created an extra branch in my project, which meant all my changes weren’t saved across the main branch I was working in, as well as the edits that I made when I deleted my .plist file (which was holding some settings for my custom font, so my code was looking like the picture below and I was genuinely crashing out). I fixed it by adding a property in my fresh plist file and deleting the new branch I created, so everything remained the way I left it! 💻 After those hardships things got somewhat easier. I worked on the Login and Register pages for my code so now hopefully people can actually interact with my app instead of wistfully longing for a place to save their work! 💻 ALSO this is kinda new, but I’m realizing that I’m running out of ideas that I wanna implement in my app (I know I know there are a lot of lessons to create and sheet music to link) BUT if you guys have an ideas or things you’d like to see be added please let me know! Thank you! 🩷
Note Hop - Devlog 11 Today will be my first ship!!! This session was mainly just rewriting and organizing code and to take more user data to give my app some level of personalization before the ship, so now users can sign up, login, log out, and add courses that they like into their dashboard to practice their first lessons 🩷 !!!
Note Hop - Devlog 12 Guys I lied I didn’t ship last time like I said I would… BUT for good reason: After spending hours and hours on Stardance’s resource pages + Google, I realized that, despite what I was lead to believe, I had to get an Apple Developer’s Account for a hundred bucks just to generate a demo link that you all would use to try (guys I’m broke this project is on a budget). My Mac outright letting me refuse to try option two, which would be sideloading my app into another software which y’all would have to use to download my app… Recording a demo video. WRITING THIS ENTIRE DEVLOG WITH SO MUCH DETAIL JUST FOR IT TO GET WIPED OFF THE FACE OF THE PLANET BECAUSE I ATTACHED THE DEMO VIDEO HERE (the attachment was too large…) Rewriting the devlog (with less detail about the pain and suffering I went through sorry guys.) Anyway it has taken blood sweat and tears, and I’m sorry but I can’t attach the demo video 😢 BUT it is now in the project deets if you guys wanna check it out, but now I am ready for my Ship to set sail (I’m so funny 😁)!
Ships:
I’m aiming to build an app that makes music education free and fun for everyone! This summer was my first time EVER looking at SwiftUI and Xcode, the platform I used to code this app, as well as my first time actually working with GitHub, so I was learning how to code and make sure that code stayed safe every step of the way. For every code file I wrote, there are a hundred YouTube videos and Google Searches to thank right now. I’m proud that despite every debug session that took hours to resolve and through every error message that made me never want to open my project again, I made an effort to come back and learn from each mistake and to prove that with a determination, the sky’s the limit. The only issue right now is to test the project, I’ll need $99 for an Apple Developer Program account to be able to give you guys a usable link, so for now its sadly just a one-minute demo, but if I’m ever less broke, I’ll update it so everyone can see how amazing learning music for yourself can be. I hope you enjoy!...
|
1792997363.9877806
|
1793083763.9877806
|
|
5690
|
EpicMacroPad by @Epicninja3 | Stardance
|
Epicninja3
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-10T13:59:52Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a 4-key macro pad with a Rotary Encoder and an OLED Display. I wanted to make a macro pad that would make it easier to perform everyday functions such as Copy/Paste and taking a screenshot. Since this was my first project, using Fusion 360 and KiCAD for the first time was a bit challenging. I am proud of figuring out how to design my PCB and wire the components all together.", "repo": "https://github.com/epicninja3/EpicMacroPad", "demo": ""}]...
|
[{"post_id": 5853, "ts": "2026 [{"post_id": 5853, "ts": "2026-06-09T20:01:29Z", "hours": 0.7708, "text": "Working on my PCB for my Macropad"}]...
|
Title: EpicMacroPad by @Epicninja3 | Stardance
De Title: EpicMacroPad by @Epicninja3 | Stardance
Devlogs:
Working on my PCB for my Macropad
Ships:
I made a 4-key macro pad with a Rotary Encoder and an OLED Display. I wanted to make a macro pad that would make it easier to perform everyday functions such as Copy/Paste and taking a screenshot. Since this was my first project, using Fusion 360 and KiCAD for the first time was a bit challenging. I am proud of figuring out how to design my PCB and wire the components all together....
|
1792986722.6221273
|
1793073122.6221273
|
|
5692
|
Minimalistic Snake by @LordGrim | Stardance
|
LordGrim
|
1
|
0.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-04T00:33:19Z", "hours": 0.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "First ship of this. Made a simple, text-ish based snake clone that has a nostalgic feel. It is both minimalist and elegant, but I am sure there are a few bugs. Due to many misunderstandings, my time is messed up. At first I did not know I needed to set up Hacaktime, then didn’t understand how to set up project so edited under a folder on computer called Programming. Then moved to Gitub. So, my time is very messed up, I have done around 1h7m.", "repo": "https://github.com/JeremyGalownia/oldschool-snake", "demo": "https://jeremygalownia.github.io/oldschool-snake/"}]...
|
[{"post_id": 1790, "ts": "2026 [{"post_id": 1790, "ts": "2026-06-04T00:09:44Z", "hours": 0.4094, "text": "Here is the my nice snake game. Go play it on https://jeremygalownia.github.io/oldschool-snake/ It is a website, no mobile support yet, sorry! I had a lot of issues starting. First I didn’t understand how to start a git (never used it, didn’t have Github). Then Hackatime wouldn’t work. Then did it in wrong folder. So my time on this is very messed up. It says i have 18min, I’ve worked for 1h7min upgrading this old project. My changes from old me: found and fixed many redundancies and inefficiencies, added no script tag."}]...
|
Title: Minimalistic Snake by @LordGrim | Stardance Title: Minimalistic Snake by @LordGrim | Stardance
Devlogs:
Here is the my nice snake game. Go play it on https://jeremygalownia.github.io/oldschool-snake/ It is a website, no mobile support yet, sorry! I had a lot of issues starting. First I didn’t understand how to start a git (never used it, didn’t have Github). Then Hackatime wouldn’t work. Then did it in wrong folder. So my time on this is very messed up. It says i have 18min, I’ve worked for 1h7min upgrading this old project. My changes from old me: found and fixed many redundancies and inefficiencies, added no script tag.
Ships:
First ship of this. Made a simple, text-ish based snake clone that has a nostalgic feel. It is both minimalist and elegant, but I am sure there are a few bugs. Due to many misunderstandings, my time is messed up. At first I did not know I needed to set up Hacaktime, then didn’t understand how to set up project so edited under a folder on computer called Programming. Then moved to Gitub. So, my time is very messed up, I have done around 1h7m....
|
1792982880.0622902
|
1793069280.0622902
|
|
5715
|
SCRAM68 by @onyxtheone | Stardance
|
onyxtheone
|
1
|
6.0
|
96
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-17T11:29:06Z", "hours": 6.0, "multiplier": 14.99, "payout": 96, "blessing": "neutral", "text": "I implemented a ChaCha20-like cipher in Algol68. This project was just for fun, to have a look into Algol and overall old languages. But I mean, it works. To try it out you need Algol 86 Genie and run it as is specified in the README or on the site. I included a challenge encrypted file (the password is so obvious).", "repo": "https://github.com/onyx-the-one/SCRAM68", "demo": "https://onyx-the-one.github.io/SCRAM68/"}]...
|
[{"post_id": 1707, "ts": "2026 [{"post_id": 1707, "ts": "2026-06-03T21:22:47Z", "hours": 3.7878, "text": "I figured out the issues, then more came up, then I figured those out, then more, and so on and so on. But I did manage to get something working out, and from my tests it works swimmingly. ALGOL68 is definietly something I will never revisit thouhg."}, {"post_id": 1346, "ts": "2026-06-03T09:19:28Z", "hours": 2.6336, "text": "It’s my first time working with ALGOL68 (what an idea) and of course nothing works. However I wanted to devlog these 2h38 because this will take a few more days to get functional. Not like I have any worthwhile images to attach so here goes my latest error message."}]...
|
Title: SCRAM68 by @onyxtheone | Stardance
Devlogs Title: SCRAM68 by @onyxtheone | Stardance
Devlogs:
It’s my first time working with ALGOL68 (what an idea) and of course nothing works. However I wanted to devlog these 2h38 because this will take a few more days to get functional. Not like I have any worthwhile images to attach so here goes my latest error message.
I figured out the issues, then more came up, then I figured those out, then more, and so on and so on. But I did manage to get something working out, and from my tests it works swimmingly. ALGOL68 is definietly something I will never revisit thouhg.
Ships:
I implemented a ChaCha20-like cipher in Algol68. This project was just for fun, to have a look into Algol and overall old languages. But I mean, it works. To try it out you need Algol 86 Genie and run it as is specified in the README or on the site. I included a challenge encrypted file (the password is so obvious)....
|
1792875238.2649822
|
1793739238.2649822
|
|
5718
|
My first slack bot! by @Arsen | Stardance
|
Arsen
|
1
|
1.67
|
4
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-03T19:16:07Z", "hours": 1.0, "multiplier": 3.38, "payout": 4, "blessing": "neutral", "text": "What did I make? I built a Slack bot deployed on a Nest server that runs 24/7 using Node.js, Slack Bolt, Socket Mode, and systemd. It includes slash commands: /asd-ping (status check) /asd-sum (math calculator) /asd-bmi (BMI calculator) /asd-dice (random dice roll) /asd-catfact (API integration) /asd-help (command list) What was challenging? The hardest part was deployment and Slack integration. I had to debug: slash commands not triggering Socket Mode connection issues systemd environment configuration Slack routing vs server-side execution mismatches What am I proud of? I’m proud that I turned a local bot into a fully working production service: runs 24/7 on a Linux server restarts automatically via systemd stable Slack integration external API integration working reliably How to test it Install the bot via the Slack OAuth link from the project, then use: /asd-ping /asd-sum 5 10 /asd-bmi 70 175 /asd-dice /asd-catfact /asd-help All commands work inside Slack after installation.", "repo": "https://github.com/Arsen-Gevorgyan/chat-bot", "demo": "https://hackclub.enterprise.slack.com/archives/C0B96454ZHR"}]...
|
[{"post_id": 2155, "ts": "2026 [{"post_id": 2155, "ts": "2026-06-04T14:27:37Z", "hours": 0.665, "text": "Add new commands /asd-bitcoin show bitcoint price /asd-rect calculate rectangel area"}, {"post_id": 1596, "ts": "2026-06-03T18:34:58Z", "hours": 1.0594, "text": "Set up the bot to run 24/7 on a remote server using systemd Configured Slack Socket Mode deployment Added new slash commands: /asd-ping /asd-sum /asd-bmi /asd-dice /asd-catfact /asd-help"}]...
|
Title: My first slack bot! by @Arsen | Stardance
Title: My first slack bot! by @Arsen | Stardance
Devlogs:
Set up the bot to run 24/7 on a remote server using systemd Configured Slack Socket Mode deployment Added new slash commands: /asd-ping /asd-sum /asd-bmi /asd-dice /asd-catfact /asd-help
Add new commands /asd-bitcoin show bitcoint price /asd-rect calculate rectangel area
Ships:
What did I make? I built a Slack bot deployed on a Nest server that runs 24/7 using Node.js, Slack Bolt, Socket Mode, and systemd. It includes slash commands: /asd-ping (status check) /asd-sum (math calculator) /asd-bmi (BMI calculator) /asd-dice (random dice roll) /asd-catfact (API integration) /asd-help (command list) What was challenging? The hardest part was deployment and Slack integration. I had to debug: slash commands not triggering Socket Mode connection issues systemd environment configuration Slack routing vs server-side execution mismatches What am I proud of? I’m proud that I turned a local bot into a fully working production service: runs 24/7 on a Linux server restarts automatically via systemd stable Slack integration external API integration working reliably How to test it Install the bot via the Slack OAuth link from the project, then use: /asd-ping /asd-sum 5 10 /asd-bmi 70 175 /asd-dice /asd-catfact /asd-help All commands work inside Slack after installation....
|
1792972479.2209735
|
1793058879.2209735
|
|
5721
|
Shotmap by @superobotdevz | Stardance
|
superobotdevz
|
1
|
10.33
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-20T22:58:24Z", "hours": 9.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a badminton score-keeping website for underprivileged, more local, and less skilled badminton players and umpires. During the process, I encountered many problems, including setup complexity, which prompted me to change the original project (an AI badminton match reviewer) into a simpler badminton score-keeping website. Another challenge was trying to fix the favicon not showing for my GitHub page, while it showed for my localhost website (it was because my original favicon was too big). I’m proud that I managed to finalize this project despite facing many of those challenges. Some notes on testing it: You can deduct points for each player by pressing the little button on the bottom right of each player’s point buttons. The settings button is in the top right. The left/right text tells you which half of the court each player serves on when they are supposed to serve. The rest is pretty self-explanatory.", "repo": "https://github.com/LCDsuperobot129/Shotmap", "demo": "https://lcdsuperobot129.github.io/Shotmap/"}]...
|
[{"post_id": 19386, "ts": "202 [{"post_id": 19386, "ts": "2026-06-30T17:59:50Z", "hours": 1.3347, "text": "I changed it to a badminton court heatmap to keep it simple. I made this for people who want to see their common spots where they hit and their opponents’ common spots. This allows people to reduce their chance of being predicted and study their opponent’s shots."}, {"post_id": 12676, "ts": "2026-06-20T18:22:59Z", "hours": 0.4028, "text": "Hello all. I have decided to convert my AI badminton match reviewer into a simpler badminton score-keeping website because of complications with the setup and the complexity. The name has changed to UmpireBuddy. This website would help more local and underprivileged badminton players and umpires keep track of score. For now, I have completed the base design, layout, and system for this project, with two sides to click on to add points. You can also change settings, like the names of the players and the set points. The buttons have a liquid glass effect, with a background that has animated circles moving up. In addition, there is a win sound when someone wins the whole game."}, {"post_id": 11728, "ts": "2026-06-19T03:12:23Z", "hours": 0.6378, "text": "just made it a front-end prototype that is viewable, preparation for shipping"}, {"post_id": 9029, "ts": "2026-06-15T01:58:57Z", "hours": 4.7908, "text": "I worked on a new circular video upload button that got rid of the original rectangular button. However, it kind of made some new bugs, but I’m gonna work on them later."}, {"post_id": 4393, "ts": "2026-06-07T18:30:04Z", "hours": 1.0122, "text": "Set up android emulator and fixed off-center bug for video analysis tab"}, {"post_id": 2535, "ts": "2026-06-05T02:17:41Z", "hours": 0.6494, "text": "Added new font - Google Sans"}, {"post_id": 1915, "ts": "2026-06-04T04:27:32Z", "hours": 1.6642, "text": "basically working on the fundamentals"}]...
|
Title: Shotmap by @superobotdevz | Stardance
Devl Title: Shotmap by @superobotdevz | Stardance
Devlogs:
basically working on the fundamentals
Added new font - Google Sans
Set up android emulator and fixed off-center bug for video analysis tab
I worked on a new circular video upload button that got rid of the original rectangular button. However, it kind of made some new bugs, but I’m gonna work on them later.
just made it a front-end prototype that is viewable, preparation for shipping
Hello all. I have decided to convert my AI badminton match reviewer into a simpler badminton score-keeping website because of complications with the setup and the complexity. The name has changed to UmpireBuddy. This website would help more local and underprivileged badminton players and umpires keep track of score. For now, I have completed the base design, layout, and system for this project, with two sides to click on to add points. You can also change settings, like the names of the players and the set points. The buttons have a liquid glass effect, with a background that has animated circles moving up. In addition, there is a win sound when someone wins the whole game.
I changed it to a badminton court heatmap to keep it simple. I made this for people who want to see their common spots where they hit and their opponents’ common spots. This allows people to reduce their chance of being predicted and study their opponent’s shots.
Ships:
I made a badminton score-keeping website for underprivileged, more local, and less skilled badminton players and umpires. During the process, I encountered many problems, including setup complexity, which prompted me to change the original project (an AI badminton match reviewer) into a simpler badminton score-keeping website. Another challenge was trying to fix the favicon not showing for my GitHub page, while it showed for my localhost website (it was because my original favicon was too big). I’m proud that I managed to finalize this project despite facing many of those challenges. Some notes on testing it: You can deduct points for each player by pressing the little button on the bottom right of each player’s point buttons. The settings button is in the top right. The left/right text tells you which half of the court each player serves on when they are supposed to serve. The rest is pretty self-explanatory....
|
1792968625.2023778
|
1793055025.2023778
|
|
5726
|
Kunix Millennium Operating System by @jdj | Starda Kunix Millennium Operating System by @jdj | Stardance...
|
jdj
|
1
|
0.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-03T06:54:17Z", "hours": 0.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "This is the first real version of the Kunix Millennium Operating System. It is an operating system built from scratch, for X86_64 processors. It has a shell, and memory management. It boots with the Limine bootloader. It is fully libre under my own custom license. I had worked on it a bit beforehand, but I added some newer features like memory management among other things recently.", "repo": "https://github.com/KlondikeDev/kmos", "demo": "https://www.youtube.com/watch?v=stRZd9a7R0s"}]...
|
[{"post_id": 1305, "ts": "2026 [{"post_id": 1305, "ts": "2026-06-03T06:50:10Z", "hours": 0.2964, "text": "Kunix is going great! We have a shell, and copyright info now! We use our own license now, and we are successfully running on real hardware! Here is a screenshot from QEMU!"}]...
|
Title: Kunix Millennium Operating System by @jdj | Title: Kunix Millennium Operating System by @jdj | Stardance
Devlogs:
Kunix is going great! We have a shell, and copyright info now! We use our own license now, and we are successfully running on real hardware! Here is a screenshot from QEMU!
Ships:
This is the first real version of the Kunix Millennium Operating System. It is an operating system built from scratch, for X86_64 processors. It has a shell, and memory management. It boots with the Limine bootloader. It is fully libre under my own custom license. I had worked on it a bit beforehand, but I added some newer features like memory management among other things recently....
|
1792976201.22367
|
1793062601.22367
|
|
5727
|
Album Rater Website by @Vishwa | Stardance
|
Vishwa
|
1
|
39.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-01T05:07:44Z", "hours": 39.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made SimpleRater, a way to quickly write in your own ratings and comments on songs you love! You can search for an album using one of 2 music databases, and rate the album song-by-song on its own, colorful theme. I kept it Simple: just rate, comment, and save; no extra unnecessary features.", "repo": "https://github.com/VaishuBeta/album-rater", "demo": "https://rater-deployment.netlify.app/"}]...
|
[{"post_id": 75790, "ts": "202 [{"post_id": 75790, "ts": "2026-10-01T04:46:05Z", "hours": 1.7628, "text": "Final devlog Everything is ready for publishing. Submission will be finished shortly."}, {"post_id": 74277, "ts": "2026-09-27T03:35:16Z", "hours": 3.5108, "text": "Final update before publishing This is the final, ready-for-release version of the project. I will be working on packaging and publishing it for the next few days. Album pages can be exported with album and rating data (new button!) Home page has a new (but familiar) layout. Added a background for the search section, creates the sections step-by-step and autoscrolls for a smooth and clear experience. Looks a lot better than the old UI, honestly. **Added iTunes Search, using iTunes API. It gives generally different results than MusicBrainz, so you’ll usually find the album you’re looking for in one of them. Importing is somewhat functional but causes a lot of issues. This will likely be removed before release. Rating comments look better (gray when blank, scrolling for long comments) Rating numbers are much easier to type. Previously, the auto-formatting made it annoying to type in your rating. The format has since been fixed, and is much easier to use. Rating cells change opacity depending on how well rated the song is. Lowest opacity is 30% for a 0/10 rating, so even 0s are still visible. This makes it much easier to see what songs are rated well/poorly at a glance, and makes the page look much better. Misc. bugs were fixed, and more comments were added to the code"}, {"post_id": 60618, "ts": "2026-09-03T02:20:32Z", "hours": 7.0539, "text": "Returning to the Album Rater Album Rater is now fully saved using LocalStorage. I plan to add exports page exports very soon. Color palettes also save to LocalStorage and work with a pop-up button next to the edit button. To Do: Add imports/exports Tracklist editing before and after page creation Manual page creation with user-inputted album data Try another music search API (Spotify API needs premium) UI updates to polish the look Finish up and submit the project"}, {"post_id": 13535, "ts": "2026-06-22T04:44:10Z", "hours": 8.9711, "text": "I added so much this time I forgot everything I did, so this is just what I remember. Made the HTML files generate with a parallel JSON file, which I’ll use for data importing/exporting Added custom colors. Color Thief generates a clean palette up to 10 colors, and the user can select two to be the primary and secondary colors. This influences the entire page’s theme, since every color is derived from those two colors. The program also saves your chosen two colors in local storage, so that each page has its own selected theme. (I might move this to a JSON file, since I plan to use that for saving the tracklist info, but i’m not sure yet). On the home page, I made a pop-up box for the user to validate/customize album information before the page is made. This way, they can make the page name whatever they want instead of the automatic one. I still have to link this to the backend to sync the page names with the page generation. I finally added custom comments for the songs, which I’ve stalled for super long now. I’m debating between saving them with local storage or a seperate JSON file, so I’ve held off on the saving for now. Right now they just save in an object in the JS file. I made a top bar where the pages will go. I want the UI to look like Google tabs, with a (+) button that has a dropdown with all the pages. I fixed the entire backend and solved a bunch of problems. Before, making two pages for the same album would overwrite the old one, but now I made it make a duplicate, titled” {Album Name} 2.html” instead. I have to link this with the popup to let the user name it whatever they want, since this is going to be the page name used everywhere. I also had issues with albums with special names. For example, I knew an album titled “</3”, and the “<” and “/” would cause issues with finding the file as well as HTML formatting when generating the page. So I seperated the file name from the album name by making a separate sanitized name, which is going to be the page name. I also remember doing a ton of smaller fixes but I forgot what I did. I cleaned up the CSS in a bunch of places and made sure elements didn’t break with different-sized windows. Next, I need to Link the popup on the Search page to the backend, so the user can customize page names before making them. Make the tabs system on the top, where the user can open/close whichever pages are relevant. Let the user update the number rating, and put some album data (median rating, user rating, album comments) Let the user change the album cover in the popup and on the album page Export album pages as JSON files I’m almost done with the app and I think I can probably finish it up in a few more devlogs. I’m expecting two weeks until I’m ready to ship."}, {"post_id": 8440, "ts": "2026-06-14T01:18:21Z", "hours": 4.2897, "text": "For the past few sessions, I’ve just been working on a dynamic theme for the album page. It automatically samples a dominant and secondary color from the album cover, and then: Creates a gradient for the banner, with both colors darkened (or lightened if needed) until it’s within a certain luminosity threshhold Darkens the primary color to create the background color Raises luminosity of the secondary color to color the tracklist numbers and “Tracklist” title. I just need to make the ratings and comments for this page, and I should be done with the album pages. After that, I’ll probably work on customizing the album page themes, since sometimes they don’t pick the best colors automatically. Then, I’ll have to do rating and comment functionality. The project is going well so far, and I think I’m close to done. I only have a few more big tasks left, and then I just have to do some finishing touches and I should be done."}, {"post_id": 6643, "ts": "2026-06-11T04:05:07Z", "hours": 4.5094, "text": "Made the UI for the album pages (this is temporary, I plan to work on this a lot more later). I also added the ability to edit the album data. User input for the songs is not implemented yet, so this is all hardcoded. I spent a while trying to use ColorThief to automatically sample a background color for the album cover, but there were some issues with the package and I couldn’t get it to work, so I just hardcoded this color for now. I plan to get ColorThief (or a similar package) working soon, since the accent color is pretty important to the look of the app. My next steps are to implement song input (rating & comments) and improve the UI for this page, as well as the home page."}, {"post_id": 5296, "ts": "2026-06-09T00:50:52Z", "hours": 1.9944, "text": "I’ve made the process to generate album pages. It’s not hooked up to a script yet, so there’s no functionality, but the Search->Page Generation pipeline works perfectly. You can search for an album with MusicBrainz API (or just give a release ID) and find an album, then get a preview to make sure it’s the right album, and finally generate an album page for it. All that’s left is making the script to edit the album pages as needed. I’m guessing this will be in 3 parts: being able to edit album “hard” data, being able to input ratings and comments, and being able to export/import album pages as a file. For the last part, I would like it to be a text file or CSV file, but an HTML file could honestly be easier if all the data is written in there anyways. I’ll cross that bridge when I get to it. For now, I need to work on the former 2 parts."}, {"post_id": 4712, "ts": "2026-06-08T04:13:41Z", "hours": 3.0178, "text": "UI for the homepage is coming together well, but I might update it at the end of the project. For now, there’s a theme and it looks good, so that’s good enough. I also added a Search by Release ID feature, since the MusicBrainz API search isn’t that great and oftentimes doesn’t suggest the album that I want, so now I can just paste a release ID to get the album immediately. Next steps are building the functionality for the rating pages and figuring out how to store the user-inputted page data."}, {"post_id": 3882, "ts": "2026-06-06T23:43:20Z", "hours": 3.32, "text": "The program can now search for albums, preview information, and load it in a new file for further use. The UI looks like a mess for now, so the next step is to fix the layout and interface. This is a great experience, learning to use the MusicBrainz API and learn how Electron works, and I’m glad to be working on this project."}, {"post_id": 1147, "ts": "2026-06-03T00:10:20Z", "hours": 0.4867, "text": "Basic Electron setup for the app, learning how it works. This is my first time using Electron for any project, so this will be fun."}]...
|
Title: Album Rater Website by @Vishwa | Stardance
Title: Album Rater Website by @Vishwa | Stardance
Devlogs:
Basic Electron setup for the app, learning how it works. This is my first time using Electron for any project, so this will be fun.
The program can now search for albums, preview information, and load it in a new file for further use. The UI looks like a mess for now, so the next step is to fix the layout and interface. This is a great experience, learning to use the MusicBrainz API and learn how Electron works, and I’m glad to be working on this project.
UI for the homepage is coming together well, but I might update it at the end of the project. For now, there’s a theme and it looks good, so that’s good enough. I also added a Search by Release ID feature, since the MusicBrainz API search isn’t that great and oftentimes doesn’t suggest the album that I want, so now I can just paste a release ID to get the album immediately. Next steps are building the functionality for the rating pages and figuring out how to store the user-inputted page data.
I’ve made the process to generate album pages. It’s not hooked up to a script yet, so there’s no functionality, but the Search->Page Generation pipeline works perfectly. You can search for an album with MusicBrainz API (or just give a release ID) and find an album, then get a preview to make sure it’s the right album, and finally generate an album page for it. All that’s left is making the script to edit the album pages as needed. I’m guessing this will be in 3 parts: being able to edit album “hard” data, being able to input ratings and comments, and being able to export/import album pages as a file. For the last part, I would like it to be a text file or CSV file, but an HTML file could honestly be easier if all the data is written in there anyways. I’ll cross that bridge when I get to it. For now, I need to work on the former 2 parts.
Made the UI for the album pages (this is temporary, I plan to work on this a lot more later). I also added the ability to edit the album data. User input for the songs is not implemented yet, so this is all hardcoded. I spent a while trying to use ColorThief to automatically sample a background color for the album cover, but there were some issues with the package and I couldn’t get it to work, so I just hardcoded this color for now. I plan to get ColorThief (or a similar package) working soon, since the accent color is pretty important to the look of the app. My next steps are to implement song input (rating & comments) and improve the UI for this page, as well as the home page.
For the past few sessions, I’ve just been working on a dynamic theme for the album page. It automatically samples a dominant and secondary color from the album cover, and then: Creates a gradient for the banner, with both colors darkened (or lightened if needed) until it’s within a certain luminosity threshhold Darkens the primary color to create the background color Raises luminosity of the secondary color to color the tracklist numbers and “Tracklist” title. I just need to make the ratings and comments for this page, and I should be done with the album pages. After that, I’ll probably work on customizing the album page themes, since sometimes they don’t pick the best colors automatically. Then, I’ll have to do rating and comment functionality. The project is going well so far, and I think I’m close to done. I only have a few more big tasks left, and then I just have to do some finishing touches and I should be done.
I added so much this time I forgot everything I did, so this is just what I remember. Made the HTML files generate with a parallel JSON file, which I’ll use for data importing/exporting Added custom colors. Color Thief generates a clean palette up to 10 colors, and the user can select two to be the primary and secondary colors. This influences the entire page’s theme, since every color is derived from those two colors. The program also saves your chosen two colors in local storage, so that each page has its own selected theme. (I might move this to a JSON file, since I plan to use that for saving the tracklist info, but i’m not sure yet). On the home page, I made a pop-up box for the user to validate/customize album information before the page is made. This way, they can make the page name whatever they want instead of the automatic one. I still have to link this to the backend to sync the page names with the page generation. I finally added custom comments for the songs, which I’ve stalled for super long now. I’m debating between saving them with local storage or a seperate JSON file, so I’ve held off on the saving for now. Right now they just save in an object in the JS file. I made a top bar where the pages will go. I want the UI to look like Google tabs, with a (+) button that has a dropdown with all the pages. I fixed the entire backend and solved a bunch of problems. Before, making two pages for the same album would overwrite the old one, but now I made it make a duplicate, titled” {Album Name} 2.html” instead. I have to link this with the popup to let the user name it whatever they want, since this is going to be the page name used everywhere. I also had issues with albums with special names. For example, I knew an album titled “</3”, and the “<” and “/” would cause issues with finding the file as well as HTML formatting when generating the page. So I seperated the file name from the album name by making a separate sanitized name, which is going to be the page name. I also remember doing a ton of smaller fixes but I forgot what I did. I cleaned up the CSS in a bunch of places and made sure elements didn’t break with different-sized windows. Next, I need to Link the popup on the Search page to the backend, so the user can customize page names before making them. Make the tabs system on the top, where the user can open/close whichever pages are relevant. Let the user update the number rating, and put some album data (median rating, user rating, album comments) Let the user change the album cover in the popup and on the album page Export album pages as JSON files I’m almost done with the app and I think I can probably finish it up in a few more devlogs. I’m expecting two weeks until I’m ready to ship.
Returning to the Album Rater Album Rater is now fully saved using LocalStorage. I plan to add exports page exports very soon. Color palettes also save to LocalStorage and work with a pop-up button next to the edit button. To Do: Add imports/exports Tracklist editing before and after page creation Manual page creation with user-inputted album data Try another music search API (Spotify API needs premium) UI updates to polish the look Finish up and submit the project
Final update before publishing This is the final, ready-for-release version of the project. I will be working on packaging and publishing it for the next few days. Album pages can be exported with album and rating data (new button!) Home page has a new (but familiar) layout. Added a background for the search section, creates the sections step-by-step and autoscrolls for a smooth and clear experience. Looks a lot better than the old UI, honestly. **Added iTunes Search, using iTunes API. It gives generally different results than MusicBrainz, so you’ll usually find the album you’re looking for in one of them. Importing is somewhat functional but causes a lot of issues. This will likely be removed before release. Rating comments look better (gray when blank, scrolling for long comments) Rating numbers are much easier to type. Previously, the auto-formatting made it annoying to type in your rating. The format has since been fixed, and is much easier to use. Rating cells change opacity depending on how well rated the song is. Lowest opacity is 30% for a 0/10 rating, so even 0s are still visible. This makes it much easier to see what songs are rated well/poorly at a glance, and makes the page look much better. Misc. bugs were fixed, and more comments were added to the code
Final devlog Everything is ready for publishing. Submission will be finished shortly.
Ships:
I made SimpleRater, a way to quickly write in your own ratings and comments on songs you love! You can search for an album using one of 2 music databases, and rate the album song-by-song on its own, colorful theme. I kept it Simple: just rate, comment, and save; no extra unnecessary features....
|
1793004509.6791816
|
1793090909.6791816
|
|
5741
|
GoopOS by @thatoneperson | Stardance
|
thatoneperson
|
1
|
7.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-28T21:20:18Z", "hours": 7.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made goopOS, a browser-based mock operating system built with HTML, CSS, and JavaScript that includes draggable windows, a taskbar, and simple apps like a notepad and embedded Google browser. The main challenge was building a stable window system with proper dragging, layering, and open/close behavior without bugs or animation issues, as it took me quite a long time to figure out pseudoclasses. I’m proud of how it now feels like a real desktop environment with smooth interactions and working taskbar controls. To test it, open the site and use the top bar icons to launch apps, drag windows around, and close or reopen them from the taskbar.", "repo": "https://github.com/thatoneperson10/GoopOS", "demo": "https://thatoneperson10.github.io/GoopOS/"}]...
|
[{"post_id": 17923, "ts": "202 [{"post_id": 17923, "ts": "2026-06-28T21:17:18Z", "hours": 1.0033, "text": "Added toggle functionality for the app buttons at upper left, also added open and close animations for windows. https://lufi.ethibox.fr/r/5NZznQa3go#x705kMk/SpaGbmEYww/xv+EFTaxE9telj5/ZDf9fVFc= this is the link to see the animations"}, {"post_id": 15272, "ts": "2026-06-24T20:08:34Z", "hours": 1.2203, "text": "Added a google i-frame for all the search-related needs of this OS. Also, added layers for each of the windows so that they don’t stack weird again."}, {"post_id": 9598, "ts": "2026-06-16T00:06:49Z", "hours": 4.4142, "text": "Started goopOS like 3 days ago, realized I forgot to do a devlog"}]...
|
Title: GoopOS by @thatoneperson | Stardance
Devlo Title: GoopOS by @thatoneperson | Stardance
Devlogs:
Started goopOS like 3 days ago, realized I forgot to do a devlog
Added a google i-frame for all the search-related needs of this OS. Also, added layers for each of the windows so that they don’t stack weird again.
Added toggle functionality for the app buttons at upper left, also added open and close animations for windows. https://lufi.ethibox.fr/r/5NZznQa3go#x705kMk/SpaGbmEYww/xv+EFTaxE9telj5/ZDf9fVFc= this is the link to see the animations
Ships:
I made goopOS, a browser-based mock operating system built with HTML, CSS, and JavaScript that includes draggable windows, a taskbar, and simple apps like a notepad and embedded Google browser. The main challenge was building a stable window system with proper dragging, layering, and open/close behavior without bugs or animation issues, as it took me quite a long time to figure out pseudoclasses. I’m proud of how it now feels like a real desktop environment with smooth interactions and working taskbar controls. To test it, open the site and use the top bar icons to launch apps, drag windows around, and close or reopen them from the taskbar....
|
1792972227.9622858
|
1793058627.9622858
|
|
5750
|
Halyra IDE by @aavarvd | Stardance
|
aavarvd
|
1
|
21.82
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-12T02:15:08Z", "hours": 19.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Hi guys! Its been 19 hours of development and bug-fixing pain already! I’ve been working on this “little” project about a python IDE written with Kotlin Compose named Halyra, I am probably going to continue working in it in future ships, and this ship is just usable neough for me to publish it to the world! Current features: Lexer based Syntax highlighting Python execution I/O Open/Save/Save as Tab based editing Open folder as project(altho project does not save) Planned features: Write a text drawable canvas myself as BasicTextField has issues processing files over 100KB Make a working custom title bar because windows default sucks WONTFIX: Find/Replace bar(you can still check it with ctrl+F and ctrl+H, but i won’t fix it anymore) My main objectives making this IDE was lightweight and good UI, which I think is what I;m currently stepping towards to, and I wish I could still have a chance to continue on this project!", "repo": "https://github.com/aavarvdXD/HalyraUltra", "demo": "https://github.com/aavarvdXD/HalyraUltra/releases"}]...
|
[{"post_id": 70154, "ts": "202 [{"post_id": 70154, "ts": "2026-09-18T16:02:46Z", "hours": 0.2592, "text": "The ones who know should know"}, {"post_id": 69897, "ts": "2026-09-18T01:01:59Z", "hours": 0.4633, "text": "Finished fixing terminal bugs, moved the toggle button of PowerShell and output console to the bottom and added a stop button"}, {"post_id": 69470, "ts": "2026-09-17T03:56:47Z", "hours": 1.3422, "text": "Improved README as shipping staff said"}, {"post_id": 67720, "ts": "2026-09-13T22:34:21Z", "hours": 0.7578, "text": "guess what guys, I discovered a new bug sitting there and I went fixing it before it was reviewed for ship"}, {"post_id": 66296, "ts": "2026-09-12T01:51:41Z", "hours": 0.4822, "text": "I found the problem, it was becuase the file was too large it takes a minute to load and render, I’m trying to optimize by not giivng BasicTextField a big file in once, and while I’m fixing that, I added a user warning"}, {"post_id": 66282, "ts": "2026-09-12T00:59:01Z", "hours": 2.0608, "text": "I’ve been working on this feature that opens a folder to show a structure of the project but for some reason it crashes when opening an markdown file, I’m trying my best to fix it, I suspected it was the lexer trying to analyze through it and exploded because it wasnt python syntax, but even after disabling the lexer is still freezes, and crashes, the weird part is that i can’t close it with alt f4…. Btw for the ones who don’t know I absolutely gave up on making the find and replace bar work"}, {"post_id": 63313, "ts": "2026-09-07T01:58:56Z", "hours": 0.2778, "text": "Fixing tabs"}, {"post_id": 62283, "ts": "2026-09-05T16:04:18Z", "hours": 0.3231, "text": "Wow, tab handling went easier that what I was expecting.."}, {"post_id": 61957, "ts": "2026-09-05T04:27:50Z", "hours": 0.4111, "text": "Improved UI! and tab support still in demo details: I added a terminal button at the sidebar to toggle visibility and also made the terminal vertically resizeable"}, {"post_id": 61299, "ts": "2026-09-04T04:26:13Z", "hours": 0.4156, "text": "I made an icon based sidebar with tooltips once hovered! Now working on making temp file execution(aka no need to save to execute, perfect for prototyping)"}, {"post_id": 60627, "ts": "2026-09-03T02:56:36Z", "hours": 0.5039, "text": "Can anyone help me? I really don’t know how to deal with this error… Could not load the value of field valueSourceType of org.gradle.api.internal.provider.DefaultValueSourceProviderFactory$DefaultObtainedValue bean found in field obtainedValue of org.gradle.internal.cc.impl.fingerprint.ConfigurationCacheFingerprint$ValueSource bean found in Gradle runtime. Class ‘org.jetbrains.kotlin.gradle.internal.IsInIdeaSyncValueSource’ not found in class loader ‘InstrumentingVisitableURLClassLoader(ClassLoaderScopeIdentifier.Id{coreAndPlugins:settings[:]:buildSrc[:]:root-project : })’ of type ‘org.gradle.internal.classloader.VisitableURLClassLoader$InstrumentingVisitableURLClassLoader’."}, {"post_id": 59378, "ts": "2026-09-01T04:41:49Z", "hours": 0.3589, "text": "Im still working on findbar focus requesting, probably wont add devlogs more until i fix it"}, {"post_id": 58537, "ts": "2026-08-30T23:39:34Z", "hours": 2.1778, "text": "added auto closing brakcets, and still fixing search amd replace"}, {"post_id": 42841, "ts": "2026-08-07T19:39:16Z", "hours": 0.8042, "text": "Finished searchEngine, I decided to use the built-in Kotlin’s string searching, modified app.kt and hotkeys.kt for integrating ctrl+f(search) and ctrl+h(search and replace) Everything worked normally during the test, now aiming to make the UI to integrate to the app."}, {"post_id": 36683, "ts": "2026-07-28T22:00:14Z", "hours": 1.8456, "text": "Hi guys! Its been a long time since i posted my last devlog, the main reason was because….. LEXER IS SO HARD TO IMPLEMENT before in Halyra PySide6 Edition, I just used a regex and everything works perfectly, but in Kotlin, somehow it didnt work, so i had to search for techniques and try to implement one myself(Kotlin tutorials are hard to find ಥ_ಥ) I retried and retried until I got what i wanted, class definition/call rendering, keyword, numbers string, and others rendering perfectly…. I was planning to use parser to detect variable definitions and calls, but It was so hard that i eventually gave up.. Anyways, I made it! I’m aiming for find and replace next ;)"}, {"post_id": 27499, "ts": "2026-07-13T03:43:46Z", "hours": 2.1828, "text": "LETS GOOOOOOOOOOOOOOOOOOOOOO🎉🎉🎉🎉!!!!! After about 4 to 6 hours, I MADE TO FIX THE INDENTING GLITCHES!!! Summary: After trying 3 different algorithms, I reinspected the code of all my commits and noticed the true issue: I was trying to make the same implementation to handle different behaviors , which caused the bug. Basically Tab in editors had two different behaviors: prin|t(“a”) after tab: prin |t(“a”) the second behavior happens at the start of a line: |print(“a”) after tab: |print(\"a\") I originally planned to use the same code to detect what the user wants, and it didn’t work well no matter how hard I tried until I separated the two behaviors into two snnipets completely, which just ended the bug that I tried fixing for hours. I’ll never be lazy again…."}, {"post_id": 22971, "ts": "2026-07-05T17:26:02Z", "hours": 1.4756, "text": "found a bug at indenting and still fixing….. Im going to explode"}, {"post_id": 19584, "ts": "2026-06-30T22:37:32Z", "hours": 0.795, "text": "finished indenting part"}, {"post_id": 15832, "ts": "2026-06-25T19:00:36Z", "hours": 1.305, "text": "finished adding auto indenting to the IDE, it was the most difficult task ever….. at least for now"}, {"post_id": 11572, "ts": "2026-06-18T21:11:07Z", "hours": 0.3175, "text": "Finished fixing bugs"}, {"post_id": 11504, "ts": "2026-06-18T20:00:00Z", "hours": 1.3561, "text": "added a glitchy syntax higlighting, will continue fixing"}, {"post_id": 4677, "ts": "2026-06-08T02:28:13Z", "hours": 1.2625, "text": "Added a not very well-looking custom title bar, I will fix it later"}, {"post_id": 3954, "ts": "2026-06-07T02:43:37Z", "hours": 0.78, "text": "Changed Buttons and migrated to Box() instead of Button"}, {"post_id": 1740, "ts": "2026-06-03T22:29:53Z", "hours": 0.3461, "text": "I successfully added line numebrs and auto scrolling, aiming for keyword highlightin next"}]...
|
Title: Halyra IDE by @aavarvd | Stardance
Devlogs Title: Halyra IDE by @aavarvd | Stardance
Devlogs:
I successfully added line numebrs and auto scrolling, aiming for keyword highlightin next
Changed Buttons and migrated to Box() instead of Button
Added a not very well-looking custom title bar, I will fix it later
added a glitchy syntax higlighting, will continue fixing
Finished fixing bugs
finished adding auto indenting to the IDE, it was the most difficult task ever….. at least for now
finished indenting part
found a bug at indenting and still fixing….. Im going to explode
LETS GOOOOOOOOOOOOOOOOOOOOOO🎉🎉🎉🎉!!!!! After about 4 to 6 hours, I MADE TO FIX THE INDENTING GLITCHES!!! Summary: After trying 3 different algorithms, I reinspected the code of all my commits and noticed the true issue: I was trying to make the same implementation to handle different behaviors , which caused the bug. Basically Tab in editors had two different behaviors: prin|t(“a”) after tab: prin |t(“a”) the second behavior happens at the start of a line: |print(“a”) after tab: |print("a") I originally planned to use the same code to detect what the user wants, and it didn’t work well no matter how hard I tried until I separated the two behaviors into two snnipets completely, which just ended the bug that I tried fixing for hours. I’ll never be lazy again….
Hi guys! Its been a long time since i posted my last devlog, the main reason was because….. LEXER IS SO HARD TO IMPLEMENT before in Halyra PySide6 Edition, I just used a regex and everything works perfectly, but in Kotlin, somehow it didnt work, so i had to search for techniques and try to implement one myself(Kotlin tutorials are hard to find ಥ_ಥ) I retried and retried until I got what i wanted, class definition/call rendering, keyword, numbers string, and others rendering perfectly…. I was planning to use parser to detect variable definitions and calls, but It was so hard that i eventually gave up.. Anyways, I made it! I’m aiming for find and replace next ;)
Finished searchEngine, I decided to use the built-in Kotlin’s string searching, modified app.kt and hotkeys.kt for integrating ctrl+f(search) and ctrl+h(search and replace) Everything worked normally during the test, now aiming to make the UI to integrate to the app.
added auto closing brakcets, and still fixing search amd replace
Im still working on findbar focus requesting, probably wont add devlogs more until i fix it
Can anyone help me? I really don’t know how to deal with this error… Could not load the value of field valueSourceType of org.gradle.api.internal.provider.DefaultValueSourceProviderFactory$DefaultObtainedValue bean found in field obtainedValue of org.gradle.internal.cc.impl.fingerprint.ConfigurationCacheFingerprint$ValueSource bean found in Gradle runtime. Class ‘org.jetbrains.kotlin.gradle.internal.IsInIdeaSyncValueSource’ not found in class loader ‘InstrumentingVisitableURLClassLoader(ClassLoaderScopeIdentifier.Id{coreAndPlugins:settings[:]:buildSrc[:]:root-project : })’ of type ‘org.gradle.internal.classloader.VisitableURLClassLoader$InstrumentingVisitableURLClassLoader’.
I made an icon based sidebar with tooltips once hovered! Now working on making temp file execution(aka no need to save to execute, perfect for prototyping)
Improved UI! and tab support still in demo details: I added a terminal button at the sidebar to toggle visibility and also made the terminal vertically resizeable
Wow, tab handling went easier that what I was expecting..
Fixing tabs
I’ve been working on this feature that opens a folder to show a structure of the project but for some reason it crashes when opening an markdown file, I’m trying my best to fix it, I suspected it was the lexer trying to analyze through it and exploded because it wasnt python syntax, but even after disabling the lexer is still freezes, and crashes, the weird part is that i can’t close it with alt f4…. Btw for the ones who don’t know I absolutely gave up on making the find and replace bar work
I found the problem, it was becuase the file was too large it takes a minute to load and render, I’m trying to optimize by not giivng BasicTextField a big file in once, and while I’m fixing that, I added a user warning
guess what guys, I discovered a new bug sitting there and I went fixing it before it was reviewed for ship
Improved README as shipping staff said
Finished fixing terminal bugs, moved the toggle button of PowerShell and output console to the bottom and added a stop button
The ones who know should know
Ships:
Hi guys! Its been 19 hours of development and bug-fixing pain already! I’ve been working on this “little” project about a python IDE written with Kotlin Compose named Halyra, I am probably going to continue working in it in future ships, and this ship is just usable neough for me to publish it to the world! Current features: Lexer based Syntax highlighting Python execution I/O Open/Save/Save as Tab based editing Open folder as project(altho project does not save) Planned features: Write a text drawable canvas myself as BasicTextField has issues processing files over 100KB Make a working custom title bar because windows default sucks WONTFIX: Find/Replace bar(you can still check it with ctrl+F and ctrl+H, but i won’t fix it anymore) My main objectives making this IDE was lightweight and good UI, which I think is what I;m currently stepping towards to, and I wish I could still have a chance to continue on this project!...
|
1793004747.1430962
|
1793091147.1430962
|
|
5754
|
My first slack bot! by @Izzy | Stardance
|
Izzy
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-18T20:00:56Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I created a slack bot that responds to simple commands on slack like getting ip address, tells a joke and some other functions There was little to no challenge thanks to the Stardance guide and my knowlegde in javascript I’m proud cause This is my first bot since i started learning javascript and it made me understand bot creation better The command is /izzy- whatever you want to run e.g /izzy-ip, /izzy-joke, and some others just tyoe /izzy-help and you’ll see the list of commands altough not through adding all but will soon be Thanks😊", "repo": "https://github.com/IzzyCodeX/izzy-bot", "demo": "https://hackclub.enterprise.slack.com/archives/C088DT8P7B8"}]...
|
[{"post_id": 1165, "ts": "2026 [{"post_id": 1165, "ts": "2026-06-03T00:37:06Z", "hours": 0.5339, "text": "My first slack bot!"}]...
|
Title: My first slack bot! by @Izzy | Stardance
D Title: My first slack bot! by @Izzy | Stardance
Devlogs:
My first slack bot!
Ships:
I created a slack bot that responds to simple commands on slack like getting ip address, tells a joke and some other functions There was little to no challenge thanks to the Stardance guide and my knowlegde in javascript I’m proud cause This is my first bot since i started learning javascript and it made me understand bot creation better The command is /izzy- whatever you want to run e.g /izzy-ip, /izzy-joke, and some others just tyoe /izzy-help and you’ll see the list of commands altough not through adding all but will soon be Thanks😊...
|
1792990159.6025574
|
1793076559.6025574
|
|
5760
|
The ABC Button Game by @brandon | Stardance
|
brandon
|
1
|
2.0
|
2
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-07T04:03:34Z", "hours": 2.0, "multiplier": 1.49, "payout": 2, "blessing": "neutral", "text": "I made my first game that uses the A, B, and C, key binds. I wanted to make it look like a 2d version of subway surfers. What I really struggled with at first was trying to figure out how all of this works, since this is my very first (complete) project. I also struggled with trying to fix an issue that my python game had, which was how the game ended out of nowhere even if the player didnt collide with any obstacle. However, what I am most proud of is being able to say that I made my very first game, even though it doesnt look too cool.", "repo": "https://github.com/Br4ndon-aero/ABC-Game", "demo": "https://github.com/Br4ndon-aero/ABC-Game/releases/tag/1.0.0"}]...
|
[{"post_id": 1847, "ts": "2026 [{"post_id": 1847, "ts": "2026-06-04T01:56:26Z", "hours": 0.9256, "text": "I created a Start Menu, a “select difficulty screen”, and added it to GitHub!"}, {"post_id": 1224, "ts": "2026-06-03T02:29:45Z", "hours": 0.5983, "text": "currently making edits on the game, created a draft and improvised. This is how the game is looking like so far on the terminal:"}]...
|
Title: The ABC Button Game by @brandon | Stardance Title: The ABC Button Game by @brandon | Stardance
Devlogs:
currently making edits on the game, created a draft and improvised. This is how the game is looking like so far on the terminal:
I created a Start Menu, a “select difficulty screen”, and added it to GitHub!
Ships:
I made my first game that uses the A, B, and C, key binds. I wanted to make it look like a 2d version of subway surfers. What I really struggled with at first was trying to figure out how all of this works, since this is my very first (complete) project. I also struggled with trying to fix an issue that my python game had, which was how the game ended out of nowhere even if the player didnt collide with any obstacle. However, what I am most proud of is being able to say that I made my very first game, even though it doesnt look too cool....
|
1792997539.9811723
|
1793083939.9811723
|
|
5776
|
Old guitar tuning pegs by @codingfreak234 | Starda Old guitar tuning pegs by @codingfreak234 | Stardance...
|
codingfreak234
|
1
|
0.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-23T23:24:51Z", "hours": 0.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made replacement tuning pegs for an old guitar. The hardest part was probably making sure that I had the letters inserted correctly to the sides of the tuning pegs. follow the instructions on the printables page, or in the README. they say the same things. Have Fun!", "repo": "https://github.com/CodingFreak234/Tuning-peg-replacements", "demo": "https://www.printables.com/model/1762803-replacement-tuning-pegs-for-guitar"}]...
|
[{"post_id": 2521, "ts": "2026 [{"post_id": 2521, "ts": "2026-06-05T01:48:17Z", "hours": 0.3178, "text": "I have this old guitar that’s kind of broken, and it’s missing some tuning pegs, so I designed some new ones in tinkercad. It took a while to get the measurements from the guitar, and I really don’t know if they actually are going to fit. I’m printing them now, so well find out in about 5 minutes. Also, thanks to Sunjot and Elliott-entity on Slack for helping me figure out how to make a devlog. Update from 5 minutes later. - The tuning pegs work just fine, but if by some miracle they work on your guitar, it would probably be a good idea to glue them on with hot glue or superglue or something similar. I’m also going to camp for two weeks, and therefore won’t be able to do anything more until I get back. Check out the repository! https://github.com/CodingFreak234/Tuning-peg-replacements"}]...
|
Title: Old guitar tuning pegs by @codingfreak234 | Title: Old guitar tuning pegs by @codingfreak234 | Stardance
Devlogs:
I have this old guitar that’s kind of broken, and it’s missing some tuning pegs, so I designed some new ones in tinkercad. It took a while to get the measurements from the guitar, and I really don’t know if they actually are going to fit. I’m printing them now, so well find out in about 5 minutes. Also, thanks to Sunjot and Elliott-entity on Slack for helping me figure out how to make a devlog. Update from 5 minutes later. - The tuning pegs work just fine, but if by some miracle they work on your guitar, it would probably be a good idea to glue them on with hot glue or superglue or something similar. I’m also going to camp for two weeks, and therefore won’t be able to do anything more until I get back. Check out the repository! https://github.com/CodingFreak234/Tuning-peg-replacements
Ships:
I made replacement tuning pegs for an old guitar. The hardest part was probably making sure that I had the letters inserted correctly to the sides of the tuning pegs. follow the instructions on the printables page, or in the README. they say the same things. Have Fun!...
|
1792990537.3798378
|
1793076937.3798378
|
|
5780
|
Drone Racing Simulator by @NamanS | Stardance
|
NamanS
|
1
|
8.0
|
110
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-26T19:10:29Z", "hours": 8.0, "multiplier": 13.08, "payout": 110, "blessing": "neutral", "text": "I built a 3D drone racing simulator in Python that uses physics-based motion (gravity, thrust, drag) and a PD controller to guide a drone through a series of 3D gates. The simulation is visualized in an interactive Plotly 3D environment with an animated trajectory, colour-coded speed, and real-time force vectors, along with play/pause controls and a time slider for scrubbing through the motion. The main challenge was balancing stable control with realistic physics while also getting the Plotly animation system (especially the slider and frame updates) to behave correctly. I’m most proud of making the simulation visually intuitive and extensible toward a full rigid-body drone model in the future. To run it, users just need Python with NumPy and Plotly installed, then execute the script to generate an HTML file they can open in a browser to interact with the simulation.", "repo": "https://github.com/Nam2302/Drone-Simulation/", "demo": "https://nam2302.github.io/Drone-Simulation/"}]...
|
[{"post_id": 16433, "ts": "202 [{"post_id": 16433, "ts": "2026-06-26T18:57:36Z", "hours": 6.1103, "text": "Devlog #2 I added a coloured speed visualization to the trajectory trail, where the drone’s path is now colour-mapped based on instantaneous velocity. This makes it much easier to see acceleration and braking behaviour during gate transitions. I also improved the 3D animation system so the force vectors are more stable and visually consistent across frames, especially during high-acceleration segments. On top of that, I refined the Plotly animation controls so the slider state behaves more reliably when interacting with play/pause, and the camera no longer resets unexpectedly when scrubbing through frames. The visualization is now significantly more readable, especially when analyzing control performance over time. The orientation system is still derived from motion (based on velocity and thrust direction), but it is now more consistent and ready for the next stage, where orientation will directly affect movement. The next step is to transition from a point-mass approximation to a full rigid-body model, where roll, pitch, and yaw actively influence thrust direction and overall dynamics."}, {"post_id": 9442, "ts": "2026-06-15T20:07:09Z", "hours": 2.2678, "text": "I started building a 3D drone racing simulator in Python to better understand physics-based motion and control systems. The goal is to eventually get to a full rigid-body drone model, but I’m starting simple and building up. Right now, the system treats the drone as a point mass: State: position + velocity Forces: gravity, thrust, and air drag Motion follows Newton’s law (F = ma) A PD controller drives the drone through a set of 3D gates by minimizing position error and damping velocity. To evaluate performance, I added metrics like lap time, energy usage, tracking error, and a final score that combines them. For visualization, I’m using Plotly to render the 3D trajectory and gate positions, which makes it much easier to debug control behaviour. The first major upgrade was adding a basic orientation layer. Instead of just plotting a point, I compute a forward direction from velocity so the drone “faces” where it is moving. Right now, orientation is derived from motion. The next step is flipping that relationship so orientation starts affecting motion. This is through roll, pitch, and yaw. The next update will focus on adding real rotational dynamics and moving toward a rigid-body model instead of a point mass."}]...
|
Title: Drone Racing Simulator by @NamanS | Stardan Title: Drone Racing Simulator by @NamanS | Stardance
Devlogs:
I started building a 3D drone racing simulator in Python to better understand physics-based motion and control systems. The goal is to eventually get to a full rigid-body drone model, but I’m starting simple and building up. Right now, the system treats the drone as a point mass: State: position + velocity Forces: gravity, thrust, and air drag Motion follows Newton’s law (F = ma) A PD controller drives the drone through a set of 3D gates by minimizing position error and damping velocity. To evaluate performance, I added metrics like lap time, energy usage, tracking error, and a final score that combines them. For visualization, I’m using Plotly to render the 3D trajectory and gate positions, which makes it much easier to debug control behaviour. The first major upgrade was adding a basic orientation layer. Instead of just plotting a point, I compute a forward direction from velocity so the drone “faces” where it is moving. Right now, orientation is derived from motion. The next step is flipping that relationship so orientation starts affecting motion. This is through roll, pitch, and yaw. The next update will focus on adding real rotational dynamics and moving toward a rigid-body model instead of a point mass.
Devlog #2 I added a coloured speed visualization to the trajectory trail, where the drone’s path is now colour-mapped based on instantaneous velocity. This makes it much easier to see acceleration and braking behaviour during gate transitions. I also improved the 3D animation system so the force vectors are more stable and visually consistent across frames, especially during high-acceleration segments. On top of that, I refined the Plotly animation controls so the slider state behaves more reliably when interacting with play/pause, and the camera no longer resets unexpectedly when scrubbing through frames. The visualization is now significantly more readable, especially when analyzing control performance over time. The orientation system is still derived from motion (based on velocity and thrust direction), but it is now more consistent and ready for the next stage, where orientation will directly affect movement. The next step is to transition from a point-mass approximation to a full rigid-body model, where roll, pitch, and yaw actively influence thrust direction and overall dynamics.
Ships:
I built a 3D drone racing simulator in Python that uses physics-based motion (gravity, thrust, drag) and a PD controller to guide a drone through a series of 3D gates. The simulation is visualized in an interactive Plotly 3D environment with an animated trajectory, colour-coded speed, and real-time force vectors, along with play/pause controls and a time slider for scrubbing through the motion. The main challenge was balancing stable control with realistic physics while also getting the Plotly animation system (especially the slider and frame updates) to behave correctly. I’m most proud of making the simulation visually intuitive and extensible toward a full rigid-body drone model in the future. To run it, users just need Python with NumPy and Plotly installed, then execute the script to generate an HTML file they can open in a browser to interact with the simulation....
|
1793051663.0182233
|
1793138063.0182233
|
|
5792
|
Poupapp - React by @Manenti | Stardance
|
Manenti
|
1
|
7.0
|
23
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-26T18:23:41Z", "hours": 7.0, "multiplier": 3.31, "payout": 23, "blessing": "neutral", "text": "I made PoupApp, a personal finance dashboard built with React, Vite, and CSS Modules. The project includes sections for accounts, transactions, daily budget, savings progress, and financial indicators. The main goal of this project was to practice front-end styling and improve my understanding of how to organize a clean interface using component-based development. Since PoupApp is mostly a front-end/static project, I focused more on the visual structure, reusable components, layout, and scoped styling rather than backend logic or real financial data persistence. One of the most challenging parts was organizing the styles in a way that each component stayed clean, readable, and easy to maintain. I also had to think carefully about spacing, hierarchy, responsiveness, and how to make the dashboard look like a real finance application. I am proud that I was able to create a visually organized and functional-looking interface while practicing styling techniques. This project helped me improve my confidence with React components and CSS Modules. To test the project, people can run it locally with npm install and npm run dev. They should know that the project is focused on the front-end experience, so the finance data is not connected to a real backend yet.", "repo": "https://github.com/noname697/PoupApp-React", "demo": "https://poup-app-react.vercel.app"}]...
|
[{"post_id": 3092, "ts": "2026 [{"post_id": 3092, "ts": "2026-06-06T00:07:19Z", "hours": 1.3225, "text": "Creating a grid structure for the Cards and creating, componentizing, and styling the third and fourth Cards."}, {"post_id": 2908, "ts": "2026-06-05T20:14:29Z", "hours": 0.3942, "text": "Creating and styling Typography and Card components"}, {"post_id": 2735, "ts": "2026-06-05T14:27:08Z", "hours": 0.3583, "text": "Importing icons, creating and styling the Main and SearchInput components"}, {"post_id": 2724, "ts": "2026-06-05T13:49:10Z", "hours": 0.4872, "text": "Creating de sidebar and importing the global font family Work Sans"}, {"post_id": 2712, "ts": "2026-06-05T13:08:47Z", "hours": 0.4406, "text": "Restarting the project on a different branch to use Tailwind instead of CSS Modules. I took the opportunity to test Tailwind in its playground, clean up the project, and add the global color variables to Tailwind."}, {"post_id": 2558, "ts": "2026-06-05T03:20:57Z", "hours": 0.6514, "text": "Creating, componentizing, and styling the fourth and final Card."}, {"post_id": 2541, "ts": "2026-06-05T02:40:03Z", "hours": 0.8561, "text": "Implementing a grid to allow the Cards to have stretch behavior, creating and componentizing the third Card."}, {"post_id": 2519, "ts": "2026-06-05T01:45:38Z", "hours": 0.7811, "text": "Creating components for the first and second Card"}, {"post_id": 1708, "ts": "2026-06-03T21:25:46Z", "hours": 0.7414, "text": "Creating and styling Card component"}, {"post_id": 1198, "ts": "2026-06-03T01:39:39Z", "hours": 0.3208, "text": "Building the Input component and the Main container"}, {"post_id": 1185, "ts": "2026-06-03T01:19:49Z", "hours": 0.2636, "text": "Building the side bar"}, {"post_id": 1172, "ts": "2026-06-03T01:03:47Z", "hours": 0.3967, "text": "Starting project, cleaning files, creating var colors and creating the main container"}]...
|
Title: Poupapp - React by @Manenti | Stardance
De Title: Poupapp - React by @Manenti | Stardance
Devlogs:
Starting project, cleaning files, creating var colors and creating the main container
Building the side bar
Building the Input component and the Main container
Creating and styling Card component
Creating components for the first and second Card
Implementing a grid to allow the Cards to have stretch behavior, creating and componentizing the third Card.
Creating, componentizing, and styling the fourth and final Card.
Restarting the project on a different branch to use Tailwind instead of CSS Modules. I took the opportunity to test Tailwind in its playground, clean up the project, and add the global color variables to Tailwind.
Creating de sidebar and importing the global font family Work Sans
Importing icons, creating and styling the Main and SearchInput components
Creating and styling Typography and Card components
Creating a grid structure for the Cards and creating, componentizing, and styling the third and fourth Cards.
Ships:
I made PoupApp, a personal finance dashboard built with React, Vite, and CSS Modules. The project includes sections for accounts, transactions, daily budget, savings progress, and financial indicators. The main goal of this project was to practice front-end styling and improve my understanding of how to organize a clean interface using component-based development. Since PoupApp is mostly a front-end/static project, I focused more on the visual structure, reusable components, layout, and scoped styling rather than backend logic or real financial data persistence. One of the most challenging parts was organizing the styles in a way that each component stayed clean, readable, and easy to maintain. I also had to think carefully about spacing, hierarchy, responsiveness, and how to make the dashboard look like a real finance application. I am proud that I was able to create a visually organized and functional-looking interface while practicing styling techniques. This project helped me improve my confidence with React components and CSS Modules. To test the project, people can run it locally with npm install and npm run dev. They should know that the project is focused on the front-end experience, so the finance data is not connected to a real backend yet....
|
1792968496.9474118
|
1793054896.9474118
|
|
5829
|
Recipe Hub by @MH | Stardance
|
MH
|
1
|
1.0
|
1
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-03T13:41:45Z", "hours": 1.0, "multiplier": 1.0, "payout": 1, "blessing": "neutral", "text": "The challenging part was link all the pages together and styling.", "repo": "https://github.com/amazingcoder132/Recipe-Hub", "demo": "https://amazingcoder132.github.io/Recipe-Hub/"}]...
|
[{"post_id": 1203, "ts": "2026 [{"post_id": 1203, "ts": "2026-06-03T01:52:20Z", "hours": 1.0206, "text": "A Hub of Recipes and Wonder"}]...
|
Title: Recipe Hub by @MH | Stardance
Devlogs:
A H Title: Recipe Hub by @MH | Stardance
Devlogs:
A Hub of Recipes and Wonder
Ships:
The challenging part was link all the pages together and styling....
|
1792979421.408855
|
1793065821.408855
|
|
5836
|
zWork Browser Control by @zemu | Stardance
|
zemu
|
1
|
42.25
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-23T14:43:46Z", "hours": 24.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made zWork Everything was challenging, mainly harness engineering. The browser feature was relatively straightforward. I’m proud of the extensiveness or comprehensiveness of this project, and the scale at which it worked. To fully test my app, you should probably install the app, as well as the extension. There is a limited web demo at app.tryzwork.app which doesnt really have any features. More info is available in the readmes.", "repo": "https://github.com/Ryz3nPlayZ/zbctl", "demo": "https://github.com/Ryz3nPlayZ/zWork/releases"}]...
|
[{"post_id": 77432, "ts": "202 [{"post_id": 77432, "ts": "2026-10-06T23:48:07Z", "hours": 15.72, "text": "any click that changed DOM used to take about 3s now it takes about 200ms. I also added back the extension GUI because sometimes its confusing without it. also to save tokens from agent context windows, content.js no longer creates a brand new fat snapshot of the entire page."}, {"post_id": 52033, "ts": "2026-08-22T02:13:23Z", "hours": 2.5278, "text": "updated readme because i needed to"}, {"post_id": 33339, "ts": "2026-07-23T05:02:08Z", "hours": 5.2228, "text": "I benchmarked zWork (desktop ai agent made by me) using zbctl (extension) to test its new browser use abilities. ive used the prompt in the picture below. the model answered all but one correct. the google form used to “benchmark” the model was: https://docs.google.com/forms/d/e/1FAIpQLSfHyJDMoOuDENsrrTmFsGtoDfe-9RRhlB2SDkKgYQlAAXOvhg/viewform the form included a variety of answer types, including radio and dropdowns. this is by no means a final polished product, but is certainly a good proof of concept. I will continue working on zWork and improve the harness to also improve the models tool calling and accuracy. Thanks guys"}, {"post_id": 17862, "ts": "2026-06-28T20:02:34Z", "hours": 12.9517, "text": "i tested zbctl using zWork (the agent im working on) as well as using claude code. initially there wasnt an endpoint for claude code, but claude code made one by itself. to make things fair, both harnesses were wired up to use deepseek-v4-pro as the model, and after testing the same prompt and same task, claude code basically won. my harness zWork needs a lot of work, but thats a bit besides the point. The zbctl bridge extension works."}, {"post_id": 5930, "ts": "2026-06-09T22:11:43Z", "hours": 2.2767, "text": "i made a desktop agent (still in development) now im making a browser extension to let it attach onto browser sessions that users are already signed in on. Cool stuff: Push-based DOM snapshots (MutationObserver auto-detects page changes) Stable element IDs via WeakMap (same element always has same ID) Works with Gmail, Google Forms, real sessions Tab management: switch, open, close specific tabs File upload/download support Technical stuff: Python FastAPI daemon (port 8788) Manifest V3 Chrome extension Content script walks DOM → structured JSON 200ms debounce for settle detection, 3s hard cap Biggest limitation: Cross-origin iframes blocked by browser security. Can’t interact with YouTube embeds, payment forms, etc. But handles ~80% of normal browsing fine. right now it does work"}, {"post_id": 2549, "ts": "2026-06-05T02:52:17Z", "hours": 3.9786, "text": "magic"}]...
|
Title: zWork Browser Control by @zemu | Stardance
Title: zWork Browser Control by @zemu | Stardance
Devlogs:
magic
i made a desktop agent (still in development) now im making a browser extension to let it attach onto browser sessions that users are already signed in on. Cool stuff: Push-based DOM snapshots (MutationObserver auto-detects page changes) Stable element IDs via WeakMap (same element always has same ID) Works with Gmail, Google Forms, real sessions Tab management: switch, open, close specific tabs File upload/download support Technical stuff: Python FastAPI daemon (port 8788) Manifest V3 Chrome extension Content script walks DOM → structured JSON 200ms debounce for settle detection, 3s hard cap Biggest limitation: Cross-origin iframes blocked by browser security. Can’t interact with YouTube embeds, payment forms, etc. But handles ~80% of normal browsing fine. right now it does work
i tested zbctl using zWork (the agent im working on) as well as using claude code. initially there wasnt an endpoint for claude code, but claude code made one by itself. to make things fair, both harnesses were wired up to use deepseek-v4-pro as the model, and after testing the same prompt and same task, claude code basically won. my harness zWork needs a lot of work, but thats a bit besides the point. The zbctl bridge extension works.
I benchmarked zWork (desktop ai agent made by me) using zbctl (extension) to test its new browser use abilities. ive used the prompt in the picture below. the model answered all but one correct. the google form used to “benchmark” the model was: https://docs.google.com/forms/d/e/1FAIpQLSfHyJDMoOuDENsrrTmFsGtoDfe-9RRhlB2SDkKgYQlAAXOvhg/viewform the form included a variety of answer types, including radio and dropdowns. this is by no means a final polished product, but is certainly a good proof of concept. I will continue working on zWork and improve the harness to also improve the models tool calling and accuracy. Thanks guys
updated readme because i needed to
any click that changed DOM used to take about 3s now it takes about 200ms. I also added back the extension GUI because sometimes its confusing without it. also to save tokens from agent context windows, content.js no longer creates a brand new fat snapshot of the entire page.
Ships:
I made zWork Everything was challenging, mainly harness engineering. The browser feature was relatively straightforward. I’m proud of the extensiveness or comprehensiveness of this project, and the scale at which it worked. To fully test my app, you should probably install the app, as well as the extension. There is a limited web demo at app.tryzwork.app which doesnt really have any features. More info is available in the readmes....
|
1792972347.397626
|
1793058747.397626
|
|
5840
|
Endless runner game by @martinho4364 | Stardance
|
martinho4364
|
1
|
36.0
|
473
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-18T06:36:02Z", "hours": 36.0, "multiplier": 13.04, "payout": 473, "blessing": "neutral", "text": "An endless runner game focused on movement mechanics. You run through endless rooms carefully managing stamina and ability cooldowns while the world dissolves behind you. A much more detailed description is on the README file on github (click “See source code ->”).", "repo": "https://github.com/MartinH4364/endless-runner-game", "demo": "https://drcooke123.itch.io/endless-runner-test"}]...
|
[{"post_id": 48705, "ts": "202 [{"post_id": 48705, "ts": "2026-08-17T06:45:30Z", "hours": 2.2644, "text": "V1.0 BUILD!! The game is now in a playable state and it is also somewhat fun!!! I added silver upgrades that give you the air jump, wall jump, and slide boost abilities. (WAAAY BETTER THAN JUST HAVING THEM AT THE START) I also rebalanced the speed of the player so that the game actually felt fun but also increased the speed of the world collapse. (spending a couple minutes wondering why nothing was changing before realizing that changing public variables in the code and not in the inspector does nothing) Upgrades were also nerfed as they felt too powerful when I was playtesting, and they now actually reset when you die and start the game (i forgot to add a line to reset the static variables) I’ll probably ship this project soon but I’m still open to adding features after 1.0."}, {"post_id": 46721, "ts": "2026-08-14T05:21:51Z", "hours": 3.3803, "text": "FIRST DEVLOG IN A LOOONG TIME For the possibly zero people who are reading these devlogs, I’m finally gonna finish developing a playable version of the game. I was busy and then I kinda lost motivation. I’m finally back tho. The game is not gonna end up as ambitious as I planned it to have, and I decided to scrap many ideas such as ability recharging orbs and more room types, although maybe I’ll add those in the future if I get enough positive feedback. ANYWAYS heres the actual devlog part of the devlog Added one new ability: Recoil As pictured below, recoil fires something in the direction you are facing that knocks you backwards. I decided to give this ability three charges, so you can use it three times on a full charge. Abilities are now randomly given to the player at the start of the game."}, {"post_id": 28100, "ts": "2026-07-14T04:48:04Z", "hours": 6.0725, "text": "Two New Abilities I added two new abilities to the game, the obstacle destroyer and the teleport. Obstacle Destroyer: Sends out a (kinda) cool orb of particles from the player (which i accidentally deleted the VFX graph for and spent a while remaking). Nearby obstacles will shrink into oblivion, turning complex rooms into flatter ones. The block prefab has a seperate plane for each face so that the material can automatically tile according scale, so I put the script on the main component to simplify calling the method. Teleport: The ability pictured. It launches a ball from the player with added velocity. I used a rigidbody on the ball so that it would be able to bounce off walls and do other fun stuff. After a couple of seconds of bouncing around chaotically, the ball turns into a portal that instantly teleports the player to its position. I used a VFX Graph for the portal effect. I fixed the rigidbodies and colliders so the ball almost never bounces out of the map, teleporting you to your doom. Credits: Gabriel Aguiar Prod on Youtube for VFX Graph tutorials"}, {"post_id": 25133, "ts": "2026-07-09T04:37:12Z", "hours": 4.6536, "text": "Abilities Added The updated movement system allowed me to add more advanced abilities into the game. The two semicircles near the cursor show you the amount of charge you have on that ability. So far, there are two abilities. One makes you accelerate in the direction you are facing, while one gives you a massive horizontal boost but causes your camera to do a flip. I also added double jumps, wall jumps, and a slide ability that converts downwards momentum into forwards momentum. These will eventually be upgrades, but at the moment you have them all at the start for testing purposes."}, {"post_id": 23804, "ts": "2026-07-06T23:19:53Z", "hours": 1.5053, "text": "Broken Rooms + Movement Changes Broken Rooms can now spawn, and the chance of them appearing increases with the amount of upgrades you have. They are more difficult than normal rooms. I also reworked the movement system so that the x and z velocity gradually increase to the maximum speed to prepare for future additions."}, {"post_id": 23261, "ts": "2026-07-06T03:20:50Z", "hours": 6.1453, "text": "Upgrades have now been added alot with some other changes. I used a physics raycast similar to that of the button to select the upgrades. I also decided to not use static variables for changing stats when upgrades occur because they make the variables dissapear from the inspector. Various sound effects have also been added (thanks to pixabay). I used two audio sources on the player to seperate the looping sounds from the sounds that only play one time. (Im also trying out a new devlog format)"}, {"post_id": 3306, "ts": "2026-06-06T05:09:44Z", "hours": 2.4514, "text": "Upgrade Rooms Added upgrade rooms that spawn once in a while, stopping the destruction of the world until you leave them. I spent the bulk of the time deciding on how a button in the 3d space would detect when it was clicked, and finally settled on using a physics raycast. QOL: Added small dot in the middle of the screen denoting the cursor."}, {"post_id": 2850, "ts": "2026-06-05T18:11:04Z", "hours": 4.1478, "text": "Endless Runner Game V0.1.5 Features: Stamina orbs now randomly spawn and will restore half of the players stamina when run into. The effect for the orb was made with the help of some VFX graph tutorials. Options menu now exists and can be used to adjust mouse sensitivity when in the game (dont set sensitivity to zero) Destruction of the rooms speeds up the farther you go (game becomes impossible after 500+ score, will be balanced later). Many other small QOL changes were made but are hardly worth noting. DEVLOG UPDATE: Changed project settings to use WebGPU so that the Visual Effects Graph displays on itch. Still slightly buggy due to WebGPU being experimental."}, {"post_id": 2324, "ts": "2026-06-04T19:15:01Z", "hours": 5.6542, "text": "Endless Runner Game V0.1.4 First Devlog!! The game is now in a somewhat playable condition. So far, the start and death menus, basic movement mechanics, and level generation mechanics are working. I started work on this sometime in the middle of May but I never finished it so I’ll probably continue working on it for this challenge. Fixed issues: Shaders not loading in itch Menus not scaling when going into fullscreen Mouse not unlocking after dying Connected project to github (finally) Deleted a couple of lines causing errors when building the project Here’s the itch.io link if you wanna check it out. https://drcooke123.itch.io/endless-runner-test"}]...
|
Title: Endless runner game by @martinho4364 | Star Title: Endless runner game by @martinho4364 | Stardance
Devlogs:
Endless Runner Game V0.1.4 First Devlog!! The game is now in a somewhat playable condition. So far, the start and death menus, basic movement mechanics, and level generation mechanics are working. I started work on this sometime in the middle of May but I never finished it so I’ll probably continue working on it for this challenge. Fixed issues: Shaders not loading in itch Menus not scaling when going into fullscreen Mouse not unlocking after dying Connected project to github (finally) Deleted a couple of lines causing errors when building the project Here’s the itch.io link if you wanna check it out. https://drcooke123.itch.io/endless-runner-test
Endless Runner Game V0.1.5 Features: Stamina orbs now randomly spawn and will restore half of the players stamina when run into. The effect for the orb was made with the help of some VFX graph tutorials. Options menu now exists and can be used to adjust mouse sensitivity when in the game (dont set sensitivity to zero) Destruction of the rooms speeds up the farther you go (game becomes impossible after 500+ score, will be balanced later). Many other small QOL changes were made but are hardly worth noting. DEVLOG UPDATE: Changed project settings to use WebGPU so that the Visual Effects Graph displays on itch. Still slightly buggy due to WebGPU being experimental.
Upgrade Rooms Added upgrade rooms that spawn once in a while, stopping the destruction of the world until you leave them. I spent the bulk of the time deciding on how a button in the 3d space would detect when it was clicked, and finally settled on using a physics raycast. QOL: Added small dot in the middle of the screen denoting the cursor.
Upgrades have now been added alot with some other changes. I used a physics raycast similar to that of the button to select the upgrades. I also decided to not use static variables for changing stats when upgrades occur because they make the variables dissapear from the inspector. Various sound effects have also been added (thanks to pixabay). I used two audio sources on the player to seperate the looping sounds from the sounds that only play one time. (Im also trying out a new devlog format)
Broken Rooms + Movement Changes Broken Rooms can now spawn, and the chance of them appearing increases with the amount of upgrades you have. They are more difficult than normal rooms. I also reworked the movement system so that the x and z velocity gradually increase to the maximum speed to prepare for future additions.
Abilities Added The updated movement system allowed me to add more advanced abilities into the game. The two semicircles near the cursor show you the amount of charge you have on that ability. So far, there are two abilities. One makes you accelerate in the direction you are facing, while one gives you a massive horizontal boost but causes your camera to do a flip. I also added double jumps, wall jumps, and a slide ability that converts downwards momentum into forwards momentum. These will eventually be upgrades, but at the moment you have them all at the start for testing purposes.
Two New Abilities I added two new abilities to the game, the obstacle destroyer and the teleport. Obstacle Destroyer: Sends out a (kinda) cool orb of particles from the player (which i accidentally deleted the VFX graph for and spent a while remaking). Nearby obstacles will shrink into oblivion, turning complex rooms into flatter ones. The block prefab has a seperate plane for each face so that the material can automatically tile according scale, so I put the script on the main component to simplify calling the method. Teleport: The ability pictured. It launches a ball from the player with added velocity. I used a rigidbody on the ball so that it would be able to bounce off walls and do other fun stuff. After a couple of seconds of bouncing around chaotically, the ball turns into a portal that instantly teleports the player to its position. I used a VFX Graph for the portal effect. I fixed the rigidbodies and colliders so the ball almost never bounces out of the map, teleporting you to your doom. Credits: Gabriel Aguiar Prod on Youtube for VFX Graph tutorials
FIRST DEVLOG IN A LOOONG TIME For the possibly zero people who are reading these devlogs, I’m finally gonna finish developing a playable version of the game. I was busy and then I kinda lost motivation. I’m finally back tho. The game is not gonna end up as ambitious as I planned it to have, and I decided to scrap many ideas such as ability recharging orbs and more room types, although maybe I’ll add those in the future if I get enough positive feedback. ANYWAYS heres the actual devlog part of the devlog Added one new ability: Recoil As pictured below, recoil fires something in the direction you are facing that knocks you backwards. I decided to give this ability three charges, so you can use it three times on a full charge. Abilities are now randomly given to the player at the start of the game.
V1.0 BUILD!! The game is now in a playable state and it is also somewhat fun!!! I added silver upgrades that give you the air jump, wall jump, and slide boost abilities. (WAAAY BETTER THAN JUST HAVING THEM AT THE START) I also rebalanced the speed of the player so that the game actually felt fun but also increased the speed of the world collapse. (spending a couple minutes wondering why nothing was changing before realizing that changing public variables in the code and not in the inspector does nothing) Upgrades were also nerfed as they felt too powerful when I was playtesting, and they now actually reset when you die and start the game (i forgot to add a line to reset the static variables) I’ll probably ship this project soon but I’m still open to adding features after 1.0.
Ships:
An endless runner game focused on movement mechanics. You run through endless rooms carefully managing stamina and ability cooldowns while the world dissolves behind you. A much more detailed description is on the README file on github (click “See source code ->”)....
|
1792979476.381923
|
1793065876.381923
|
|
5843
|
IT Simulator by @austinmalick9 | Stardance
|
austinmalick9
|
1
|
8.0
|
82
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-06T02:41:26Z", "hours": 8.0, "multiplier": 9.65, "payout": 82, "blessing": "neutral", "text": "I built SYSADMIN_SYS (v1.1.0), an interactive, open-source terminal simulation game designed to test and sharpen IT troubleshooting skills by dropping players into a terminal where they must diagnose and resolve critical technical tickets across Linux Bash, Windows PowerShell, or macOS Zsh. I originally planned to build an AI text-to-3D model generator using OpenSCAD code, but when the language models kept hallucinating geometry math and outputting broken blocks, I pivoted to a simpler first project. This is a frontend game engine powered by native JavaScript string matching and local storage. I am proud of the command-line parsing layer and the dynamic local leaderboards that track top completion speeds uniquely for each OS and level configuration. If you want to test the app and speed-run the rankings, just click initialize, use the diagnose command to pull up system log errors, and type help if you need to review the valid baseline utility directory maps to fix the underlying fault!", "repo": "https://github.com/pigiyplayz/IT-Simulator", "demo": "https://pigiyplayz.github.io/IT-Simulator/"}]...
|
[{"post_id": 3246, "ts": "2026 [{"post_id": 3246, "ts": "2026-06-06T02:30:23Z", "hours": 2.3806, "text": "Devlog 2 SYSADMIN_SYS (v1.1.0), a frontend IT support simulation built from scratch using pure HTML, Tailwind CSS, and vanilla JavaScript. The app drops players into a retro green CRT monitor terminal where they choose a target operating system (Linux Bash, Windows PowerShell, or macOS Zsh) and solve 9 unique, realistic trouble tickets. Instead of clicking multiple-choice options, players must use an authentic command-line workflow: typing diagnose to scan system logs, isolating faults like rogue mining PIDs or unallocated network interfaces, and executing the exact syntax-correct administration scripts to fix the system. I wrote custom string parsers to validate user inputs and implemented a localized leaderboard using localStorage to track performance speedruns across every difficulty tier. The code is 100% open-source, dependency-free, and pushed to GitHub!"}, {"post_id": 3073, "ts": "2026-06-05T23:31:33Z", "hours": 6.1108, "text": "Hello, My name is Austin and I am currently a student enrolled at my local Technical High School. I am currently working on my new game. It is a Simulator based game. It is called IT Simulator. The goal of the game is to see how long it takes you to identify the problem, then find a solution to the problem. You can choose the level you want (Difficulty) and the Target Architecture (OS). Currently this is all that the game has. The game has its main index.html file. This is the default home page to my game. Hopefully tomorrows devlog can include one of the levels and I can show you all the game working. Thanks for your support!"}]...
|
Title: IT Simulator by @austinmalick9 | Stardance
Title: IT Simulator by @austinmalick9 | Stardance
Devlogs:
Hello, My name is Austin and I am currently a student enrolled at my local Technical High School. I am currently working on my new game. It is a Simulator based game. It is called IT Simulator. The goal of the game is to see how long it takes you to identify the problem, then find a solution to the problem. You can choose the level you want (Difficulty) and the Target Architecture (OS). Currently this is all that the game has. The game has its main index.html file. This is the default home page to my game. Hopefully tomorrows devlog can include one of the levels and I can show you all the game working. Thanks for your support!
Devlog 2 SYSADMIN_SYS (v1.1.0), a frontend IT support simulation built from scratch using pure HTML, Tailwind CSS, and vanilla JavaScript. The app drops players into a retro green CRT monitor terminal where they choose a target operating system (Linux Bash, Windows PowerShell, or macOS Zsh) and solve 9 unique, realistic trouble tickets. Instead of clicking multiple-choice options, players must use an authentic command-line workflow: typing diagnose to scan system logs, isolating faults like rogue mining PIDs or unallocated network interfaces, and executing the exact syntax-correct administration scripts to fix the system. I wrote custom string parsers to validate user inputs and implemented a localized leaderboard using localStorage to track performance speedruns across every difficulty tier. The code is 100% open-source, dependency-free, and pushed to GitHub!
Ships:
I built SYSADMIN_SYS (v1.1.0), an interactive, open-source terminal simulation game designed to test and sharpen IT troubleshooting skills by dropping players into a terminal where they must diagnose and resolve critical technical tickets across Linux Bash, Windows PowerShell, or macOS Zsh. I originally planned to build an AI text-to-3D model generator using OpenSCAD code, but when the language models kept hallucinating geometry math and outputting broken blocks, I pivoted to a simpler first project. This is a frontend game engine powered by native JavaScript string matching and local storage. I am proud of the command-line parsing layer and the dynamic local leaderboards that track top completion speeds uniquely for each OS and level configuration. If you want to test the app and speed-run the rankings, just click initialize, use the diagnose command to pull up system log errors, and type help if you need to review the valid baseline utility directory maps to fix the underlying fault!...
|
1792993689.8668864
|
1793080089.8668864
|
|
5852
|
Star Service (My First Slack Bot) by @Rian | Stard Star Service (My First Slack Bot) by @Rian | Stardance...
|
Rian
|
1
|
5.28
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-10T05:13:11Z", "hours": 5.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "This is a Slack Bot in the Hack Club Workspace designed to help you do the following:   /ss-help (shows every slash command this bot has) /ss-find [phrase] (helps you find every mention of that phrase in the whole channel that you use the command in) /ss-shower-thought (gives you a random shower thought from a huge collection. Credits: Reddit) /ss-quote (gives you a random quote from a completely free API call referencing thousands of quotes for the top 50 ones. Credits: ZenQuotes.io)   GitHub Repository: https://github.com/rianpatel2013-glitch/Star_Service   Setup ( https://stardance.hackclub.com/missions/slack-bot/guide#step-1 ): This Project is published as a package on npm: https://www.npmjs.com/package/star_service   You’ll need to install Node JS, npm, and the modules: @slack /bolt and dotenv. You’ll also need a Slack app with the following bot token scopes: app_mentions:read, channels:history, channels:read, channels:join, chat:write, commands, and Socket Mode enabled with an app-level token. These 2 tokens also need to be added in .env as SLACK_BOT_TOKEN and SLACK_APP_TOKEN respectively.   This Slack Bot is hosted 24x7 on Nest by HackClub   Some of the code (listed more specifically in the code using comments) was done by Claude AI.", "repo": "https://github.com/rianpatel2013-glitch/Star_Service", "demo": "https://app.slack.com"}]...
|
[{"post_id": 21877, "ts": "202 [{"post_id": 21877, "ts": "2026-07-04T01:33:22Z", "hours": 0.2756, "text": "The person who reviewed my ship found out that the slash command, /ss-find didn’t work in private channels. It kept saying that you had to invite it even after you invite the bot. So: First, I figured that since a bot can’t automatically join private channels, even after being invited, it would still throw an error that the bot is already in the channel and get stuck there. So I added an if statement to handle that scenario and basically let the bot keep going. Yet, unfortunatly this didn’t work. Then, I added a console.log to pinpoint the exact error, and I found out that the error was method_not_supported_for_channel_type even after you invite the bot, which really dumbfounded me. Hence, I decided to ask Claude about it, and it advised to only say to invite the bot when the error ISN’T either method_not_supported_for_channel_type or already_in_channel. This helped me find out that the error is actually a missing scope, and I added the group: history scope to my bot token. Finally, I tested /ss-find in a new channel to make sure that it said to invite the bot instead of failing. I also retested all of my slash commands in both public and private channels to be safe."}, {"post_id": 6048, "ts": "2026-06-10T05:06:08Z", "hours": 0.2978, "text": "Published Slack Bot to npm as a package (I thought I should since the video before you make your first ship said to)"}, {"post_id": 5653, "ts": "2026-06-09T15:08:25Z", "hours": 0.3964, "text": "I faced an issue with the hosting: The API call kept timing out. First, I tried a few small tweaks including increasing the timeout and adding https to reuse existing connections rather than forming new connections with each new request. But in the end, what really worked (tho I think the https helped too) was initiating the api call when the bot is started, so it can have the quote ready before you even call the command. Finally, just in case, as a fallback, every time a sucessful api call happens, it updates an array so that in case the next api call isn’t successful, the previous successful call can be reused. Additionally I updated my README: https://github.com/rianpatel2013-glitch/Star_Service"}, {"post_id": 5601, "ts": "2026-06-09T13:38:25Z", "hours": 0.6864, "text": "Finished my third and final command: /ss-quote This command fetches a quote from https://zenquotes.io/ , and displays it with the author I also finished hosting this project on Nest. My Github Repository: https://github.com/rianpatel2013-glitch/Star_Service"}, {"post_id": 5157, "ts": "2026-06-08T20:48:54Z", "hours": 1.5514, "text": "I finished the second command for my Slack bot: /ss-shower-thought This command gave the user a random shower thought from a collection of 100. This actually took me about 3 hours First I tried https://docs.nickf.me/projects/shower%20thoughts/ : I spent about 30 mins reading it, setting it up, and trying to fix the 404 error. But eventually find out that it wasn’t my fault, but that the GitHub repo, and the link were removed. I spent about 20 mins coding something so that all of the thoughts pulled would be shown to the user at random, and before each user sees any duplicates, they will see all of the thoughts that were fetched first. Then I tried https://rapidapi.com/inramanlabs/api/stapi-showerthoughts : I spent about an hour: Making an account and setting it up Then ensured that the API and plan are free and will stop working if it exceeds limit, rather than requiring me to spend money. Then I found out how to actually get the api key (it wasn’t like I am accustomed to, the Studio tab misled me) Then I found out where to cancel my subscription, just in case (I didn’t want to end up paying any money) Then I tried to code it myself, using AI to find out how to tackle the parts I didn’t understand Then I got a 505 error, and I thought that it might be an issue on my end cuz surely an API on a big website isn’t actually down. So then I started experimenting on the website and found a code snippet that works for Node.js, and I got the same error again, and I tried a few ways to fix it, which didn’t work. Then I used the test method on the website itself, which didn’t work, and realized the issue was probably on their end. Then I tried pulling directly from Reddit: I spent about an hour: Trying to code something to fetch from Reddit (I found the URLs and stuff, it was perfect), but I got a 403 error because Reddit doesn’t allow random bots to access it Then I read https://developers.reddit.com/docs just to realize that it’s for making a Reddit bot rather than fetching from Reddit Then I watched a YouTube video and realized I’ll have to make an app on https://www.reddit.com/prefs/apps but when I tried to, it told me to go to https://support.reddithelp.com/hc/en-us/articles/42728983564564-Responsible-Builder-Policy and submit a request. But, then I found out that, even after all this complicated set up, the token would expire every hour. Hence, I decided to drop this, but if the request gets accepted, I might code an automatic refresh cycle for the token to keep working Finally, I spent 20 mins on copying 100 shower thoughts from Reddit. So uh do I need to give credits to Reddit, and if yes, where?"}, {"post_id": 4011, "ts": "2026-06-07T05:07:11Z", "hours": 2.1983, "text": "This is my first ever devlog! I finished the first command for the slack bot: /ss-find [phrase] This command helps the user find every mention of the phrase in the whole channel. I don’t know a lot of JS, so I had to use Claude AI for some tasks (mentioned in code), like how to actually look through the whole channel, but I know how it works and implemented it myself. I do know some JS and could do some tasks myself. (I have made a website before) I also added it to github: https://github.com/rianpatel2013-glitch/Star_Service/ I will make it run 24x7 after I finish all 3 commands."}]...
|
Title: Star Service (My First Slack Bot) by @Rian Title: Star Service (My First Slack Bot) by @Rian | Stardance
Devlogs:
This is my first ever devlog! I finished the first command for the slack bot: /ss-find [phrase] This command helps the user find every mention of the phrase in the whole channel. I don’t know a lot of JS, so I had to use Claude AI for some tasks (mentioned in code), like how to actually look through the whole channel, but I know how it works and implemented it myself. I do know some JS and could do some tasks myself. (I have made a website before) I also added it to github: https://github.com/rianpatel2013-glitch/Star_Service/ I will make it run 24x7 after I finish all 3 commands.
I finished the second command for my Slack bot: /ss-shower-thought This command gave the user a random shower thought from a collection of 100. This actually took me about 3 hours First I tried https://docs.nickf.me/projects/shower%20thoughts/ : I spent about 30 mins reading it, setting it up, and trying to fix the 404 error. But eventually find out that it wasn’t my fault, but that the GitHub repo, and the link were removed. I spent about 20 mins coding something so that all of the thoughts pulled would be shown to the user at random, and before each user sees any duplicates, they will see all of the thoughts that were fetched first. Then I tried https://rapidapi.com/inramanlabs/api/stapi-showerthoughts : I spent about an hour: Making an account and setting it up Then ensured that the API and plan are free and will stop working if it exceeds limit, rather than requiring me to spend money. Then I found out how to actually get the api key (it wasn’t like I am accustomed to, the Studio tab misled me) Then I found out where to cancel my subscription, just in case (I didn’t want to end up paying any money) Then I tried to code it myself, using AI to find out how to tackle the parts I didn’t understand Then I got a 505 error, and I thought that it might be an issue on my end cuz surely an API on a big website isn’t actually down. So then I started experimenting on the website and found a code snippet that works for Node.js, and I got the same error again, and I tried a few ways to fix it, which didn’t work. Then I used the test method on the website itself, which didn’t work, and realized the issue was probably on their end. Then I tried pulling directly from Reddit: I spent about an hour: Trying to code something to fetch from Reddit (I found the URLs and stuff, it was perfect), but I got a 403 error because Reddit doesn’t allow random bots to access it Then I read https://developers.reddit.com/docs just to realize that it’s for making a Reddit bot rather than fetching from Reddit Then I watched a YouTube video and realized I’ll have to make an app on https://www.reddit.com/prefs/apps but when I tried to, it told me to go to https://support.reddithelp.com/hc/en-us/articles/42728983564564-Responsible-Builder-Policy and submit a request. But, then I found out that, even after all this complicated set up, the token would expire every hour. Hence, I decided to drop this, but if the request gets accepted, I might code an automatic refresh cycle for the token to keep working Finally, I spent 20 mins on copying 100 shower thoughts from Reddit. So uh do I need to give credits to Reddit, and if yes, where?
Finished my third and final command: /ss-quote This command fetches a quote from https://zenquotes.io/ , and displays it with the author I also finished hosting this project on Nest. My Github Repository: https://github.com/rianpatel2013-glitch/Star_Service
I faced an issue with the hosting: The API call kept timing out. First, I tried a few small tweaks including increasing the timeout and adding https to reuse existing connections rather than forming new connections with each new request. But in the end, what really worked (tho I think the https helped too) was initiating the api call when the bot is started, so it can have the quote ready before you even call the command. Finally, just in case, as a fallback, every time a sucessful api call happens, it updates an array so that in case the next api call isn’t successful, the previous successful call can be reused. Additionally I updated my README: https://github.com/rianpatel2013-glitch/Star_Service
Published Slack Bot to npm as a package (I thought I should since the video before you make your first ship said to)
The person who reviewed my ship found out that the slash command, /ss-find didn’t work in private channels. It kept saying that you had to invite it even after you invite the bot. So: First, I figured that since a bot can’t automatically join private channels, even after being invited, it would still throw an error that the bot is already in the channel and get stuck there. So I added an if statement to handle that scenario and basically let the bot keep going. Yet, unfortunatly this didn’t work. Then, I added a console.log to pinpoint the exact error, and I found out that the error was method_not_supported_for_channel_type even after you invite the bot, which really dumbfounded me. Hence, I decided to ask Claude about it, and it advised to only say to invite the bot when the error ISN’T either method_not_supported_for_channel_type or already_in_channel. This helped me find out that the error is actually a missing scope, and I added the group: history scope to my bot token. Finally, I tested /ss-find in a new channel to make sure that it said to invite the bot instead of failing. I also retested all of my slash commands in both public and private channels to be safe.
Ships:
This is a Slack Bot in the Hack Club Workspace designed to help you do the following:   /ss-help (shows every slash command this bot has) /ss-find [phrase] (helps you find every mention of that phrase in the whole channel that you use the command in) /ss-shower-thought (gives you a random shower thought from a huge collection. Credits: Reddit) /ss-quote (gives you a random quote from a completely free API call referencing thousands of quotes for the top 50 ones. Credits: ZenQuotes.io)   GitHub Repository: https://github.com/rianpatel2013-glitch/Star_Service   Setup ( https://stardance.hackclub.com/missions/slack-bot/guide#step-1 ): This Project is published as a package on npm: https://www.npmjs.com/package/star_service   You’ll need to install Node JS, npm, and the modules: @slack /bolt and dotenv. You’ll also need a Slack app with the following bot token scopes: app_mentions:read, channels:history, channels:read, channels:join, chat:write, commands, and Socket Mode enabled with an app-level token. These 2 tokens also need to be added in .env as SLACK_BOT_TOKEN and SLACK_APP_TOKEN respectively.   This Slack Bot is hosted 24x7 on Nest by HackClub   Some of the code (listed more specifically in the code using comments) was done by Claude AI....
|
1792994086.633144
|
1793080486.633144
|
|
5880
|
SOTD Bot by @dhruvra | Stardance
|
dhruvra
|
1
|
2.25
|
3
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-03T23:01:26Z", "hours": 2.0, "multiplier": 1.63, "payout": 3, "blessing": "neutral", "text": "I made a bot for Discord that’s able to respond to certain keywords and can generate a song of the day. It remembers what song is generated for the entire day. It also has a minor obsession with J-Rock (the best music genre, of course). The project is coded entirely in Python. Through it, I learned more about how Discord.py works, as well as pulling information from APIs in Discord.", "repo": "https://github.com/qibliusegit/song-of-the-day", "demo": "https://discord.gg/SV7eJkfMjX"}]...
|
[{"post_id": 2270, "ts": "2026 [{"post_id": 2270, "ts": "2026-06-04T17:44:37Z", "hours": 0.2542, "text": "Added some more functionality and details to the bot, so it specifies the date when it prints out the Song of the Day and also just commented more of my code. Since all of these APIs connect to Music Brainz’s ID system for some reason, I may use that to be able to query for general song info."}, {"post_id": 1756, "ts": "2026-06-03T22:54:01Z", "hours": 0.695, "text": "I made it so the bot is able to keep track of songs that have already been selected as Songs of the Day, and also made it so the bot keeps track of the date and won’t generate a new song for the same day if one’s already been selected. These both, of course, only work when the bot is running the entire time."}, {"post_id": 1622, "ts": "2026-06-03T19:13:05Z", "hours": 0.3983, "text": "Devlog #3 I switched to the AudioDB API since it’s IDs are just 8 digit codes, rather than UUIDs like what MusicBrainz has. However, this has come with its own set of problems, mainly being that finding a track takes a minute. Since I’m generating an 8 digit number and not all numbers will actually have songs assigned to them, sometimes I’m just sitting there staring at it find null results over and over again. That, however, is an issue that will be approached once I have the code properly printing the information I want it to. For now, it at least can find a song and turn it into a list. Also, working on two scripts at once (since I would rather not leak my bot token) is a lot harder than I thought it would be, since I’m effectively coding on one file (which gets its time tracked) and debugging on another (which does not get its time tracked)."}, {"post_id": 1327, "ts": "2026-06-03T08:16:09Z", "hours": 0.57, "text": "There surprisingly aren’t many ways to randomly search for a song, and whatever ones do exist continue to fail for some reason. I’m currently using the ISWC code that’s assigned to all musical works, but MusicBrainz API either doesn’t feel like actually using it or there’s something wrong with the API. I guess I’ll find out eventually."}, {"post_id": 1265, "ts": "2026-06-03T04:38:50Z", "hours": 0.3894, "text": "Made it so the bot can respond to keywords. Now to start reading up on various different music APIs to find one which properly suits my needs."}]...
|
Title: SOTD Bot by @dhruvra | Stardance
Devlogs:
Title: SOTD Bot by @dhruvra | Stardance
Devlogs:
Made it so the bot can respond to keywords. Now to start reading up on various different music APIs to find one which properly suits my needs.
There surprisingly aren’t many ways to randomly search for a song, and whatever ones do exist continue to fail for some reason. I’m currently using the ISWC code that’s assigned to all musical works, but MusicBrainz API either doesn’t feel like actually using it or there’s something wrong with the API. I guess I’ll find out eventually.
Devlog #3 I switched to the AudioDB API since it’s IDs are just 8 digit codes, rather than UUIDs like what MusicBrainz has. However, this has come with its own set of problems, mainly being that finding a track takes a minute. Since I’m generating an 8 digit number and not all numbers will actually have songs assigned to them, sometimes I’m just sitting there staring at it find null results over and over again. That, however, is an issue that will be approached once I have the code properly printing the information I want it to. For now, it at least can find a song and turn it into a list. Also, working on two scripts at once (since I would rather not leak my bot token) is a lot harder than I thought it would be, since I’m effectively coding on one file (which gets its time tracked) and debugging on another (which does not get its time tracked).
I made it so the bot is able to keep track of songs that have already been selected as Songs of the Day, and also made it so the bot keeps track of the date and won’t generate a new song for the same day if one’s already been selected. These both, of course, only work when the bot is running the entire time.
Added some more functionality and details to the bot, so it specifies the date when it prints out the Song of the Day and also just commented more of my code. Since all of these APIs connect to Music Brainz’s ID system for some reason, I may use that to be able to query for general song info.
Ships:
I made a bot for Discord that’s able to respond to certain keywords and can generate a song of the day. It remembers what song is generated for the entire day. It also has a minor obsession with J-Rock (the best music genre, of course). The project is coded entirely in Python. Through it, I learned more about how Discord.py works, as well as pulling information from APIs in Discord....
|
1792997291.7015865
|
1793083691.7015865
|
|
5883
|
Egex - Easy Regex. by @lab18bke | Stardance
|
lab18bke
|
1
|
2.0
|
19
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-03T10:53:59Z", "hours": 2.0, "multiplier": 13.37, "payout": 19, "blessing": "neutral", "text": "There’s many places where we need Regex - maybe blocking messages, finding messages and what not. But, making Regex has always been a pain. Egex is a Project that aims to make Regex easy - it’s like Scratch but for Regex. You can add rules via simple clicks and even try out demo text with the generated regex. There’s also small byte-sized explainations at bottom which tell you what the regex does and also an export section to make using the Regex in Python, JS or Java easy.", "repo": "https://github.com/Lab18bke/Egex", "demo": "https://egex-eta.vercel.app/"}]...
|
[{"post_id": 1296, "ts": "2026 [{"post_id": 1296, "ts": "2026-06-03T06:16:31Z", "hours": 1.7661, "text": "Completed on Egex finally! 2 hours of coding!!"}, {"post_id": 1249, "ts": "2026-06-03T03:15:41Z", "hours": 0.3244, "text": "Egex for the win. Working on a project to make Regex easy."}]...
|
Title: Egex - Easy Regex. by @lab18bke | Stardance Title: Egex - Easy Regex. by @lab18bke | Stardance
Devlogs:
Egex for the win. Working on a project to make Regex easy.
Completed on Egex finally! 2 hours of coding!!
Ships:
There’s many places where we need Regex - maybe blocking messages, finding messages and what not. But, making Regex has always been a pain. Egex is a Project that aims to make Regex easy - it’s like Scratch but for Regex. You can add rules via simple clicks and even try out demo text with the generated regex. There’s also small byte-sized explainations at bottom which tell you what the regex does and also an export section to make using the Regex in Python, JS or Java easy....
|
1792968827.1008916
|
1793055227.1008916
|
|
5909
|
Data Labeller by @vyonnie | Stardance
|
vyonnie
|
1
|
12.03
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-22T08:31:31Z", "hours": 11.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Introduction I made a media annotation pipeline for images, videos, and audio datasets, with automated quality control using AI. Instructions on how to run the app locally are in the source files! :) How It Works There are four stages: Admin : Create jobs by uploading media URLs and defining category lists. Labeller : Annotate media tasks with category labels and free-text descriptions. AI QC : Automated quality control using Gemini to sample and verify labels. Gemini reviews a sample of labels per job: Small jobs (<10 tasks): one random task per labeller. Large jobs: roughly 10% of tasks are randomly sampled. If a sampled task fails, the entire labeller’s work for that job is flagged for human review. Human QC : Review flagged labels, approve correct ones, or send them back for relabelling by setting the task status back to open . Hope this is useful!", "repo": "https://github.com/vynkyt/data-labeller", "demo": "https://datalabeller.vkyt.hackclub.app/"}]...
|
[{"post_id": 52342, "ts": "202 [{"post_id": 52342, "ts": "2026-08-22T13:34:10Z", "hours": 1.0314, "text": "Deployed the whole thing onto Render to bypass local installs."}, {"post_id": 52176, "ts": "2026-08-22T08:26:10Z", "hours": 1.7539, "text": "Finally fixed AI QC not running (model incompatibility): Human QC page now can receive tasks that failed the AI QC! I also wrote end to end tests that start up a uvicorn server and mocks Gemini + uses playwright to drive HTML pages for happy, sad and edge cases to make sure it really works. Going to ship now :) I hope someone can find this helpful!"}, {"post_id": 47459, "ts": "2026-08-15T12:02:41Z", "hours": 2.5058, "text": "Finished up unit tests for labeller, ai qc and human qc. Also finished the ai qc and human qc endpoints + added human qc html page :) The image attached here is also a recent addition, the main index.html page showcasing a brief intro of this project, the pipeline, and links to the three html pages. Also major development: added a way for others to test my project with/without API keys for Gemini or Turso (database), and updated README with implementation steps; will ship soon yayy"}, {"post_id": 45617, "ts": "2026-08-12T07:07:52Z", "hours": 2.6128, "text": "Added unit tests, restyled both admin and labeller html pages. Started on AI logic"}, {"post_id": 8315, "ts": "2026-06-13T20:38:45Z", "hours": 2.1522, "text": "Added a text area for labellers to input their names, and updated the “submit labels” button so that it now collects labels from ticked checkboxes and other descriptive labels, and sends them to the database. So now the labeller’s name and the labels can be recorded in the database! Next step is to integrate AI for checking."}, {"post_id": 1332, "ts": "2026-06-03T08:39:17Z", "hours": 2.0153, "text": "Admin page (and connected to backend) done, where “admins” insert urls to be labelled as requested by clients and identify possible categories all urls might fall under, and submit urls and categories to the database. Labeller page partially done, where labellers “get a new task” that renders a url and lists categories as checkboxes to be ticked off and an additional textbox for any additional identifiable labels. To-do next: connect label submission buttons to endpoint in backend."}]...
|
Title: Data Labeller by @vyonnie | Stardance
Devl Title: Data Labeller by @vyonnie | Stardance
Devlogs:
Admin page (and connected to backend) done, where “admins” insert urls to be labelled as requested by clients and identify possible categories all urls might fall under, and submit urls and categories to the database. Labeller page partially done, where labellers “get a new task” that renders a url and lists categories as checkboxes to be ticked off and an additional textbox for any additional identifiable labels. To-do next: connect label submission buttons to endpoint in backend.
Added a text area for labellers to input their names, and updated the “submit labels” button so that it now collects labels from ticked checkboxes and other descriptive labels, and sends them to the database. So now the labeller’s name and the labels can be recorded in the database! Next step is to integrate AI for checking.
Added unit tests, restyled both admin and labeller html pages. Started on AI logic
Finished up unit tests for labeller, ai qc and human qc. Also finished the ai qc and human qc endpoints + added human qc html page :) The image attached here is also a recent addition, the main index.html page showcasing a brief intro of this project, the pipeline, and links to the three html pages. Also major development: added a way for others to test my project with/without API keys for Gemini or Turso (database), and updated README with implementation steps; will ship soon yayy
Finally fixed AI QC not running (model incompatibility): Human QC page now can receive tasks that failed the AI QC! I also wrote end to end tests that start up a uvicorn server and mocks Gemini + uses playwright to drive HTML pages for happy, sad and edge cases to make sure it really works. Going to ship now :) I hope someone can find this helpful!
Deployed the whole thing onto Render to bypass local installs.
Ships:
Introduction I made a media annotation pipeline for images, videos, and audio datasets, with automated quality control using AI. Instructions on how to run the app locally are in the source files! :) How It Works There are four stages: Admin : Create jobs by uploading media URLs and defining category lists. Labeller : Annotate media tasks with category labels and free-text descriptions. AI QC : Automated quality control using Gemini to sample and verify labels. Gemini reviews a sample of labels per job: Small jobs (<10 tasks): one random task per labeller. Large jobs: roughly 10% of tasks are randomly sampled. If a sampled task fails, the entire labeller’s work for that job is flagged for human review. Human QC : Review flagged labels, approve correct ones, or send them back for relabelling by setting the task status back to open . Hope this is useful!...
|
1792975660.3209393
|
1793062060.3209393
|
|
5921
|
BitSwiss by @swedishsplidney | Stardance
|
swedishsplidney
|
1
|
22.0
|
397
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-07T09:11:09Z", "hours": 22.0, "multiplier": 18.19, "payout": 397, "blessing": "neutral", "text": "BitSwiss is an open source, cross platform archiving tool to easily download offline archives of over 100 web .zim archives to a removable media device, creating fully offline digital “swiss army knives” that can be used anywhere, on any (desktop) device. it can also include portable, installation free, offline readers for all the archives. available packages: all of wikipedia gutenberg collection (over 75,000 public domain ebooks) stackoverflow and stackexchange forums for many topics full ifixit repair guide archive developer documentation for many scripting languages/libraries/workflows/etc. full libretexts textbook and other educational text archives entire medlineplus archive for medical info full khanacademy, crashcourse, and freecodecamp courses for learning NASA astronomy picture of the day archive with expert explanations preconfigured setups for 16, 32, 64, and 128gb drives. also some field-focused presets for coding, computer science, outer space, and more. BitSwiss works by first using libcurl to grab the file sizes, then filters the URL to get the file name. it then uses a multithreaded concurrent download system to quickly and efficiently download packages (for more info, refer to the “how it works” section of the readme. coded in C++ using JetBrains CLion on Fedora 44 KDE. compiled with CMake for linux, macOS and windows", "repo": "https://github.com/swedishsplidney/BitSwiss", "demo": "https://github.com/swedishsplidney/BitSwiss/releases"}]...
|
[{"post_id": 4088, "ts": "2026 [{"post_id": 4088, "ts": "2026-06-07T08:52:50Z", "hours": 1.0131, "text": "just spent an hour debugging just to get a working build for microslop windows… finally got it working successfully though, kinda goofy on occasion but does work, thankfully"}, {"post_id": 4017, "ts": "2026-06-07T05:41:26Z", "hours": 3.6267, "text": "pretty much ready to ship! more than doubled the package list, to over 109 packages, now totaling over 600gb of data other than that it was ui tweaks, code cleanup and testing the windows and mac versions in a vm if this seems kinda interesting, go read the readme at https://github.com/swedishsplidney/BitSwiss"}, {"post_id": 2655, "ts": "2026-06-05T10:10:59Z", "hours": 6.5953, "text": "downloading works! uses a full multi-threaded asynchronous download engine that automatically imports file sizes and dynamic file names using libcurl. added prebuilt binaries to the github at: https://github.com/swedishsplidney/BitSwiss if you wanna try it out, feel free, but only the linux binary is actually tested at this point it is a fully working application which feels super great you can now also include multiple platforms of zim readers too, making it fully all-in-one the readme in the repo is also much better now"}, {"post_id": 1914, "ts": "2026-06-04T04:25:21Z", "hours": 1.2667, "text": "settings menu with theme swapping system ImGui is pretty limited in what you can do but you can change the colors"}, {"post_id": 1804, "ts": "2026-06-04T00:54:39Z", "hours": 2.3597, "text": "working asynchronous accurate file size checking using libcurl and async worker threads. it now accurately and super quickly gets file sizes without needing manual input. new CHUNGUS preconfig option that is almost 300GB :0"}, {"post_id": 1386, "ts": "2026-06-03T11:56:41Z", "hours": 5.2528, "text": "completed a complete gui and data item system overhaul, it actually compiles now. right now it automatically detects when storage devices are plugged in and you can select from over 45 manually inputted dataset options from kiwix such as 3 different wikipedia sizes library of congress, stackoverflow, etc. 3 preconfigged profiles and a working progress bar on the bottom. it should work on linux windows and mac but who knows because I haven’t tested it on anything other than linux yet now it just needs to actually do the thing its supposed to lol"}, {"post_id": 1288, "ts": "2026-06-03T05:40:42Z", "hours": 1.7167, "text": "devlog 6/2/26: got the project created, wrote the README, and got dear ImGui working with the demo window. started writing the actual drive detection system, only for linux so far…"}]...
|
Title: BitSwiss by @swedishsplidney | Stardance
D Title: BitSwiss by @swedishsplidney | Stardance
Devlogs:
devlog 6/2/26: got the project created, wrote the README, and got dear ImGui working with the demo window. started writing the actual drive detection system, only for linux so far…
completed a complete gui and data item system overhaul, it actually compiles now. right now it automatically detects when storage devices are plugged in and you can select from over 45 manually inputted dataset options from kiwix such as 3 different wikipedia sizes library of congress, stackoverflow, etc. 3 preconfigged profiles and a working progress bar on the bottom. it should work on linux windows and mac but who knows because I haven’t tested it on anything other than linux yet now it just needs to actually do the thing its supposed to lol
working asynchronous accurate file size checking using libcurl and async worker threads. it now accurately and super quickly gets file sizes without needing manual input. new CHUNGUS preconfig option that is almost 300GB :0
settings menu with theme swapping system ImGui is pretty limited in what you can do but you can change the colors
downloading works! uses a full multi-threaded asynchronous download engine that automatically imports file sizes and dynamic file names using libcurl. added prebuilt binaries to the github at: https://github.com/swedishsplidney/BitSwiss if you wanna try it out, feel free, but only the linux binary is actually tested at this point it is a fully working application which feels super great you can now also include multiple platforms of zim readers too, making it fully all-in-one the readme in the repo is also much better now
pretty much ready to ship! more than doubled the package list, to over 109 packages, now totaling over 600gb of data other than that it was ui tweaks, code cleanup and testing the windows and mac versions in a vm if this seems kinda interesting, go read the readme at https://github.com/swedishsplidney/BitSwiss
just spent an hour debugging just to get a working build for microslop windows… finally got it working successfully though, kinda goofy on occasion but does work, thankfully
Ships:
BitSwiss is an open source, cross platform archiving tool to easily download offline archives of over 100 web .zim archives to a removable media device, creating fully offline digital “swiss army knives” that can be used anywhere, on any (desktop) device. it can also include portable, installation free, offline readers for all the archives. available packages: all of wikipedia gutenberg collection (over 75,000 public domain ebooks) stackoverflow and stackexchange forums for many topics full ifixit repair guide archive developer documentation for many scripting languages/libraries/workflows/etc. full libretexts textbook and other educational text archives entire medlineplus archive for medical info full khanacademy, crashcourse, and freecodecamp courses for learning NASA astronomy picture of the day archive with expert explanations preconfigured setups for 16, 32, 64, and 128gb drives. also some field-focused presets for coding, computer science, outer space, and more. BitSwiss works by first using libcurl to grab the file sizes, then filters the URL to get the file name. it then uses a multithreaded concurrent download system to quickly and efficiently download packages (for more info, refer to the “how it works” section of the readme. coded in C++ using JetBrains CLion on Fedora 44 KDE. compiled with CMake for linux, macOS and windows...
|
1792997305.5930274
|
1793083705.5930274
|
|
5924
|
stockpanda by @pizzalover125 | Stardance
|
pizzalover125
|
1
|
23.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-27T22:37:57Z", "hours": 23.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Stockpanda is an open-source chess engine made with Python that can be played through a custom web GUI! Creating an engine is extremely technical, so I had to do thorough research on the different alogrithms to make the engine better and better. I’m proud that my GUI has such a smooth user interface, as well as the fact that my engine is extremely strong! Building this was a blast :)", "repo": "https://github.com/pizzalover125/stockpanda", "demo": "https://stockpanda.vercel.app/"}]...
|
[{"post_id": 17212, "ts": "202 [{"post_id": 17212, "ts": "2026-06-27T22:31:42Z", "hours": 0.2747, "text": "did a final run-through of the app, tweaked some settings, deployed, and created a banner in Figma!"}, {"post_id": 17192, "ts": "2026-06-27T22:03:20Z", "hours": 1.6372, "text": "implemented two pieces of polish: victory confetti screen shake + sound effect on illegal moves these changes were not too difficult, but I did run into a couple of bugs. i think i’m ready to ship! not much i think i can add at this point."}, {"post_id": 16620, "ts": "2026-06-27T01:17:03Z", "hours": 1.1508, "text": "implemented difficulty levels! they just adjust the search depth and the maximum time spent. pretty simple to implement!"}, {"post_id": 16383, "ts": "2026-06-26T17:40:00Z", "hours": 1.7242, "text": "made the move history travel-able! now, you can go backwards and forwards through the game’s history. there were bugs with this feature, but it works perfectly now!"}, {"post_id": 15408, "ts": "2026-06-25T01:30:30Z", "hours": 1.8711, "text": "added more customization! there are now more options for customizing the time, board, piece, and now sound themes. this wasn’t too difficult; just tedious."}, {"post_id": 15309, "ts": "2026-06-24T21:19:04Z", "hours": 0.37, "text": "deployed this on Vercel! had to change a couple of things and vercel had some issues with the build, but i got it figured out! go to stockpanda.vercel.app!"}, {"post_id": 15261, "ts": "2026-06-24T19:36:39Z", "hours": 1.3167, "text": "implemented premoves! now you can make moves before the engine makes a move; similar to chess.com and lichess.org. i couldn’t get a screenshot cause it takes some time, so try it out yourself!"}, {"post_id": 15126, "ts": "2026-06-24T16:08:04Z", "hours": 1.1042, "text": "added board annotations! if you’ve ever used chess.com or lichess, you would know you can highlight squares and draw arrows. now, you can do that on stock panda! implementing this was a lot easier than i thought, ngl. pretty smooth sailing."}, {"post_id": 14833, "ts": "2026-06-24T03:00:32Z", "hours": 1.3725, "text": "made it responsive on mobile! i came across a lot of bugs with it not working but i eventually got through the bugs. to accomplish this, i also ended up adding functionality to make moves by clicking instead of dragging. some people like it that way."}, {"post_id": 14605, "ts": "2026-06-23T19:36:28Z", "hours": 0.7114, "text": "implemented a notation system on the side, similar to how chess.com andlichess.org do it. pretty simple, other than visual bugs with weird scrolling problems. super clean tho!"}, {"post_id": 14541, "ts": "2026-06-23T18:07:53Z", "hours": 1.4267, "text": "implemented custom themes! now you can fully customize the look and feel of your chess game against Stock Panda! I love how intuitive the UI/UX is"}, {"post_id": 14128, "ts": "2026-06-23T03:27:51Z", "hours": 0.9108, "text": "implemented a clock! now you can play rapid, blitz, and bullet games with my chess engine!"}, {"post_id": 14014, "ts": "2026-06-23T00:08:18Z", "hours": 1.6136, "text": "transformed the UI of the application. added extremely satisfying sounds that im genuniely so proud of. made it look like chess.com cause people recognize that. also, you can choose to play as black or white, which is really cool! finally, there are now animations for the computer’s moves."}, {"post_id": 5223, "ts": "2026-06-08T22:39:24Z", "hours": 0.5694, "text": "implemented phase-based evaluation! essentially, the engine changes based on the phase of the game (opening, middlegame, endgame). for example, you want to have your king active in the endgame but safe in the opening. thats what this change does!"}, {"post_id": 4539, "ts": "2026-06-07T21:42:44Z", "hours": 0.4444, "text": "implemented endgame tablebases! essentially, chess is solved with 7 pieces or fewer. so instead of trying to calculate the perfect move in a complicated position, we can just look it up in a precomputed database of all positions with 7 pieces or fewer. this is a huge boost for endgame play, and also lets the engine play perfectly in those positions instead of relying on heuristics. the syzygy tablebases are the standard in the chess programming community, so i used them!"}, {"post_id": 4475, "ts": "2026-06-07T20:06:43Z", "hours": 0.6053, "text": "implemented an opening book! essentially, for common openings, the engine has a file of the best moves in those common positions. this makes it a lot better (and faster) at the opening stage. implementing it was pretty difficult because of some issues with the book file, but it eventually worked!"}, {"post_id": 4440, "ts": "2026-06-07T19:18:03Z", "hours": 0.8325, "text": "implemented transition tables! essentially, transition tables cache evaluations to reuse if the position is achieved through a different set of moves (transposition)."}, {"post_id": 3709, "ts": "2026-06-06T19:19:05Z", "hours": 0.8528, "text": "implemented quiessence search! basically, the engine keeps searching until the position becomes stable. for example, lets say the user can trade queens on move 5. it would see that and think that line is winning, but fails to see past move 5 where the opponent can recapture the queen. this 5-depth barrier is known as the horizon effect!"}, {"post_id": 2973, "ts": "2026-06-05T21:50:16Z", "hours": 0.4986, "text": "creating logo for stockpanda! it looks pretty cool to me, ngl. made in Figma. pretty simple but straight to the point. modeled after stockfish logo"}, {"post_id": 2903, "ts": "2026-06-05T20:10:39Z", "hours": 1.1783, "text": "added iterative deepening! essentially, it has a max thinking time and thinks as much as possible in that time. this makes it way faster!"}, {"post_id": 2436, "ts": "2026-06-04T22:38:09Z", "hours": 0.6431, "text": "added alpha-beta pruning! basically, if a branch in the tree is already bad, then my engine stops looking at the line (ex: blunders queen on move one, no need to look at that line). only 26 lines changed, but it was difficult to implement and i kept facing errors."}, {"post_id": 1572, "ts": "2026-06-03T17:49:42Z", "hours": 1.0183, "text": "basic minimax algorithm implemented with piece values and piece square tables to make it decently accurate"}, {"post_id": 1523, "ts": "2026-06-03T16:30:30Z", "hours": 0.8942, "text": "created the board and legal move logic!"}, {"post_id": 1240, "ts": "2026-06-03T02:56:04Z", "hours": 0.3089, "text": "took notes on chess engine design and created a course of action"}]...
|
Title: stockpanda by @pizzalover125 | Stardance
D Title: stockpanda by @pizzalover125 | Stardance
Devlogs:
took notes on chess engine design and created a course of action
created the board and legal move logic!
basic minimax algorithm implemented with piece values and piece square tables to make it decently accurate
added alpha-beta pruning! basically, if a branch in the tree is already bad, then my engine stops looking at the line (ex: blunders queen on move one, no need to look at that line). only 26 lines changed, but it was difficult to implement and i kept facing errors.
added iterative deepening! essentially, it has a max thinking time and thinks as much as possible in that time. this makes it way faster!
creating logo for stockpanda! it looks pretty cool to me, ngl. made in Figma. pretty simple but straight to the point. modeled after stockfish logo
implemented quiessence search! basically, the engine keeps searching until the position becomes stable. for example, lets say the user can trade queens on move 5. it would see that and think that line is winning, but fails to see past move 5 where the opponent can recapture the queen. this 5-depth barrier is known as the horizon effect!
implemented transition tables! essentially, transition tables cache evaluations to reuse if the position is achieved through a different set of moves (transposition).
implemented an opening book! essentially, for common openings, the engine has a file of the best moves in those common positions. this makes it a lot better (and faster) at the opening stage. implementing it was pretty difficult because of some issues with the book file, but it eventually worked!
implemented endgame tablebases! essentially, chess is solved with 7 pieces or fewer. so instead of trying to calculate the perfect move in a complicated position, we can just look it up in a precomputed database of all positions with 7 pieces or fewer. this is a huge boost for endgame play, and also lets the engine play perfectly in those positions instead of relying on heuristics. the syzygy tablebases are the standard in the chess programming community, so i used them!
implemented phase-based evaluation! essentially, the engine changes based on the phase of the game (opening, middlegame, endgame). for example, you want to have your king active in the endgame but safe in the opening. thats what this change does!
transformed the UI of the application. added extremely satisfying sounds that im genuniely so proud of. made it look like chess.com cause people recognize that. also, you can choose to play as black or white, which is really cool! finally, there are now animations for the computer’s moves.
implemented a clock! now you can play rapid, blitz, and bullet games with my chess engine!
implemented custom themes! now you can fully customize the look and feel of your chess game against Stock Panda! I love how intuitive the UI/UX is
implemented a notation system on the side, similar to how chess.com andlichess.org do it. pretty simple, other than visual bugs with weird scrolling problems. super clean tho!
made it responsive on mobile! i came across a lot of bugs with it not working but i eventually got through the bugs. to accomplish this, i also ended up adding functionality to make moves by clicking instead of dragging. some people like it that way.
added board annotations! if you’ve ever used chess.com or lichess, you would know you can highlight squares and draw arrows. now, you can do that on stock panda! implementing this was a lot easier than i thought, ngl. pretty smooth sailing.
implemented premoves! now you can make moves before the engine makes a move; similar to chess.com and lichess.org. i couldn’t get a screenshot cause it takes some time, so try it out yourself!
deployed this on Vercel! had to change a couple of things and vercel had some issues with the build, but i got it figured out! go to stockpanda.vercel.app!
added more customization! there are now more options for customizing the time, board, piece, and now sound themes. this wasn’t too difficult; just tedious.
made the move history travel-able! now, you can go backwards and forwards through the game’s history. there were bugs with this feature, but it works perfectly now!
implemented difficulty levels! they just adjust the search depth and the maximum time spent. pretty simple to implement!
implemented two pieces of polish: victory confetti screen shake + sound effect on illegal moves these changes were not too difficult, but I did run into a couple of bugs. i think i’m ready to ship! not much i think i can add at this point.
did a final run-through of the app, tweaked some settings, deployed, and created a banner in Figma!
Ships:
Stockpanda is an open-source chess engine made with Python that can be played through a custom web GUI! Creating an engine is extremely technical, so I had to do thorough research on the different alogrithms to make the engine better and better. I’m proud that my GUI has such a smooth user interface, as well as the fact that my engine is extremely strong! Building this was a blast :)...
|
1792392445.9440272
|
1793256445.9440272
|
|
5959
|
Airship CLI by @DodoSeal | Stardance
|
DodoSeal
|
1
|
7.79
|
80
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-27T22:36:55Z", "hours": 6.0, "multiplier": 13.49, "payout": 80, "blessing": "neutral", "text": "I made a CLI that interacts with the underlying API for Airship.gg, a gaming platform. I created this tool in search of a simple way to continue bug hunting on Airship. The CLI has a clean, user-friendly interface for selecting exactly what you need. This is my first CLI project and I am very impressed with how it has turned out. To get started, you need to install the package from NPM with “npm install -g airship-cli”, then simply run “airship” in a terminal! The interface will guide you through the Airship API in a category-based map.", "repo": "https://github.com/dodoseal/airship-cli", "demo": "https://www.npmjs.com/package/airship-cli"}]...
|
[{"post_id": 19563, "ts": "202 [{"post_id": 19563, "ts": "2026-06-30T21:48:52Z", "hours": 1.79, "text": "Devlog #6: New CLI Commands have been added: fetch-auth-token - Returns your auth token, useful for testing endpoints that haven’t been added yet. update-status-text - Allows you to update your user status, which is a removed feature that still displays in game! fetch-username-availability - Lets you look up usernames!"}, {"post_id": 17193, "ts": "2026-06-27T22:04:26Z", "hours": 0.8128, "text": "Devlog #5: I finally added a Help command, no more getting confused or lost! This was a challenging addition because I handle commands in categories, and help should be on the first list of options. Once I handled this (with a default command system), I was able to add “Back” and “Exit” commands to the UI, so no more restarting the tool because of a misclick!"}, {"post_id": 4015, "ts": "2026-06-07T05:34:13Z", "hours": 1.3769, "text": "Devlog #4: I added a new command! It allows you to either mark a game as favorite or remove your favorite. This required me to grab an authentication token from the device, which requires the Airship game to be installed and logged into. Simply pulling the app’s auth file wasn’t enough however, and I had to use local auth data to fetch an access token."}, {"post_id": 3262, "ts": "2026-06-06T03:27:23Z", "hours": 2.1006, "text": "Devlog #3: Today I did a LOT of refactoring and pushed many many bug fixes! One of the major updates is organizing the commands into categories based on their API. User data is under “Users”, game data is under “Games”, etc… I also made a new command yay! This command fetches the user’s profile picture and returns the CDN reference to it."}, {"post_id": 2250, "ts": "2026-06-04T17:19:02Z", "hours": 1.1067, "text": "Devlog #2: I cleaned up the data logging so you can choose between the most important data or all of it! The UX has been improved and errors are now nicely displayed to the user."}, {"post_id": 2208, "ts": "2026-06-04T16:13:46Z", "hours": 0.5814, "text": "Devlog #1: A while ago I became very invested in a gaming platform called Airship.gg. Almost everything is open source and I thought it would be fun to interact with its API. Currently you can fetch information about published games and active users on the platform. I hope to map the entire API with this CLI tool."}]...
|
Title: Airship CLI by @DodoSeal | Stardance
Devlo Title: Airship CLI by @DodoSeal | Stardance
Devlogs:
Devlog #1: A while ago I became very invested in a gaming platform called Airship.gg. Almost everything is open source and I thought it would be fun to interact with its API. Currently you can fetch information about published games and active users on the platform. I hope to map the entire API with this CLI tool.
Devlog #2: I cleaned up the data logging so you can choose between the most important data or all of it! The UX has been improved and errors are now nicely displayed to the user.
Devlog #3: Today I did a LOT of refactoring and pushed many many bug fixes! One of the major updates is organizing the commands into categories based on their API. User data is under “Users”, game data is under “Games”, etc… I also made a new command yay! This command fetches the user’s profile picture and returns the CDN reference to it.
Devlog #4: I added a new command! It allows you to either mark a game as favorite or remove your favorite. This required me to grab an authentication token from the device, which requires the Airship game to be installed and logged into. Simply pulling the app’s auth file wasn’t enough however, and I had to use local auth data to fetch an access token.
Devlog #5: I finally added a Help command, no more getting confused or lost! This was a challenging addition because I handle commands in categories, and help should be on the first list of options. Once I handled this (with a default command system), I was able to add “Back” and “Exit” commands to the UI, so no more restarting the tool because of a misclick!
Devlog #6: New CLI Commands have been added: fetch-auth-token - Returns your auth token, useful for testing endpoints that haven’t been added yet. update-status-text - Allows you to update your user status, which is a removed feature that still displays in game! fetch-username-availability - Lets you look up usernames!
Ships:
I made a CLI that interacts with the underlying API for Airship.gg, a gaming platform. I created this tool in search of a simple way to continue bug hunting on Airship. The CLI has a clean, user-friendly interface for selecting exactly what you need. This is my first CLI project and I am very impressed with how it has turned out. To get started, you need to install the package from NPM with “npm install -g airship-cli”, then simply run “airship” in a terminal! The interface will guide you through the Airship API in a category-based map....
|
1792979754.7522862
|
1793066154.7522862
|
|
5962
|
Insert Coin by @hamdaraksa | Stardance
|
hamdaraksa
|
1
|
25.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-28T23:28:54Z", "hours": 25.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I created an arcade game that runs in the taskbar so it can be played flexibly.", "repo": "https://github.com/kyubiner/Insert-Coin", "demo": "https://drive.google.com/drive/folders/14mZBPSmJ7eGYQSYK2bIwrfAscWfY0NeD?usp=sharing"}]...
|
[{"post_id": 75038, "ts": "202 [{"post_id": 75038, "ts": "2026-09-28T23:17:30Z", "hours": 7.3944, "text": "My game is ready for now and can be installed from Google Drive :)"}, {"post_id": 73604, "ts": "2026-09-25T13:47:33Z", "hours": 8.2683, "text": "I’m creating various things here, such as a background for my game and a circle… It’s going to get even more interesting, and I can’t wait to try out the ship for the first time."}, {"post_id": 71051, "ts": "2026-09-20T07:46:05Z", "hours": 3.0236, "text": "Alright, so I’ve finished creating the first mini-game for my arcade game, GitHub Striker . The concept is similar to Blocky Breaker , but the levels are based on your GitHub contribution activity the more active you are, the easier the levels are to complete. And my next goal is to polish this mini-game."}, {"post_id": 70911, "ts": "2026-09-20T00:37:22Z", "hours": 6.5983, "text": "I’m making a block-breaker arcade game, but I’m thinking about making it more interesting hopefully, I can get it done in time."}]...
|
Title: Insert Coin by @hamdaraksa | Stardance
Dev Title: Insert Coin by @hamdaraksa | Stardance
Devlogs:
I’m making a block-breaker arcade game, but I’m thinking about making it more interesting hopefully, I can get it done in time.
Alright, so I’ve finished creating the first mini-game for my arcade game, GitHub Striker . The concept is similar to Blocky Breaker , but the levels are based on your GitHub contribution activity the more active you are, the easier the levels are to complete. And my next goal is to polish this mini-game.
I’m creating various things here, such as a background for my game and a circle… It’s going to get even more interesting, and I can’t wait to try out the ship for the first time.
My game is ready for now and can be installed from Google Drive :)
Ships:
I created an arcade game that runs in the taskbar so it can be played flexibly....
|
1793004699.3901649
|
1793091099.3901649
|
|
5983
|
Astro Tasks by @3ni8ma_rush | Stardance
|
3ni8ma_rush
|
1
|
6.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-23T13:59:39Z", "hours": 6.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "What did you make? A Python CLI tool called astro that acts as a developer pre-flight checklist. Run astro check and it shows your GitHub notifications/open PRs, Hackatime/WakaTime coding stats from the past 7 days, and health of your local git repos (dirty branches, unpushed commits) — all in one terminal view. What was challenging? Integrating three independent data sources (GitHub CLI, WakaTime API, local git repos) into a single cohesive CLI Handling the GitHub CLI’s requirement for a git context when listing PRs Keeping the package lean using only stdlib urllib instead of heavier dependencies like requests Making cross-platform colored output work reliably via colorama What are you proud of? Clean, modular architecture — each concern lives in its own module (github_check.py, hackatime_check.py, repo_check.py, config_check.py) Published on PyPI (pip install astro-tasks) with a proper console entry point ASCII-colored output with consistent [+] / [!] / [x] / [*] markers that work everywhere, including CI How to test it: pip install astro-tasks Prerequisites: gh CLI authenticated, ~/.wakatime.cfg with api_key/api_url astro check # Full dashboard astro check –json # JSON output astro scan # Local repo health only astro log # Coding stats only astro config # Show current config Note: There are currently no automated tests — testing is manual via the commands above.", "repo": "https://github.com/3ni8ma/astro-tasks", "demo": "https://pypi.org/project/astro-tasks/"}]...
|
[{"post_id": 14633, "ts": "202 [{"post_id": 14633, "ts": "2026-06-23T20:16:27Z", "hours": 0.0, "text": "Astro-tasks coding session — pipeline heartbeat daemon"}, {"post_id": 14614, "ts": "2026-06-23T19:46:31Z", "hours": 0.0, "text": "Astro-tasks coding session — pipeline heartbeat daemon"}, {"post_id": 14603, "ts": "2026-06-23T19:30:25Z", "hours": 0.0, "text": "Astro-tasks coding session — pipeline heartbeat daemon"}, {"post_id": 14591, "ts": "2026-06-23T19:14:19Z", "hours": 0.0, "text": "Astro-tasks coding session — pipeline heartbeat daemon"}, {"post_id": 14563, "ts": "2026-06-23T18:46:46Z", "hours": 0.0, "text": "Astro-tasks coding session — pipeline heartbeat daemon"}, {"post_id": 14548, "ts": "2026-06-23T18:17:12Z", "hours": 0.0, "text": "Astro-tasks coding session — pipeline heartbeat daemon"}, {"post_id": 14539, "ts": "2026-06-23T18:00:29Z", "hours": 0.0, "text": "Pipeline sync 18:00 UTC — astro-tasks Frictionless goal"}, {"post_id": 14524, "ts": "2026-06-23T17:44:29Z", "hours": 0.0, "text": "Astro-tasks coding session — pipeline heartbeat daemon"}, {"post_id": 14499, "ts": "2026-06-23T17:16:24Z", "hours": 0.0, "text": "Astro-tasks coding session — pipeline heartbeat daemon"}, {"post_id": 14481, "ts": "2026-06-23T16:46:40Z", "hours": 0.0, "text": "Astro-tasks coding session — pipeline heartbeat daemon"}, {"post_id": 14467, "ts": "2026-06-23T16:30:19Z", "hours": 0.0, "text": "Pipeline sync 16:30 UTC — astro-tasks Frictionless goal"}, {"post_id": 14457, "ts": "2026-06-23T16:14:31Z", "hours": 0.0, "text": "Astro-tasks coding session — pipeline heartbeat daemon"}, {"post_id": 14446, "ts": "2026-06-23T15:58:53Z", "hours": 0.0, "text": "Astro-tasks coding session — pipeline heartbeat daemon"}, {"post_id": 14413, "ts": "2026-06-23T15:16:43Z", "hours": 0.0, "text": "Astro-tasks coding session — pipeline heartbeat daemon"}, {"post_id": 14405, "ts": "2026-06-23T15:00:36Z", "hours": 0.0, "text": "Pipeline sync 15:00 UTC — astro-tasks Frictionless goal"}, {"post_id": 14394, "ts": "2026-06-23T14:44:34Z", "hours": 0.0, "text": "Astro-tasks coding session — pipeline heartbeat daemon"}, {"post_id": 14382, "ts": "2026-06-23T14:27:19Z", "hours": 0.0, "text": "Astro-tasks coding session — pipeline heartbeat daemon"}, {"post_id": 14372, "ts": "2026-06-23T14:11:11Z", "hours": 0.0, "text": "Astro-tasks coding session — pipeline heartbeat daemon"}, {"post_id": 14361, "ts": "2026-06-23T13:55:06Z", "hours": 0.0, "text": "Astro-tasks coding session — pipeline heartbeat daemon"}, {"post_id": 14349, "ts": "2026-06-23T13:31:15Z", "hours": 2.0, "text": "Pipeline sync 13:31 UTC — astro-tasks Frictionless goal"}, {"post_id": 14217, "ts": "2026-06-23T07:00:23Z", "hours": 0.0, "text": "Pipeline sync 07:00 UTC — astro-tasks Frictionless goal"}, {"post_id": 14214, "ts": "2026-06-23T06:44:20Z", "hours": 0.0, "text": "Astro-tasks coding session — pipeline heartbeat daemon"}, {"post_id": 14202, "ts": "2026-06-23T06:16:34Z", "hours": 0.0, "text": "Astro-tasks coding session — pipeline heartbeat daemon"}, {"post_id": 14195, "ts": "2026-06-23T06:00:21Z", "hours": 0.0, "text": "Pipeline sync 06:00 UTC — astro-tasks Frictionless goal"}, {"post_id": 14188, "ts": "2026-06-23T05:44:25Z", "hours": 0.0, "text": "Astro-tasks coding session — pipeline heartbeat daemon"}, {"post_id": 14182, "ts": "2026-06-23T05:27:22Z", "hours": 0.0, "text": "Astro-tasks coding session — pipeline heartbeat daemon"}, {"post_id": 14168, "ts": "2026-06-23T04:55:51Z", "hours": 0.0, "text": "Captured 15m+ astro-tasks coding session via pipeline"}, {"post_id": 14161, "ts": "2026-06-23T04:35:50Z", "hours": 0.0, "text": "Devlog claiming 15m+ of coding time for astro-tasks Frictionless goal"}, {"post_id": 14156, "ts": "2026-06-23T04:20:07Z", "hours": 0.0, "text": "Pipeline sync 04:20 UTC — astro-tasks Frictionless goal (5h min)"}, {"post_id": 14148, "ts": "2026-06-23T04:02:40Z", "hours": 0.0, "text": "Pipeline auto-devlog 04:02 UTC — astro-tasks progress logged"}, {"post_id": 14124, "ts": "2026-06-23T03:10:13Z", "hours": 0.0, "text": "Just finished up GitHub README with Demo!"}]...
|
Title: Astro Tasks by @3ni8ma_rush | Stardance
De Title: Astro Tasks by @3ni8ma_rush | Stardance
Devlogs:
Just finished up GitHub README with Demo!
Pipeline auto-devlog 04:02 UTC — astro-tasks progress logged
Pipeline sync 04:20 UTC — astro-tasks Frictionless goal (5h min)
Devlog claiming 15m+ of coding time for astro-tasks Frictionless goal
Captured 15m+ astro-tasks coding session via pipeline
Astro-tasks coding session — pipeline heartbeat daemon
Astro-tasks coding session — pipeline heartbeat daemon
Pipeline sync 06:00 UTC — astro-tasks Frictionless goal
Astro-tasks coding session — pipeline heartbeat daemon
Astro-tasks coding session — pipeline heartbeat daemon
Pipeline sync 07:00 UTC — astro-tasks Frictionless goal
Pipeline sync 13:31 UTC — astro-tasks Frictionless goal
Astro-tasks coding session — pipeline heartbeat daemon
Astro-tasks coding session — pipeline heartbeat daemon
Astro-tasks coding session — pipeline heartbeat daemon
Astro-tasks coding session — pipeline heartbeat daemon
Pipeline sync 15:00 UTC — astro-tasks Frictionless goal
Astro-tasks coding session — pipeline heartbeat daemon
Astro-tasks coding session — pipeline heartbeat daemon
Astro-tasks coding session — pipeline heartbeat daemon
Pipeline sync 16:30 UTC — astro-tasks Frictionless goal
Astro-tasks coding session — pipeline heartbeat daemon
Astro-tasks coding session — pipeline heartbeat daemon
Astro-tasks coding session — pipeline heartbeat daemon
Pipeline sync 18:00 UTC — astro-tasks Frictionless goal
Astro-tasks coding session — pipeline heartbeat daemon
Astro-tasks coding session — pipeline heartbeat daemon
Astro-tasks coding session — pipeline heartbeat daemon
Astro-tasks coding session — pipeline heartbeat daemon
Astro-tasks coding session — pipeline heartbeat daemon
Astro-tasks coding session — pipeline heartbeat daemon
Ships:
What did you make? A Python CLI tool called astro that acts as a developer pre-flight checklist. Run astro check and it shows your GitHub notifications/open PRs, Hackatime/WakaTime coding stats from the past 7 days, and health of your local git repos (dirty branches, unpushed commits) — all in one terminal view. What was challenging? Integrating three independent data sources (GitHub CLI, WakaTime API, local git repos) into a single cohesive CLI Handling the GitHub CLI’s requirement for a git context when listing PRs Keeping the package lean using only stdlib urllib instead of heavier dependencies like requests Making cross-platform colored output work reliably via colorama What are you proud of? Clean, modular architecture — each concern lives in its own module (github_check.py, hackatime_check.py, repo_check.py, config_check.py) Published on PyPI (pip install astro-tasks) with a proper console entry point ASCII-colored output with consistent [+] / [!] / [x] / [*] markers that work everywhere, including CI How to test it: pip install astro-tasks Prerequisites: gh CLI authenticated, ~/.wakatime.cfg with api_key/api_url astro check # Full dashboard astro check –json # JSON output astro scan # Local repo health only astro log # Coding stats only astro config # Show current config Note: There are currently no automated tests — testing is manual via the commands above....
|
1792882037.6463373
|
1793746037.6463373
|
|
5996
|
Auto Updater by @Afaeid | Stardance
|
Afaeid
|
1
|
31.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-11T11:09:26Z", "hours": 31.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "This is a npm tool that automatically updates another directory live time while editing a certain directory. The most challenging thing was version update of NodeJS, packages like path have some minor changes what rose a lot of errors. I resolved a real world problem. Now I can continue my tasks easily on SPCK editor without manually copying and pasting the files. This is really a great charm for me. People need to know Eye sight Basics of bash Basics of internet web browsing NodeJS installed machine or capability to install NodeJS npm basic commands Ability to understand the README.md file on Github", "repo": "https://github.com/afaeid/Auto-Updater", "demo": "https://www.npmjs.com/package/@afaeid/auto-updater"}]...
|
[{"post_id": 6776, "ts": "2026 [{"post_id": 6776, "ts": "2026-06-11T10:56:03Z", "hours": 5.5158, "text": "Finally, ready to be shipped!! Added clear README.md and implemented proper safe exit and error handling."}, {"post_id": 5797, "ts": "2026-06-09T18:34:56Z", "hours": 0.625, "text": "After watching the Shipping Guide, I have decided to rewrite the README.md file to make it more clear. Next, I will implement safe exit configuration. 😀😀"}, {"post_id": 5759, "ts": "2026-06-09T17:37:22Z", "hours": 0.4597, "text": "Eventually, I finished the project, solving some minor bugs. Now the package is available on NPM. Have a try!"}, {"post_id": 5617, "ts": "2026-06-09T14:12:23Z", "hours": 0.6686, "text": "After all, it is about to finish Check it on GitHub."}, {"post_id": 4987, "ts": "2026-06-08T17:11:32Z", "hours": 23.77, "text": "After working for hours , eventually, it’s almost completed. Now, only the Readme file is yet to ready."}]...
|
Title: Auto Updater by @Afaeid | Stardance
Devlog Title: Auto Updater by @Afaeid | Stardance
Devlogs:
After working for hours , eventually, it’s almost completed. Now, only the Readme file is yet to ready.
After all, it is about to finish Check it on GitHub.
Eventually, I finished the project, solving some minor bugs. Now the package is available on NPM. Have a try!
After watching the Shipping Guide, I have decided to rewrite the README.md file to make it more clear. Next, I will implement safe exit configuration. 😀😀
Finally, ready to be shipped!! Added clear README.md and implemented proper safe exit and error handling.
Ships:
This is a npm tool that automatically updates another directory live time while editing a certain directory. The most challenging thing was version update of NodeJS, packages like path have some minor changes what rose a lot of errors. I resolved a real world problem. Now I can continue my tasks easily on SPCK editor without manually copying and pasting the files. This is really a great charm for me. People need to know Eye sight Basics of bash Basics of internet web browsing NodeJS installed machine or capability to install NodeJS npm basic commands Ability to understand the README.md file on Github...
|
1792990191.89594
|
1793076591.89594
|