|
44966
|
Darling in the Slack by @skyFonix | Stardance
|
skyFonix
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-07T12:41:03Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I wrote a slack bot, that sends you images and quotes from Darling in the FranXX Commands: /darling_in_the_slack-ping: ping message /darling_in_the_slack-selfie: sends a random image of a squad 13 member /darling_in_the_slack-quote: spits out a random quote from a squad 13 member", "repo": "https://github.com/FonixPython/darling-in-the-slack", "demo": "https://app.slack.com/client/E09V59WQY1E/C0P5NE354"}]...
|
[{"post_id": 42522, "ts": "202 [{"post_id": 42522, "ts": "2026-08-07T10:06:07Z", "hours": 1.0119, "text": "Finished the bot, now I just need to deploy it to Nest. and do a bit of branding."}]...
|
Title: Darling in the Slack by @skyFonix | Stardan Title: Darling in the Slack by @skyFonix | Stardance
Devlogs:
Finished the bot, now I just need to deploy it to Nest. and do a bit of branding.
Ships:
I wrote a slack bot, that sends you images and quotes from Darling in the FranXX Commands: /darling_in_the_slack-ping: ping message /darling_in_the_slack-selfie: sends a random image of a squad 13 member /darling_in_the_slack-quote: spits out a random quote from a squad 13 member...
|
1793728275.298353
|
1793814675.298353
|
|
67109
|
My own site! by @Bobxandersen | Stardance
|
Bobxandersen
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My own site! by @Bobxandersen | Stardance
|
1793728276.4885209
|
1794333076.4885209
|
|
44019
|
My own site! by @AllyD | Stardance
|
AllyD
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-13T22:10:59Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made my website, personal website where i will add every project that i will do in the future. First time trying to make a website wasnt really that challenging and so I am pretty happy with it for now , but as i said i will keep updating it with my new projects.", "repo": "https://github.com/AllyD002/My-website", "demo": "https://allyd002.github.io/My-website/"}]...
|
[{"post_id": 46574, "ts": "202 [{"post_id": 46574, "ts": "2026-08-13T22:08:45Z", "hours": 0.4481, "text": "So, tried to fix some bugs it worked and now im realising it fully, in the future i will add projects and other things but for now thats it, i guess."}, {"post_id": 41873, "ts": "2026-08-06T10:56:12Z", "hours": 0.2775, "text": "So this is my very first time making a HTML website, I am very happy to realease it to public, this is not the final version but for now it seems to be okay for me."}]...
|
Title: My own site! by @AllyD | Stardance
Devlogs Title: My own site! by @AllyD | Stardance
Devlogs:
So this is my very first time making a HTML website, I am very happy to realease it to public, this is not the final version but for now it seems to be okay for me.
So, tried to fix some bugs it worked and now im realising it fully, in the future i will add projects and other things but for now thats it, i guess.
Ships:
I made my website, personal website where i will add every project that i will do in the future. First time trying to make a website wasnt really that challenging and so I am pretty happy with it for now , but as i said i will keep updating it with my new projects....
|
1793728277.3848848
|
1793814677.3848848
|
|
67110
|
Blog by @xeo | Stardance
|
xeo
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Blog by @xeo | Stardance
|
1793728278.5579615
|
1794333078.5579615
|
|
45258
|
SpacyTab by @body-35 | Stardance
|
body-35
|
1
|
0.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-13T15:47:31Z", "hours": 0.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a website it is just like a tab so u can use it instead of google and there is search bar u can google anything via this search bar so yeah have fun!! excited to see ur comments thx!!!", "repo": "https://github.com/Body-530/Wbsite-Tab-Pulse", "demo": "https://body-530.github.io/Wbsite-Tab-Pulse/"}]...
|
[{"post_id": 46385, "ts": "202 [{"post_id": 46385, "ts": "2026-08-13T15:43:18Z", "hours": 0.3375, "text": "I made a tab website and it works well so u can google it using my website enjoy!!"}]...
|
Title: SpacyTab by @body-35 | Stardance
Devlogs:
Title: SpacyTab by @body-35 | Stardance
Devlogs:
I made a tab website and it works well so u can google it using my website enjoy!!
Ships:
I made a website it is just like a tab so u can use it instead of google and there is search bar u can google anything via this search bar so yeah have fun!! excited to see ur comments thx!!!...
|
1793728279.4569755
|
1793814679.4569755
|
|
67114
|
soul knight by @xev123_ | Stardance
|
xev123_
|
0
|
20.11
|
0
|
[]
|
[{"post_id": 85637, "ts": "202 [{"post_id": 85637, "ts": "2026-10-31T16:02:40Z", "hours": 20.1058, "text": "new project for a 2d soul like game stay tuned"}]...
|
Title: soul knight by @xev123_ | Stardance
Devlog Title: soul knight by @xev123_ | Stardance
Devlogs:
new project for a 2d soul like game stay tuned...
|
1793728280.6404307
|
1794333080.6404307
|
|
67115
|
BLARE by @mehmet_eren | Stardance
|
mehmet_eren
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: BLARE by @mehmet_eren | Stardance
|
1793728281.5318842
|
1794333081.5318842
|
|
55388
|
TiC tAc toE by @arshadpathan | Stardance
|
arshadpathan
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-28T19:00:41Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "So I built a Tic Tac Toe Game. I need to mention that I’ve lots of creative ideas to build but i have start from somewhere, so here’s the game i build for real experience even on screen. I’m proud of that I started my hackclub journey and excited for to dive deep in developing creative innovation projects. In this Tic Tac Toe Game, you can play with a someone. And it also features a computer mode with two different levels - Easy & Smart. I challenge you to win in Smart Computer mode.", "repo": "https://github.com/Arshad-Pathan/TiC-tAc-toE", "demo": "https://tic-tac-toe-arshad-me.vercel.app/"}]...
|
[{"post_id": 56806, "ts": "202 [{"post_id": 56806, "ts": "2026-08-28T18:40:55Z", "hours": 0.5731, "text": "Completed my First Project."}, {"post_id": 56643, "ts": "2026-08-28T14:16:11Z", "hours": 0.7139, "text": "I’m Starting my hackclub journey with small game and this is my first ever devlog. Session 1 — made the game working and deployed on Vercel"}]...
|
Title: TiC tAc toE by @arshadpathan | Stardance
D Title: TiC tAc toE by @arshadpathan | Stardance
Devlogs:
I’m Starting my hackclub journey with small game and this is my first ever devlog. Session 1 — made the game working and deployed on Vercel
Completed my First Project.
Ships:
So I built a Tic Tac Toe Game. I need to mention that I’ve lots of creative ideas to build but i have start from somewhere, so here’s the game i build for real experience even on screen. I’m proud of that I started my hackclub journey and excited for to dive deep in developing creative innovation projects. In this Tic Tac Toe Game, you can play with a someone. And it also features a computer mode with two different levels - Easy & Smart. I challenge you to win in Smart Computer mode....
|
1793728282.4538445
|
1793814682.4538445
|
|
45261
|
jss/clips by @jss | Stardance
|
jss
|
1
|
28.99
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-10T21:50:20Z", "hours": 19.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a clipping software for gamers (or ppl who want to record their desktop or excel speedrunning, i dont judge!). I got tired of other clipping softwares not working or being full of ads and paywalls, so I made my own! Thanks to AI, all I need is an idea, patience to debug (using my mediocre coding skills) and a willing test subje- beta tester. Proud to actually do something a bit bigger and something I use EVERRYYYY DAY to capture the best moments while playing with friends (and the bloopers too ofc.) To test my app; UI Web demo -> https://clips.jss.fi/app/ (should work on any device) Download the latest stable -> https://clips.jss.fi/download/ Judge my code and complain about issues -> https://github.com/jssfi/clips Tested working on W11 both on NVIDIA and AMD GPU’s. (3080 Ti and 9060 XT) Humongus thanks to my friend who helped test the app (and then complain when i broke it)", "repo": "https://github.com/jssfi/clips", "demo": "https://clips.jss.fi/download/"}]...
|
[{"post_id": 49164, "ts": "202 [{"post_id": 49164, "ts": "2026-08-17T20:05:57Z", "hours": 9.9928, "text": "Stable 0.5 is out 🥳 ; since the last devlog there has been…a lot of…lets just say difficulties :D -from github being down today (not that severe) to my updater breaking (twice)..i guess thats what nightlies are for eh? These last 120 ish commits (github says 123 but about half are pure fixes/features etc, the rest are builds etc) have been the most fun ive had making things.. The most stand out features from this batch are; In game overlay engine health warnings for dropped frames, errors and gpu/encoder overoading Library overhaul with sorting and search Per game capture profiles Multi clip stitching for mini “montages” An opt-in instant replay for when the capture engine is stopped but a chosen executable is on, you can still save a 5 min clip (time can be changed) automatic detection for unconfigured games An experimental (but working) browser “mode” for the UI. Instead of a desktop app, the app is in the background and can be controlled through your browser. Screenshots below. And some bugfixes… Updater has been overhauled to be more secure, which led to windows doing windows thing and bricking the whole updater for a bit. This has been fixed and is now working (this is why i recommend stable releases LOL) AMD AMF hardware encoding is now detected properly and wont fallback to h264, like it did most of the time before (though there might be an issue where nvenc can do the same, this is being debugged..) fixed a bug where the microphone input wasnt recorded and the settings disappeared All the changelogs from the nightlies are available on the repo: https://github.com/jssfi/clips Stable v0.5: https://github.com/jssfi/clips/releases/tag/v0.5.0"}, {"post_id": 44848, "ts": "2026-08-10T21:41:49Z", "hours": 0.8294, "text": "Hackclub REAALLYY..doesnt want me to ship without squeeezing every last bit of logged time so okay. Now comply with every (hopefully) 3rd party library license Made audio selection easier to do by letting the user choose an open process from a list (photo below), rather than typing a .exe from the top of your head. shipping now for real haha."}, {"post_id": 44808, "ts": "2026-08-10T20:42:14Z", "hours": 0.8867, "text": "Now i REALLY did the finishing touches; Made the updater a bitttt more secure added a browser demo (For the UI, for now) at https://clips.jss.fi/app/ Made the repo public shippin’ now!"}, {"post_id": 44774, "ts": "2026-08-10T19:34:19Z", "hours": 3.8825, "text": "Some last minute polishing before shipping! Today has been a sum of; UX changes, UI bug fixes and QOL updates. Also a fix of HDR tomfoolery(again)…Added optional diagnostic tracking for errors (asked at install). Added noise removal on RTX GPU’s and a noise gate. Also fixed a bug where updating fails to update the engine underneath the electron UI…whoops!"}, {"post_id": 43419, "ts": "2026-08-08T17:28:11Z", "hours": 13.6761, "text": "This time I’m doubling down on a bit of a bigger project. And like earlier, there’s a problem and then there’s a solution, my solution. This time the problem is that every recording software for the games I play either A. don’t work, B. lag my PC or C. are full of ads. This is my solution, using the power of the tools available (AI) and my ability to debug questionable code to make a tolerable clipping software; jss/clips (jss from my name and then clips). No ads, the ability to configure anything either built-in or then forking and asking AI yourself :) Kinda forgot to keep track of these devlogs to know what ive been doing cause I was having so much fun so heres what I can remember from the top of my head and the app itself; the app can record footage in varying qualities (tested on nvidia and amd gpu’s on windows) using libobs, play them back in an embedded MPV player(or a fullscreen MPV player), trim the clips using FFMPEG, remove microphone noise using NVIDIA Audio Effects on supported systems, auto-update when needed and a LOT of other settings and QOL stuff :) Screenshots below! Started as a joke but grew into something I use everyday now and so does a friend of mine. All on GitHub (before I ship this at the latest…just got to fix some commit issues cause i committed too big of a file somewhere…)"}]...
|
Title: jss/clips by @jss | Stardance
Devlogs:
Thi Title: jss/clips by @jss | Stardance
Devlogs:
This time I’m doubling down on a bit of a bigger project. And like earlier, there’s a problem and then there’s a solution, my solution. This time the problem is that every recording software for the games I play either A. don’t work, B. lag my PC or C. are full of ads. This is my solution, using the power of the tools available (AI) and my ability to debug questionable code to make a tolerable clipping software; jss/clips (jss from my name and then clips). No ads, the ability to configure anything either built-in or then forking and asking AI yourself :) Kinda forgot to keep track of these devlogs to know what ive been doing cause I was having so much fun so heres what I can remember from the top of my head and the app itself; the app can record footage in varying qualities (tested on nvidia and amd gpu’s on windows) using libobs, play them back in an embedded MPV player(or a fullscreen MPV player), trim the clips using FFMPEG, remove microphone noise using NVIDIA Audio Effects on supported systems, auto-update when needed and a LOT of other settings and QOL stuff :) Screenshots below! Started as a joke but grew into something I use everyday now and so does a friend of mine. All on GitHub (before I ship this at the latest…just got to fix some commit issues cause i committed too big of a file somewhere…)
Some last minute polishing before shipping! Today has been a sum of; UX changes, UI bug fixes and QOL updates. Also a fix of HDR tomfoolery(again)…Added optional diagnostic tracking for errors (asked at install). Added noise removal on RTX GPU’s and a noise gate. Also fixed a bug where updating fails to update the engine underneath the electron UI…whoops!
Now i REALLY did the finishing touches; Made the updater a bitttt more secure added a browser demo (For the UI, for now) at https://clips.jss.fi/app/ Made the repo public shippin’ now!
Hackclub REAALLYY..doesnt want me to ship without squeeezing every last bit of logged time so okay. Now comply with every (hopefully) 3rd party library license Made audio selection easier to do by letting the user choose an open process from a list (photo below), rather than typing a .exe from the top of your head. shipping now for real haha.
Stable 0.5 is out 🥳 ; since the last devlog there has been…a lot of…lets just say difficulties :D -from github being down today (not that severe) to my updater breaking (twice)..i guess thats what nightlies are for eh? These last 120 ish commits (github says 123 but about half are pure fixes/features etc, the rest are builds etc) have been the most fun ive had making things.. The most stand out features from this batch are; In game overlay engine health warnings for dropped frames, errors and gpu/encoder overoading Library overhaul with sorting and search Per game capture profiles Multi clip stitching for mini “montages” An opt-in instant replay for when the capture engine is stopped but a chosen executable is on, you can still save a 5 min clip (time can be changed) automatic detection for unconfigured games An experimental (but working) browser “mode” for the UI. Instead of a desktop app, the app is in the background and can be controlled through your browser. Screenshots below. And some bugfixes… Updater has been overhauled to be more secure, which led to windows doing windows thing and bricking the whole updater for a bit. This has been fixed and is now working (this is why i recommend stable releases LOL) AMD AMF hardware encoding is now detected properly and wont fallback to h264, like it did most of the time before (though there might be an issue where nvenc can do the same, this is being debugged..) fixed a bug where the microphone input wasnt recorded and the settings disappeared All the changelogs from the nightlies are available on the repo: https://github.com/jssfi/clips Stable v0.5: https://github.com/jssfi/clips/releases/tag/v0.5.0
Ships:
I made a clipping software for gamers (or ppl who want to record their desktop or excel speedrunning, i dont judge!). I got tired of other clipping softwares not working or being full of ads and paywalls, so I made my own! Thanks to AI, all I need is an idea, patience to debug (using my mediocre coding skills) and a willing test subje- beta tester. Proud to actually do something a bit bigger and something I use EVERRYYYY DAY to capture the best moments while playing with friends (and the bloopers too ofc.) To test my app; UI Web demo -> https://clips.jss.fi/app/ (should work on any device) Download the latest stable -> https://clips.jss.fi/download/ Judge my code and complain about issues -> https://github.com/jssfi/clips Tested working on W11 both on NVIDIA and AMD GPU’s. (3080 Ti and 9060 XT) Humongus thanks to my friend who helped test the app (and then complain when i broke it)...
|
1793728283.5931876
|
1793814683.5931876
|
|
67116
|
AROST.cast by @LynnieLooLyeLoo | Stardance
|
LynnieLooLyeLoo
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: AROST.cast by @LynnieLooLyeLoo | Stardance
|
1793728284.7610176
|
1794333084.7610176
|
|
54313
|
My personal site remake by @Lakaszada | Stardance
|
Lakaszada
|
1
|
11.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-31T09:26:51Z", "hours": 11.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made the website got it to look awesome got byperfixated on some ai chat thing inside it , and then a chat thing which broke the ai chat", "repo": "https://github.com/LakasZada/my-brand-new-and-worsened-website", "demo": "http://dev.ypac.lt"}]...
|
[{"post_id": 84174, "ts": "202 [{"post_id": 84174, "ts": "2026-10-29T06:41:10Z", "hours": 4.1392, "text": "I am trying to make a chat platform and i filled out more of the site"}, {"post_id": 59011, "ts": "2026-08-31T16:20:23Z", "hours": 0.2997, "text": "making the stop button do something"}, {"post_id": 58292, "ts": "2026-08-30T17:47:34Z", "hours": 3.4467, "text": "i have added response streaming and a custom font , am trying to add a stop generating button"}, {"post_id": 55612, "ts": "2026-08-27T16:01:49Z", "hours": 3.2081, "text": "i am going on an ai sidequest with my personal site"}]...
|
Title: My personal site remake by @Lakaszada | Sta Title: My personal site remake by @Lakaszada | Stardance
Devlogs:
i am going on an ai sidequest with my personal site
i have added response streaming and a custom font , am trying to add a stop generating button
making the stop button do something
I am trying to make a chat platform and i filled out more of the site
Ships:
I made the website got it to look awesome got byperfixated on some ai chat thing inside it , and then a chat thing which broke the ai chat...
|
1793728285.6537557
|
1793814685.6537557
|
|
22795
|
Synaptix by @Aniket | Stardance
|
Aniket
|
1
|
10.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-20T21:44:48Z", "hours": 10.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Project: StudyHub — Peer-to-Peer Study Material Sharing App StudyHub addresses a real and relatable problem — study material at the college level is scattered across WhatsApp groups, expiring Drive links, and random Telegram channels. The app brings everything into one searchable, community-driven library where students earn coins by uploading and spend them to download, which neatly solves the cold-start problem without relying on pure altruism. Effort is clearly demonstrated across 11 major versions, 7 EAS build attempts before a clean APK, 23 third-party dependencies audited and removed from a broken scaffold, and 8 critical bugs fixed in a single audit session. The entire journey — including what went wrong and exactly why — is documented honestly. Approximately 3,000 lines of TypeScript were written across screens, services, and contexts, with four AdMob ad unit types integrated and a full Firestore coin transaction audit trail implemented. Three meaningful Quality of Life improvements were made: Stats refresh accuracy — Home screen stats (uploads, groups joined, bookmarks) were fetched once on mount and went stale immediately after any user action. Replacing useEffect with useFocusEffect means counts re-fetch every time the screen comes into focus, so what the user sees always reflects what they just did. Member count race condition fixed — When two users tapped “Join Group” simultaneously, both reads returned the same count and one increment was silently lost. Wrapping joinGroup() and leaveGroup() in Firestore runTransaction() makes the read-modify-write atomic, so the count can never drift, go negative, or miss an update regardless of concurrency. Null-safe auth context eliminates the LoginScreen crash — The original build crashed in production with a TypeError at LoginScreen@1:2447207, traced via adb logcat to a web-only Firebase method (signInWithPopup) being called in a native Android context. The fix replaced it with the correct native Google Sign-In SDK and made login.tsx null-safe throughout — the context is read first, every value accessed with optional chaining, and each handler guards against null before calling — so the screen can never reach a render-time crash due to a timing issue at startup. All three improvements target reliability for real users, not cosmetic polish, which is exactly the right place to spend effort before a public release.", "repo": "https://github.com/A11490M/A11490M.github.io", "demo": "https://a11490m.github.io/"}]...
|
[{"post_id": 51195, "ts": "202 [{"post_id": 51195, "ts": "2026-08-20T18:21:11Z", "hours": 1.0603, "text": "just added some firestore rules and finalized the build"}, {"post_id": 23006, "ts": "2026-07-05T18:30:48Z", "hours": 2.2256, "text": "🚀 Devlog #6 — Coins, Coins Everywhere Today’s mission? Give Synaptix its own little economy. Because what’s a platform without a currency that makes your brain go “ooh shiny” every time the number goes up? 🪙 Welcome to the Coin Centre Built an entirely new Coin Centre where users can manage everything related to coins. Features include: 💰 Live coin balance 🎁 Daily bonus 📺 Rewarded Ads 💳 Coin Shop 📋 Transaction History ⚡ Clean tab navigation Basically… one place for all things shiny. 🎁 Daily Bonus Added a daily reward system. Users can now: Claim +5 coins every day Get blocked from claiming twice (nice try 😏) Come back tomorrow for another free reward Tiny feature. Massive dopamine. 📺 Rewarded Ads Integrated Rewarded AdMob Ads . Watch a short ad… Get free coins. No ads available? The app now explains what’s happening instead of staring awkwardly into your soul. 💳 Coin Shop Started building the future coin store. Added multiple packs: 🪙 Starter 💰 Popular 💎 Value 👑 Pro Payments aren’t live yet (Google Play wants its paperwork first 😒), but the entire flow is ready to go. 📋 Coin History Every coin now leaves a footprint. Users can see exactly where their coins came from and where they disappeared to. No more “Wait… where did my coins go?” 💭 Dev Thoughts Today wasn’t about adding another fancy screen. It was about making Synaptix feel more alive. Uploading notes, watching ads, collecting rewards… everything now feeds into a proper reward system. And honestly… Seeing my own app slowly turn into something that feels like a real product is a pretty cool feeling. 📈 Progress of Economy integration ██████░░░░ 50% Still a long road ahead... But every commit makes Synaptix feel a little less like \"just another project\" and a little more like something people might actually use every day. See you in **Devlog #7** 🚀"}, {"post_id": 22288, "ts": "2026-07-04T17:56:17Z", "hours": 1.2739, "text": "#Devlog 5 not gonna say a productive day but finally compleated with the admin panel and started working on in-app currency!!!"}, {"post_id": 21646, "ts": "2026-07-03T18:24:22Z", "hours": 3.1044, "text": "🚀 Devlog #4 — With Great Power Comes Great Admin Privileges Today’s objective was simple: Build an Admin Panel that actually feels like the control room of Synaptix. After hours of React Native, TypeScript, and a few “why isn’t this state updating?” moments, the Admin Panel finally feels like a proper production-grade dashboard. 🎛️ Admin Dashboard Overhaul The admin experience got a complete redesign. Added: Live statistics dashboard 📊 Tab-based navigation 🗂️ Quick Action shortcuts ⚡ Maintenance Mode indicator 🔧 Pull-to-refresh support 🔄 Cleaner and more responsive UI ✨ The goal was simple: Every important admin action should be only a couple of taps away. 📄 Document Management Admins can now: Search documents instantly 🔍 Edit document details ✏️ Toggle Public / Private visibility 🌍 Delete documents 🗑️ Monitor downloads and uploads 📈 No more opening Firebase just to hide a PDF. 👥 User Management The moderation system received a huge upgrade. Admins can now: Search users 🔍 Modify coin balances 🪙 Ban / Unban users 🚫 Delete accounts 🗑️ View uploads and joined groups 📊 Safe to say… The Admin account is now the final boss. 💬 Workspace & Group Controls Community management is much easier now. Admins can manage: 🏢 Workspaces 👥 Groups Everything from one dashboard. No Firebase archaeology required. 📢 Announcement Center Probably my favorite feature from today’s session. Admins can now: Post announcements 📝 Pin important notices 📌 Delete outdated announcements 🗑️ Use visual badges for different announcement types 🏷️ Basically… The “Attention everyone!” button finally exists. 🎨 UI Polish Spent way more time than expected polishing the experience. Improvements include: Better spacing Cleaner cards Status badges Color-coded actions Improved layouts Smoother interactions Users might never consciously notice these details… But they’ll definitely feel them. 💭 Developer Thoughts Today wasn’t about flashy features. It was about building the invisible infrastructure that keeps everything manageable once hundreds (hopefully thousands 👀) of users start using Synaptix. Every button I added today is one less reason for Future Me to open Firebase at 2:00 AM . Future Me is very thankful. 📈 Progress Synaptix Admin Panel Progress ███████░░░░ 70% Synaptix is slowly transforming from “a project I built” into “a platform I genuinely want people to use.” And honestly… That’s a pretty awesome feeling. See you in Devlog #5 🚀"}, {"post_id": 13810, "ts": "2026-06-22T17:05:40Z", "hours": 1.3333, "text": "Synaptix Devlog — Day 3 🚀Spent another day deep inside app/admin.tsx and somehow turned what started as “just an admin page” into an entire control center for the app. Today’s work was mostly about wiring up the backend and making sure admins can actually manage the platform instead of just looking at stats. ✅ Added data loading for: Platform statistics Documents Users Study groups Workspaces Announcements App settings ✅ Added error handling and debugging alerts for failed Firestore requests ✅ Built admin access verification Loading state while permissions are checked Access denied screen for non-admin users UID display to make debugging easier Firestore/admin setup instructions directly in-app ✅ Implemented document moderation tools Delete documents Toggle document visibility Edit document metadata Save updates instantly ✅ Implemented user management tools Ban / Unban users Delete users Set custom coin balances Global coin airdrops to every user One thing I’m learning while building Synaptix is that every feature creates three more features you didn’t know you needed. “Delete a document” sounds simple until you realize you need confirmations, state updates, Firestore actions, error handling, loading states, and a way to recover when things go wrong. The admin panel is finally starting to feel like a real dashboard instead of a collection of buttons. Still a lot left to build, but Synaptix is slowly becoming the platform I imagined when I first started sketching the idea. 📚 Share notes 👥 Join study groups 🪙 Earn coins 🛠️ Manage the entire platform Day 3 complete.Back to fighting TypeScript tomorrow. #buildinpublic #reactnative #typescript #firebase #expo #mobileapp #synaptix #100DaysOfCode"}, {"post_id": 12598, "ts": "2026-06-20T16:03:29Z", "hours": 0.8333, "text": "Synaptix Devlog – Day 2 🚀 Today I worked on the app/admin.tsx file and completed roughly 50% of it. Most of the session was focused on building the admin interface, organizing components, and refining the overall structure for future features. ✅ Progress:Continued development of the admin panel Implemented core UI sections Improved code organization and maintainabilityReached ~50% completion of admin.tsx The goal is to finish the remaining functionality tomorrow and start connecting the admin tools to the backend. Slow progress is still progress. Building Synaptix one commit at a time. 💻#buildinpublic #reactnative #expo #typescript #mobileapp #devlog #synaptix"}, {"post_id": 12565, "ts": "2026-06-20T14:56:10Z", "hours": 0.5447, "text": "DAY 1 (SYNAPTIX MOBILE APP) this is the mobile app which i have started working on. basically i have a complete picture of the app in my mind and just started to code. made the logo and other assets today and currently working on its foundation. About the App…………… Synaptix is a community-driven knowledge hub — upload your notes, download what others share, join study groups, and grow together. One app, all learners. What’s Inside (everything that i’ve thought of) Everything a student actually needs 📚Study LibraryReal-time feed of all public documents powered by Firestore live listeners. Filter by Notes, Books, or Papers. Search by title or subject. Bookmark anything for later — synced to the cloud. 💬Student Corner–Join or create subject-based study groups with real-time chat. Password-protect your group for private circles. Members get notified when new messages arrive. ⬆️Upload & Earn–Upload your notes, books, or research papers straight from your phone to Cloudinary’s CDN. Earn 3 coins per upload and 2 more every time someone gives you a 5-star rating. ⭐Star Ratings–Rate any document from 1–5 stars. Each user’s rating is stored individually in a Firestore subcollection — scores are honest and per-user, never gamed. 🔒Password-Protected Files–Lock files and groups with a password. All passwords are SHA-256 hashed with salt before storage — not even the developer can see them. Verification compares hashes, never plain text. 🧑💼Profile & Notifications–Edit your name, bio, and profile photo. Track your uploads, joined groups, and bookmarks — all stats refresh on screen focus so they’re always up to date. currently i am planning to use cludinary service for file storage and transfer because it is FREE. if you guys have any other suggestions or better alternatives please tell."}]...
|
Title: Synaptix by @Aniket | Stardance
Devlogs:
D Title: Synaptix by @Aniket | Stardance
Devlogs:
DAY 1 (SYNAPTIX MOBILE APP) this is the mobile app which i have started working on. basically i have a complete picture of the app in my mind and just started to code. made the logo and other assets today and currently working on its foundation. About the App…………… Synaptix is a community-driven knowledge hub — upload your notes, download what others share, join study groups, and grow together. One app, all learners. What’s Inside (everything that i’ve thought of) Everything a student actually needs 📚Study LibraryReal-time feed of all public documents powered by Firestore live listeners. Filter by Notes, Books, or Papers. Search by title or subject. Bookmark anything for later — synced to the cloud. 💬Student Corner–Join or create subject-based study groups with real-time chat. Password-protect your group for private circles. Members get notified when new messages arrive. ⬆️Upload & Earn–Upload your notes, books, or research papers straight from your phone to Cloudinary’s CDN. Earn 3 coins per upload and 2 more every time someone gives you a 5-star rating. ⭐Star Ratings–Rate any document from 1–5 stars. Each user’s rating is stored individually in a Firestore subcollection — scores are honest and per-user, never gamed. 🔒Password-Protected Files–Lock files and groups with a password. All passwords are SHA-256 hashed with salt before storage — not even the developer can see them. Verification compares hashes, never plain text. 🧑💼Profile & Notifications–Edit your name, bio, and profile photo. Track your uploads, joined groups, and bookmarks — all stats refresh on screen focus so they’re always up to date. currently i am planning to use cludinary service for file storage and transfer because it is FREE. if you guys have any other suggestions or better alternatives please tell.
Synaptix Devlog – Day 2 🚀 Today I worked on the app/admin.tsx file and completed roughly 50% of it. Most of the session was focused on building the admin interface, organizing components, and refining the overall structure for future features. ✅ Progress:Continued development of the admin panel Implemented core UI sections Improved code organization and maintainabilityReached ~50% completion of admin.tsx The goal is to finish the remaining functionality tomorrow and start connecting the admin tools to the backend. Slow progress is still progress. Building Synaptix one commit at a time. 💻#buildinpublic #reactnative #expo #typescript #mobileapp #devlog #synaptix
Synaptix Devlog — Day 3 🚀Spent another day deep inside app/admin.tsx and somehow turned what started as “just an admin page” into an entire control center for the app. Today’s work was mostly about wiring up the backend and making sure admins can actually manage the platform instead of just looking at stats. ✅ Added data loading for: Platform statistics Documents Users Study groups Workspaces Announcements App settings ✅ Added error handling and debugging alerts for failed Firestore requests ✅ Built admin access verification Loading state while permissions are checked Access denied screen for non-admin users UID display to make debugging easier Firestore/admin setup instructions directly in-app ✅ Implemented document moderation tools Delete documents Toggle document visibility Edit document metadata Save updates instantly ✅ Implemented user management tools Ban / Unban users Delete users Set custom coin balances Global coin airdrops to every user One thing I’m learning while building Synaptix is that every feature creates three more features you didn’t know you needed. “Delete a document” sounds simple until you realize you need confirmations, state updates, Firestore actions, error handling, loading states, and a way to recover when things go wrong. The admin panel is finally starting to feel like a real dashboard instead of a collection of buttons. Still a lot left to build, but Synaptix is slowly becoming the platform I imagined when I first started sketching the idea. 📚 Share notes 👥 Join study groups 🪙 Earn coins 🛠️ Manage the entire platform Day 3 complete.Back to fighting TypeScript tomorrow. #buildinpublic #reactnative #typescript #firebase #expo #mobileapp #synaptix #100DaysOfCode
🚀 Devlog #4 — With Great Power Comes Great Admin Privileges Today’s objective was simple: Build an Admin Panel that actually feels like the control room of Synaptix. After hours of React Native, TypeScript, and a few “why isn’t this state updating?” moments, the Admin Panel finally feels like a proper production-grade dashboard. 🎛️ Admin Dashboard Overhaul The admin experience got a complete redesign. Added: Live statistics dashboard 📊 Tab-based navigation 🗂️ Quick Action shortcuts ⚡ Maintenance Mode indicator 🔧 Pull-to-refresh support 🔄 Cleaner and more responsive UI ✨ The goal was simple: Every important admin action should be only a couple of taps away. 📄 Document Management Admins can now: Search documents instantly 🔍 Edit document details ✏️ Toggle Public / Private visibility 🌍 Delete documents 🗑️ Monitor downloads and uploads 📈 No more opening Firebase just to hide a PDF. 👥 User Management The moderation system received a huge upgrade. Admins can now: Search users 🔍 Modify coin balances 🪙 Ban / Unban users 🚫 Delete accounts 🗑️ View uploads and joined groups 📊 Safe to say… The Admin account is now the final boss. 💬 Workspace & Group Controls Community management is much easier now. Admins can manage: 🏢 Workspaces 👥 Groups Everything from one dashboard. No Firebase archaeology required. 📢 Announcement Center Probably my favorite feature from today’s session. Admins can now: Post announcements 📝 Pin important notices 📌 Delete outdated announcements 🗑️ Use visual badges for different announcement types 🏷️ Basically… The “Attention everyone!” button finally exists. 🎨 UI Polish Spent way more time than expected polishing the experience. Improvements include: Better spacing Cleaner cards Status badges Color-coded actions Improved layouts Smoother interactions Users might never consciously notice these details… But they’ll definitely feel them. 💭 Developer Thoughts Today wasn’t about flashy features. It was about building the invisible infrastructure that keeps everything manageable once hundreds (hopefully thousands 👀) of users start using Synaptix. Every button I added today is one less reason for Future Me to open Firebase at 2:00 AM . Future Me is very thankful. 📈 Progress Synaptix Admin Panel Progress ███████░░░░ 70% Synaptix is slowly transforming from “a project I built” into “a platform I genuinely want people to use.” And honestly… That’s a pretty awesome feeling. See you in Devlog #5 🚀
#Devlog 5 not gonna say a productive day but finally compleated with the admin panel and started working on in-app currency!!!
🚀 Devlog #6 — Coins, Coins Everywhere Today’s mission? Give Synaptix its own little economy. Because what’s a platform without a currency that makes your brain go “ooh shiny” every time the number goes up? 🪙 Welcome to the Coin Centre Built an entirely new Coin Centre where users can manage everything related to coins. Features include: 💰 Live coin balance 🎁 Daily bonus 📺 Rewarded Ads 💳 Coin Shop 📋 Transaction History ⚡ Clean tab navigation Basically… one place for all things shiny. 🎁 Daily Bonus Added a daily reward system. Users can now: Claim +5 coins every day Get blocked from claiming twice (nice try 😏) Come back tomorrow for another free reward Tiny feature. Massive dopamine. 📺 Rewarded Ads Integrated Rewarded AdMob Ads . Watch a short ad… Get free coins. No ads available? The app now explains what’s happening instead of staring awkwardly into your soul. 💳 Coin Shop Started building the future coin store. Added multiple packs: 🪙 Starter 💰 Popular 💎 Value 👑 Pro Payments aren’t live yet (Google Play wants its paperwork first 😒), but the entire flow is ready to go. 📋 Coin History Every coin now leaves a footprint. Users can see exactly where their coins came from and where they disappeared to. No more “Wait… where did my coins go?” 💭 Dev Thoughts Today wasn’t about adding another fancy screen. It was about making Synaptix feel more alive. Uploading notes, watching ads, collecting rewards… everything now feeds into a proper reward system. And honestly… Seeing my own app slowly turn into something that feels like a real product is a pretty cool feeling. 📈 Progress of Economy integration ██████░░░░ 50% Still a long road ahead... But every commit makes Synaptix feel a little less like "just another project" and a little more like something people might actually use every day. See you in **Devlog #7** 🚀
just added some firestore rules and finalized the build
Ships:
Project: StudyHub — Peer-to-Peer Study Material Sharing App StudyHub addresses a real and relatable problem — study material at the college level is scattered across WhatsApp groups, expiring Drive links, and random Telegram channels. The app brings everything into one searchable, community-driven library where students earn coins by uploading and spend them to download, which neatly solves the cold-start problem without relying on pure altruism. Effort is clearly demonstrated across 11 major versions, 7 EAS build attempts before a clean APK, 23 third-party dependencies audited and removed from a broken scaffold, and 8 critical bugs fixed in a single audit session. The entire journey — including what went wrong and exactly why — is documented honestly. Approximately 3,000 lines of TypeScript were written across screens, services, and contexts, with four AdMob ad unit types integrated and a full Firestore coin transaction audit trail implemented. Three meaningful Quality of Life improvements were made: Stats refresh accuracy — Home screen stats (uploads, groups joined, bookmarks) were fetched once on mount and went stale immediately after any user action. Replacing useEffect with useFocusEffect means counts re-fetch every time the screen comes into focus, so what the user sees always reflects what they just did. Member count race condition fixed — When two users tapped “Join Group” simultaneously, both reads returned the same count and one increment was silently lost. Wrapping joinGroup() and leaveGroup() in Firestore runTransaction() makes the read-modify-write atomic, so the count can never drift, go negative, or miss an update regardless of concurrency. Null-safe auth context eliminates the LoginScreen crash — The original build crashed in production with a TypeError at LoginScreen@1:2447207, traced via adb logcat to a web-only Firebase method (signInWithPopup) being called in a native Android context. The fix replaced it with the correct native Google Sign-In SDK and made login.tsx null-safe throughout — the context is read first, every value accessed with optional chaining, and each handler guards against null before calling — so the screen can never reach a render-time crash due to a timing issue at startup. All three improvements target reliability for real users, not cosmetic polish, which is exactly the right place to spend effort before a public release....
|
1793728286.8225584
|
1793814686.8225584
|
|
67117
|
A low power pocket calendar by @MJMorris | Stardan A low power pocket calendar by @MJMorris | Stardance...
|
MJMorris
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: A low power pocket calendar by @MJMorris | Title: A low power pocket calendar by @MJMorris | Stardance...
|
1793728288.03109
|
1794333088.03109
|
|
43749
|
Dice/number generator by @Iv4e12 | Stardance
|
Iv4e12
|
1
|
0.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-05T15:59:50Z", "hours": 0.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a bot for the slack app! It can generate random numbers, roll dice and flip coins!", "repo": "https://github.com/Iv4e12/slack-dice-bot", "demo": "https://hackclub.enterprise.slack.com/archives/C0A5RFXHXJN"}]...
|
[{"post_id": 40645, "ts": "202 [{"post_id": 40645, "ts": "2026-08-04T10:16:20Z", "hours": 0.35, "text": "I wrote the code, now I’m going to test it."}]...
|
Title: Dice/number generator by @Iv4e12 | Stardanc Title: Dice/number generator by @Iv4e12 | Stardance
Devlogs:
I wrote the code, now I’m going to test it.
Ships:
I made a bot for the slack app! It can generate random numbers, roll dice and flip coins!...
|
1793728288.9209495
|
1793814688.9209495
|
|
67118
|
Alarm Clock by @jovanovicv529 | Stardance
|
jovanovicv529
|
0
|
2.34
|
0
|
[]
|
[{"post_id": 76173, "ts": "202 [{"post_id": 76173, "ts": "2026-10-02T15:59:08Z", "hours": 1.455, "text": "Done with the case! Switched to fusion since I know it better"}, {"post_id": 75735, "ts": "2026-09-30T21:52:16Z", "hours": 0.8889, "text": "Done with the pcb for now, I’ll probably add some more components later. I know KiCAD a lot better since the last project."}]...
|
Title: Alarm Clock by @jovanovicv529 | Stardance
Title: Alarm Clock by @jovanovicv529 | Stardance
Devlogs:
Done with the pcb for now, I’ll probably add some more components later. I know KiCAD a lot better since the last project.
Done with the case! Switched to fusion since I know it better...
|
1793728290.0694945
|
1794333090.0694945
|
|
27153
|
click lense by @nishank | Stardance
|
nishank
|
1
|
43.67
|
325
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-19T02:08:38Z", "hours": 43.0, "multiplier": 11.21, "payout": 325, "blessing": "neutral", "text": "A modern, full-featured URL shortener & analytics platform with password-protected links, expiration dates, custom aliases, QR code generation, and rich click metrics. Built with Next.js 16", "repo": "https://github.com/Devnish0/click-lense", "demo": "https://clicklense.vercel.app/"}]...
|
[{"post_id": 36229, "ts": "202 [{"post_id": 36229, "ts": "2026-07-28T05:22:01Z", "hours": 0.6656, "text": "changed the readme.md"}, {"post_id": 30777, "ts": "2026-07-18T17:25:43Z", "hours": 23.8922, "text": "completed and in production right now check it out now"}, {"post_id": 26142, "ts": "2026-07-10T19:24:50Z", "hours": 6.1253, "text": "built the main dashboard ui"}, {"post_id": 24832, "ts": "2026-07-08T17:23:56Z", "hours": 3.3294, "text": "built the landing page for the clause app"}, {"post_id": 17058, "ts": "2026-06-27T18:13:55Z", "hours": 9.5158, "text": "completed basic 0 auth login , redirection logic, max attempt, time based attempt, disabled attempt etc."}]...
|
Title: click lense by @nishank | Stardance
Devlog Title: click lense by @nishank | Stardance
Devlogs:
completed basic 0 auth login , redirection logic, max attempt, time based attempt, disabled attempt etc.
built the landing page for the clause app
built the main dashboard ui
completed and in production right now check it out now
changed the readme.md
Ships:
A modern, full-featured URL shortener & analytics platform with password-protected links, expiration dates, custom aliases, QR code generation, and rich click metrics. Built with Next.js 16...
|
1793728291.0054376
|
1793814691.0054376
|
|
38941
|
Alien Arena (3d FPS) by @ar-bh | Stardance
|
ar-bh
|
2
|
52.0
|
679
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-26T21:08:23Z", "hours": 3.0, "multiplier": 11.59, "payout": 30, "blessing": "neutral", "text": "Alien FPS! 👽🔫 — Ship #2 an exploration alien shooter made in Godot by arjun bhumula! this is my 2nd ship for Stardance. still my first 3D project and i’m proud of it — after Ship #1 i actually listened to the feedback and fixed a bunch of stuff. What I changed from feedback made it run better on weaker computers enemies don’t spawn on top of trees/objects anymore eye monsters now show up in the plains too cleaned up some gameplay / UX issues people pointed out The game arena shooter — axe + pistol, enemies spawn across different biomes. scoring eye monster 👁️ — 200 (400 with axe) snowman (creeper-like) — 250 (500 with axe) enemies get stronger the longer you survive. die at 0 HP or by falling off the map. have fun! AI disclosure ⚠️ NO AI WAS USED FOR CODE. I only used AI to help me learn Blender + Godot since this is my first time doing that. Please give me a good review so I can get an xbox, THANK YOU SO MUCH EVERYBODY", "repo": "https://github.com/ar-bh/alien-fps", "demo": "https://arjun-bhumula.itch.io/alien-fps"}, {"ship_num": 2, "ts": "2026-08-14T17:51:43Z", "hours": 49.0, "multiplier": 13.27, "payout": 649, "blessing": "neutral", "text": "Alien FPS! 👽 🔫 an exploration alien shooter game made in Godot by arjun bhumula! this is my first ever 3d project, and I’m very proud of it! Alien FPS is kind of like an arena shooter (ig) where you are given an axe and a pistol and you have to fend for yourself. In the biomes surrounding you, enemies are spawning everywhere: (the following is from the readme) The enemies include: eye monster 👁️ : 200 points, but 400 if you use your axe to kill it snowman (creeper like minecraft: 250 points, but 500 if you use your axe to kill it Enemies keep getting stronger as your score builds up, so be careful! You can either die by getting your health down to 0 or falling off the map somehow Have fun! AI DISCLOSURE! ⚠️ NO AI IS USED FOR CODE! However, I used AI to walk me through the process of using Blender and Godot together because this this is my first time doing that. Please give me a good review so I can get an xbox, THANK YOU SO MUCH EVERYBODY", "repo": "https://github.com/ar-bh/alien-fps", "demo": "https://arjun-bhumula.itch.io/alien-fps"}]...
|
[{"post_id": 53074, "ts": "202 [{"post_id": 53074, "ts": "2026-08-23T14:10:30Z", "hours": 0.5214, "text": "I reviewed everyone’s previous ship feedback and made a few changes! ready to re-ship, wish me luck!"}, {"post_id": 50960, "ts": "2026-08-20T13:01:39Z", "hours": 2.0472, "text": "hi everyone! before you rate, let me just clarify about a few things before you rate my project the game takes a little time to load, so please be patient 🙏 look at the devlogs while you wait! i’m on mac so I haven’t tested the windows download, try to play in-browser i’m pretty sure it’s fixed but sometimes pressing W can move backwards and S moves forward. this is because you may have accidentally breached the limit on looking up and down. if this happens, slowly keep looking up or down (both work) until its fixed happy shipping!"}, {"post_id": 47047, "ts": "2026-08-14T17:24:42Z", "hours": 1.4333, "text": "pre-devlog ship! please give me a good review guys 🙏 get playing! just updated: Changelog added a score axe sound tried to fix enemy shooting, not sure if I really did though menu and death screen bigger map that has slightly random generation enemies get bigger and stronger as score gets up and you survive for longer Next steps: ship! Notes: please give me a good score!"}, {"post_id": 46648, "ts": "2026-08-14T01:48:58Z", "hours": 0.8333, "text": "demo finally out! press to play give me feedback!!! i’ve already gotten reports that the game gets very laggy when you look at the trees (its because of complex shaders that are post-processing), will fix soon"}, {"post_id": 46543, "ts": "2026-08-13T20:56:12Z", "hours": 1.9333, "text": "added creepers to my fps Changelog imported the snowman monster model (only idle and walk animation so I had to manage) make the snowman go towards the player gave the snowman the same mechanics as a minecraft creeper Next steps more mobs more guns Notes my last devlog flopped why"}, {"post_id": 46028, "ts": "2026-08-12T22:54:36Z", "hours": 7.8339, "text": "if you’re reading this, reposting liking and comment help a lot and I really want this project to get out there, bc I’m working reallly hard on it so smash those like and follow buttons thanks also my BIGGEST devlog yet, press read more! 🙏 (added guns 🔫🔫) actual devlog below TONS OF NEW CHANGES! 🔫 Changelog (there’s so many, I couldn’t do it by memory and had to go to git history added collision shapes to the environments! this includes the trees, the rocks, the glaciers, cacti, etc. not sure if I included this in the last devlog but WIP winter field biome exported player speed (probably also in the last) INVENTORY!!! so far it has the axe, the pistol, and the rest is empty but I successfully built it so it is very easy to add to and implement into the game a whole pistol 🔫🔫🔫🔫🔫 took a while (mostly the reason why this devlog is so long) it took SO LONG to get the blender model working because: very unfortunate news The person who I was getting ALL of my models from on sketchfab, @levraicoincoin DELETED their sketchfab account no idea why, crazy coincidence that it happpened the day after I published using their models. So it took so long to find someone else’s models (thank you new person who I dont want to delete their models 🙏). and this new person’s models are very different and it took me a very long time to get adjusted to this and figure out how to use it. @levraicoincoin was so simple, this one is not. all of the animations were packed into one action, and I did not know about Godot’s slice (wtv its called) feature, so I was trying to import them seperately through blender. huge fail, but finally figured it out so I guess it’s a success 👑 and another plus is that this person does have more models that are similar, and I’ve figured out how to use them so it won’t be that big of a struggle next time anyway back to changelog sucessfully got the pistol’s animations working added an AudioBus that has signals of things like axe swung and shot fired added a GameAudio node that uses the signals from AudioBus and plays a sound made the pistol sound this part was super tedious made it so the player’s arms were unshaded (took so long and had to use my broken UnshadedLayer node from earlier, HUGE pain removed the outline of everything I guess that’s about it (probably a bit more that I’m forgetting but it’s fine, this devlog is huge) Next steps (hopefully not as long) more weapons! will not take nearly as much time I hope 🙏 add more enemies fix some gun bugs because I don’t think it’s working that well when moving right now find the best spot for health and inventory, probably bottom left corner get an audio for the axe get background music, meaning probably make a start and death menu vehicle Notes if you really read everything, I appreciate it a LOT. all of my work related to this devlog took SO MUCH time, but I’ve gotten a lot of support. super grateful probably best news so far, @tejaswa got unbanned after mistakenly being banned for fraud! 🎉 he inspired this project a lot, so I’m really happy for him, his project, and grateful for the support he gave me that’s all, thanks! reposting liking and comment help a lot!"}, {"post_id": 45314, "ts": "2026-08-11T18:02:27Z", "hours": 1.2333, "text": "added health bar Changelog health bar created a unshadedlayer node using subviewports where if you add a child to it, that child will be unaffected by shading like cel shading and pixel art (it doesn’t work that well yet, i’ll have to improve it) changed player health to 5 Next steps make something happen when you die which will probably involve creating a menu inventory improve the shading system Notes ignore the roblox thing"}, {"post_id": 44876, "ts": "2026-08-10T22:22:10Z", "hours": 1.7669, "text": "blending and more environment stuff Changelog made the player speed exportable (I did this so I could travel over a ton of chunks faster when debugging to see how it looks like on runtime) created a blendchunk node created a giantblendchunk node which is just 3 blendchunk s the blendchunk s properly detect any chunks near them and change their texture using a shader to make it look like a seamless transition (although I’ll admit that it could use some work because the cel shading makes it pretty weird) changing the files made the github weird so I had to create a new local repo and fix all of the problems that showed up Next Steps maybe add a car because player on its own is too small? lots of people said to add foliage and more immersive environments by adding falling things and stuff automatic enemy spawning make the worldenvironment color change in a blendchunk rather than having to actually go to the solid one Notes really hope I get an xbox so if you see this, please repost like comment whatever so this project is seen more, and also if your rating give me a perfect score! 🙏"}, {"post_id": 44749, "ts": "2026-08-10T18:34:12Z", "hours": 0.6003, "text": "lazy devlog: changed my file directory idk why it took so long but I can’t track it all"}, {"post_id": 44657, "ts": "2026-08-10T15:57:21Z", "hours": 2.065, "text": "improved enemy finite state machine + environment Changelog made it so the eye monster explores and moves around the chunk, waits a second before choosing a new target destination on the chunk automatically changes albedo color depending on the chunk it was spawned in, so if it was spawned in glacier, it adopts a dark blue tone fields biome with a tree and actual grass rather than a carpet-like texture idk if I mentioned in the last devlog so I’ll just generalize and say a lot more Next steps make environments less blocky and go smoothly into each other foliage and more immersive environments, reccomended by @tejaswa and a few others more enemies secondary axe attack new weapons Notes: it pmo to see how people will just completely ai literally EVERYTHING and still think they can get stardust for it. like literally everything, the code, the idea, the devlogs for some reason, and the readme. how lazy can you be? i know exactly who this is directed towards"}, {"post_id": 44076, "ts": "2026-08-09T16:26:55Z", "hours": 1.1667, "text": "lots of environment changes! (clean switching + new desert biome! 🏜️) – Changelog added ways for the player to detect which chunk and biome it is on main (root) node script that runs these player functions and also pulls the biome information added an environment color variable to the biome data resources, and added appopriate colors for each biome root node uses tweens to make the environment color correct upon switching biomes desert biome! (just a cactus) added two new contents to the wastelands temporarily made the eye monster blue to look native to glacier biome Next steps edit eye monster fsm add variants to the eye monster (my only enemy right now) that are native to each biomes by changing albedo color like the temporary change I just did make chunks spawn enemies automatically like minecraft use hdr to make a better sky and environment in general Notes i think it’s really coming together now, and this project now has the highest amount of hours so I guess that’s nice i like the minion thing"}, {"post_id": 43691, "ts": "2026-08-09T03:08:11Z", "hours": 1.6886, "text": "if you’re reading this, reposting liking and comment help a lot and I really want this project to get out there, bc I’m working reallly hard on it so smash those like and follow buttons thanks actual devlog below biomes using resources (finally made proper environments ) Changelog first, I used a dictionary that would have all the information about each biome, like name, ground texture, things that are available to spawn, amount of things that can spawn, and size variation of things that can spawn after it was getting efficient (i was plan on changing the method regardless), I used resources made a chunk node which is 50x50 and takes a biome variable, so I can just import biome resources into it and it automatically gets updated 👏 created biome_data.gd and made it extend resources made wasteland_biome.tres and ’glacier_biome.tres`, both resources with all the information above and all I have to do is attach it to a chunk made the contents spawn in random locations in the chunk with varying amounts, varying types (for example there are 2 kinds of dead trees in the wasteland so each one is a random type), and varying sizes Next steps make enemies native to certain biomes where they spawn automatically in their biome make biomes go smoothly into each other, maybe using a river in between add more wasteland enemies more content variation for wasteland and glacier edit the eye monster fsm so it walks around when it doesnt see the player something else that i forgot Notes Remember how a while ago I said I hate resources, well now they’re my favorite thing, they’re really useful and in this context, a giant lifesaver. the 3rd video shows how easy I made the process using resources. great progress so far, i think I can really get an xbox soon"}, {"post_id": 43599, "ts": "2026-08-08T23:11:36Z", "hours": 1.85, "text": "tell me what you think about the new cel shading! 👍 FPS + environment (pre-alpha) Changelog added a small FPS counter in the top left that would not get affected by the shaders by putting it in its own canvaslayer made the fps cap 60 made the world environment have a orange theme, trying to mimic a volcano after-effect or something like that got “alien planet” textures from the internet (i will credit in my readme) added a chunk scene which is the ground that the player stands on in the video, it has customizable size texture, and albedo av1 scale and the transformations adjust to make the top layer flat on the plane using a little bit of math adjusted the cel shading to make outlines bigger, not exaggerate dark colors, and get rid of foreign unrelated colors Next steps edit the eye monster enemy fsn so instead of staying in one place while idle, it moves around and kind of explores for each chunk, randomly place 3-5 items along it like burnt trees or rocks for this volcano-like theme, those items will be different in different biomes make chunks load when necessary and be able to load different biomes, probably split by a river or something health tracker inventory + new weapons Notes nothing much except I think I need some feedback on the new cel shading and environment. does it look good?"}, {"post_id": 43016, "ts": "2026-08-08T01:36:25Z", "hours": 0.7339, "text": "upcoming boss hopefully just 45m of playing around and seeing what a giant boss would look like. if you don’t understand the image, the blue platform is a large version of where the player fights the regular enemies so imagine the scale"}, {"post_id": 42883, "ts": "2026-08-07T20:44:39Z", "hours": 1.9947, "text": "Thank you so much for the support everyone! I got the most likes, views, comments, and overall support in my last devlog (and in this project as a whole) then ever before! 🙏 super thankful, but still, I hope you keep it coming! like and follow (actual devlog below ) actual devlog below a lot of enemy progress! Changelog set up the enemy finite state machine: enemies can walk towards the player (or run) enemies can attack the player hit state overrides everything so an enemy can be hit in the middle of attacking and the player will not recieve damage don’t know how to do proper nested bullet points so bear with me blended all enemy animations together so they flow properly added health tracking to the player added health tracking to the eye monster enemy game quits upon player death (temporary death) Next steps add the world, procedurally or randomly generated alien planet terrain add more animation-depth to the axe maybe? Notes to be honest right now, I don’t really know what the next steps are but my progress skyrocketed in the past few days so I think I’m gonna take a break. thanks for the support!"}, {"post_id": 42649, "ts": "2026-08-07T14:19:51Z", "hours": 1.2575, "text": "if you’re reading this, reposting liking and comment help a lot and I really want this project to get out there, bc I’m working reallly hard on it so smash those like and follow buttons thanks actual devlog below Successfully added more and blended axe animations hooray (probably pre-alpha) Changelog added trauma based screenshake upon hitting an enemy. it is easy to change the intensity of the trauma based on which enemy is hit added jump start, falling, and jump end animations blended all animations together (blending means that animations will not be snappy and flow properly into each other for realism) made the godot run scene thing always open in full screen which is how I want the game to be played Next steps again nearly everything in last 2 devlogs mostly for now just enemy fsms and AI – Notes: Again, still pretty proud of my progress, lots of people showed interest so that’s nice."}, {"post_id": 42397, "ts": "2026-08-07T02:46:26Z", "hours": 1.9917, "text": "Added eye monster enemies (pre-alpha still don’t know) Changelog changed a platfrom from green to purple i guess, not permanent added three enemies that spawn on the temporary platforms. the three enemies are of random size and health with a bit more conditions that I’m not gonna explain. so far, you are able to hit them and they have idle, die, and corpse animations but right now all they do is stare at you and get beat up Next steps add a map basically everything in the last devlog learn about fsn (finite state machines, the most popular way to code enemy AIs) implement fsns Notes surprised I finished whole enemies in around 2 hours, thought it would be longer for my first ever 3d enemy. planning to add a super big boss that uses the same model which you need a gun to kill because whats an axe gonna do against it. really proud of my progress so far"}, {"post_id": 42272, "ts": "2026-08-06T22:04:24Z", "hours": 1.7728, "text": "First weapon + shaders (still pre-alpha?) Changelog before I was using a third person controller but I updated it so the main files were first person instead of the “test” files like before got blender axe model with imported animations from sketchfab (levraicoincoin) i’m going to use most of my fps models from him and I am very grateful for him so yeah imported axe from blender to godot (thank you levraicoincoin for the process to be so easy) added a cel shader theme added a retro (pixelated) theme the hands looked really weird with the cel shader theme so I overrode the material for a solid color which I think looks pretty good also I guess changed the game idea once again to an unknown planet exploration game, and I guess only 3d now not 2.5d small thing but changed the map layout to rid of overlap of csg’s Next steps add more weapons! add enemies add a boss add a start screen, inspired by @tejaswa (got banned for some reason)’s Into the cosmos game which I really liked Notes: I really want feedback on how this looks so tell me what you think. there’s not really as much notes as last time except I’m really proud of how the game turned out right now."}, {"post_id": 41647, "ts": "2026-08-06T00:26:17Z", "hours": 2.8422, "text": "FPS Setup (pre-alpha version i guess idkbro) Changelog (i saw someone else doing this so I’m going to do it now) I made a test scene and dedicated nodes to make an FPS controller instead of a third person controller uh did some research for fsm (finite state machines) which I’m gonna need probably oh yeah I also did a ton of reconsideration for my project to change the theme so ultimately I think I’m going for a space themed FPS shooter where the character has to escape an alien prison and they can either take a rocket ship back home or probably stay and explore Next steps i want the game to be 2.5D so I’m gonna need to draw gun assets that are gonna be 2d (shouldn’t be too hard) 2.5D alien assets gun combat and gun variety eventually a bit more but I’ll think about that in future devlogs Notes so this section has a lot. I’m gonna change the way I write devlogs because it’s cooler this way and also more professoinal so I’ll do better in the storytelling part of the ship. I went through a ton of like thinking and game ideas until I finally found one, and that process took so long I have no idea why. I went to a different state so I couldn’t work much then and I also watched bnd which was nice. so yeah I think I’m a lot more excited about the game now, why are emoticons no longer supported? :spiderman: see so yeah dont forget to comment and smash that like button"}, {"post_id": 37972, "ts": "2026-07-31T01:30:45Z", "hours": 0.6308, "text": "bruh a lot of reconsideration made me not want to take the route of my current game so far and go with a new one I know what I need to in order to build some version of a 3d game so after I polish my skills better, I get started on that. hopefully an fps"}, {"post_id": 37757, "ts": "2026-07-30T17:48:45Z", "hours": 3.7817, "text": "Fetched animations from blender and sucessfully got them into godot! This is day 10 somehow and for this devlog, I definiteily got a ton of progress. I stayed up until midnight trying to figure out how to get blender animations into Godot and I finally figured it out today morning. The reason it took so long is because the materials were not exporting properly and there was also a lot of small suff I had to fix like getting rid of blender’s unnecessary default animations and also managing the size of the item. I had to make tee animation twice because it was corrupted by size and positioning in the first one. I also made this model like a year ago and not knowing where all the files were in my computer did not help 🤦 But at the end I guess I finally did it There is still a lot left to do like Just making it look better in general figuring out why the head is always the same color as the environment adding character select (going to be a huge pain to add new characters) outline to make it look visually appealing idk blend the animations also make the running jump and falling animations I have a lot of work set out for me so please smash that like button and also just follow while you’re here thanks"}, {"post_id": 37389, "ts": "2026-07-30T02:19:23Z", "hours": 1.3969, "text": "Day 9! (part 4) Made a walking animation! Used Blender to make a nice walking animation! And I did some coding which is why there is a lot more time logged. What really took the longest was getting EpicFigRig to work because it does not work for the current Blender model and it took me a while to figure that out and go to an old version. Will try to implement it in the game next, do not know how that will work out with epicfigrig"}, {"post_id": 37278, "ts": "2026-07-29T21:25:13Z", "hours": 1.5611, "text": "Day 9 (part 3)! In this larger session, I made a working character using capsules and capsule shaped hurtboxes which can move around, look around, and jump. I used filler boxes and basically filler everything becasue I haven’t imported my models to blender yet. Don’t forget to smash that like button and subscribe"}, {"post_id": 37169, "ts": "2026-07-29T17:53:06Z", "hours": 0.3017, "text": "Day 9 (part 2): made my platform, that’s all character next!"}, {"post_id": 37013, "ts": "2026-07-29T14:07:08Z", "hours": 0.2611, "text": "Day 9! just got more practice as usual"}, {"post_id": 36703, "ts": "2026-07-28T22:37:26Z", "hours": 0.7933, "text": "Day 8 (i missed yesterday because I went somewhere)"}, {"post_id": 35437, "ts": "2026-07-26T20:55:26Z", "hours": 1.3453, "text": "Day 7 part 2 ! This time I got another hour of work. I worked on projectiles in my game. I’m not gonna attach a video though because it’s going to mess up my storytelling score upon ship for having irrelevant devlogs (cuz people will not put the time and effort to actually grade stuff. I did decide on a potential theme though. I have tons of experience with lego animation and legos also don’t have many bones that I have to take care of, so I can easily animate them for my game. The main restriction I have anyway is the models like creation and animation and using lego can make all of that easier you can see some of my work Link youtube channel the image is some of my work from last summer"}, {"post_id": 35294, "ts": "2026-07-26T16:36:09Z", "hours": 1.3189, "text": "Day 7! One week of development! 🎉 I am so happy to have rerolled + 5. what a great day I got a lot of practice and progress towards a prototype of a 3D game today, but still not the one that I want to be the most relevant to this project. I learend a lot about how to make cameras work in 3D by converting 2d coordinates into 3D. this also taught me how to use Input.get_vector() which returns a Vector2D and convert it into a Vector3D I guess I also learned how to use markdown better 🤷 To be honest I still haven’t decided what kind of 3D game I want to make but I know I’m putting a lot of hours into it (because I want an xbox ) I’m thinking most likely an FPS but there are tons of those and it wont be creative. I could also do a arena shooter or fighter using the Gobot open source 3d model, which I’ve already been implementing in my game right now. That’s it I think I have lots of motivation so this project will definitely have passion. Gdquest is the best"}, {"post_id": 34949, "ts": "2026-07-26T02:10:51Z", "hours": 0.2869, "text": "Day 6 (part 2) Just doing a little more because I am testing stardance’s time tracker and it’s behaving very weirdly when I add new projects. also for some reason they aren’t counting my streak when it CLEARLY says 16 minutes logged today for this devlogs. Fix your website stardance devs"}, {"post_id": 34934, "ts": "2026-07-26T01:34:22Z", "hours": 0.2594, "text": "Day 6! I got a lot of work done today! I know it only says 15 minutes, but it was because I was experimenting and figuring out how to use something 3d on a different file, and I forgot to turn on the time tracking for a large majority of it. I’m really excited to move on now that I finished this step. Also, regarding the thing I said would be hard yesterday, it was too difficult for me to do, so I set it aside for now. I will get back to it when I think I am ready. I found out that stardance only lets you make new lines on google chrome but not safari? it’s really weird so I had to switch browsers for this"}, {"post_id": 34379, "ts": "2026-07-25T01:28:25Z", "hours": 0.3656, "text": "Day 5 (part 2) I hate resources, they are so annoying to use but I have to learn how if I want to build my game why does stardance keep messing up their text editors, I can’t even make a new line"}, {"post_id": 34352, "ts": "2026-07-24T23:35:54Z", "hours": 0.4039, "text": "Day 5! I wasn’t able to get a lot of progress in today because I had other work to do. I’m kind of curious/afraid what will happen tomorrow because my learning plan has something very difficult which I really want to get over with so I can move on to the more fun parts. WHY DOES STARDANCE NOT LET YOU DO SHIFT + ENTER ANYMORE TO MAKE A NEW LINE?? the image is here because I’m a big fan of the outlines in the art style so when the game is being created, you will definitely see them"}, {"post_id": 33806, "ts": "2026-07-24T01:25:37Z", "hours": 3.2047, "text": "Hello! 👋 This devlog marks the start of my 3d game. I still have no idea what it is yet unfortunately but all I know is that this is going to be my first three dimensional game, and I think it is going to be a lot of fun to build. I’m using Godot! I don’t even know the version I think it’s like 4.6 or something So you’re wondering why I have 3+ hours logged already Well I don’t have the actual game built yet but I’ve been spending these 3 hours just learning what I need to know to get started. I only have experience with 2D so far so all of these tutorials and documents that I’m reading and watching will help me get some practice and knowledge or whatever I need for a successful game. What do I want my game to be like? I don’t know at all. :/ probably a gun game but there are so many like that so I want to have some unique mechanic movement-wise I’m excited to build controller support- especially in 3D I feel like that’s what really defines a game and triggers the pride in me that I actually build a real game What do I want for the future? I really hope this project turns into a long-term one that I can always just work on on the side. I want to publish to steam and make money 💰💰💰 I’m bored of writing now so here are some pictures of my practices (unrelated to the relevant 3d game of this project) (i’m writing super long devlogs so I can get a good storytelling score because I really want an xbox)"}]...
|
Title: Alien Arena (3d FPS) by @ar-bh | Stardance
Title: Alien Arena (3d FPS) by @ar-bh | Stardance
Devlogs:
Hello! 👋 This devlog marks the start of my 3d game. I still have no idea what it is yet unfortunately but all I know is that this is going to be my first three dimensional game, and I think it is going to be a lot of fun to build. I’m using Godot! I don’t even know the version I think it’s like 4.6 or something So you’re wondering why I have 3+ hours logged already Well I don’t have the actual game built yet but I’ve been spending these 3 hours just learning what I need to know to get started. I only have experience with 2D so far so all of these tutorials and documents that I’m reading and watching will help me get some practice and knowledge or whatever I need for a successful game. What do I want my game to be like? I don’t know at all. :/ probably a gun game but there are so many like that so I want to have some unique mechanic movement-wise I’m excited to build controller support- especially in 3D I feel like that’s what really defines a game and triggers the pride in me that I actually build a real game What do I want for the future? I really hope this project turns into a long-term one that I can always just work on on the side. I want to publish to steam and make money 💰💰💰 I’m bored of writing now so here are some pictures of my practices (unrelated to the relevant 3d game of this project) (i’m writing super long devlogs so I can get a good storytelling score because I really want an xbox)
Day 5! I wasn’t able to get a lot of progress in today because I had other work to do. I’m kind of curious/afraid what will happen tomorrow because my learning plan has something very difficult which I really want to get over with so I can move on to the more fun parts. WHY DOES STARDANCE NOT LET YOU DO SHIFT + ENTER ANYMORE TO MAKE A NEW LINE?? the image is here because I’m a big fan of the outlines in the art style so when the game is being created, you will definitely see them
Day 5 (part 2) I hate resources, they are so annoying to use but I have to learn how if I want to build my game why does stardance keep messing up their text editors, I can’t even make a new line
Day 6! I got a lot of work done today! I know it only says 15 minutes, but it was because I was experimenting and figuring out how to use something 3d on a different file, and I forgot to turn on the time tracking for a large majority of it. I’m really excited to move on now that I finished this step. Also, regarding the thing I said would be hard yesterday, it was too difficult for me to do, so I set it aside for now. I will get back to it when I think I am ready. I found out that stardance only lets you make new lines on google chrome but not safari? it’s really weird so I had to switch browsers for this
Day 6 (part 2) Just doing a little more because I am testing stardance’s time tracker and it’s behaving very weirdly when I add new projects. also for some reason they aren’t counting my streak when it CLEARLY says 16 minutes logged today for this devlogs. Fix your website stardance devs
Day 7! One week of development! 🎉 I am so happy to have rerolled + 5. what a great day I got a lot of practice and progress towards a prototype of a 3D game today, but still not the one that I want to be the most relevant to this project. I learend a lot about how to make cameras work in 3D by converting 2d coordinates into 3D. this also taught me how to use Input.get_vector() which returns a Vector2D and convert it into a Vector3D I guess I also learned how to use markdown better 🤷 To be honest I still haven’t decided what kind of 3D game I want to make but I know I’m putting a lot of hours into it (because I want an xbox ) I’m thinking most likely an FPS but there are tons of those and it wont be creative. I could also do a arena shooter or fighter using the Gobot open source 3d model, which I’ve already been implementing in my game right now. That’s it I think I have lots of motivation so this project will definitely have passion. Gdquest is the best
Day 7 part 2 ! This time I got another hour of work. I worked on projectiles in my game. I’m not gonna attach a video though because it’s going to mess up my storytelling score upon ship for having irrelevant devlogs (cuz people will not put the time and effort to actually grade stuff. I did decide on a potential theme though. I have tons of experience with lego animation and legos also don’t have many bones that I have to take care of, so I can easily animate them for my game. The main restriction I have anyway is the models like creation and animation and using lego can make all of that easier you can see some of my work Link youtube channel the image is some of my work from last summer
Day 8 (i missed yesterday because I went somewhere)
Day 9! just got more practice as usual
Day 9 (part 2): made my platform, that’s all character next!
Day 9 (part 3)! In this larger session, I made a working character using capsules and capsule shaped hurtboxes which can move around, look around, and jump. I used filler boxes and basically filler everything becasue I haven’t imported my models to blender yet. Don’t forget to smash that like button and subscribe
Day 9! (part 4) Made a walking animation! Used Blender to make a nice walking animation! And I did some coding which is why there is a lot more time logged. What really took the longest was getting EpicFigRig to work because it does not work for the current Blender model and it took me a while to figure that out and go to an old version. Will try to implement it in the game next, do not know how that will work out with epicfigrig
Fetched animations from blender and sucessfully got them into godot! This is day 10 somehow and for this devlog, I definiteily got a ton of progress. I stayed up until midnight trying to figure out how to get blender animations into Godot and I finally figured it out today morning. The reason it took so long is because the materials were not exporting properly and there was also a lot of small suff I had to fix like getting rid of blender’s unnecessary default animations and also managing the size of the item. I had to make tee animation twice because it was corrupted by size and positioning in the first one. I also made this model like a year ago and not knowing where all the files were in my computer did not help 🤦 But at the end I guess I finally did it There is still a lot left to do like Just making it look better in general figuring out why the head is always the same color as the environment adding character select (going to be a huge pain to add new characters) outline to make it look visually appealing idk blend the animations also make the running jump and falling animations I have a lot of work set out for me so please smash that like button and also just follow while you’re here thanks
bruh a lot of reconsideration made me not want to take the route of my current game so far and go with a new one I know what I need to in order to build some version of a 3d game so after I polish my skills better, I get started on that. hopefully an fps
FPS Setup (pre-alpha version i guess idkbro) Changelog (i saw someone else doing this so I’m going to do it now) I made a test scene and dedicated nodes to make an FPS controller instead of a third person controller uh did some research for fsm (finite state machines) which I’m gonna need probably oh yeah I also did a ton of reconsideration for my project to change the theme so ultimately I think I’m going for a space themed FPS shooter where the character has to escape an alien prison and they can either take a rocket ship back home or probably stay and explore Next steps i want the game to be 2.5D so I’m gonna need to draw gun assets that are gonna be 2d (shouldn’t be too hard) 2.5D alien assets gun combat and gun variety eventually a bit more but I’ll think about that in future devlogs Notes so this section has a lot. I’m gonna change the way I write devlogs because it’s cooler this way and also more professoinal so I’ll do better in the storytelling part of the ship. I went through a ton of like thinking and game ideas until I finally found one, and that process took so long I have no idea why. I went to a different state so I couldn’t work much then and I also watched bnd which was nice. so yeah I think I’m a lot more excited about the game now, why are emoticons no longer supported? :spiderman: see so yeah dont forget to comment and smash that like button
First weapon + shaders (still pre-alpha?) Changelog before I was using a third person controller but I updated it so the main files were first person instead of the “test” files like before got blender axe model with imported animations from sketchfab (levraicoincoin) i’m going to use most of my fps models from him and I am very grateful for him so yeah imported axe from blender to godot (thank you levraicoincoin for the process to be so easy) added a cel shader theme added a retro (pixelated) theme the hands looked really weird with the cel shader theme so I overrode the material for a solid color which I think looks pretty good also I guess changed the game idea once again to an unknown planet exploration game, and I guess only 3d now not 2.5d small thing but changed the map layout to rid of overlap of csg’s Next steps add more weapons! add enemies add a boss add a start screen, inspired by @tejaswa (got banned for some reason)’s Into the cosmos game which I really liked Notes: I really want feedback on how this looks so tell me what you think. there’s not really as much notes as last time except I’m really proud of how the game turned out right now.
Added eye monster enemies (pre-alpha still don’t know) Changelog changed a platfrom from green to purple i guess, not permanent added three enemies that spawn on the temporary platforms. the three enemies are of random size and health with a bit more conditions that I’m not gonna explain. so far, you are able to hit them and they have idle, die, and corpse animations but right now all they do is stare at you and get beat up Next steps add a map basically everything in the last devlog learn about fsn (finite state machines, the most popular way to code enemy AIs) implement fsns Notes surprised I finished whole enemies in around 2 hours, thought it would be longer for my first ever 3d enemy. planning to add a super big boss that uses the same model which you need a gun to kill because whats an axe gonna do against it. really proud of my progress so far
if you’re reading this, reposting liking and comment help a lot and I really want this project to get out there, bc I’m working reallly hard on it so smash those like and follow buttons thanks actual devlog below Successfully added more and blended axe animations hooray (probably pre-alpha) Changelog added trauma based screenshake upon hitting an enemy. it is easy to change the intensity of the trauma based on which enemy is hit added jump start, falling, and jump end animations blended all animations together (blending means that animations will not be snappy and flow properly into each other for realism) made the godot run scene thing always open in full screen which is how I want the game to be played Next steps again nearly everything in last 2 devlogs mostly for now just enemy fsms and AI – Notes: Again, still pretty proud of my progress, lots of people showed interest so that’s nice.
Thank you so much for the support everyone! I got the most likes, views, comments, and overall support in my last devlog (and in this project as a whole) then ever before! 🙏 super thankful, but still, I hope you keep it coming! like and follow (actual devlog below ) actual devlog below a lot of enemy progress! Changelog set up the enemy finite state machine: enemies can walk towards the player (or run) enemies can attack the player hit state overrides everything so an enemy can be hit in the middle of attacking and the player will not recieve damage don’t know how to do proper nested bullet points so bear with me blended all enemy animations together so they flow properly added health tracking to the player added health tracking to the eye monster enemy game quits upon player death (temporary death) Next steps add the world, procedurally or randomly generated alien planet terrain add more animation-depth to the axe maybe? Notes to be honest right now, I don’t really know what the next steps are but my progress skyrocketed in the past few days so I think I’m gonna take a break. thanks for the support!
upcoming boss hopefully just 45m of playing around and seeing what a giant boss would look like. if you don’t understand the image, the blue platform is a large version of where the player fights the regular enemies so imagine the scale
tell me what you think about the new cel shading! 👍 FPS + environment (pre-alpha) Changelog added a small FPS counter in the top left that would not get affected by the shaders by putting it in its own canvaslayer made the fps cap 60 made the world environment have a orange theme, trying to mimic a volcano after-effect or something like that got “alien planet” textures from the internet (i will credit in my readme) added a chunk scene which is the ground that the player stands on in the video, it has customizable size texture, and albedo av1 scale and the transformations adjust to make the top layer flat on the plane using a little bit of math adjusted the cel shading to make outlines bigger, not exaggerate dark colors, and get rid of foreign unrelated colors Next steps edit the eye monster enemy fsn so instead of staying in one place while idle, it moves around and kind of explores for each chunk, randomly place 3-5 items along it like burnt trees or rocks for this volcano-like theme, those items will be different in different biomes make chunks load when necessary and be able to load different biomes, probably split by a river or something health tracker inventory + new weapons Notes nothing much except I think I need some feedback on the new cel shading and environment. does it look good?
if you’re reading this, reposting liking and comment help a lot and I really want this project to get out there, bc I’m working reallly hard on it so smash those like and follow buttons thanks actual devlog below biomes using resources (finally made proper environments ) Changelog first, I used a dictionary that would have all the information about each biome, like name, ground texture, things that are available to spawn, amount of things that can spawn, and size variation of things that can spawn after it was getting efficient (i was plan on changing the method regardless), I used resources made a chunk node which is 50x50 and takes a biome variable, so I can just import biome resources into it and it automatically gets updated 👏 created biome_data.gd and made it extend resources made wasteland_biome.tres and ’glacier_biome.tres`, both resources with all the information above and all I have to do is attach it to a chunk made the contents spawn in random locations in the chunk with varying amounts, varying types (for example there are 2 kinds of dead trees in the wasteland so each one is a random type), and varying sizes Next steps make enemies native to certain biomes where they spawn automatically in their biome make biomes go smoothly into each other, maybe using a river in between add more wasteland enemies more content variation for wasteland and glacier edit the eye monster fsm so it walks around when it doesnt see the player something else that i forgot Notes Remember how a while ago I said I hate resources, well now they’re my favorite thing, they’re really useful and in this context, a giant lifesaver. the 3rd video shows how easy I made the process using resources. great progress so far, i think I can really get an xbox soon
lots of environment changes! (clean switching + new desert biome! 🏜️) – Changelog added ways for the player to detect which chunk and biome it is on main (root) node script that runs these player functions and also pulls the biome information added an environment color variable to the biome data resources, and added appopriate colors for each biome root node uses tweens to make the environment color correct upon switching biomes desert biome! (just a cactus) added two new contents to the wastelands temporarily made the eye monster blue to look native to glacier biome Next steps edit eye monster fsm add variants to the eye monster (my only enemy right now) that are native to each biomes by changing albedo color like the temporary change I just did make chunks spawn enemies automatically like minecraft use hdr to make a better sky and environment in general Notes i think it’s really coming together now, and this project now has the highest amount of hours so I guess that’s nice i like the minion thing
improved enemy finite state machine + environment Changelog made it so the eye monster explores and moves around the chunk, waits a second before choosing a new target destination on the chunk automatically changes albedo color depending on the chunk it was spawned in, so if it was spawned in glacier, it adopts a dark blue tone fields biome with a tree and actual grass rather than a carpet-like texture idk if I mentioned in the last devlog so I’ll just generalize and say a lot more Next steps make environments less blocky and go smoothly into each other foliage and more immersive environments, reccomended by @tejaswa and a few others more enemies secondary axe attack new weapons Notes: it pmo to see how people will just completely ai literally EVERYTHING and still think they can get stardust for it. like literally everything, the code, the idea, the devlogs for some reason, and the readme. how lazy can you be? i know exactly who this is directed towards
lazy devlog: changed my file directory idk why it took so long but I can’t track it all
blending and more environment stuff Changelog made the player speed exportable (I did this so I could travel over a ton of chunks faster when debugging to see how it looks like on runtime) created a blendchunk node created a giantblendchunk node which is just 3 blendchunk s the blendchunk s properly detect any chunks near them and change their texture using a shader to make it look like a seamless transition (although I’ll admit that it could use some work because the cel shading makes it pretty weird) changing the files made the github weird so I had to create a new local repo and fix all of the problems that showed up Next Steps maybe add a car because player on its own is too small? lots of people said to add foliage and more immersive environments by adding falling things and stuff automatic enemy spawning make the worldenvironment color change in a blendchunk rather than having to actually go to the solid one Notes really hope I get an xbox so if you see this, please repost like comment whatever so this project is seen more, and also if your rating give me a perfect score! 🙏
added health bar Changelog health bar created a unshadedlayer node using subviewports where if you add a child to it, that child will be unaffected by shading like cel shading and pixel art (it doesn’t work that well yet, i’ll have to improve it) changed player health to 5 Next steps make something happen when you die which will probably involve creating a menu inventory improve the shading system Notes ignore the roblox thing
if you’re reading this, reposting liking and comment help a lot and I really want this project to get out there, bc I’m working reallly hard on it so smash those like and follow buttons thanks also my BIGGEST devlog yet, press read more! 🙏 (added guns 🔫🔫) actual devlog below TONS OF NEW CHANGES! 🔫 Changelog (there’s so many, I couldn’t do it by memory and had to go to git history added collision shapes to the environments! this includes the trees, the rocks, the glaciers, cacti, etc. not sure if I included this in the last devlog but WIP winter field biome exported player speed (probably also in the last) INVENTORY!!! so far it has the axe, the pistol, and the rest is empty but I successfully built it so it is very easy to add to and implement into the game a whole pistol 🔫🔫🔫🔫🔫 took a while (mostly the reason why this devlog is so long) it took SO LONG to get the blender model working because: very unfortunate news The person who I was getting ALL of my models from on sketchfab, @levraicoincoin DELETED their sketchfab account no idea why, crazy coincidence that it happpened the day after I published using their models. So it took so long to find someone else’s models (thank you new person who I dont want to delete their models 🙏). and this new person’s models are very different and it took me a very long time to get adjusted to this and figure out how to use it. @levraicoincoin was so simple, this one is not. all of the animations were packed into one action, and I did not know about Godot’s slice (wtv its called) feature, so I was trying to import them seperately through blender. huge fail, but finally figured it out so I guess it’s a success 👑 and another plus is that this person does have more models that are similar, and I’ve figured out how to use them so it won’t be that big of a struggle next time anyway back to changelog sucessfully got the pistol’s animations working added an AudioBus that has signals of things like axe swung and shot fired added a GameAudio node that uses the signals from AudioBus and plays a sound made the pistol sound this part was super tedious made it so the player’s arms were unshaded (took so long and had to use my broken UnshadedLayer node from earlier, HUGE pain removed the outline of everything I guess that’s about it (probably a bit more that I’m forgetting but it’s fine, this devlog is huge) Next steps (hopefully not as long) more weapons! will not take nearly as much time I hope 🙏 add more enemies fix some gun bugs because I don’t think it’s working that well when moving right now find the best spot for health and inventory, probably bottom left corner get an audio for the axe get background music, meaning probably make a start and death menu vehicle Notes if you really read everything, I appreciate it a LOT. all of my work related to this devlog took SO MUCH time, but I’ve gotten a lot of support. super grateful probably best news so far, @tejaswa got unbanned after mistakenly being banned for fraud! 🎉 he inspired this project a lot, so I’m really happy for him, his project, and grateful for the support he gave me that’s all, thanks! reposting liking and comment help a lot!
added creepers to my fps Changelog imported the snowman monster model (only idle and walk animation so I had to manage) make the snowman go towards the player gave the snowman the same mechanics as a minecraft creeper Next steps more mobs more guns Notes my last devlog flopped why
demo finally out! press to play give me feedback!!! i’ve already gotten reports that the game gets very laggy when you look at the trees (its because of complex shaders that are post-processing), will fix soon
pre-devlog ship! please give me a good review guys 🙏 get playing! just updated: Changelog added a score axe sound tried to fix enemy shooting, not sure if I really did though menu and death screen bigger map that has slightly random generation enemies get bigger and stronger as score gets up and you survive for longer Next steps: ship! Notes: please give me a good score!
hi everyone! before you rate, let me just clarify about a few things before you rate my project the game takes a little time to load, so please be patient 🙏 look at the devlogs while you wait! i’m on mac so I haven’t tested the windows download, try to play in-browser i’m pretty sure it’s fixed but sometimes pressing W can move backwards and S moves forward. this is because you may have accidentally breached the limit on looking up and down. if this happens, slowly keep looking up or down (both work) until its fixed happy shipping!
I reviewed everyone’s previous ship feedback and made a few changes! ready to re-ship, wish me luck!
Ships:
Alien FPS! 👽 🔫 an exploration alien shooter game made in Godot by arjun bhumula! this is my first ever 3d project, and I’m very proud of it! Alien FPS is kind of like an arena shooter (ig) where you are given an axe and a pistol and you have to fend for yourself. In the biomes surrounding you, enemies are spawning everywhere: (the following is from the readme) The enemies include: eye monster 👁️ : 200 points, but 400 if you use your axe to kill it snowman (creeper like minecraft: 250 points, but 500 if you use your axe to kill it Enemies keep getting stronger as your score builds up, so be careful! You can either die by getting your health down to 0 or falling off the map somehow Have fun! AI DISCLOSURE! ⚠️ NO AI IS USED FOR CODE! However, I used AI to walk me through the process of using Blender and Godot together because this this is my first time doing that. Please give me a good review so I can get an xbox, THANK YOU SO MUCH EVERYBODY
Alien FPS! 👽🔫 — Ship #2 an exploration alien shooter made in Godot by arjun bhumula! this is my 2nd ship for Stardance. still my first 3D project and i’m proud of it — after Ship #1 i actually listened to the feedback and fixed a bunch of stuff. What I changed from feedback made it run better on weaker computers enemies don’t spawn on top of trees/objects anymore eye monsters now show up in the plains too cleaned up some gameplay / UX issues people pointed out The game arena shooter — axe + pistol, enemies spawn across different biomes. scoring eye monster 👁️ — 200 (400 with axe) snowman (creeper-like) — 250 (500 with axe) enemies get stronger the longer you survive. die at 0 HP or by falling off the map. have fun! AI disclosure ⚠️ NO AI WAS USED FOR CODE. I only used AI to help me learn Blender + Godot since this is my first time doing that. Please give me a good review so I can get an xbox, THANK YOU SO MUCH EVERYBODY...
|
1793728292.1748285
|
1793814692.1748285
|
|
18301
|
BMI Calculator by @7afezzz | Stardance
|
7afezzz
|
1
|
3.0
|
42
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-14T02:30:30Z", "hours": 3.0, "multiplier": 12.05, "payout": 42, "blessing": "neutral", "text": "The BMI Calculator app does a lot more than tell you if it’s okay to eat another cookie; it allows the user to calculate several aspects of health using just height and weight to calculate many health metrics including BMI, Body Fat %, Basal Metabolism Rate (BMR), Total Daily Energy Expenditure (TDEE), Lean Body Mass (LBM) and Ideal Weight. The biggest challenge I faced was ensuring that all of the formulas produced accurate results while maintaining ease of use. Nobody wants to take a math test to figure out their BMI! I am very proud of my ability to provide users with a simple, easy-to-use app that can calculate all these health metrics as accurately as possible, and provides instant feedback to users backed by real science. To use the app simply enter realistic values for height, weight, age and sex. Play around with different height, weight, age and sex inputs and see how the different health metrics change - it’s like an experiment you can perform on yourself without needing a lab coat!", "repo": "https://github.com/abdelrahman-mo7amd/BMI", "demo": "https://abdelrahman-mo7amd.github.io/BMI/"}]...
|
[{"post_id": 8468, "ts": "2026 [{"post_id": 8468, "ts": "2026-06-14T02:24:35Z", "hours": 3.4747, "text": "This week I developed a BMI Calculator Web Application designed to provide users with more than just a Body Mass Index score. Instead of showing a single number, the application delivers a comprehensive health overview including: Body Mass Index (BMI) Body Fat Percentage Estimate Basal Metabolic Rate (BMR) Total Daily Energy Expenditure (TDEE) Ideal Body Weight Lean Body Mass Interactive BMI Gauge Visualization Support for Metric and Imperial Units This BMI Calculator is based on internationally recognized health and nutrition formulas used by organizations such as the World Health Organization and Centers for Disease Control and Prevention. The app calculates Body Mass Index (BMI) by comparing a user’s weight to the square of their height, providing an indication of whether they are underweight, normal weight, overweight, or obese. To deliver deeper insights, the calculator also estimates Body Fat Percentage, Basal Metabolic Rate (BMR), Total Daily Energy Expenditure (TDEE), Ideal Body Weight, and Lean Body Mass using scientifically validated equations commonly applied in nutrition, fitness, and healthcare."}]...
|
Title: BMI Calculator by @7afezzz | Stardance
Dev Title: BMI Calculator by @7afezzz | Stardance
Devlogs:
This week I developed a BMI Calculator Web Application designed to provide users with more than just a Body Mass Index score. Instead of showing a single number, the application delivers a comprehensive health overview including: Body Mass Index (BMI) Body Fat Percentage Estimate Basal Metabolic Rate (BMR) Total Daily Energy Expenditure (TDEE) Ideal Body Weight Lean Body Mass Interactive BMI Gauge Visualization Support for Metric and Imperial Units This BMI Calculator is based on internationally recognized health and nutrition formulas used by organizations such as the World Health Organization and Centers for Disease Control and Prevention. The app calculates Body Mass Index (BMI) by comparing a user’s weight to the square of their height, providing an indication of whether they are underweight, normal weight, overweight, or obese. To deliver deeper insights, the calculator also estimates Body Fat Percentage, Basal Metabolic Rate (BMR), Total Daily Energy Expenditure (TDEE), Ideal Body Weight, and Lean Body Mass using scientifically validated equations commonly applied in nutrition, fitness, and healthcare.
Ships:
The BMI Calculator app does a lot more than tell you if it’s okay to eat another cookie; it allows the user to calculate several aspects of health using just height and weight to calculate many health metrics including BMI, Body Fat %, Basal Metabolism Rate (BMR), Total Daily Energy Expenditure (TDEE), Lean Body Mass (LBM) and Ideal Weight. The biggest challenge I faced was ensuring that all of the formulas produced accurate results while maintaining ease of use. Nobody wants to take a math test to figure out their BMI! I am very proud of my ability to provide users with a simple, easy-to-use app that can calculate all these health metrics as accurately as possible, and provides instant feedback to users backed by real science. To use the app simply enter realistic values for height, weight, age and sex. Play around with different height, weight, age and sex inputs and see how the different health metrics change - it’s like an experiment you can perform on yourself without needing a lab coat!...
|
1793728293.7672107
|
1793814693.7672107
|
|
9932
|
The Little Austronaut by @babali | Stardance
|
babali
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-06T18:15:23Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "The Little Austronaut is a modular Slack bot that brings fun to your workspace. Hit /dsb-ping to check latency, /dsb-catfact for random cat facts, /dsb-joke for laughs, or /dsb-help to see what’s available. What makes it clean: Each slash command is its own class — super easy to add new ones. Smart error handling that doesn’t break the bot or spam users with stack traces. Dynamic help that always knows what commands exist. Consistent ack / respond pattern throughout. Why you should care: Built this to show how to structure a Slack bot without spaghetti code. Commands are modular, errors are handled gracefully, and adding new features takes minutes, not hours. Perfect starter template for anyone building Slack bots. Tech: Node.js, Slack Bolt, Axios, Socket Mode. To run it: Grab your Slack bot and app tokens, drop them in .env, run npm start, and start slashing.", "repo": "https://github.com/babali-eren/The-Little-Austronaut", "demo": "https://hackclub.enterprise.slack.com/archives/C01D7AHKMPF"}]...
|
[{"post_id": 3646, "ts": "2026 [{"post_id": 3646, "ts": "2026-06-06T17:45:52Z", "hours": 0.6106, "text": "Hi There, Finished the Stardance Slack Bot, Did a little cleanup, moved each slash command into its own class under commands. Made a BaseCommand so they all behave the same and don’t scream at errors. Pulled the registration logic out of index.js and now it just loads and registers the command objects. Now way cleaner and less spaghetti. Wrote (thanks gpt) a tiny README.md so whoever clones this isn’t lost at 2am. I tweaked the command logic compared to the tutorial. Thanks for reading :)"}]...
|
Title: The Little Austronaut by @babali | Stardanc Title: The Little Austronaut by @babali | Stardance
Devlogs:
Hi There, Finished the Stardance Slack Bot, Did a little cleanup, moved each slash command into its own class under commands. Made a BaseCommand so they all behave the same and don’t scream at errors. Pulled the registration logic out of index.js and now it just loads and registers the command objects. Now way cleaner and less spaghetti. Wrote (thanks gpt) a tiny README.md so whoever clones this isn’t lost at 2am. I tweaked the command logic compared to the tutorial. Thanks for reading :)
Ships:
The Little Austronaut is a modular Slack bot that brings fun to your workspace. Hit /dsb-ping to check latency, /dsb-catfact for random cat facts, /dsb-joke for laughs, or /dsb-help to see what’s available. What makes it clean: Each slash command is its own class — super easy to add new ones. Smart error handling that doesn’t break the bot or spam users with stack traces. Dynamic help that always knows what commands exist. Consistent ack / respond pattern throughout. Why you should care: Built this to show how to structure a Slack bot without spaghetti code. Commands are modular, errors are handled gracefully, and adding new features takes minutes, not hours. Perfect starter template for anyone building Slack bots. Tech: Node.js, Slack Bolt, Axios, Socket Mode. To run it: Grab your Slack bot and app tokens, drop them in .env, run npm start, and start slashing....
|
1793728294.9617448
|
1793814694.9617448
|
|
67119
|
My awesome macropad! by @shaishav2908 | Stardance
|
shaishav2908
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @shaishav2908 | Sta Title: My awesome macropad! by @shaishav2908 | Stardance...
|
1793728298.390124
|
1794333098.390124
|
|
30194
|
my APOD site by @blackbird | Stardance
|
|
2
|
9.31
|
33
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-04T15:57:56Z", "hours": 6.0, "multiplier": 5.59, "payout": 33, "blessing": "neutral", "text": "I added the final change of this site, which was the test clock that syncs to your device. This was a lot simpler than I thought due to already-existing clock features. One of the hardest parts was doing the planet, which I had to look up a tutorial for and took much longer than otherwise thought to center correctly. The memo feature at the bottom of the page took the longest to implement, but there were no large snags in the work, other than a quickly-figured-out issue where the page didn’t reload with the notes.", "repo": "https://github.com/flyingchickensaucer/NASA_Site", "demo": "https://flyingchickensaucer.github.io/NASA_Site/"}, {"ship_num": 2, "ts": "2026-07-04T04:54:25Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a NASA Astronomy Picture of the Day site built with Vite and vanilla JS. It pulls the day’s image or video, title, and explanation from NASA’s API, has a date picker to browse any past day, and a space theme with shooting stars. The toughest part was that the shooting stars had three separate bugs, each from a different layer: they flew backward, spawned offset from the cursor, and all burst at once after leaving the tab. I’m really proud of how I navigated fixing those issues.", "repo": "https://github.com/flyingchickensaucer/NASA_Site", "demo": "https://flyingchickensaucer.github.io/NASA_Site/"}]...
|
[{"post_id": 22473, "ts": "202 [{"post_id": 22473, "ts": "2026-07-04T23:05:14Z", "hours": 0.3131, "text": "There is a request to change my readme to the raw version before reshipping."}, {"post_id": 22199, "ts": "2026-07-04T15:36:13Z", "hours": 5.8992, "text": "I mostly made a few changes to personalize the site. A notes section was added to the bottom, as I enjoy being able to write memos for myself to keep. These notes will pop up on the same day the next year, and they are saved in a bubble at the bottom of the page which will open the page up to that day when clicked. I added a semi-transparent planet to the background to learn more about gradients, which took a massive amount of time, and a lot of trial and error for positioning the ring vs the main body. To Do: make a clock that can sync time from the device (planning on doing something similar for personal website so this will be good practice)"}, {"post_id": 21949, "ts": "2026-07-04T04:41:00Z", "hours": 1.6069, "text": "Made the page look a lot more space-y with a dark gradient theme and a starfield background. Allowed the user to switch the date to a previous one and the corresponding image of that day. Added shooting stars that streak by on their own and move from your cursor when you click the background. Bugs I fixed: Shooting stars flew backward (gradient was on the wrong end) Stars spawned offset from the cursor (was positioning by the corner) All shooting stars appeared at once after leaving the tab (paused the spawner with the Page Visibility API)"}, {"post_id": 21621, "ts": "2026-07-03T17:40:59Z", "hours": 0.9769, "text": "Wow, the picture actually shows!"}, {"post_id": 21566, "ts": "2026-07-03T16:19:53Z", "hours": 0.9031, "text": "Starting my NASA Astronomy Picture of the Day page. This is a small site that will pull NASA’s APOD API and show the day’s title, image or video, and explanation. For this session I decided to deploy-first and get a live (but nearly empty) page onto GitHub Pages before building any features. Set up: the Vite scaffold, a .gitignore keeping my .env safe, .env.example, vite.config.js so Pages serves assets from the right path (otherwise 404s), and a GitHub Actions workflow that builds and publishes to Pages. First deploy actually failed on the Pages step because Pages wasn’t enabled yet. I enabled it, re-ran, green check, live page confirmed. Next session: fetch and render the APOD data"}]...
|
Title: my APOD site by @blackbird | Stardance
Dev Title: my APOD site by @blackbird | Stardance
Devlogs:
Starting my NASA Astronomy Picture of the Day page. This is a small site that will pull NASA’s APOD API and show the day’s title, image or video, and explanation. For this session I decided to deploy-first and get a live (but nearly empty) page onto GitHub Pages before building any features. Set up: the Vite scaffold, a .gitignore keeping my .env safe, .env.example, vite.config.js so Pages serves assets from the right path (otherwise 404s), and a GitHub Actions workflow that builds and publishes to Pages. First deploy actually failed on the Pages step because Pages wasn’t enabled yet. I enabled it, re-ran, green check, live page confirmed. Next session: fetch and render the APOD data
Wow, the picture actually shows!
Made the page look a lot more space-y with a dark gradient theme and a starfield background. Allowed the user to switch the date to a previous one and the corresponding image of that day. Added shooting stars that streak by on their own and move from your cursor when you click the background. Bugs I fixed: Shooting stars flew backward (gradient was on the wrong end) Stars spawned offset from the cursor (was positioning by the corner) All shooting stars appeared at once after leaving the tab (paused the spawner with the Page Visibility API)
I mostly made a few changes to personalize the site. A notes section was added to the bottom, as I enjoy being able to write memos for myself to keep. These notes will pop up on the same day the next year, and they are saved in a bubble at the bottom of the page which will open the page up to that day when clicked. I added a semi-transparent planet to the background to learn more about gradients, which took a massive amount of time, and a lot of trial and error for positioning the ring vs the main body. To Do: make a clock that can sync time from the device (planning on doing something similar for personal website so this will be good practice)
There is a request to change my readme to the raw version before reshipping.
Ships:
I made a NASA Astronomy Picture of the Day site built with Vite and vanilla JS. It pulls the day’s image or video, title, and explanation from NASA’s API, has a date picker to browse any past day, and a space theme with shooting stars. The toughest part was that the shooting stars had three separate bugs, each from a different layer: they flew backward, spawned offset from the cursor, and all burst at once after leaving the tab. I’m really proud of how I navigated fixing those issues.
I added the final change of this site, which was the test clock that syncs to your device. This was a lot simpler than I thought due to already-existing clock features. One of the hardest parts was doing the planet, which I had to look up a tutorial for and took much longer than otherwise thought to center correctly. The memo feature at the bottom of the page took the longest to implement, but there were no large snags in the work, other than a quickly-figured-out issue where the page didn’t reload with the notes....
|
1793728299.291953
|
1793814699.291953
|
|
67121
|
AI STUDY BUDDY by @Millicentkudawoo | Stardance
|
Millicentkudawoo
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: AI STUDY BUDDY by @Millicentkudawoo | Stard Title: AI STUDY BUDDY by @Millicentkudawoo | Stardance...
|
1793728300.5216622
|
1794333100.5216622
|
|
57770
|
DinoBot 🦖🦖 by @folk0297 | Stardance
|
folk0297
|
1
|
2.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-08T08:17:25Z", "hours": 2.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made DinoBot, it is a fun Slack bot that lets users discover dinosaur facts, get random dinosaurs, and compare different dinos using simple slash commands. it was quite a fun project and i would recommend this to make one time if you are a beginner. you can follow the guide it make things A LOT EASIER. The most challenging part was connecting the bot to Slack, handling commands correctly, and deploying it on Nest to keep it running. I’m most proud of turning a simple idea into a working 24/7 Slack bot that people can actually use and interact with.", "repo": "https://github.com/folks0297/dinoBot", "demo": "https://hackclub.enterprise.slack.com/archives/C0C0ASD4QNP"}]...
|
[{"post_id": 62175, "ts": "202 [{"post_id": 62175, "ts": "2026-09-05T13:10:55Z", "hours": 1.5608, "text": "devlog #1 of my project no. 3. so in this project i have made my own slack bot called DinoBot .i have added some slash commands like : /dino-fact , as the name suggest it tells the facts of a specific dino which name you will type. /dino-random , it chooses the random dino from the data and tell facts about it /dino-compare , it will show the comparison between two dinos which name you are gonna type here. honestly,it was very fun project and i really enjoyed making it specially setting things up in terminal for the first time was pretty fun!! i hope you guys will try it too:)"}]...
|
Title: DinoBot 🦖🦖 by @folk0297 | Stardance
Devlog Title: DinoBot 🦖🦖 by @folk0297 | Stardance
Devlogs:
devlog #1 of my project no. 3. so in this project i have made my own slack bot called DinoBot .i have added some slash commands like : /dino-fact , as the name suggest it tells the facts of a specific dino which name you will type. /dino-random , it chooses the random dino from the data and tell facts about it /dino-compare , it will show the comparison between two dinos which name you are gonna type here. honestly,it was very fun project and i really enjoyed making it specially setting things up in terminal for the first time was pretty fun!! i hope you guys will try it too:)
Ships:
I made DinoBot, it is a fun Slack bot that lets users discover dinosaur facts, get random dinosaurs, and compare different dinos using simple slash commands. it was quite a fun project and i would recommend this to make one time if you are a beginner. you can follow the guide it make things A LOT EASIER. The most challenging part was connecting the bot to Slack, handling commands correctly, and deploying it on Nest to keep it running. I’m most proud of turning a simple idea into a working 24/7 Slack bot that people can actually use and interact with....
|
1793728301.4302537
|
1793814701.4302537
|
|
6950
|
Pulse by @ishaangulati | Stardance
|
ishaangulati
|
1
|
7.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-18T18:16:15Z", "hours": 7.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Pulse is a social paper trading app built specifically for teens. The problem is simple: most people under 18 legally can’t open a brokerage account, and even for those who can, throwing real money at stocks before you understand what you’re doing is a terrible idea. But the existing alternatives, paper trading apps and stock simulators, are all built for adults and feel like spreadsheets. There’s no social element, no reason to come back, no one to compete with. Pulse fixes that by combining real-time paper trading with a social layer designed around how teens actually use apps. You get a virtual portfolio seeded with fake money and you trade real stocks at live market prices. Every buy, every sell, every position is tracked exactly like it would be in a real brokerage. You build intuition for how markets move, what volatility actually feels like, and how hard it is to time an exit, without ever risking a dollar. This update shipped the social infrastructure that makes all of that actually fun. You can follow other traders and watch their moves appear in your feed in real time. You can create a group with your friends, see eachother on a shared leaderboard, and compete on portfolio returns over time. You can put a face to your handle with a profile picture. And the whole UI got rebuilt from the ground up to feel faster and cleaner. The most challenging part was the social feed. The naive approach of re-fetching on every action felt laggy and broke the illusion that anything was live. So the feed runs on Firestore real-time listeners, meaning updates push to every client the moment they’re written. That introduced a new problem: follow and unfollow actions felt slow because they waited on the server before updating the UI. I switched to optimistic updates, where the UI changes immediately and then syncs in the background, with rollback logic if the write fails. Getting that rollback to behave correctly in edge cases, like a user rapidly tapping follow/unfollow, took way more debugging than I expected. The leaderboard had its own set of problems. Calculating portfolio returns client-side worked fine with two or three users in a group but got noticeably slow as groups got bigger. I moved the PnL calculation server-side and trigger a recalculation on every trade write instead. The client just reads the result. Much faster and the rankings update in real time without anyone doing math on their phone. Profile pictures had a sneaky issue too: users were uploading full-resolution photos straight from their camera roll and Firebase Storage costs scale with bytes stored and transferred. I added client-side image compression before the upload and hard cap everything at 200 KB. The quality is still totally fine and the cost difference is significant. What I’m most proud of is that this is a real shipped iOS app on the App Store with over 100 users that actual teenagers are using to learn investing. It’s not a demo, it’s not a prototype running on localhost. The live market data is real, the social features work, and the leaderboard updates when your friend makes a trade from across the country. Building something that functions at that level while also being genuinely fun to use is what I set out to do. To test it, download Pulse from the App Store on an iPhone, create an account, and you’ll start with a virtual portfolio. Place a few trades on any stock you recognize, then find another user to follow and watch their activity show up in your feed. If you want to test the group leaderboard, create a group and share the code. Check it out at tinyurl.com/pulseofficial", "repo": "https://github.com/ishaan-gulati/pulse_official", "demo": "https://apps.apple.com/us/app/pulse-social-paper-trading/id6760734269"}]...
|
[{"post_id": 11407, "ts": "202 [{"post_id": 11407, "ts": "2026-06-18T17:52:13Z", "hours": 6.8383, "text": "Pulse devlog, v1.1. Pulse just got a social layer. The big focus this update was making the app actually feel alive. Paper trading in isolation is fine for learning, but competing and building with friends is what makes it stick, so I spent this session wiring up the core social infrastructure. Friends & Following lets you find and follow other traders and see their activity in your feed in real time. Follow relationships are stored in Firestore with live listeners so updates come through instantly without polling. Groups lets you create a crew and compete on portfolio returns. Leaderboard rankings are calculated server-side on write so the client never has to do heavy math. Profile Pictures mean you can finally put a face to the handle. Images get compressed under 200 KB on the client before uploading to keep storage costs reasonable. UI Improvements include a full app redesign, a contrast pass across every screen, and a spacing system refactor that brought load time down around 18%. Up next: DMs, trade reactions, push notifications for follower activity, and a proper onboarding flow for new users. Check it out at tinyurl.com/pulseofficial"}]...
|
Title: Pulse by @ishaangulati | Stardance
Devlogs Title: Pulse by @ishaangulati | Stardance
Devlogs:
Pulse devlog, v1.1. Pulse just got a social layer. The big focus this update was making the app actually feel alive. Paper trading in isolation is fine for learning, but competing and building with friends is what makes it stick, so I spent this session wiring up the core social infrastructure. Friends & Following lets you find and follow other traders and see their activity in your feed in real time. Follow relationships are stored in Firestore with live listeners so updates come through instantly without polling. Groups lets you create a crew and compete on portfolio returns. Leaderboard rankings are calculated server-side on write so the client never has to do heavy math. Profile Pictures mean you can finally put a face to the handle. Images get compressed under 200 KB on the client before uploading to keep storage costs reasonable. UI Improvements include a full app redesign, a contrast pass across every screen, and a spacing system refactor that brought load time down around 18%. Up next: DMs, trade reactions, push notifications for follower activity, and a proper onboarding flow for new users. Check it out at tinyurl.com/pulseofficial
Ships:
Pulse is a social paper trading app built specifically for teens. The problem is simple: most people under 18 legally can’t open a brokerage account, and even for those who can, throwing real money at stocks before you understand what you’re doing is a terrible idea. But the existing alternatives, paper trading apps and stock simulators, are all built for adults and feel like spreadsheets. There’s no social element, no reason to come back, no one to compete with. Pulse fixes that by combining real-time paper trading with a social layer designed around how teens actually use apps. You get a virtual portfolio seeded with fake money and you trade real stocks at live market prices. Every buy, every sell, every position is tracked exactly like it would be in a real brokerage. You build intuition for how markets move, what volatility actually feels like, and how hard it is to time an exit, without ever risking a dollar. This update shipped the social infrastructure that makes all of that actually fun. You can follow other traders and watch their moves appear in your feed in real time. You can create a group with your friends, see eachother on a shared leaderboard, and compete on portfolio returns over time. You can put a face to your handle with a profile picture. And the whole UI got rebuilt from the ground up to feel faster and cleaner. The most challenging part was the social feed. The naive approach of re-fetching on every action felt laggy and broke the illusion that anything was live. So the feed runs on Firestore real-time listeners, meaning updates push to every client the moment they’re written. That introduced a new problem: follow and unfollow actions felt slow because they waited on the server before updating the UI. I switched to optimistic updates, where the UI changes immediately and then syncs in the background, with rollback logic if the write fails. Getting that rollback to behave correctly in edge cases, like a user rapidly tapping follow/unfollow, took way more debugging than I expected. The leaderboard had its own set of problems. Calculating portfolio returns client-side worked fine with two or three users in a group but got noticeably slow as groups got bigger. I moved the PnL calculation server-side and trigger a recalculation on every trade write instead. The client just reads the result. Much faster and the rankings update in real time without anyone doing math on their phone. Profile pictures had a sneaky issue too: users were uploading full-resolution photos straight from their camera roll and Firebase Storage costs scale with bytes stored and transferred. I added client-side image compression before the upload and hard cap everything at 200 KB. The quality is still totally fine and the cost difference is significant. What I’m most proud of is that this is a real shipped iOS app on the App Store with over 100 users that actual teenagers are using to learn investing. It’s not a demo, it’s not a prototype running on localhost. The live market data is real, the social features work, and the leaderboard updates when your friend makes a trade from across the country. Building something that functions at that level while also being genuinely fun to use is what I set out to do. To test it, download Pulse from the App Store on an iPhone, create an account, and you’ll start with a virtual portfolio. Place a few trades on any stock you recognize, then find another user to follow and watch their activity show up in your feed. If you want to test the group leaderboard, create a group and share the code. Check it out at tinyurl.com/pulseofficial...
|
1793728302.6634905
|
1793814702.6634905
|
|
67122
|
StarQuest by @ByAman_Dev | Stardance
|
ByAman_Dev
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: StarQuest by @ByAman_Dev | Stardance
|
1793728303.9064775
|
1794333103.9064775
|
|
596
|
ai without ai by @lazerkat | Stardance
|
lazerkat
|
1
|
6.73
|
93
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-02T23:05:02Z", "hours": 6.0, "multiplier": 15.16, "payout": 93, "blessing": "neutral", "text": "I made an “ai” which can respond to simple questions using pre-written answers. I am proud of the time I spent writing it. I might update it more.", "repo": "https://github.com/betelguesestudios/coolrepoforstardance", "demo": "https://betelguesestudios.github.io/coolrepoforstardance/"}]...
|
[{"post_id": 1910, "ts": "2026 [{"post_id": 1910, "ts": "2026-06-04T04:12:43Z", "hours": 0.4253, "text": "268 q&a’s… people have asked it some… interesting things…"}, {"post_id": 1860, "ts": "2026-06-04T02:13:21Z", "hours": 0.3033, "text": "adding someone’s inputs :)"}, {"post_id": 1085, "ts": "2026-06-02T22:01:25Z", "hours": 0.4047, "text": "207 q&a’s….. very cool"}, {"post_id": 497, "ts": "2026-06-01T23:39:41Z", "hours": 0.3811, "text": "there are now 196 answers and questions. also miracle musical reference"}, {"post_id": 486, "ts": "2026-06-01T23:08:56Z", "hours": 0.4564, "text": "server has been set up for messages i haven’t made responses for"}, {"post_id": 466, "ts": "2026-06-01T22:29:37Z", "hours": 0.6047, "text": "more (many more) inputs :)"}, {"post_id": 167, "ts": "2026-06-01T02:26:13Z", "hours": 0.3389, "text": "added bro variants"}, {"post_id": 164, "ts": "2026-06-01T01:54:33Z", "hours": 1.0786, "text": "jumpscare part :3"}, {"post_id": 160, "ts": "2026-06-01T00:43:51Z", "hours": 0.3953, "text": "august 12 2036 the heat death of the universe (added lore)"}, {"post_id": 156, "ts": "2026-06-01T00:14:26Z", "hours": 0.5928, "text": "secret things you can say to it"}, {"post_id": 147, "ts": "2026-05-31T23:10:02Z", "hours": 0.3008, "text": "styling the page ( https://betelguesestudios.github.io/coolrepoforstardance/ )"}, {"post_id": 142, "ts": "2026-05-31T22:47:09Z", "hours": 0.5422, "text": "more answers to questions! there are now 67 answers :)"}, {"post_id": 133, "ts": "2026-05-31T22:02:33Z", "hours": 1.0258, "text": "adding tons of responses :)"}]...
|
Title: ai without ai by @lazerkat | Stardance
Dev Title: ai without ai by @lazerkat | Stardance
Devlogs:
adding tons of responses :)
more answers to questions! there are now 67 answers :)
styling the page ( https://betelguesestudios.github.io/coolrepoforstardance/ )
secret things you can say to it
august 12 2036 the heat death of the universe (added lore)
jumpscare part :3
added bro variants
more (many more) inputs :)
server has been set up for messages i haven’t made responses for
there are now 196 answers and questions. also miracle musical reference
207 q&a’s….. very cool
adding someone’s inputs :)
268 q&a’s… people have asked it some… interesting things…
Ships:
I made an “ai” which can respond to simple questions using pre-written answers. I am proud of the time I spent writing it. I might update it more....
|
1793728304.791664
|
1793814704.791664
|
|
67123
|
My own site! by @blue_pumpkin | Stardance
|
blue_pumpkin
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My own site! by @blue_pumpkin | Stardance
|
1793728306.0383663
|
1794333106.0383663
|
|
759
|
Melanotaenia 4.0 by @abigail_L | Stardance
|
abigail_L
|
1
|
8.0
|
26
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-20T02:58:49Z", "hours": 8.0, "multiplier": 3.46, "payout": 26, "blessing": "neutral", "text": "Hello I have made a doodle jump parody with a twist called “Melanotaenia 4.0”. The twist for the game is that the player can change into four colors and can only touch a platform if they themself is the same color as the platform. The idea of this game was first made for the Hack Club juice Jam March 2025, but I gave up on the project. To me this is an incredible milestone because I started over with only the idea and actually completed it. How to Play: Goal is to go as high as possible to get the highest score Controls: Left arrow ( < ) = Move Left Right arrow (>) = Move Right Up arrow (^) = Jump Q = Orange E = Green R = Purple W = Yellow Sidenote: There is also a demo video at the bottom of my readme on github.", "repo": "https://github.com/Abbby1007/Melanotaenia-4.0", "demo": "https://abbby1007.itch.io/melanotaenia-40"}]...
|
[{"post_id": 12040, "ts": "202 [{"post_id": 12040, "ts": "2026-06-19T17:14:26Z", "hours": 0.6139, "text": "I have finished the Game. From the last devlog I added a background and created a stylized game title. I also finalized the itch.io Page and the Github Read me Also Excuse my previous screen recordings for the previous devlogs. The screenshot format changed so now the vidoes are zoomed in."}, {"post_id": 2193, "ts": "2026-06-04T15:38:14Z", "hours": 0.3764, "text": "Was busy today so not that much progress was made. Today I decided to add purple and yellow, while also making a parallax scrolling background. I am gonna take a short break on this game, so I can look at it with fresh eyes when I return. My goal when I return is to work on the title screen (title, buttons) and making the game look nicer. I might also work on sound design With the break from this game I am gonna try to enter my first game Jam."}, {"post_id": 1347, "ts": "2026-06-03T09:23:18Z", "hours": 0.9219, "text": "I added my own custom sprite for the player and platform (excuse the art I am not a great artist). I have decided to make my theme related to space. So the player will be a star that changes color. I still need to fix the look a lot, but I wanted to get it into demo version. I will be sharing this with friends and have them test it out on itch.io."}, {"post_id": 1243, "ts": "2026-06-03T03:03:19Z", "hours": 1.2667, "text": "So far for the game I have added a title screen (start and quit) and high score system. I believe I am done for now with all of the basic mechanics. My goal now is to work on the look of the game (Character, platforms, title screen, etc)"}, {"post_id": 538, "ts": "2026-06-02T00:35:07Z", "hours": 1.1203, "text": "I was switching between making this game a platformer or a doodle jump clone. I have decided to do a doodle Jump clone. Here I have an infinite loop for the platform generation."}, {"post_id": 219, "ts": "2026-06-01T09:59:07Z", "hours": 1.5039, "text": "I have made it to where the player bounces on a platform when in contact. Also if the player is not the correct color the scene/level resets"}, {"post_id": 185, "ts": "2026-06-01T06:33:44Z", "hours": 1.7511, "text": "I have completed the player’s ability to change color, based on key input"}]...
|
Title: Melanotaenia 4.0 by @abigail_L | Stardance
Title: Melanotaenia 4.0 by @abigail_L | Stardance
Devlogs:
I have completed the player’s ability to change color, based on key input
I have made it to where the player bounces on a platform when in contact. Also if the player is not the correct color the scene/level resets
I was switching between making this game a platformer or a doodle jump clone. I have decided to do a doodle Jump clone. Here I have an infinite loop for the platform generation.
So far for the game I have added a title screen (start and quit) and high score system. I believe I am done for now with all of the basic mechanics. My goal now is to work on the look of the game (Character, platforms, title screen, etc)
I added my own custom sprite for the player and platform (excuse the art I am not a great artist). I have decided to make my theme related to space. So the player will be a star that changes color. I still need to fix the look a lot, but I wanted to get it into demo version. I will be sharing this with friends and have them test it out on itch.io.
Was busy today so not that much progress was made. Today I decided to add purple and yellow, while also making a parallax scrolling background. I am gonna take a short break on this game, so I can look at it with fresh eyes when I return. My goal when I return is to work on the title screen (title, buttons) and making the game look nicer. I might also work on sound design With the break from this game I am gonna try to enter my first game Jam.
I have finished the Game. From the last devlog I added a background and created a stylized game title. I also finalized the itch.io Page and the Github Read me Also Excuse my previous screen recordings for the previous devlogs. The screenshot format changed so now the vidoes are zoomed in.
Ships:
Hello I have made a doodle jump parody with a twist called “Melanotaenia 4.0”. The twist for the game is that the player can change into four colors and can only touch a platform if they themself is the same color as the platform. The idea of this game was first made for the Hack Club juice Jam March 2025, but I gave up on the project. To me this is an incredible milestone because I started over with only the idea and actually completed it. How to Play: Goal is to go as high as possible to get the highest score Controls: Left arrow ( < ) = Move Left Right arrow (>) = Move Right Up arrow (^) = Jump Q = Orange E = Green R = Purple W = Yellow Sidenote: There is also a demo video at the bottom of my readme on github....
|
1793728306.953871
|
1793814706.953871
|
|
67124
|
Untitled project by @Ilikebananasforever | Stardan Untitled project by @Ilikebananasforever | Stardance...
|
Ilikebananasforever
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Untitled project by @Ilikebananasforever | Title: Untitled project by @Ilikebananasforever | Stardance...
|
1793728308.1204185
|
1794333108.1204185
|
|
7614
|
UniScan by @dexrn | Stardance
|
dexrn
|
1
|
265.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-31T13:28:22Z", "hours": 265.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "UniScan is a super modular police/radio scanner hoster, so that people can listen to their scanners remotely, and even allow others to listen too! In addition to also remotely controlling the scanners in the future. It’s written in C#, using Avalonia, Dotnetty, R3, and many other libraries. Note that the web build is currently broken due to what seems to be some upstream issue, I’ll be working to hopefully figure out a fix for that on my free time. Luckily, this project is published natively for just about every platform, even your TV! (if it runs Android TV that is, :P) This project has been going since March , and is still in progress to this day. However, it is in a good enough state to where people can start to test it and give their feedback. HOWEVER : Since I do not know anyone who can host their scanner, testers will have to host their own if they want to play with the online functionality (which is the main part of UniScan, for now until an Internal Server is implemented) The only supported scanner will be the Uniden SDS100 after this is shipped (and I still have to publish the module for it, but that will hopefully happen tomorrow, sorry!!!), with more to come after. A lot of this will be a huge community effort to implement support modules for their scanners/radios so more people can use UniScan with their scanner. I urge anyone who has friends that are into listening to scanners to atleast make this project known to them should they be potentially interested, as this will be a large part of the driving force for continued development on this project. This has been one of my largest projects other than Project Lodestone, with even more hours than shown on Stardance just during the prototyping and initial coding… Most of the difficulty comes from trying to do things right the first time, having abstractions and extensibility where possible, and making sure the systems I implement are usable in the core. I would say the hardest part was figuring out the best way to tackle serverside UI, because the server needs to be able to render the current scanner’s state to send it to the client (otherwise, you won’t see any info about it!!!) As well as learning the networking aspect… The next roadblock will be adding audio support, as I need to figure out how to send audio and properly receive it… Sending is the hard part because I believe most of the libraries to encode data from audio devices are platform-specific, and this all needs to be configurable from a JSON file. Controlling the scanner is also very important, but I’m not comfortable with implementing this before I implement authentication and users, which will require a lot of refactors for the packet handling. This will involve implementing server configuration to manage the users, meaning more SSR UI for some parts, In addition to SDS200 implementation, as it does communication over UDP and RTSP for audio as one of its modes (in addition to hardwired via USB), but this isn’t a core part of the project right now. There is still a lot on the roadmap, and I hope to get everything finished as soon as possible… However, commits will be sparser because I won’t have to devote 100% of my time to this project due to Stardance. The roadmap also requires You… as I need tons of feedback from people who are genuinely interested and have ideas, find bugs, or have any questions that need to be answered, all of which will shape the future of this project. I also would love to have any and all contributors, I do not have a CONTRIBUTORS.MD written yet though, but my only limit for now is the codebase being ensloppified by some vibe coding PRs for the most part. I intend to add proper packaging once audio is implemented (1.0.0-alpha-pre), so that includes installation through flatpak, distro package manager, the Google Play Store (if possible), F-Droid, a Windows setup tool, macOS .app into a DMG, etc.", "repo": "https://github.com/UniScanProject/UniScan", "demo": "https://github.com/UniScanProject/UniScan/releases"}]...
|
[{"post_id": 85507, "ts": "202 [{"post_id": 85507, "ts": "2026-10-31T13:01:57Z", "hours": 2.3803, "text": "Final devlog before I ship this I have released a usable build that can connect to servers and receive and display scanner info to GitHub! Check it out: https://github.com/UniScanProject/UniScan/releases The readme has been updated with install instructions, much more info, and some screenshots as well. NOTE though that you’ll have to host your own server to do any server testing as I don’t have anyone who can host a test server. In the future I will host my own for all to test with though. I am also working on a Uniden support module so that people with Uniden scanners can plug theirs in and host their own server with it. I’ve also created a repo on Tangled, if anyone here prefers that (but no release on there yet.) https://tangled.org/dexrn.me/UniScan"}, {"post_id": 85353, "ts": "2026-10-31T05:52:50Z", "hours": 8.3292, "text": "In a quest to get this thing shipped before SD ends, I have added a header to the device view finally, so you’re not stuck once you subscribe to one device lol"}, {"post_id": 83606, "ts": "2026-10-28T07:26:58Z", "hours": 8.9808, "text": "Implemented a bunch of network stuff and got Settings working enough for this commit Now for audio stuff, and a fix with the device state management I really, really hope I can get this finished before SD ends…"}, {"post_id": 82178, "ts": "2026-10-24T05:35:57Z", "hours": 5.6564, "text": "Implemented settings, and made transport configurable! Here’s it listening on multiple TCP ports Now to implement websocket (array part of config:) {\"$type\":\"TCP\",\"interface\":\"0.0.0.0\",\"port\":6141}, {\"$type\":\"TCP\",\"interface\":\"0.0.0.0\",\"port\":6142}, {\"$type\":\"TCP\",\"interface\":\"0.0.0.0\",\"port\":6143}, {\"$type\":\"TCP\",\"interface\":\"0.0.0.0\",\"port\":6144}, {\"$type\":\"TCP\",\"interface\":\"0.0.0.0\",\"port\":6145}, {\"$type\":\"TCP\",\"interface\":\"0.0.0.0\",\"port\":6146}, {\"$type\":\"TCP\",\"interface\":\"0.0.0.0\",\"port\":6147}, {\"$type\":\"TCP\",\"interface\":\"0.0.0.0\",\"port\":6148}"}, {"post_id": 81208, "ts": "2026-10-20T09:19:45Z", "hours": 9.0592, "text": "Coming in the next full update will also be UI modes This is so that the UI is optimized for every device and their input methods This is the Mobile one, and the main page will (when its finished) have all remotes including non-connected ones and a button to add more remotes and such."}, {"post_id": 80144, "ts": "2026-10-16T11:58:28Z", "hours": 3.9517, "text": "Working on settings…! After this there will be configuration on the serverside and then after that, audio streaming!"}, {"post_id": 79731, "ts": "2026-10-15T07:54:37Z", "hours": 6.7103, "text": "New logo! (credits at end) I intend to make the logo customizable by allowing you to change the color of various elements, and choose between different logos (since no other software ive seen does this) Maybe even change the color of the scanner display when someone is talking even… Thanks to Unomelon for the base, which I used to draw the scanner. Check out Unomelon here: https://bsky.app/profile/unomelon.bsky.social , and his very cool game Allumeria here: https://allumeria.com/ (wasnt asked to add this but I think the game is really cool and am somewhat active in the community)"}, {"post_id": 77782, "ts": "2026-10-08T08:12:30Z", "hours": 5.2025, "text": "Finally committed the latest Shiki changes, will release UniScan’s next commit tomorrow."}, {"post_id": 76647, "ts": "2026-10-04T07:57:18Z", "hours": 11.0072, "text": "Have been working on more Shiki refactors and a nice language system for servers in UniScan to provide language strings without being able to overwrite client language strings Reworked most of the TaskPipelineBuilder with many more accepting delegate types and have done some cleanup since Tomorrow I will finish up releasing the next Shiki version and then I think I will be able to release the next UniScan commit and then keep working for an alpha release."}, {"post_id": 73501, "ts": "2026-09-25T07:49:46Z", "hours": 9.2694, "text": "getting yelled at by starpheus because I haven’t made devlog yet spent all nighter last night refactoring shiki’s modulemanagement project and then today I refactored lots of shiki’s taskpipeline project, as well as some work being done on Shiki’s Result and family (shiki is the side project library with most of it’s code originating from UniScan, and UniScan heavily depends on it) Now the browser initialization is much cleaner (but not perfect of course) (first screenshot is new, second is old) Removed HostEnvironment because we usually only grab the parts from DI anyway"}, {"post_id": 73041, "ts": "2026-09-24T08:06:31Z", "hours": 11.4114, "text": "For funzies, here’s the dev build running inside a rooted Oculus Quest 2 (thanks to my friend for testing this) This is also a good test of the netcode over a long distance (they’re in Malaysia while I’m in the US) Getting close to committing this all alongside Shiki and such… Long cleanup process."}, {"post_id": 70021, "ts": "2026-09-18T09:20:00Z", "hours": 2.1572, "text": "Here’s a showcase of my Uniden SDS100 scanning, with UniScan showing the details in real time! I programmed in some garbage test channels so you won’t see any channels talking in this video. Everything shown here is sent by the server and updated by the server… Still somewhat far from complete as I have to figure out more stuff (mainly more stuff for the client to deal with, like hiding state display textblock on null bindings and more UI features/styling)."}, {"post_id": 69912, "ts": "2026-09-18T01:47:47Z", "hours": 10.1983, "text": "Okayyy so I was able to actually completely gut DeviceState and now it’s actually just a class which is also used to serialize individual states. This also means I can nuke reflection from the serialization process since I can just make IDeviceState forced to inherit IStateSerializer which will be much more dynamic!!! This means literally any states can be sent to the client and as long as the server or the module has the UI to render the states, it will work. This also allows states to be diffed and only the changed parts to be sent Second screenshot shows the UI sent by the server, note that the Volume: 0 is actually all being handled on the client via binding strings (where the server only sends the client the device states and the binding strings will look up those states itself)"}, {"post_id": 67990, "ts": "2026-09-14T10:18:38Z", "hours": 0.7964, "text": "And now we can finally start seeing the fruits of our labor"}, {"post_id": 67864, "ts": "2026-09-14T04:29:36Z", "hours": 7.07, "text": "IT FINALLY WORKS The UI shit I built on the server now syncs to the client correctly, and the flow isn’t actually too bad! Although this will be improved by also having a registry…registry…(yeah I know it’s weird) on the client so that UI elements can have values bind to them, and all the server has to do is send the client data to those registries"}, {"post_id": 65237, "ts": "2026-09-10T07:13:02Z", "hours": 3.4144, "text": "Went on a small side-tangent. Icons! (dw still working on the SSR device stuff)"}, {"post_id": 63401, "ts": "2026-09-07T06:50:20Z", "hours": 5.6181, "text": "Sorry, haven’t been super active due to life. Fixed a few bugs in the meantime and implemented most of the SSR binding stuff, but it’s far from finished, hell I haven’t even gotten to test it yet. Will be gone for a bit tomorrow, and the next day I will be at a different house for a few days albeit with my computer."}, {"post_id": 61349, "ts": "2026-09-04T07:02:15Z", "hours": 5.4761, "text": "While I didn’t get to scanner state displaying yet, I did refactor the classes that handle how remotes connect, disconnect, etc so that it’s not spread around the codebase. This fixes a few bugs related to state management due to how originally these viewmodels were constructed separately of eachother. Tomorrow I will be gone for a few hrs but should be back soon enough to hopefully make some more refactors and/or start on the remote display. Pictured is the new disconnect button in the remote on the sidebar"}, {"post_id": 60741, "ts": "2026-09-03T09:41:59Z", "hours": 2.8389, "text": "The client can now disconnect itself, and more styling has been added to the SSR UI (shown here is a Container which is centered and has a slight margin) tomorrow will be some more work on the SSR UI and then finally getting the scanner state to show on the client. I’m not too pleased with the idea that the server may change the look of the device pages on the clients, though… I still feel like there could be some better way to go about this."}, {"post_id": 60674, "ts": "2026-09-03T06:03:58Z", "hours": 7.28, "text": "I FINALLY GOT SSR WORKING MY GOD still too primitive to do anything atm, working on it."}, {"post_id": 59441, "ts": "2026-09-01T09:14:39Z", "hours": 2.6186, "text": "A friend of mine was able to test it on iOS, we got it working. Gonna have them send in the PR later and set up CI for it."}, {"post_id": 58714, "ts": "2026-08-31T07:59:18Z", "hours": 3.1222, "text": "Started working on state sync, will continue tomorrow probably States are synced now but I need to think about how to deal with scanner groups and channels and such because there are different types of channels (such as P25, conventional, etc) among other type issues and I want to reduce the need for any modules on the client if I can."}, {"post_id": 56408, "ts": "2026-08-28T05:18:41Z", "hours": 1.9061, "text": "UniScan Client v0.1.0, UniScan Server (Host) v0.1.1 Lots of changes, most of them are backend changes, but there are also a handful of frontend changes too! https://github.com/UniScanProject/UniScan/releases/tag/UniScan.Client.App%2F0.1.0 Remotes are now stored per file instead of one large file, and the UI has been neatened up. The server now sends metadata containing a logo, various information, an MOTD, links, etc. The UI has been updated to display this information too. There are more changes than this, but there are too many to list here without hitting the 4000 char limit. Attached is a small video showing some of the new UI stuffs. By no means is it bug free, but the PR reached a point where it could be merged to allow for other important tasks to be focused on (like y’know, showing the actual scanner info)"}, {"post_id": 55440, "ts": "2026-08-27T08:29:55Z", "hours": 1.0639, "text": "I think this looks pretty nice apparently Avalonia has some nuget package that adds ItemsRepeater which does what I was originally trying to do in a cleaner way"}, {"post_id": 55410, "ts": "2026-08-27T06:57:46Z", "hours": 0.9983, "text": "Here’s the announcements UI, I think I’m almost done on this branch and then I’ll continue on main."}, {"post_id": 55287, "ts": "2026-08-27T00:47:49Z", "hours": 2.4511, "text": "Need opinions on this UI The server logo now shows where possible, so on the home view and in the sidebar In the remote view, there is a top ‘window’(?) that holds (from top to bottom): logo (to the side: title, description), server links and then the bottom floating window thing holds the server MOTD I still need to find a place to hold the server announcements… Alongside this were a ton of internal refactors, and the subscribe button now works (but the server still won’t properly send the current state) Been trying to post this since yesterday (I re-recorded the video today), but Hackatime has been down."}, {"post_id": 54227, "ts": "2026-08-25T03:48:43Z", "hours": 5.8811, "text": "Remotes are now stored per file instead of all inside one file. Additionally, server info is now properly cached! I had to rewrite most of the remote initialization flow, but now it’s much better. Adding and removing remotes automatically saves to disk because I can observe the list. This isn’t the end of this overhaul, but we’re getting closer… I think I want to refactor more of UniScanClient next. This is happening on another branch: https://github.com/UniScanProject/UniScan/tree/feat/use_server_provided_display_names After this branch is merged into main, I will make the available server info also show since we have the entire RemoteInfo being sent, which includes announcements, a description, a logo, etc."}, {"post_id": 53539, "ts": "2026-08-24T04:08:25Z", "hours": 3.6514, "text": "Working on dropping display names from client remotes As well as some refactor of the connection flow using my new TaskPipeline Once this is done, the server will be able to send branding, announcements, and other useful information on connect for the client to display!"}, {"post_id": 52159, "ts": "2026-08-22T07:56:54Z", "hours": 1.7483, "text": "Just released a new version, now you can make remotes from the UI finally. Here’s a video showing the creation flow. Note that the list is dynamic based on classes implementing IConnectionMethodFactoryViewModel with attribute ConnectionMethodFactoryViewModelAttribute"}, {"post_id": 52085, "ts": "2026-08-22T04:54:12Z", "hours": 2.8142, "text": "working on fixing the fact that you can’t really make remotes"}, {"post_id": 51645, "ts": "2026-08-21T13:05:32Z", "hours": 3.4047, "text": "FINALLY I GOT IT DONE IM SO TIRED New loading screen!!!! And OPFS file handles are now keyed by int im going to sleep now https://uniscan.dexrn.me"}, {"post_id": 51484, "ts": "2026-08-21T06:59:47Z", "hours": 0.3158, "text": "Much nicer loading screen"}, {"post_id": 51332, "ts": "2026-08-20T22:40:12Z", "hours": 2.3814, "text": "Alright I’ve committed and now you can access UniScan through https://uniscan.dexrn.me Note that since this is still an early version, you can’t really do much. You can also install it as a PWA on iOS, Android, and most desktop browsers. (pictured is UniScan as a PWA in ungoogled-chromium) Hopefully tomorrow I will fix the crash with adding remotes by making some sort of map of connection type -> UI widget to define the settings for them. (meant to post this yesterday, but GH was still working on some cert garbage)"}, {"post_id": 50726, "ts": "2026-08-20T02:11:03Z", "hours": 1.7997, "text": "UniScan now works in browser! I’ve also added a nice crash handler since unhandled exceptions act weird in the browser. Just polishing up now, will commit and set up Actions to host this. Once it’s up, the link will be https://uniscan.dexrn.me (The crash shown in the video is a real issue and will be fixed later.)"}, {"post_id": 50685, "ts": "2026-08-20T00:10:14Z", "hours": 2.6617, "text": "FINALLY I GOT OPFS WORKING GG"}, {"post_id": 50163, "ts": "2026-08-19T08:34:19Z", "hours": 0.6781, "text": "OK I GOT IT SOMEWHAT WORKING IN BROWSER FINALLY still need to keep implementing OPFS stuff though. serilog 01:32:29 [ERR | UniScan.Client.Core.Config.Remote.RemotesListFile] Failed to save remotes to remotes.json System.Exception: Entry not found at SpawnDev.SpawnJS.SpawnJSRuntime.<_InteropCallApplyAsync>d__132`1[[SpawnDev.SpawnJS.JSObjects.FileSystemSyncAccessHandle, SpawnDev.SpawnJS, Version=2.1.8.0, Culture=neutral, PublicKeyToken=null]].MoveNext()"}, {"post_id": 50120, "ts": "2026-08-19T06:14:18Z", "hours": 1.0522, "text": "I think this looks pretty good for a little loading screen. I’ll probably add a try/catch if possible and show an error dialog when some fatal exception is thrown… The “Loading…” text is temporary and is done in Avalonia, will make a proper loading screen there sometime later."}, {"post_id": 50073, "ts": "2026-08-19T03:53:07Z", "hours": 1.5272, "text": "Using this time to test out M3 web (even though it’s in maintenance mode) This is just for the loading screen while it downloads all the WASMs. The cell tower is temporary until I can either make my own logo or find someone who will make one for me."}, {"post_id": 49405, "ts": "2026-08-18T06:53:24Z", "hours": 0.5689, "text": "Waiting on a bug to be fixed in SpawnJS.WebWorkers and then hopefully next update will include web support + a website for y’all to test the client!!! Couldn’t do much today since I was so busy, however since I’m home now I can work on UniScan at a better time than 12 in the morning."}, {"post_id": 48708, "ts": "2026-08-17T06:57:16Z", "hours": 2.0306, "text": "Didn’t get to release last night, as a new bug popped up. 11>MessagePack.GeneratedMessagePackResolver.g.cs(74,74): Error CS0426 : The type name 'Shiki' does not exist in the type 'GeneratedMessagePackResolver'11>------- Finished building project: UniScan.Network. Succeeded: False. Errors: 1. Was able to fix it with some property in the AssemblyInfo. (see: github.com/MessagePack-CSharp/MessagePack-CSharp/issues/2133) I changed the Identifier to be a Slug instead for the devices. Working on browser stuff real quick and will commit sometime soon."}, {"post_id": 47901, "ts": "2026-08-16T05:27:47Z", "hours": 1.0794, "text": "Not fully happy with the manner in which this works, but the virtual scanner does work! Will publish some if not all of it tonight, but no version tag for this yet until I fix my refactoring."}, {"post_id": 47322, "ts": "2026-08-15T06:23:55Z", "hours": 1.4389, "text": "Working on a virtual scanner module to help development by simulating a scanner, hope to have it ready by tomorrow. This also means any future contributors will be able to start contributing even if they do not own a scanner!"}, {"post_id": 46716, "ts": "2026-08-14T05:00:44Z", "hours": 0.8869, "text": "spun up entire android emulator just to realize it was some debug code I forgot to remove that was causing it to throw and die because afaik currentdirectory is / for android apps? gonna release this and then start working on remote adding from UI I think"}, {"post_id": 46099, "ts": "2026-08-13T02:11:59Z", "hours": 5.3278, "text": "UniScan source is now up, you can view it at https://github.com/UniScanProject/UniScan UniScan Client & Server v0.0.2 https://github.com/UniScanProject/UniScan/releases/tag/UniScan.Client.App%2F0.0.2 https://github.com/UniScanProject/UniScan/releases/tag/UniScan.Server.Host%2F0.0.2 Added CI for UniScan.Server.Host UniScan.Client.Core Use DI for PacketRegistry Update RemoteFactory.Create to pass PacketRegistry instance from DI Breaking Changes Updated RemoteServer constructors to take an instance of PacketRegistry Removed InternalUniScanClientPacketConfigurator Packets are now registered from AssembliesPacketSource InternalUniScanClientModule no longer adds an IPacketConfigurator to DI as this class has been removed. UniScan.Network Breaking Changes Renamed ScannerInfoPacket -> ScannerRegistrationPacket The new ID for this packet is UniScan:packet/clientbound/device/registration This fixes a bug where there were two instances of the same packet ID used for different packets in the codebase Removed BuiltinPacketRegistrar Removed IPacketConfigurator Moved PacketRegistry and RegistryPacketAttribute to UniScan.Network.Registry Created IPacketSource and AssembliesPacketSource AssembliesPacketSource collects all classes that inherit IPacket and have the RegistryPacket attribute. Removed the singleton Instance property from PacketRegistry Created PacketRegistry.RegisterFromSource and PacketRegistry.RegisterFromSource<TPacketSource> PacketRegistry.RegisterFromSource takes a given IPacketSource and registers all the packets it provides. PacketRegistry.RegisterFromSource<TPacketSource> creates a new instance of the given TPacketSource type and passes it to PacketRegistry.RegisterFromSource UniScan.Server.Core SubscribePacketHandler now sends the newly renamed ScannerRegistrationPacket Breaking Changes Removed PacketRegistry.RegisterFromSource InternalUniScanServerModule no longer adds an IPacketConfigurator to DI as this class has been removed. Packets are now registered from AssembliesPacketSource UniScan.Server.Host Now creates its own PacketRegistry and passes it to the UniScanServer constructor. UniScan.Tests Now creates its own PacketRegistry and passes it to the ClientSocket constructor."}, {"post_id": 44449, "ts": "2026-08-10T06:23:32Z", "hours": 11.9661, "text": "Been working on cleaning up the codebase in preparation for the initial commit. (thanks @CT5 for some of the motivation) https://github.com/UniScanProject/UniScan will be the project’s home. This does NOT mean it is ready to use, it is far from so. However, it means I will be able to publish releases and such, and everyone will be able to read the code. I will also be working on a Module alongside the core project, which acts as a virtual scanner, for testing of course. My next steps will be getting the virtual scanner module good enough to use as testing, then figure out what to do about the UI, as I don’t really want to force modules onto users. My idea here is that we send a UI ‘definition’(?) to the client for it to render, and let modules hook into them. Means we can also have each button call to the server when pressed if it’s meant to perform a server-side action. I am also planning a scope increase to include SDRs and two-way radios in the distant future. Would like y’alls opinions."}, {"post_id": 28082, "ts": "2026-07-14T03:34:16Z", "hours": 15.6422, "text": "Doing better at Avalonia so I was able to fix some issues and make the Home screen actually contain something useful, with this being a list of all connected remotes and their devices in one place. Oh, and a ton of netcode setup which I forgot to post in this devlog, will show it in the next one."}, {"post_id": 18787, "ts": "2026-06-30T00:07:21Z", "hours": 34.5525, "text": "so far so good! I might want to make the Identifier text slightly smaller….. Now onto making “subscriptions” work, couldn’t come up with a better name than this though. It takes me so long to do anything because I constantly have the urge to refactor things, as well as trying to get stuff perfect the first time."}, {"post_id": 7411, "ts": "2026-06-12T10:42:10Z", "hours": 11.1469, "text": "FINALLY HOLY SHIT WHY IS IT SUCH PAIN TO DO ASYNC INIT IN AVALONIA I wouldnt need to do this if the browser wasnt so picky with OPFS and async………. UGH basically now during OnFrameworkInitializationCompleted I just run task in background that calls my async function at end of async function it sets Content of root view to newly created MainViewModel"}, {"post_id": 6029, "ts": "2026-06-10T03:40:35Z", "hours": 2.2417, "text": "Finally getting remotes closer to working Now you can add them from the GUI (but you can’t connect to them yet…)"}, {"post_id": 5432, "ts": "2026-06-09T06:21:20Z", "hours": 0.9203, "text": "didn’t notice at the time but I was writing out the length with the wrong endianness fixed it and now dotnetty doesn’t silently ignore it"}, {"post_id": 5404, "ts": "2026-06-09T04:53:56Z", "hours": 10.0017, "text": "testing the socket, seems like packets aren’t being handled just yet but at least we’re getting somewhere"}]...
|
Title: UniScan by @dexrn | Stardance
Devlogs:
tes Title: UniScan by @dexrn | Stardance
Devlogs:
testing the socket, seems like packets aren’t being handled just yet but at least we’re getting somewhere
didn’t notice at the time but I was writing out the length with the wrong endianness fixed it and now dotnetty doesn’t silently ignore it
Finally getting remotes closer to working Now you can add them from the GUI (but you can’t connect to them yet…)
FINALLY HOLY SHIT WHY IS IT SUCH PAIN TO DO ASYNC INIT IN AVALONIA I wouldnt need to do this if the browser wasnt so picky with OPFS and async………. UGH basically now during OnFrameworkInitializationCompleted I just run task in background that calls my async function at end of async function it sets Content of root view to newly created MainViewModel
so far so good! I might want to make the Identifier text slightly smaller….. Now onto making “subscriptions” work, couldn’t come up with a better name than this though. It takes me so long to do anything because I constantly have the urge to refactor things, as well as trying to get stuff perfect the first time.
Doing better at Avalonia so I was able to fix some issues and make the Home screen actually contain something useful, with this being a list of all connected remotes and their devices in one place. Oh, and a ton of netcode setup which I forgot to post in this devlog, will show it in the next one.
Been working on cleaning up the codebase in preparation for the initial commit. (thanks @CT5 for some of the motivation) https://github.com/UniScanProject/UniScan will be the project’s home. This does NOT mean it is ready to use, it is far from so. However, it means I will be able to publish releases and such, and everyone will be able to read the code. I will also be working on a Module alongside the core project, which acts as a virtual scanner, for testing of course. My next steps will be getting the virtual scanner module good enough to use as testing, then figure out what to do about the UI, as I don’t really want to force modules onto users. My idea here is that we send a UI ‘definition’(?) to the client for it to render, and let modules hook into them. Means we can also have each button call to the server when pressed if it’s meant to perform a server-side action. I am also planning a scope increase to include SDRs and two-way radios in the distant future. Would like y’alls opinions.
UniScan source is now up, you can view it at https://github.com/UniScanProject/UniScan UniScan Client & Server v0.0.2 https://github.com/UniScanProject/UniScan/releases/tag/UniScan.Client.App%2F0.0.2 https://github.com/UniScanProject/UniScan/releases/tag/UniScan.Server.Host%2F0.0.2 Added CI for UniScan.Server.Host UniScan.Client.Core Use DI for PacketRegistry Update RemoteFactory.Create to pass PacketRegistry instance from DI Breaking Changes Updated RemoteServer constructors to take an instance of PacketRegistry Removed InternalUniScanClientPacketConfigurator Packets are now registered from AssembliesPacketSource InternalUniScanClientModule no longer adds an IPacketConfigurator to DI as this class has been removed. UniScan.Network Breaking Changes Renamed ScannerInfoPacket -> ScannerRegistrationPacket The new ID for this packet is UniScan:packet/clientbound/device/registration This fixes a bug where there were two instances of the same packet ID used for different packets in the codebase Removed BuiltinPacketRegistrar Removed IPacketConfigurator Moved PacketRegistry and RegistryPacketAttribute to UniScan.Network.Registry Created IPacketSource and AssembliesPacketSource AssembliesPacketSource collects all classes that inherit IPacket and have the RegistryPacket attribute. Removed the singleton Instance property from PacketRegistry Created PacketRegistry.RegisterFromSource and PacketRegistry.RegisterFromSource<TPacketSource> PacketRegistry.RegisterFromSource takes a given IPacketSource and registers all the packets it provides. PacketRegistry.RegisterFromSource<TPacketSource> creates a new instance of the given TPacketSource type and passes it to PacketRegistry.RegisterFromSource UniScan.Server.Core SubscribePacketHandler now sends the newly renamed ScannerRegistrationPacket Breaking Changes Removed PacketRegistry.RegisterFromSource InternalUniScanServerModule no longer adds an IPacketConfigurator to DI as this class has been removed. Packets are now registered from AssembliesPacketSource UniScan.Server.Host Now creates its own PacketRegistry and passes it to the UniScanServer constructor. UniScan.Tests Now creates its own PacketRegistry and passes it to the ClientSocket constructor.
spun up entire android emulator just to realize it was some debug code I forgot to remove that was causing it to throw and die because afaik currentdirectory is / for android apps? gonna release this and then start working on remote adding from UI I think
Working on a virtual scanner module to help development by simulating a scanner, hope to have it ready by tomorrow. This also means any future contributors will be able to start contributing even if they do not own a scanner!
Not fully happy with the manner in which this works, but the virtual scanner does work! Will publish some if not all of it tonight, but no version tag for this yet until I fix my refactoring.
Didn’t get to release last night, as a new bug popped up. 11>MessagePack.GeneratedMessagePackResolver.g.cs(74,74): Error CS0426 : The type name 'Shiki' does not exist in the type 'GeneratedMessagePackResolver'11>------- Finished building project: UniScan.Network. Succeeded: False. Errors: 1. Was able to fix it with some property in the AssemblyInfo. (see: github.com/MessagePack-CSharp/MessagePack-CSharp/issues/2133) I changed the Identifier to be a Slug instead for the devices. Working on browser stuff real quick and will commit sometime soon.
Waiting on a bug to be fixed in SpawnJS.WebWorkers and then hopefully next update will include web support + a website for y’all to test the client!!! Couldn’t do much today since I was so busy, however since I’m home now I can work on UniScan at a better time than 12 in the morning.
Using this time to test out M3 web (even though it’s in maintenance mode) This is just for the loading screen while it downloads all the WASMs. The cell tower is temporary until I can either make my own logo or find someone who will make one for me.
I think this looks pretty good for a little loading screen. I’ll probably add a try/catch if possible and show an error dialog when some fatal exception is thrown… The “Loading…” text is temporary and is done in Avalonia, will make a proper loading screen there sometime later.
OK I GOT IT SOMEWHAT WORKING IN BROWSER FINALLY still need to keep implementing OPFS stuff though. serilog 01:32:29 [ERR | UniScan.Client.Core.Config.Remote.RemotesListFile] Failed to save remotes to remotes.json System.Exception: Entry not found at SpawnDev.SpawnJS.SpawnJSRuntime.<_InteropCallApplyAsync>d__132`1[[SpawnDev.SpawnJS.JSObjects.FileSystemSyncAccessHandle, SpawnDev.SpawnJS, Version=2.1.8.0, Culture=neutral, PublicKeyToken=null]].MoveNext()
FINALLY I GOT OPFS WORKING GG
UniScan now works in browser! I’ve also added a nice crash handler since unhandled exceptions act weird in the browser. Just polishing up now, will commit and set up Actions to host this. Once it’s up, the link will be https://uniscan.dexrn.me (The crash shown in the video is a real issue and will be fixed later.)
Alright I’ve committed and now you can access UniScan through https://uniscan.dexrn.me Note that since this is still an early version, you can’t really do much. You can also install it as a PWA on iOS, Android, and most desktop browsers. (pictured is UniScan as a PWA in ungoogled-chromium) Hopefully tomorrow I will fix the crash with adding remotes by making some sort of map of connection type -> UI widget to define the settings for them. (meant to post this yesterday, but GH was still working on some cert garbage)
Much nicer loading screen
FINALLY I GOT IT DONE IM SO TIRED New loading screen!!!! And OPFS file handles are now keyed by int im going to sleep now https://uniscan.dexrn.me
working on fixing the fact that you can’t really make remotes
Just released a new version, now you can make remotes from the UI finally. Here’s a video showing the creation flow. Note that the list is dynamic based on classes implementing IConnectionMethodFactoryViewModel with attribute ConnectionMethodFactoryViewModelAttribute
Working on dropping display names from client remotes As well as some refactor of the connection flow using my new TaskPipeline Once this is done, the server will be able to send branding, announcements, and other useful information on connect for the client to display!
Remotes are now stored per file instead of all inside one file. Additionally, server info is now properly cached! I had to rewrite most of the remote initialization flow, but now it’s much better. Adding and removing remotes automatically saves to disk because I can observe the list. This isn’t the end of this overhaul, but we’re getting closer… I think I want to refactor more of UniScanClient next. This is happening on another branch: https://github.com/UniScanProject/UniScan/tree/feat/use_server_provided_display_names After this branch is merged into main, I will make the available server info also show since we have the entire RemoteInfo being sent, which includes announcements, a description, a logo, etc.
Need opinions on this UI The server logo now shows where possible, so on the home view and in the sidebar In the remote view, there is a top ‘window’(?) that holds (from top to bottom): logo (to the side: title, description), server links and then the bottom floating window thing holds the server MOTD I still need to find a place to hold the server announcements… Alongside this were a ton of internal refactors, and the subscribe button now works (but the server still won’t properly send the current state) Been trying to post this since yesterday (I re-recorded the video today), but Hackatime has been down.
Here’s the announcements UI, I think I’m almost done on this branch and then I’ll continue on main.
I think this looks pretty nice apparently Avalonia has some nuget package that adds ItemsRepeater which does what I was originally trying to do in a cleaner way
UniScan Client v0.1.0, UniScan Server (Host) v0.1.1 Lots of changes, most of them are backend changes, but there are also a handful of frontend changes too! https://github.com/UniScanProject/UniScan/releases/tag/UniScan.Client.App%2F0.1.0 Remotes are now stored per file instead of one large file, and the UI has been neatened up. The server now sends metadata containing a logo, various information, an MOTD, links, etc. The UI has been updated to display this information too. There are more changes than this, but there are too many to list here without hitting the 4000 char limit. Attached is a small video showing some of the new UI stuffs. By no means is it bug free, but the PR reached a point where it could be merged to allow for other important tasks to be focused on (like y’know, showing the actual scanner info)
Started working on state sync, will continue tomorrow probably States are synced now but I need to think about how to deal with scanner groups and channels and such because there are different types of channels (such as P25, conventional, etc) among other type issues and I want to reduce the need for any modules on the client if I can.
A friend of mine was able to test it on iOS, we got it working. Gonna have them send in the PR later and set up CI for it.
I FINALLY GOT SSR WORKING MY GOD still too primitive to do anything atm, working on it.
The client can now disconnect itself, and more styling has been added to the SSR UI (shown here is a Container which is centered and has a slight margin) tomorrow will be some more work on the SSR UI and then finally getting the scanner state to show on the client. I’m not too pleased with the idea that the server may change the look of the device pages on the clients, though… I still feel like there could be some better way to go about this.
While I didn’t get to scanner state displaying yet, I did refactor the classes that handle how remotes connect, disconnect, etc so that it’s not spread around the codebase. This fixes a few bugs related to state management due to how originally these viewmodels were constructed separately of eachother. Tomorrow I will be gone for a few hrs but should be back soon enough to hopefully make some more refactors and/or start on the remote display. Pictured is the new disconnect button in the remote on the sidebar
Sorry, haven’t been super active due to life. Fixed a few bugs in the meantime and implemented most of the SSR binding stuff, but it’s far from finished, hell I haven’t even gotten to test it yet. Will be gone for a bit tomorrow, and the next day I will be at a different house for a few days albeit with my computer.
Went on a small side-tangent. Icons! (dw still working on the SSR device stuff)
IT FINALLY WORKS The UI shit I built on the server now syncs to the client correctly, and the flow isn’t actually too bad! Although this will be improved by also having a registry…registry…(yeah I know it’s weird) on the client so that UI elements can have values bind to them, and all the server has to do is send the client data to those registries
And now we can finally start seeing the fruits of our labor
Okayyy so I was able to actually completely gut DeviceState and now it’s actually just a class which is also used to serialize individual states. This also means I can nuke reflection from the serialization process since I can just make IDeviceState forced to inherit IStateSerializer which will be much more dynamic!!! This means literally any states can be sent to the client and as long as the server or the module has the UI to render the states, it will work. This also allows states to be diffed and only the changed parts to be sent Second screenshot shows the UI sent by the server, note that the Volume: 0 is actually all being handled on the client via binding strings (where the server only sends the client the device states and the binding strings will look up those states itself)
Here’s a showcase of my Uniden SDS100 scanning, with UniScan showing the details in real time! I programmed in some garbage test channels so you won’t see any channels talking in this video. Everything shown here is sent by the server and updated by the server… Still somewhat far from complete as I have to figure out more stuff (mainly more stuff for the client to deal with, like hiding state display textblock on null bindings and more UI features/styling).
For funzies, here’s the dev build running inside a rooted Oculus Quest 2 (thanks to my friend for testing this) This is also a good test of the netcode over a long distance (they’re in Malaysia while I’m in the US) Getting close to committing this all alongside Shiki and such… Long cleanup process.
getting yelled at by starpheus because I haven’t made devlog yet spent all nighter last night refactoring shiki’s modulemanagement project and then today I refactored lots of shiki’s taskpipeline project, as well as some work being done on Shiki’s Result and family (shiki is the side project library with most of it’s code originating from UniScan, and UniScan heavily depends on it) Now the browser initialization is much cleaner (but not perfect of course) (first screenshot is new, second is old) Removed HostEnvironment because we usually only grab the parts from DI anyway
Have been working on more Shiki refactors and a nice language system for servers in UniScan to provide language strings without being able to overwrite client language strings Reworked most of the TaskPipelineBuilder with many more accepting delegate types and have done some cleanup since Tomorrow I will finish up releasing the next Shiki version and then I think I will be able to release the next UniScan commit and then keep working for an alpha release.
Finally committed the latest Shiki changes, will release UniScan’s next commit tomorrow.
New logo! (credits at end) I intend to make the logo customizable by allowing you to change the color of various elements, and choose between different logos (since no other software ive seen does this) Maybe even change the color of the scanner display when someone is talking even… Thanks to Unomelon for the base, which I used to draw the scanner. Check out Unomelon here: https://bsky.app/profile/unomelon.bsky.social , and his very cool game Allumeria here: https://allumeria.com/ (wasnt asked to add this but I think the game is really cool and am somewhat active in the community)
Working on settings…! After this there will be configuration on the serverside and then after that, audio streaming!
Coming in the next full update will also be UI modes This is so that the UI is optimized for every device and their input methods This is the Mobile one, and the main page will (when its finished) have all remotes including non-connected ones and a button to add more remotes and such.
Implemented settings, and made transport configurable! Here’s it listening on multiple TCP ports Now to implement websocket (array part of config:) {"$type":"TCP","interface":"0.0.0.0","port":6141}, {"$type":"TCP","interface":"0.0.0.0","port":6142}, {"$type":"TCP","interface":"0.0.0.0","port":6143}, {"$type":"TCP","interface":"0.0.0.0","port":6144}, {"$type":"TCP","interface":"0.0.0.0","port":6145}, {"$type":"TCP","interface":"0.0.0.0","port":6146}, {"$type":"TCP","interface":"0.0.0.0","port":6147}, {"$type":"TCP","interface":"0.0.0.0","port":6148}
Implemented a bunch of network stuff and got Settings working enough for this commit Now for audio stuff, and a fix with the device state management I really, really hope I can get this finished before SD ends…
In a quest to get this thing shipped before SD ends, I have added a header to the device view finally, so you’re not stuck once you subscribe to one device lol
Final devlog before I ship this I have released a usable build that can connect to servers and receive and display scanner info to GitHub! Check it out: https://github.com/UniScanProject/UniScan/releases The readme has been updated with install instructions, much more info, and some screenshots as well. NOTE though that you’ll have to host your own server to do any server testing as I don’t have anyone who can host a test server. In the future I will host my own for all to test with though. I am also working on a Uniden support module so that people with Uniden scanners can plug theirs in and host their own server with it. I’ve also created a repo on Tangled, if anyone here prefers that (but no release on there yet.) https://tangled.org/dexrn.me/UniScan
Ships:
UniScan is a super modular police/radio scanner hoster, so that people can listen to their scanners remotely, and even allow others to listen too! In addition to also remotely controlling the scanners in the future. It’s written in C#, using Avalonia, Dotnetty, R3, and many other libraries. Note that the web build is currently broken due to what seems to be some upstream issue, I’ll be working to hopefully figure out a fix for that on my free time. Luckily, this project is published natively for just about every platform, even your TV! (if it runs Android TV that is, :P) This project has been going since March , and is still in progress to this day. However, it is in a good enough state to where people can start to test it and give their feedback. HOWEVER : Since I do not know anyone who can host their scanner, testers will have to host their own if they want to play with the online functionality (which is the main part of UniScan, for now until an Internal Server is implemented) The only supported scanner will be the Uniden SDS100 after this is shipped (and I still have to publish the module for it, but that will hopefully happen tomorrow, sorry!!!), with more to come after. A lot of this will be a huge community effort to implement support modules for their scanners/radios so more people can use UniScan with their scanner. I urge anyone who has friends that are into listening to scanners to atleast make this project known to them should they be potentially interested, as this will be a large part of the driving force for continued development on this project. This has been one of my largest projects other than Project Lodestone, with even more hours than shown on Stardance just during the prototyping and initial coding… Most of the difficulty comes from trying to do things right the first time, having abstractions and extensibility where possible, and making sure the systems I implement are usable in the core. I would say the hardest part was figuring out the best way to tackle serverside UI, because the server needs to be able to render the current scanner’s state to send it to the client (otherwise, you won’t see any info about it!!!) As well as learning the networking aspect… The next roadblock will be adding audio support, as I need to figure out how to send audio and properly receive it… Sending is the hard part because I believe most of the libraries to encode data from audio devices are platform-specific, and this all needs to be configurable from a JSON file. Controlling the scanner is also very important, but I’m not comfortable with implementing this before I implement authentication and users, which will require a lot of refactors for the packet handling. This will involve implementing server configuration to manage the users, meaning more SSR UI for some parts, In addition to SDS200 implementation, as it does communication over UDP and RTSP for audio as one of its modes (in addition to hardwired via USB), but this isn’t a core part of the project right now. There is still a lot on the roadmap, and I hope to get everything finished as soon as possible… However, commits will be sparser because I won’t have to devote 100% of my time to this project due to Stardance. The roadmap also requires You… as I need tons of feedback from people who are genuinely interested and have ideas, find bugs, or have any questions that need to be answered, all of which will shape the future of this project. I also would love to have any and all contributors, I do not have a CONTRIBUTORS.MD written yet though, but my only limit for now is the codebase being ensloppified by some vibe coding PRs for the most part. I intend to add proper packaging once audio is implemented (1.0.0-alpha-pre), so that includes installation through flatpak, distro package manager, the Google Play Store (if possible), F-Droid, a Windows setup tool, macOS .app into a DMG, etc....
|
1793728309.0079522
|
1793814709.0079522
|
|
67125
|
edk2-rk3576 by @gahingwoo | Stardance
|
gahingwoo
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: edk2-rk3576 by @gahingwoo | Stardance
|
1793728310.4071884
|
1794333110.4071884
|
|
67126
|
Coda - portable music player by @neset | Stardance
|
neset
|
0
|
1.4
|
0
|
[]
|
[{"post_id": 75727, "ts": "202 [{"post_id": 75727, "ts": "2026-09-30T21:29:01Z", "hours": 1.4, "text": "i designed the board, including connections for a raspberry pi zero 2 w for computing, a dac, a small screen, a rotary encoder w click and 3 buttons. next: print pcb acquire components solder/assemble program iterate"}]...
|
Title: Coda - portable music player by @neset | St Title: Coda - portable music player by @neset | Stardance
Devlogs:
i designed the board, including connections for a raspberry pi zero 2 w for computing, a dac, a small screen, a rotary encoder w click and 3 buttons. next: print pcb acquire components solder/assemble program iterate...
|
1793728311.3133314
|
1794333111.3133314
|
|
24838
|
Infinite OS by @TheShovel | Stardance
|
TheShovel
|
1
|
6.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-26T11:49:50Z", "hours": 6.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made an operating system where everything is generated on the spot. You cant install apps, you cant access the web, unless you generate an app that does that. Infinite apps, infinite widgets, infinite possibilities (even though those possibilities are pretty sloppy). What was challenging was making a small model that has very little cloud usage, be able to produce something usable while being fast, and cheap.", "repo": "https://github.com/TheShovel/infinite-os", "demo": "https://theshovel.rocks/infinite-os/"}]...
|
[{"post_id": 16202, "ts": "202 [{"post_id": 16202, "ts": "2026-06-26T10:21:08Z", "hours": 2.0097, "text": "Hiiii Hope your day is going well and stuff :) Today i have added widgets! You can now right click on the desktop, and generate widgets that stay where you left them even when you restart! They have access to the theme and system apis just like any other app, but they are made to sit comfortably on your desktop. I have also been working on some quality of life and introduction features! Now there is a user manual, that you can access through the welcome screen. It tells you everything you need to know to use the OS! I have also added some stuff to the settings, like organizing your right click menu, factory reset and other misc stuff that is minor and more to polish things up. Oki thank you byeeeee :D"}, {"post_id": 15634, "ts": "2026-06-25T12:56:09Z", "hours": 2.1692, "text": "sup gamers, its me, theshovel, back at it again with a devlog for the worst operating system ever made i have worked on the speed and quality of the app generating. I have also implemented more system apis like more customization stuff like light and dark mode, also some sound and storage apis so the apps can use local storage. I also worked on the visuals a bit, making it more consistent. The apps now have a design that they follow. This allows for apps to change theme when you change your accent color or between dark and light mode. The major issue right now is that im using a free google api for the app generating. Due to that, i have to lower the maximum output tokens so the user doesnt get rate limited. Due to that, apps might end up being simpler than you expect. The model behind it is still robust enough to give some pretty good output for that tiny amount of token allowence, but even then it might be simpler than youd expect."}, {"post_id": 14634, "ts": "2026-06-23T20:18:55Z", "hours": 1.8264, "text": "I have started the project! So far, i have gotten the bare minimum working. You can click the menu icon, you can type in the name of the app, and a free api endpoint running qwen coder will build the app for you. Because I didnt want to be lazy and just use iFrames, i made it create a div inside the window with the generated code. This works, but it could be a security issue. Do i care though? No lmao I have also started implementing some apis, like the notification api, which an app can call and it will show you a notification. Im going to continue working on this by adding more custom apis and making the operating system more fleshed out. Probably will also have to write some more examples for the llm to use, right now there are a few but they are very simple."}]...
|
Title: Infinite OS by @TheShovel | Stardance
Devl Title: Infinite OS by @TheShovel | Stardance
Devlogs:
I have started the project! So far, i have gotten the bare minimum working. You can click the menu icon, you can type in the name of the app, and a free api endpoint running qwen coder will build the app for you. Because I didnt want to be lazy and just use iFrames, i made it create a div inside the window with the generated code. This works, but it could be a security issue. Do i care though? No lmao I have also started implementing some apis, like the notification api, which an app can call and it will show you a notification. Im going to continue working on this by adding more custom apis and making the operating system more fleshed out. Probably will also have to write some more examples for the llm to use, right now there are a few but they are very simple.
sup gamers, its me, theshovel, back at it again with a devlog for the worst operating system ever made i have worked on the speed and quality of the app generating. I have also implemented more system apis like more customization stuff like light and dark mode, also some sound and storage apis so the apps can use local storage. I also worked on the visuals a bit, making it more consistent. The apps now have a design that they follow. This allows for apps to change theme when you change your accent color or between dark and light mode. The major issue right now is that im using a free google api for the app generating. Due to that, i have to lower the maximum output tokens so the user doesnt get rate limited. Due to that, apps might end up being simpler than you expect. The model behind it is still robust enough to give some pretty good output for that tiny amount of token allowence, but even then it might be simpler than youd expect.
Hiiii Hope your day is going well and stuff :) Today i have added widgets! You can now right click on the desktop, and generate widgets that stay where you left them even when you restart! They have access to the theme and system apis just like any other app, but they are made to sit comfortably on your desktop. I have also been working on some quality of life and introduction features! Now there is a user manual, that you can access through the welcome screen. It tells you everything you need to know to use the OS! I have also added some stuff to the settings, like organizing your right click menu, factory reset and other misc stuff that is minor and more to polish things up. Oki thank you byeeeee :D
Ships:
I made an operating system where everything is generated on the spot. You cant install apps, you cant access the web, unless you generate an app that does that. Infinite apps, infinite widgets, infinite possibilities (even though those possibilities are pretty sloppy). What was challenging was making a small model that has very little cloud usage, be able to produce something usable while being fast, and cheap....
|
1793728312.2025187
|
1793814712.2025187
|
|
56604
|
Anithor by @Kantarajluitel | Stardance
|
Kantarajluitel
|
1
|
3.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-31T03:35:56Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "🌟 Overview anithor bond (anithor.site) is an interactive 3D digital Raksha Bandhan experience built for sisters and brothers who negotiate. It allows sisters to forge custom 3D Rakhis, arrange traditional thalis, and attach an itemized Sibling Tax invoice. Brothers can strike back with pre-emptive defenses, troll vaults, budget contracts, or fair-odds Shagun Roulette wheels. Everything is 100% encrypted end-to-end (AES-GCM) directly inside the URL hash (#s=, #b=, #sr=). No databases, no logins, no servers — the payload lives exclusively inside the link you share. 🚀 Key Features 🧵 3D Rakhi Forge & Thali Builder: Real-time 3D Three.js interactive preview with customizable threads (Gold Mesh, Cyber Neon, Crimson, Crystal), gems, and mithai (Kaju Barfi, Ladoo, Rasbari). 🔐 Shagun Vault & Troll Rewards: Lock gifts or meme sound effects inside a tap-cracking vault. Sound effects include: Paisa Hi Paisa Hoga (/paisa hi paisa hoga.m4a) Broke Brother Arc / Nothing (/nothing.m4a) Default Brother Meme (/brother.m4a) Blessings & Zero Payout (/bless.m4a) 📜 Budget Contract & Shagun Roulette: Non-negotiable signed caps or fair 10-slot wheel of fate. 📸 Instagram Story Card Exporter: Generates a downloadable 1080×1920 high-res Story Card canvas with branding (anithor bond, tagline, and @susantgamerz tag reminder). 🎵 Single-Channel Audio System: Auto-playing background music with one-tap mute control (🎵 / 🔇) and automatic pause/resume during meme sound playback. 🇳🇵 NPR Currency Formatting: Native Nepalese Rupee (Rs.) shagun calculations and QR payment upload option. 🛠️ Tech Stack Core: React 18, TypeScript, Vite 3D Engine: Three.js, @react-three /fiber, @react-three /drei Styling: Tailwind CSS & Vanilla CSS Design Tokens Encryption: AES-GCM & Web Crypto API (deflate-raw compression) Audio Engine: HTML5 Audio API with pause/resume synchronization", "repo": "https://github.com/susantedit/RAkshabandan", "demo": "https://www.anithor.site/"}]...
|
[{"post_id": 58627, "ts": "202 [{"post_id": 58627, "ts": "2026-08-31T03:33:06Z", "hours": 2.7569, "text": "anithor bond (anithor.site) is an interactive 3D digital Raksha Bandhan experience built for sisters and brothers who negotiate. It allows sisters to forge custom 3D Rakhis, arrange traditional thalis, and attach an itemized Sibling Tax invoice. Brothers can strike back with pre-emptive defenses, troll vaults, budget contracts, or fair-odds Shagun Roulette wheels.Everything is 100% encrypted end-to-end (AES-GCM) directly inside the URL hash (#s=, #b=, #sr=). No databases, no logins, no servers — the payload lives exclusively inside the link you share."}]...
|
Title: Anithor by @Kantarajluitel | Stardance
Dev Title: Anithor by @Kantarajluitel | Stardance
Devlogs:
anithor bond (anithor.site) is an interactive 3D digital Raksha Bandhan experience built for sisters and brothers who negotiate. It allows sisters to forge custom 3D Rakhis, arrange traditional thalis, and attach an itemized Sibling Tax invoice. Brothers can strike back with pre-emptive defenses, troll vaults, budget contracts, or fair-odds Shagun Roulette wheels.Everything is 100% encrypted end-to-end (AES-GCM) directly inside the URL hash (#s=, #b=, #sr=). No databases, no logins, no servers — the payload lives exclusively inside the link you share.
Ships:
🌟 Overview anithor bond (anithor.site) is an interactive 3D digital Raksha Bandhan experience built for sisters and brothers who negotiate. It allows sisters to forge custom 3D Rakhis, arrange traditional thalis, and attach an itemized Sibling Tax invoice. Brothers can strike back with pre-emptive defenses, troll vaults, budget contracts, or fair-odds Shagun Roulette wheels. Everything is 100% encrypted end-to-end (AES-GCM) directly inside the URL hash (#s=, #b=, #sr=). No databases, no logins, no servers — the payload lives exclusively inside the link you share. 🚀 Key Features 🧵 3D Rakhi Forge & Thali Builder: Real-time 3D Three.js interactive preview with customizable threads (Gold Mesh, Cyber Neon, Crimson, Crystal), gems, and mithai (Kaju Barfi, Ladoo, Rasbari). 🔐 Shagun Vault & Troll Rewards: Lock gifts or meme sound effects inside a tap-cracking vault. Sound effects include: Paisa Hi Paisa Hoga (/paisa hi paisa hoga.m4a) Broke Brother Arc / Nothing (/nothing.m4a) Default Brother Meme (/brother.m4a) Blessings & Zero Payout (/bless.m4a) 📜 Budget Contract & Shagun Roulette: Non-negotiable signed caps or fair 10-slot wheel of fate. 📸 Instagram Story Card Exporter: Generates a downloadable 1080×1920 high-res Story Card canvas with branding (anithor bond, tagline, and @susantgamerz tag reminder). 🎵 Single-Channel Audio System: Auto-playing background music with one-tap mute control (🎵 / 🔇) and automatic pause/resume during meme sound playback. 🇳🇵 NPR Currency Formatting: Native Nepalese Rupee (Rs.) shagun calculations and QR payment upload option. 🛠️ Tech Stack Core: React 18, TypeScript, Vite 3D Engine: Three.js, @react-three /fiber, @react-three /drei Styling: Tailwind CSS & Vanilla CSS Design Tokens Encryption: AES-GCM & Web Crypto API (deflate-raw compression) Audio Engine: HTML5 Audio API with pause/resume synchronization...
|
1793728313.3473556
|
1794592313.3473556
|
|
67129
|
My awesome macropad! by @methegoat | Stardance
|
methegoat
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @methegoat | Starda Title: My awesome macropad! by @methegoat | Stardance...
|
1793728314.195939
|
1794333114.195939
|
|
20940
|
Brainrot OS by @secret | Stardance
|
secret
|
2
|
10.0
|
52
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-01T19:03:51Z", "hours": 6.0, "multiplier": 8.1, "payout": 52, "blessing": "neutral", "text": "I present to you: Brainrot OS, now in it’s final form. It has many new features since the last ship. Completely overhauled UI, many-many new features like a calculator, settings, themes and wallpapers, a dock and a spotlight-styled search bar. Be sure to try it out!", "repo": "https://github.com/dominik-vrg/webOS", "demo": "https://dominik-vrg.github.io/brainrot-os/"}, {"ship_num": 2, "ts": "2026-06-18T19:50:49Z", "hours": 4.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Brainrot OS This is my web-based OS project for the Stardance Challange. My OS is called Brainrot OS. BOOT It features a meme/brainrot themed boot animation when opening the webpage. DESKTOP After the system “boots”, there are three applications on the desktop, but also a working clock and a date display. !!The setting feature doesn’t work yet!! All of the applications open a draggable window. APPS brainrot.exe - just opens a draggable window with some text notes - a simple, but functional note taking app do not open - this is a minigame, when you open the app, it opens a window with a big red button that says do not click, if you click it, multiple error windows start popping up and you have to close all of them I’ve used Claude AI to help with design (colors/theme), help with scripting, because I am new to JavaScript and text generation for the errors minigame and boot screen.", "repo": "https://github.com/dominik-vrg/webOS", "demo": "https://dominik-vrg.github.io/brainrot-os/"}]...
|
[{"post_id": 20191, "ts": "202 [{"post_id": 20191, "ts": "2026-07-01T18:58:28Z", "hours": 6.4189, "text": "Brainrot OS - devlog #4 The OS got a full overhaul! UI has been fully reworked into a more aesthetic one Many new features, including a settings panel with design and other preferences, a spotlight-style search bar, a working calculator app, and a working dock that tracks if apps are running Check out the readme on github for more info. And be sure to try it out!"}, {"post_id": 11486, "ts": "2026-06-18T19:21:41Z", "hours": 1.1589, "text": "Brainrot OS - devlog #3 Added a simple notes app Added a game called do not open, when the user open it and clicks on the red button, many brainrot themed errors pop up, and the user has to exit all of them Added a boot animation when opening the webpage"}, {"post_id": 11365, "ts": "2026-06-18T16:21:12Z", "hours": 0.8794, "text": "Brainrot OS - devlog #2 Adjusted the top bar and its elements Added a year and date display Settings button (doesn’t do anything yet, will work on it soon) Made the icons movable, they snap to a grid on the desktop Made the first “app” window larger"}, {"post_id": 10811, "ts": "2026-06-17T18:53:15Z", "hours": 1.9356, "text": "Brainrot OS - devlog #1 Created the basic desktop Added a top bar with a working clock Added an icon (not movable yet) Added a draggable window"}]...
|
Title: Brainrot OS by @secret | Stardance
Devlogs Title: Brainrot OS by @secret | Stardance
Devlogs:
Brainrot OS - devlog #1 Created the basic desktop Added a top bar with a working clock Added an icon (not movable yet) Added a draggable window
Brainrot OS - devlog #2 Adjusted the top bar and its elements Added a year and date display Settings button (doesn’t do anything yet, will work on it soon) Made the icons movable, they snap to a grid on the desktop Made the first “app” window larger
Brainrot OS - devlog #3 Added a simple notes app Added a game called do not open, when the user open it and clicks on the red button, many brainrot themed errors pop up, and the user has to exit all of them Added a boot animation when opening the webpage
Brainrot OS - devlog #4 The OS got a full overhaul! UI has been fully reworked into a more aesthetic one Many new features, including a settings panel with design and other preferences, a spotlight-style search bar, a working calculator app, and a working dock that tracks if apps are running Check out the readme on github for more info. And be sure to try it out!
Ships:
Brainrot OS This is my web-based OS project for the Stardance Challange. My OS is called Brainrot OS. BOOT It features a meme/brainrot themed boot animation when opening the webpage. DESKTOP After the system “boots”, there are three applications on the desktop, but also a working clock and a date display. !!The setting feature doesn’t work yet!! All of the applications open a draggable window. APPS brainrot.exe - just opens a draggable window with some text notes - a simple, but functional note taking app do not open - this is a minigame, when you open the app, it opens a window with a big red button that says do not click, if you click it, multiple error windows start popping up and you have to close all of them I’ve used Claude AI to help with design (colors/theme), help with scripting, because I am new to JavaScript and text generation for the errors minigame and boot screen.
I present to you: Brainrot OS, now in it’s final form. It has many new features since the last ship. Completely overhauled UI, many-many new features like a calculator, settings, themes and wallpapers, a dock and a spotlight-styled search bar. Be sure to try it out!...
|
1793728315.1008308
|
1793814715.1008308
|
|
33808
|
Personal Website-AngelDoesThings by @angel_okeke47 Personal Website-AngelDoesThings by @angel_okeke475 | Stardance...
|
angel_okeke475
|
1
|
8.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-27T23:06:43Z", "hours": 8.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a personal website to put all my projects in. The most challenging part of this process was using CSS and getting it consistent across all pages. The majority of the hours I spent on the project were positioning CSS components and making them consistent. All in all, I’m really proud of myself because this project helped me learn how to use Figma and two coding languages :)", "repo": "https://github.com/angelokeke475-code/AngelDoesStuff", "demo": "https://angelokeke475-code.github.io/AngelDoesStuff/"}]...
|
[{"post_id": 83426, "ts": "202 [{"post_id": 83426, "ts": "2026-10-27T23:00:17Z", "hours": 6.8061, "text": "Devlog #02 Hello everyone :) Long time no see! I’m proud to say I’ve completed my website (for now). New Features -Complete Engineering Page -Complete Music Page -Art Page -Links to my other portfolios and profiles"}, {"post_id": 28879, "ts": "2026-07-15T13:39:53Z", "hours": 1.0053, "text": "Devlog #01 Hello! This is my first ever devlog! I am currently working on my personal portfolio website because Google Sites isn’t cutting it for my engineering projects. Progress I learned how to use Figma and made a style guide and a mockup for my homepage (I’m still working out the Figma extenstion so the hours I spent aren’t reflected–it was a really long time :( ) I did the HTML course on FreeCodeCamp to get a better understanding of the language I coded the homepage and put placeholders based on the mockup Next Objectives Create the other pages in Figma Create their HTML place holders Start working on the CSS code Thanks for reading and stay tuned for more updates!"}]...
|
Title: Personal Website-AngelDoesThings by @angel_ Title: Personal Website-AngelDoesThings by @angel_okeke475 | Stardance
Devlogs:
Devlog #01 Hello! This is my first ever devlog! I am currently working on my personal portfolio website because Google Sites isn’t cutting it for my engineering projects. Progress I learned how to use Figma and made a style guide and a mockup for my homepage (I’m still working out the Figma extenstion so the hours I spent aren’t reflected–it was a really long time :( ) I did the HTML course on FreeCodeCamp to get a better understanding of the language I coded the homepage and put placeholders based on the mockup Next Objectives Create the other pages in Figma Create their HTML place holders Start working on the CSS code Thanks for reading and stay tuned for more updates!
Devlog #02 Hello everyone :) Long time no see! I’m proud to say I’ve completed my website (for now). New Features -Complete Engineering Page -Complete Music Page -Art Page -Links to my other portfolios and profiles
Ships:
I made a personal website to put all my projects in. The most challenging part of this process was using CSS and getting it consistent across all pages. The majority of the hours I spent on the project were positioning CSS components and making them consistent. All in all, I’m really proud of myself because this project helped me learn how to use Figma and two coding languages :)...
|
1793728316.3484013
|
1793814716.3484013
|
|
67130
|
My awesome macropad! by @Hosanna | Stardance
|
Hosanna
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @Hosanna | Stardanc Title: My awesome macropad! by @Hosanna | Stardance...
|
1793728317.5168197
|
1794333117.5168197
|
|
67131
|
Walk by @stefan_iftode | Stardance
|
stefan_iftode
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Walk by @stefan_iftode | Stardance
|
1793728318.4467988
|
1794333118.4467988
|
|
23306
|
My very own WebOS by @mohammedsaif | Stardance
|
mohammedsaif
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-22T00:57:53Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Project Name SaifOS About SaifOS is a browser based operating system built using HTML, CSS, and JavaScript. The project recreates a simple desktop environment inside a web page, allowing users to interact with multiple draggable windows just like on a real computer operating system. The goal of this project was to learn the fundamentals of web development while creating an interactive and customizable user experience. SaifOS includes several built in applications such as an About window, a Notes application for writing and storing text during a session, and a live digital clock that updates in real time. To make the project more unique, additional features were added beyond the basic requirements. Users can switch between different desktop wallpapers and enable Dark Mode for an alternative visual appearance. All windows can be freely moved around the screen, creating a more realistic desktop experience. This project demonstrates core web development concepts including page structure with HTML, styling and layout design with CSS, and interactive functionality with JavaScript. It serves as a beginner friendly introduction to creating dynamic web applications and simulating operating system behavior directly within a browser. Detailed Project Description SaifOS is a custom Web Operating System designed and developed by Mohammed Saif as part of the WebOS 1 challenge. The application provides a desktop style interface where users can open, move, and interact with different windows. Features Draggable Windows Users can click and drag application windows anywhere on the desktop. About Application Displays information about the operating system and project creator. Notes Application Provides a simple text area where users can write notes directly within the operating system. Live Digital Clock Shows the current time and updates automatically every second. Wallpaper Changer Allows users to cycle through multiple desktop backgrounds without reloading the page. Dark Mode Provides an alternative visual theme for improved appearance and accessibility. Taskbar Navigation A taskbar at the bottom of the screen allows quick access to all applications and features. Technologies Used HTML5 CSS3 JavaScript (Vanilla JavaScript) Skills Demonstrated Responsive web design DOM manipulation Event handling Interactive user interface development JavaScript timers and functions Custom desktop environment design Future Improvements Potential future upgrades include: Calculator application Weather widget Music player File explorer simulation Custom desktop icons Window minimize and maximize functionality Local storage for saving notes permanently SaifOS is designed to be lightweight, easy to use, and fully accessible from any modern web browser without requiring installation, accounts, or passwords. It showcases how standard web technologies can be combined to create an engaging desktop-like experience on the web.", "repo": "https://github.com/Mohd-Sa1f/saifos", "demo": "https://mohd-sa1f.github.io/saifos/"}]...
|
[{"post_id": 12893, "ts": "202 [{"post_id": 12893, "ts": "2026-06-21T03:40:43Z", "hours": 0.4164, "text": "i am finally done with webos 1 with some nice tools"}, {"post_id": 12878, "ts": "2026-06-21T03:07:10Z", "hours": 0.2775, "text": "my next step on webos 1"}, {"post_id": 12872, "ts": "2026-06-21T02:38:48Z", "hours": 0.3494, "text": "the basic stuff for html page and styling with css"}]...
|
Title: My very own WebOS by @mohammedsaif | Starda Title: My very own WebOS by @mohammedsaif | Stardance
Devlogs:
the basic stuff for html page and styling with css
my next step on webos 1
i am finally done with webos 1 with some nice tools
Ships:
Project Name SaifOS About SaifOS is a browser based operating system built using HTML, CSS, and JavaScript. The project recreates a simple desktop environment inside a web page, allowing users to interact with multiple draggable windows just like on a real computer operating system. The goal of this project was to learn the fundamentals of web development while creating an interactive and customizable user experience. SaifOS includes several built in applications such as an About window, a Notes application for writing and storing text during a session, and a live digital clock that updates in real time. To make the project more unique, additional features were added beyond the basic requirements. Users can switch between different desktop wallpapers and enable Dark Mode for an alternative visual appearance. All windows can be freely moved around the screen, creating a more realistic desktop experience. This project demonstrates core web development concepts including page structure with HTML, styling and layout design with CSS, and interactive functionality with JavaScript. It serves as a beginner friendly introduction to creating dynamic web applications and simulating operating system behavior directly within a browser. Detailed Project Description SaifOS is a custom Web Operating System designed and developed by Mohammed Saif as part of the WebOS 1 challenge. The application provides a desktop style interface where users can open, move, and interact with different windows. Features Draggable Windows Users can click and drag application windows anywhere on the desktop. About Application Displays information about the operating system and project creator. Notes Application Provides a simple text area where users can write notes directly within the operating system. Live Digital Clock Shows the current time and updates automatically every second. Wallpaper Changer Allows users to cycle through multiple desktop backgrounds without reloading the page. Dark Mode Provides an alternative visual theme for improved appearance and accessibility. Taskbar Navigation A taskbar at the bottom of the screen allows quick access to all applications and features. Technologies Used HTML5 CSS3 JavaScript (Vanilla JavaScript) Skills Demonstrated Responsive web design DOM manipulation Event handling Interactive user interface development JavaScript timers and functions Custom desktop environment design Future Improvements Potential future upgrades include: Calculator application Weather widget Music player File explorer simulation Custom desktop icons Window minimize and maximize functionality Local storage for saving notes permanently SaifOS is designed to be lightweight, easy to use, and fully accessible from any modern web browser without requiring installation, accounts, or passwords. It showcases how standard web technologies can be combined to create an engaging desktop-like experience on the web....
|
1793728319.3308558
|
1793814719.3308558
|
|
67133
|
playground by @javedmevati680 | Stardance
|
javedmevati680
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: playground by @javedmevati680 | Stardance
|
1793728320.52372
|
1794333120.52372
|
|
31419
|
experimoza by @kolon3d | Stardance
|
kolon3d
|
1
|
12.0
|
148
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-10T20:42:05Z", "hours": 12.0, "multiplier": 13.08, "payout": 148, "blessing": "neutral", "text": "welp, experimoza is finally shipped experimoza takes an image, sends it to gemini, and turns it into a 10-second force feedback scene for a racing wheel. instead of only vibrating, the wheel actually pulls, moves, changes direction, resists you, and tries to match the feeling of the picture. the most challenging part was working with directinput and making all the effects behave properly together. i also spent a lot of time rewriting the prompt because the generated scenes were either too similar or just made the wheel stand still and vibrate 💀 i’m really proud that this stupid idea actually works and you can literally feel a picture through a steering wheel. i’m also quite happy with the ship deck ui, the live oscilloscope, and especially the furious pirate i painted in microsoft paint to test it, you need windows, python 3.10+, a directinput-compatible force feedback wheel, and a gemini api key. install the dependencies, put your key into .env , run ui.py , drop in an image, and press FEEL THE IMAGE . it was built and tested using my moza r3. please start carefully because the wheel can move unexpectedly. there is a PANIC STOP :0 button for a reason.", "repo": "https://github.com/kolon3d-prog/experimoza", "demo": "https://youtu.be/yUwpHPwgIkU"}]...
|
[{"post_id": 25925, "ts": "202 [{"post_id": 25925, "ts": "2026-07-10T12:55:16Z", "hours": 4.6889, "text": "FINAL devlog #4 changes in UI, prompt review let’s talk about UI first, this is a complete revamp i’ve changed the theme from the default custom tkinter one to brown. i wanted my app to look like a ship deck. changed button layout a bit next i’ve written the oscilloscope using tkinter canvas. it shows the amount of force the app applies using different effects. also the pirate part was changed. i’ve added the “ay carumba” text for shits and giggles. furthermore, now pirate and the helm is one sprite. pirate becomes furious now if he spins too quickly. i’ve painted the sprite in Paint painted an icon too. guess how? now a bit of a technical part reworked the prompt completely, chatgpt helped me tbh. now it generates very different scenes wrote nice readme.md and finalised the repo"}, {"post_id": 24966, "ts": "2026-07-08T21:07:34Z", "hours": 2.4394, "text": "devlog #3 i’ve implemented first UI for this piece of software and found my “mascot” this was not that easy LOLLLL this is my first time dealing with UIs in python. first, i tried to get familiar with pyside6, but after 40 minutes i understood that i’d need hours, days or even week to fully understand it. then i started looking for more beginner-friendly alternatives and found ctk or custom tkinter. it was much easier to understand and chatgpt codex helped me find my mistakes a lot :p as a result we have: usable UI every part of my project in one place funny pirate with a helm that moves exactly like your irl wheel appropriate theme i guess that tomorrow i’ll change my theme to something brown, i want experimoza to look like a ship deck haha. + some debugging with chatgpt sol, if i’ll have access to it. after that i think we are ready to ship"}, {"post_id": 24752, "ts": "2026-07-08T15:08:48Z", "hours": 2.7422, "text": "devlog #2 well this is my first normal devlog, so probably i’ll describe what my project does again. experimoza turns a photo into a 10-second AI-generated force-feedback scene for a racing wheel. it uses gemini to translate the image’s mood and texture into physical wheel motion, so you can literally feel a picture through the steering wheel. btw experimoza comes from the word “experience” yk?? i’ve switched from moza sdk and c++ to py_directinput_ffb, which is a python binding for Direct Input Force Feedback (FFB) using ctypes and comtypes by Wanjie Sun, big shoutout to him. in the previous version gemini 3.1 flash lite was just creating json file with the description of conditions, which resulted in a looped boring ffb. now instead of creating bland and boring force feedback, it writes python code and thinks of it as a “poem” in force feedback. feels much more fun and creative to use. i also made the ai ffb generation process reusable by turning it into a function, so i can plug it into a ui later my next move is probably learning something about how python ui is made. like pyqt6 or sum."}, {"post_id": 23644, "ts": "2026-07-06T18:39:33Z", "hours": 2.3561, "text": "hey, i’m building a very fun thingy. you upload a photo into an app, ai processes it. then it creates force feedback description which is later made true by C++ script. i’ve posted the first version that is not really good, but we all start somewhere, don’t we?"}]...
|
Title: experimoza by @kolon3d | Stardance
Devlogs Title: experimoza by @kolon3d | Stardance
Devlogs:
hey, i’m building a very fun thingy. you upload a photo into an app, ai processes it. then it creates force feedback description which is later made true by C++ script. i’ve posted the first version that is not really good, but we all start somewhere, don’t we?
devlog #2 well this is my first normal devlog, so probably i’ll describe what my project does again. experimoza turns a photo into a 10-second AI-generated force-feedback scene for a racing wheel. it uses gemini to translate the image’s mood and texture into physical wheel motion, so you can literally feel a picture through the steering wheel. btw experimoza comes from the word “experience” yk?? i’ve switched from moza sdk and c++ to py_directinput_ffb, which is a python binding for Direct Input Force Feedback (FFB) using ctypes and comtypes by Wanjie Sun, big shoutout to him. in the previous version gemini 3.1 flash lite was just creating json file with the description of conditions, which resulted in a looped boring ffb. now instead of creating bland and boring force feedback, it writes python code and thinks of it as a “poem” in force feedback. feels much more fun and creative to use. i also made the ai ffb generation process reusable by turning it into a function, so i can plug it into a ui later my next move is probably learning something about how python ui is made. like pyqt6 or sum.
devlog #3 i’ve implemented first UI for this piece of software and found my “mascot” this was not that easy LOLLLL this is my first time dealing with UIs in python. first, i tried to get familiar with pyside6, but after 40 minutes i understood that i’d need hours, days or even week to fully understand it. then i started looking for more beginner-friendly alternatives and found ctk or custom tkinter. it was much easier to understand and chatgpt codex helped me find my mistakes a lot :p as a result we have: usable UI every part of my project in one place funny pirate with a helm that moves exactly like your irl wheel appropriate theme i guess that tomorrow i’ll change my theme to something brown, i want experimoza to look like a ship deck haha. + some debugging with chatgpt sol, if i’ll have access to it. after that i think we are ready to ship
FINAL devlog #4 changes in UI, prompt review let’s talk about UI first, this is a complete revamp i’ve changed the theme from the default custom tkinter one to brown. i wanted my app to look like a ship deck. changed button layout a bit next i’ve written the oscilloscope using tkinter canvas. it shows the amount of force the app applies using different effects. also the pirate part was changed. i’ve added the “ay carumba” text for shits and giggles. furthermore, now pirate and the helm is one sprite. pirate becomes furious now if he spins too quickly. i’ve painted the sprite in Paint painted an icon too. guess how? now a bit of a technical part reworked the prompt completely, chatgpt helped me tbh. now it generates very different scenes wrote nice readme.md and finalised the repo
Ships:
welp, experimoza is finally shipped experimoza takes an image, sends it to gemini, and turns it into a 10-second force feedback scene for a racing wheel. instead of only vibrating, the wheel actually pulls, moves, changes direction, resists you, and tries to match the feeling of the picture. the most challenging part was working with directinput and making all the effects behave properly together. i also spent a lot of time rewriting the prompt because the generated scenes were either too similar or just made the wheel stand still and vibrate 💀 i’m really proud that this stupid idea actually works and you can literally feel a picture through a steering wheel. i’m also quite happy with the ship deck ui, the live oscilloscope, and especially the furious pirate i painted in microsoft paint to test it, you need windows, python 3.10+, a directinput-compatible force feedback wheel, and a gemini api key. install the dependencies, put your key into .env , run ui.py , drop in an image, and press FEEL THE IMAGE . it was built and tested using my moza r3. please start carefully because the wheel can move unexpectedly. there is a PANIC STOP :0 button for a reason....
|
1793728321.4490254
|
1793814721.4490254
|
|
67134
|
My awesome macropad! by @ez_schnee | Stardance
|
ez_schnee
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: My awesome macropad! by @ez_schnee | Starda Title: My awesome macropad! by @ez_schnee | Stardance...
|
1793728322.6661627
|
1794333122.6661627
|
|
56618
|
Birthdau special by @Kantarajluitel | Stardance
|
Kantarajluitel
|
1
|
4.13
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-31T04:46:47Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I just made roasting custom photo and text 3d birthday musem", "repo": "https://github.com/susantedit/birthday-special", "demo": "https://birthday-paarty.netlify.app/"}]...
|
[{"post_id": 60296, "ts": "202 [{"post_id": 60296, "ts": "2026-09-02T15:53:34Z", "hours": 3.1297, "text": "I’ve completely reworked and elevated the Birthday Memory Museum into a bespoke, interactive 3D virtual exhibition crafted with a warm “Velvet Noir & Polished Brass Atelier” aesthetic. Key Highlights & New Features: Bespoke Visual & Architectural Redesign : Replaced generic styles with a dark velvet and candlelight color palette, frosted brass glassmorphism panels, and classic gallery typography ( Cinzel , Playfair Display , and Caveat cursive). Calibrated volumetric ray beams, soft airborne dust motes, and floor mirror reflections for a cinematic experience. Interactive Polaroid Memory Flip & Reactions : Visitors inspecting framed memories can flip cards to read handwritten vintage postcards on the back with custom timestamps. Added interactive reaction badges ( Love , Cheers , Party , Sparkle , Cake ) that stick to memories with playful animations. Magic Wand Sparklers & Fireworks Celebration : A smooth 60 FPS golden fairy-dust sparkler trail follows the visitor’s cursor and touch gestures. Top-bar fireworks launcher with keyboard shortcut ( F ) to trigger multi-colored aerial bursts. Atmospheric Gallery Mood Controller : Added a dynamic lighting switcher to change the museum ambiance on the fly ( Candlelit Velvet , Starlit Galaxy , Rose Gold , and Vintage Sepia ). Keepsake Souvenir Card Exporter & Grand Finale : Added a 1-click souvenir snapshot generator that renders a framed Polaroid keepsake card of the 3D scene with personalized calligraphy for immediate download. Confetti cannon burst and real microphone candle-blowing interaction at the birthday cake finale. Fluid Multi-Input Scroll & Performance Engine : Responsive navigation supporting smooth mouse wheel increments, mobile swipe touch gestures, trackpad panning, and arrow keys. 3-tier adaptive GPU governor guaranteeing locked 60 FPS across low-end mobile devices and high-end desktop screens. Clean Code & Comprehensive Documentation : Fully rewritten, clean codebase stripped of all AI boilerplate and emojis, accompanied by a detailed README guide for the Studio curator workshop and 1-click Netlify publishing."}, {"post_id": 58659, "ts": "2026-08-31T04:46:11Z", "hours": 1.2589, "text": "🎂 Birthday Memory MuseumTurn someone’s photos into a 3D museum they can walk through on their phone.They open a link. They’re standing in a quiet gallery. As they scroll, photos of the two of you drift past on the walls, each with a little caption. Music plays. At the end of the corridor there’s a birthday cake with candles still lit — and they blow into their phone’s microphone to put them out. Then your letter appears.You build the gift on your computer. You send one link. That’s it.Do I need to know how to code?No. Not one bit.You will type a few lines into a black window. You don’t need to understand them — just copy them exactly as written. If you can follow a recipe, you can do this.You’ll need about 30 minutes the first time.What you need before startingA Windows PC or a MacAn internet connectionThe photos and videos you want to useA song, if you want music (optional)That’s all. You do not need VS Code, or any programmer tools, or a paid account anywhere."}]...
|
Title: Birthdau special by @Kantarajluitel | Stard Title: Birthdau special by @Kantarajluitel | Stardance
Devlogs:
🎂 Birthday Memory MuseumTurn someone’s photos into a 3D museum they can walk through on their phone.They open a link. They’re standing in a quiet gallery. As they scroll, photos of the two of you drift past on the walls, each with a little caption. Music plays. At the end of the corridor there’s a birthday cake with candles still lit — and they blow into their phone’s microphone to put them out. Then your letter appears.You build the gift on your computer. You send one link. That’s it.Do I need to know how to code?No. Not one bit.You will type a few lines into a black window. You don’t need to understand them — just copy them exactly as written. If you can follow a recipe, you can do this.You’ll need about 30 minutes the first time.What you need before startingA Windows PC or a MacAn internet connectionThe photos and videos you want to useA song, if you want music (optional)That’s all. You do not need VS Code, or any programmer tools, or a paid account anywhere.
I’ve completely reworked and elevated the Birthday Memory Museum into a bespoke, interactive 3D virtual exhibition crafted with a warm “Velvet Noir & Polished Brass Atelier” aesthetic. Key Highlights & New Features: Bespoke Visual & Architectural Redesign : Replaced generic styles with a dark velvet and candlelight color palette, frosted brass glassmorphism panels, and classic gallery typography ( Cinzel , Playfair Display , and Caveat cursive). Calibrated volumetric ray beams, soft airborne dust motes, and floor mirror reflections for a cinematic experience. Interactive Polaroid Memory Flip & Reactions : Visitors inspecting framed memories can flip cards to read handwritten vintage postcards on the back with custom timestamps. Added interactive reaction badges ( Love , Cheers , Party , Sparkle , Cake ) that stick to memories with playful animations. Magic Wand Sparklers & Fireworks Celebration : A smooth 60 FPS golden fairy-dust sparkler trail follows the visitor’s cursor and touch gestures. Top-bar fireworks launcher with keyboard shortcut ( F ) to trigger multi-colored aerial bursts. Atmospheric Gallery Mood Controller : Added a dynamic lighting switcher to change the museum ambiance on the fly ( Candlelit Velvet , Starlit Galaxy , Rose Gold , and Vintage Sepia ). Keepsake Souvenir Card Exporter & Grand Finale : Added a 1-click souvenir snapshot generator that renders a framed Polaroid keepsake card of the 3D scene with personalized calligraphy for immediate download. Confetti cannon burst and real microphone candle-blowing interaction at the birthday cake finale. Fluid Multi-Input Scroll & Performance Engine : Responsive navigation supporting smooth mouse wheel increments, mobile swipe touch gestures, trackpad panning, and arrow keys. 3-tier adaptive GPU governor guaranteeing locked 60 FPS across low-end mobile devices and high-end desktop screens. Clean Code & Comprehensive Documentation : Fully rewritten, clean codebase stripped of all AI boilerplate and emojis, accompanied by a detailed README guide for the Studio curator workshop and 1-click Netlify publishing.
Ships:
I just made roasting custom photo and text 3d birthday musem...
|
1793728323.536671
|
1794592323.536671
|
|
67135
|
my APOD site by @rk9312038 | Stardance
|
rk9312038
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: my APOD site by @rk9312038 | Stardance
|
1793728324.4173958
|
1794333124.4173958
|
|
57781
|
auraOS by @MrOstrichStudios | Stardance
|
MrOstrichStudios
|
2
|
9.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-30T15:34:02Z", "hours": 2.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "auraOS a webOS made for people with AURA ! its a cool grayscale gigachad-themed webOS with its cool apps like Notes, Files, Calendar (has my birthday pinned!) and more with a working terminal (has an easter egg) and an exclusive app: AURA METER TO SHOW OFF UR AURA!! (ik its meme but i like meme so no argument ig?!)", "repo": "https://github.com/MrOstrichStudios/auraOS", "demo": "https://mrostrichstudios.github.io/auraOS/"}, {"ship_num": 2, "ts": "2026-09-05T12:18:19Z", "hours": 7.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "auraOS™ is a webOS I made for people with AURA or for those who want to be chads! Features: -> A slick blur design -> Obsly gigachad theme (almighty master dude) ->have a functionable notes, calendar and files apps -> CUSTOM: Aura Meter - showcase ya aura to other chads! Terminal - lesdo some funky stuff! (write “aura” in terminal for a surprise!) hardest part was trying to code all this stuff so.. i did some vibecoding (ill be honest… alot and I MEAN ALOT.. but ya its cool!)", "repo": "https://github.com/MrOstrichStudios/auraOS", "demo": "https://mrostrichstudios.github.io/auraOS/"}]...
|
[{"post_id": 62322, "ts": "202 [{"post_id": 62322, "ts": "2026-09-05T17:04:17Z", "hours": 2.4056, "text": "devlog #5 ->listened to the sir who reviewed my ship -> added a more custom feel (basically just made everything like minecraft by having no curves ) and it looks good and remade the Readme from scratch ->grayscale! (im batman but spiderman’s my fav) ->customized the text (especially with abt-dev.txt and in terminal and notes) -> i will commit and push this now and try to ship it again (i feel sleepy and i got homework to do i have school!) FINAL LOOK"}, {"post_id": 62140, "ts": "2026-09-05T12:09:13Z", "hours": 1.4069, "text": "devlog #4 ->added the apps ->vibecoded the interfaces and new apps ->made a functionable terminal with some commands (write “aura” in terminal for a suprise) ->did an overhaul with vibecoding which looks good"}, {"post_id": 61465, "ts": "2026-09-04T12:12:07Z", "hours": 2.9158, "text": "devlog #3 added some UI changes and animation for open/close window (looks beautiful ^_^)"}, {"post_id": 61258, "ts": "2026-09-04T03:15:24Z", "hours": 0.3369, "text": "devlog #2 learned how to fix stuff and finally added some icons!!! P.S. - it has aura"}, {"post_id": 61244, "ts": "2026-09-04T02:42:32Z", "hours": 1.9942, "text": "auraOS looks beautiful guyz ^_^ (learned alot of things) up since 6am :)"}]...
|
Title: auraOS by @MrOstrichStudios | Stardance
De Title: auraOS by @MrOstrichStudios | Stardance
Devlogs:
auraOS looks beautiful guyz ^_^ (learned alot of things) up since 6am :)
devlog #2 learned how to fix stuff and finally added some icons!!! P.S. - it has aura
devlog #3 added some UI changes and animation for open/close window (looks beautiful ^_^)
devlog #4 ->added the apps ->vibecoded the interfaces and new apps ->made a functionable terminal with some commands (write “aura” in terminal for a suprise) ->did an overhaul with vibecoding which looks good
devlog #5 ->listened to the sir who reviewed my ship -> added a more custom feel (basically just made everything like minecraft by having no curves ) and it looks good and remade the Readme from scratch ->grayscale! (im batman but spiderman’s my fav) ->customized the text (especially with abt-dev.txt and in terminal and notes) -> i will commit and push this now and try to ship it again (i feel sleepy and i got homework to do i have school!) FINAL LOOK
Ships:
auraOS™ is a webOS I made for people with AURA or for those who want to be chads! Features: -> A slick blur design -> Obsly gigachad theme (almighty master dude) ->have a functionable notes, calendar and files apps -> CUSTOM: Aura Meter - showcase ya aura to other chads! Terminal - lesdo some funky stuff! (write “aura” in terminal for a surprise!) hardest part was trying to code all this stuff so.. i did some vibecoding (ill be honest… alot and I MEAN ALOT.. but ya its cool!)
auraOS a webOS made for people with AURA ! its a cool grayscale gigachad-themed webOS with its cool apps like Notes, Files, Calendar (has my birthday pinned!) and more with a working terminal (has an easter egg) and an exclusive app: AURA METER TO SHOW OFF UR AURA!! (ik its meme but i like meme so no argument ig?!)...
|
1793728325.3067274
|
1793814725.3067274
|
|
67136
|
Rocket with parachute deployment by @aIbert | Star Rocket with parachute deployment by @aIbert | Stardance...
|
aIbert
|
0
|
0.0
|
0
|
[]
|
[]
|
Title: Rocket with parachute deployment by @aIbert Title: Rocket with parachute deployment by @aIbert | Stardance...
|
1793728326.5117211
|
1794333126.5117211
|
|
67137
|
Autonomously landing TVC rocket by @sangyupl511 | Autonomously landing TVC rocket by @sangyupl511 | Stardance...
|
sangyupl511
|
1
|
43.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-29T01:17:41Z", "hours": 43.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made an Autonomously Landing Model Rocket that predicts its orientation with accelerometers and gyroscopes along with calculating its height with its barometer. The rocket calculates the flight state that it is in to match its operations to such. The most challenging part was getting a specific mechanism to work after I thought I had designed it perfectly. For example, the parachute mechanism’s first 3 versions did not work as they all snapped under tension sooner or later. For each version I thought I had finally fixed the issue, but they kept coming back, until the 4th version where I used a steel rod that was inserted into a hole to take the shear of the spring force. I’m most proud of the fact that I didn’t blow anything up. To be honest, this is only my second project and I think I bit a little bit more than I could chew. For some of the electronic components I wired them completely wrong, like the capacitor connecting the Li-Ion to the power rail, which had its polarity switch. Thankfully I noticed them before I plugged any voltage into the system, preventing my house from potentially catching on fire. One thing I would like to emphasize before testing my project is that safety is the highest priority. There are a lot of components in this project that may be potentially dangerous, such as the rocket engine motors, or the Li-ion batteries being too close to the exhaust fire. Please make sure to have a parent or guardian or just another person nearby to watch you and ensure your safety. That’s it! Otherwise have fun with this project and good luck!", "repo": "https://github.com/trooper7652-commits/RocketFC", "demo": ""}]...
|
[{"post_id": 84003, "ts": "202 [{"post_id": 84003, "ts": "2026-10-29T01:06:20Z", "hours": 5.0008, "text": "Created wiring diagram and PCB schematic in KiCad. I stuck with the protoboard design though because it works well I didn’t see any real nor distinct advantage of getting a PCB over just using what I already have"}, {"post_id": 83344, "ts": "2026-10-27T19:16:49Z", "hours": 3.6839, "text": "I finished building the new TVC mount. A piece of the 3D print snapped off but I just hot glued and then epoxied it back on"}, {"post_id": 82725, "ts": "2026-10-25T17:48:21Z", "hours": 5.3678, "text": "I made another version of the parachute bulkhead and ejection piston. The new version uses a rack and pinion system with a steel bar, so the actual component with stress of it is not the servo horn itself. Additionally, I can simulations with claude code that simulated 2,000 flights with an Apogee F10 for the ascent motor instead of the Estes F15 (there is still an F15 for the descent motor). The reason for the switch is that the F15 descent motor was too strong for the velocity that the rocket was landing at. Either the descent motor set off too early and the landing velocity was too much or the motor set off too late and the rocket sprung back up when it hit the ground. With the new stronger F10 motor, the rocket achieves a greater apogee so the velocity that the rocket comes down at is greater, allowing the F15 to actually use its thrust slowing the rocket down sufficiently instead of being too strong for the rocket. Below is a photo of the outcomes for the 2,000 simulated flights."}, {"post_id": 81671, "ts": "2026-10-22T00:36:43Z", "hours": 1.0333, "text": "I performed a static test with a rocket motor. Everything went well, except that the thrust vector motor tube melted due to the heat of the motor. Looks like I need to print a new motor tube."}, {"post_id": 81405, "ts": "2026-10-21T04:39:48Z", "hours": 0.3336, "text": "I created version 4 of the parachute bulkhead piston. This version had a longer hook and the sides were also shaved down so that the piston fit easier into the tube. I also added more walls and used a gyroid infill in the slicer this time to increase the structural integrity of the part before I sent it to the 3D printer."}, {"post_id": 81146, "ts": "2026-10-20T02:29:29Z", "hours": 1.45, "text": "I replaced the lower leg ring with the improved design and I also added funtak to the bottom where the legs and ring contact. In theory, the funtak should slow down and absorb the impact/velocity of the legs before they hit the bottom. I added the funtak because in the last lower leg ring design, the velocity that the legs were coming down at snapped the platform below it."}, {"post_id": 80860, "ts": "2026-10-19T02:18:06Z", "hours": 1.7456, "text": "I installed the new avionics holder today. However, when I was testing the lower leg ring, I found a weakness in the design. The ring has snapped where the legs came into contact with it. I failed to see the issue with my previous design where the 90 degree angle that the leg platform and the ring made was a point where the 3D print was fragile and could snap easily. So, I redesigned the lower leg ring so that the is a 0.25in fillet that tapers toward 0.125in at the edge along the edge where the 3D print had previously snapped. Below is a picture of the snapped leg ring."}, {"post_id": 80545, "ts": "2026-10-18T04:02:46Z", "hours": 2.9158, "text": "I added the avionics and avionics holder into the lower body tube of the rocket. After that I attached the top tube to the bottom. I then performed multiple drop tests testing a straight down vertical drop, lateral and vertical drop, and spinning drop. I found that the rocket performed really well on the lateral and vertical lateral drops which I’m really proud of because the landing pads were doing their jobs of absorbing the shock. However, I found that on spinning drops, the rocket had a tendency to tip over, but not enough to fall. I think reducing the angular velocity about the body tube is something that I should look out for when performing my test flights."}, {"post_id": 80027, "ts": "2026-10-16T00:51:22Z", "hours": 1.8667, "text": "I installed the new servo arm into the spring system and tested it, but in one of the trials, the crook where the servo arm is placed into the bulkhead broke off, so I had to redesign the bulkhead so that the fillet value on the corner where the bulkhead crook broke off to a greater value. The increased value on the fillet will hopefully increase the crook’s resistance to snapping. Also I had to solder together a female XT-30 connector port to another wire that plugged into the Li-ion charger because I didn’t have the adapter. The old wire was a female XT-60 connector which didn’t work with my male XT-30 connector. I also epoxied the bungee cord connected to the nose cone to the upper body tube."}, {"post_id": 79709, "ts": "2026-10-15T05:03:35Z", "hours": 2.2167, "text": "I finished drilling out the holes in the body and I installed the spring mechanism into the tube. The arm of the servo was starting to become detached due to the stress that it experienced when holding back the spring’s force when locked, so I wrapped wire around it and epoxied the arm again to make the arm strong again. Next step is to find a place to attach the nose cone and confirm the spring mechanism actually works with a static test with a loaded parachute."}, {"post_id": 79246, "ts": "2026-10-13T05:54:23Z", "hours": 1.3833, "text": "Today I got the spring mechanism for ejecting the parachute to work reliably. I made a few improvements. Specifically, I made a new top bulkhead for the ejection system that featured a latch/crook for the servo arm to swing into when the spring is compressed and ready to be locked into. In contrast, the previous version had the servo arm swing directly in between the spring coils, which led to inconsistency and jammed ejections. Overall, today was a pretty productive day and I’m happy I got the mechanism finished since I thought I would’ve taken a lot longer on it."}, {"post_id": 78951, "ts": "2026-10-12T05:33:59Z", "hours": 1.9169, "text": "I tested the spring mechanism that launches the parachute out of the top rocket tube. I cut open an old tube so that I could see the length that the spring compresses. Still need to verify the system works and touch up on the actual mechanism."}, {"post_id": 78643, "ts": "2026-10-11T05:00:49Z", "hours": 1.3567, "text": "Took apart old version of the spring mechanism on the parachute bulkhead to use the spring on my next iteration of parachute bulkhead. Below is a picture of the parachute bulkhead before I took it apart."}, {"post_id": 78423, "ts": "2026-10-10T19:24:12Z", "hours": 3.2831, "text": "I worked on the parachute spring and more importantly, the e-matches that ignite the descent motor and cut the rubber band holding the legs together, to then release the legs to landing. Today was most likely the biggest leap in the project because I finally got the e-matches to not only ignite, but also ignite of command with little to no delay. I still need to work a little more on the parachute spring ejection system, but that’s as expected because I only started that component a few days ago. (Also peep the white monster in the corner)."}, {"post_id": 78184, "ts": "2026-10-09T22:11:13Z", "hours": 0.6336, "text": "I glued the landing pads onto the legs of the rocket. After expoxying them, I tested the landing leg deployment and how it would land and they legs worked!"}, {"post_id": 77752, "ts": "2026-10-08T05:03:37Z", "hours": 1.5, "text": "I wired the two positive wires from the second 7.4V LiPo and negative wires to the LiPo negative and Teensy 4.1 ground for each of the two MOSFET gates."}, {"post_id": 77713, "ts": "2026-10-08T01:38:33Z", "hours": 1.95, "text": "Today I attached the legs on the rocket and confirmed the leg deployment system worked with one of the four leg structures. Next step is to epoxy the landing pads onto the ends of the legs."}, {"post_id": 76892, "ts": "2026-10-04T23:02:18Z", "hours": 1.0725, "text": "Added servo that controls the parachute ejection system. The servo will release a spring that will then eject the parachute out. Also I needed to cut and add additional wire and then shrink tube it bc the wires were too short."}, {"post_id": 76546, "ts": "2026-10-03T22:06:15Z", "hours": 1.8833, "text": "Soldered the wires connecting to MOSFET to ignite the descent motor. Tried to wire the additionally connected wires to create the spark, but could not complete today."}, {"post_id": 76517, "ts": "2026-10-03T19:53:27Z", "hours": 0.5339, "text": "Build the bulkhead that will be used to platform the black powder charge or mechanical spring parachute ejection system."}, {"post_id": 75780, "ts": "2026-10-01T02:58:20Z", "hours": 1.55, "text": "Today, I mounted the thrust vector control mount onto the lower body frame of the rocket. Still need to confirm it works tho, for next work session…"}]...
|
Title: Autonomously landing TVC rocket by @sangyup Title: Autonomously landing TVC rocket by @sangyupl511 | Stardance
Devlogs:
Today, I mounted the thrust vector control mount onto the lower body frame of the rocket. Still need to confirm it works tho, for next work session…
Build the bulkhead that will be used to platform the black powder charge or mechanical spring parachute ejection system.
Soldered the wires connecting to MOSFET to ignite the descent motor. Tried to wire the additionally connected wires to create the spark, but could not complete today.
Added servo that controls the parachute ejection system. The servo will release a spring that will then eject the parachute out. Also I needed to cut and add additional wire and then shrink tube it bc the wires were too short.
Today I attached the legs on the rocket and confirmed the leg deployment system worked with one of the four leg structures. Next step is to epoxy the landing pads onto the ends of the legs.
I wired the two positive wires from the second 7.4V LiPo and negative wires to the LiPo negative and Teensy 4.1 ground for each of the two MOSFET gates.
I glued the landing pads onto the legs of the rocket. After expoxying them, I tested the landing leg deployment and how it would land and they legs worked!
I worked on the parachute spring and more importantly, the e-matches that ignite the descent motor and cut the rubber band holding the legs together, to then release the legs to landing. Today was most likely the biggest leap in the project because I finally got the e-matches to not only ignite, but also ignite of command with little to no delay. I still need to work a little more on the parachute spring ejection system, but that’s as expected because I only started that component a few days ago. (Also peep the white monster in the corner).
Took apart old version of the spring mechanism on the parachute bulkhead to use the spring on my next iteration of parachute bulkhead. Below is a picture of the parachute bulkhead before I took it apart.
I tested the spring mechanism that launches the parachute out of the top rocket tube. I cut open an old tube so that I could see the length that the spring compresses. Still need to verify the system works and touch up on the actual mechanism.
Today I got the spring mechanism for ejecting the parachute to work reliably. I made a few improvements. Specifically, I made a new top bulkhead for the ejection system that featured a latch/crook for the servo arm to swing into when the spring is compressed and ready to be locked into. In contrast, the previous version had the servo arm swing directly in between the spring coils, which led to inconsistency and jammed ejections. Overall, today was a pretty productive day and I’m happy I got the mechanism finished since I thought I would’ve taken a lot longer on it.
I finished drilling out the holes in the body and I installed the spring mechanism into the tube. The arm of the servo was starting to become detached due to the stress that it experienced when holding back the spring’s force when locked, so I wrapped wire around it and epoxied the arm again to make the arm strong again. Next step is to find a place to attach the nose cone and confirm the spring mechanism actually works with a static test with a loaded parachute.
I installed the new servo arm into the spring system and tested it, but in one of the trials, the crook where the servo arm is placed into the bulkhead broke off, so I had to redesign the bulkhead so that the fillet value on the corner where the bulkhead crook broke off to a greater value. The increased value on the fillet will hopefully increase the crook’s resistance to snapping. Also I had to solder together a female XT-30 connector port to another wire that plugged into the Li-ion charger because I didn’t have the adapter. The old wire was a female XT-60 connector which didn’t work with my male XT-30 connector. I also epoxied the bungee cord connected to the nose cone to the upper body tube.
I added the avionics and avionics holder into the lower body tube of the rocket. After that I attached the top tube to the bottom. I then performed multiple drop tests testing a straight down vertical drop, lateral and vertical drop, and spinning drop. I found that the rocket performed really well on the lateral and vertical lateral drops which I’m really proud of because the landing pads were doing their jobs of absorbing the shock. However, I found that on spinning drops, the rocket had a tendency to tip over, but not enough to fall. I think reducing the angular velocity about the body tube is something that I should look out for when performing my test flights.
I installed the new avionics holder today. However, when I was testing the lower leg ring, I found a weakness in the design. The ring has snapped where the legs came into contact with it. I failed to see the issue with my previous design where the 90 degree angle that the leg platform and the ring made was a point where the 3D print was fragile and could snap easily. So, I redesigned the lower leg ring so that the is a 0.25in fillet that tapers toward 0.125in at the edge along the edge where the 3D print had previously snapped. Below is a picture of the snapped leg ring.
I replaced the lower leg ring with the improved design and I also added funtak to the bottom where the legs and ring contact. In theory, the funtak should slow down and absorb the impact/velocity of the legs before they hit the bottom. I added the funtak because in the last lower leg ring design, the velocity that the legs were coming down at snapped the platform below it.
I created version 4 of the parachute bulkhead piston. This version had a longer hook and the sides were also shaved down so that the piston fit easier into the tube. I also added more walls and used a gyroid infill in the slicer this time to increase the structural integrity of the part before I sent it to the 3D printer.
I performed a static test with a rocket motor. Everything went well, except that the thrust vector motor tube melted due to the heat of the motor. Looks like I need to print a new motor tube.
I made another version of the parachute bulkhead and ejection piston. The new version uses a rack and pinion system with a steel bar, so the actual component with stress of it is not the servo horn itself. Additionally, I can simulations with claude code that simulated 2,000 flights with an Apogee F10 for the ascent motor instead of the Estes F15 (there is still an F15 for the descent motor). The reason for the switch is that the F15 descent motor was too strong for the velocity that the rocket was landing at. Either the descent motor set off too early and the landing velocity was too much or the motor set off too late and the rocket sprung back up when it hit the ground. With the new stronger F10 motor, the rocket achieves a greater apogee so the velocity that the rocket comes down at is greater, allowing the F15 to actually use its thrust slowing the rocket down sufficiently instead of being too strong for the rocket. Below is a photo of the outcomes for the 2,000 simulated flights.
I finished building the new TVC mount. A piece of the 3D print snapped off but I just hot glued and then epoxied it back on
Created wiring diagram and PCB schematic in KiCad. I stuck with the protoboard design though because it works well I didn’t see any real nor distinct advantage of getting a PCB over just using what I already have
Ships:
I made an Autonomously Landing Model Rocket that predicts its orientation with accelerometers and gyroscopes along with calculating its height with its barometer. The rocket calculates the flight state that it is in to match its operations to such. The most challenging part was getting a specific mechanism to work after I thought I had designed it perfectly. For example, the parachute mechanism’s first 3 versions did not work as they all snapped under tension sooner or later. For each version I thought I had finally fixed the issue, but they kept coming back, until the 4th version where I used a steel rod that was inserted into a hole to take the shear of the spring force. I’m most proud of the fact that I didn’t blow anything up. To be honest, this is only my second project and I think I bit a little bit more than I could chew. For some of the electronic components I wired them completely wrong, like the capacitor connecting the Li-Ion to the power rail, which had its polarity switch. Thankfully I noticed them before I plugged any voltage into the system, preventing my house from potentially catching on fire. One thing I would like to emphasize before testing my project is that safety is the highest priority. There are a lot of components in this project that may be potentially dangerous, such as the rocket engine motors, or the Li-ion batteries being too close to the exhaust fire. Please make sure to have a parent or guardian or just another person nearby to watch you and ensure your safety. That’s it! Otherwise have fun with this project and good luck!...
|
1793728327.3875144
|
1793814727.3875144
|
|
22748
|
Website by @Arnavv | Stardance
|
Arnavv
|
1
|
21.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-07-17T11:33:54Z", "hours": 21.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a professional MVP website for a business. This business is about providing essential support to other businesses, so if any of you need some support, don’t hesitate to contact :). Also the website in this project is static as I haven’t bought a domain yet, however all of the code for a dynamic, clean site exists in the files. Have fun exploring!", "repo": "https://github.com/Arnav-Barhate/Website", "demo": "https://arnav-barhate.github.io/Website/index.html"}]...
|
[{"post_id": 27053, "ts": "202 [{"post_id": 27053, "ts": "2026-07-12T07:47:13Z", "hours": 6.2972, "text": "Final adjustments"}, {"post_id": 19810, "ts": "2026-07-01T06:17:29Z", "hours": 6.6403, "text": "Smooth Animations: Added transitions so the site feels fluid and alive when you navigate around, instead of just being static. ________________________________________________________________________________Fresh Imagery: Uploaded new pictures . _______________________________________________________________________________ UI Glow-Up: Tweaked the layout, colors, and spacing so everything looks clean, polished, and looks great on both desktop and mobile. ________________________________________________________________________________Bug Fixes: Hunted down and squashed those annoying layout glitches that were breaking the mobile view. It’s running much smoother now. _______________________________________________________________________________ Auto-Emailing: Started working on the backend to set up automated emails. Soon, the site will handle things like confirmations and updates completely on its own."}, {"post_id": 16268, "ts": "2026-06-26T13:33:32Z", "hours": 2.4844, "text": "Just experimenting and changing texts and brainstorming for the text."}, {"post_id": 12952, "ts": "2026-06-21T06:13:01Z", "hours": 4.0042, "text": "Just added support for graphs and cool equations if i ever need them in the future."}, {"post_id": 12845, "ts": "2026-06-21T01:07:13Z", "hours": 0.8575, "text": "Just keep working on getting everything set up. Just manipulating the css to fit, and fixed the scrollbar!"}, {"post_id": 12476, "ts": "2026-06-20T11:31:48Z", "hours": 0.2836, "text": "I’m just working on getting everything set up for the website making process. I’ve just copied over a css and html base script as a template which i will be modifying now!"}]...
|
Title: Website by @Arnavv | Stardance
Devlogs:
I’ Title: Website by @Arnavv | Stardance
Devlogs:
I’m just working on getting everything set up for the website making process. I’ve just copied over a css and html base script as a template which i will be modifying now!
Just keep working on getting everything set up. Just manipulating the css to fit, and fixed the scrollbar!
Just added support for graphs and cool equations if i ever need them in the future.
Just experimenting and changing texts and brainstorming for the text.
Smooth Animations: Added transitions so the site feels fluid and alive when you navigate around, instead of just being static. ________________________________________________________________________________Fresh Imagery: Uploaded new pictures . _______________________________________________________________________________ UI Glow-Up: Tweaked the layout, colors, and spacing so everything looks clean, polished, and looks great on both desktop and mobile. ________________________________________________________________________________Bug Fixes: Hunted down and squashed those annoying layout glitches that were breaking the mobile view. It’s running much smoother now. _______________________________________________________________________________ Auto-Emailing: Started working on the backend to set up automated emails. Soon, the site will handle things like confirmations and updates completely on its own.
Final adjustments
Ships:
I made a professional MVP website for a business. This business is about providing essential support to other businesses, so if any of you need some support, don’t hesitate to contact :). Also the website in this project is static as I haven’t bought a domain yet, however all of the code for a dynamic, clean site exists in the files. Have fun exploring!...
|
1793728328.63549
|
1793814728.63549
|
|
21839
|
Slowfetch by @tonymac129 | Stardance
|
tonymac129
|
1
|
10.0
|
107
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-23T20:46:29Z", "hours": 10.0, "multiplier": 10.66, "payout": 107, "blessing": "neutral", "text": "I made Slowfetch, a simple, lightweight, and fast (slow) Fastfetch/Neofetch alternative for Linux operating systems that fetches and displays a list of organized useful system and hardware information and runtime metrics, as well as an ASCII logo of the distro. This is my first Rust project, and I didn’t have any ideas for what to build since I barely knew anything, but through this project, I gained a ton of experience working with Rust basics, interacting with the Linux file system, using Cargo and Rust libraries, and deploying the program as a working executable release on GitHub. I’m really proud of how everything turned out, especially the ASCII logos and the colors, that the program looks very polished and functional. Building this project also taught me a lot about how the kernel and command line programs actually function under the hood.", "repo": "https://github.com/tonymac129/slowfetch", "demo": "https://github.com/tonymac129/slowfetch/releases"}]...
|
[{"post_id": 14646, "ts": "202 [{"post_id": 14646, "ts": "2026-06-23T20:37:00Z", "hours": 0.7233, "text": "Polishing & final touches! Slowfetch is now finally finished; the logos are colored and print out properly and all the statistics are organized and displayed accurately! Thanks to @crushedflea ’s contribution, the ASCII logo constants are now merged with the main file and a few other display bugs are fixed Adding a “–censor” or the shorthand “-c” flag now censors the public IP Added a GitHub release so you can actually download and use Slowfetch as an executable program! Updated the README so it’s more informative and contains instructions for setting up the development environment for Slowfetch or downloading the GitHub release"}, {"post_id": 13332, "ts": "2026-06-21T20:52:13Z", "hours": 2.3514, "text": "More stats & new logos! Added a disk storage usage list item that has a similar format as the memory display (used, total, and percentage) and correctly converts to the most appropriate unit. This was a lot harder to set up than fetching the memory since I had to use an external library and do some extra stuff Added private and public IPs, current locale, and current battery percentage Added new correctly colored and sized ASCII style logos for Ubuntu and Fedora. I just started VMs for these, copied Fastfetch’s output logos, colored them and slightly modified them to better fit Slowfetch Added the color blocks from Fastfetch that render 10 different colors at the bottom of the list so you can see the colors your monitor displays Slowfetch now automatically detects the current distro and renders the correct ASCII logo, and if it isn’t Debian, Arch, Fedora, or Ubuntu the default Linux logo is the fallback (since Slowfetch only supports Linux) Cleaned up the colors and reorganized the list items into sections for better organization and readability"}, {"post_id": 12319, "ts": "2026-06-20T03:14:54Z", "hours": 1.8122, "text": "ASCII logos!!! Added the iconic ASCII distro logos from fastfetch/neofetch so you can better flex your operating system and nerdiness! Currently only Arch, Debian, and Linux ASCII logos are added with the symbols mostly correctly color coded I had to edit the logos quite a bit instead of just copying them from fastfetch’s output since they need to fit in my number of lines and keep the correct formatting Slowfetch can’t detect the distro and render the correct logo yet, so right now you can only pass it as a flag (with either arch, debian, or linux) to see the output, otherwise it doesn’t show a logo Added some placeholder list items (ip, locale, display), will be implemented soon I decided to only make Slowfetch support the major 4 distros I mentioned above since it’s too much of a pain (is it even possible?) to access Windows and macOS’ info"}, {"post_id": 12072, "ts": "2026-06-19T18:14:33Z", "hours": 1.8786, "text": "Hardware stats and shell Slowfetch now displays the current memory usage out of the device’s total RAM and shows the usage percentage. It also converts the unit automatically; GB is the default and only uses MB/KB if current usage is less than 500 MB/KB It also reads the CPU’s info, model, and specifications from the /proc directory and displays the information alongside memory Current shell and the number of packages installed on the OS are also displayed using some string manipulation Getting the GPU info is a bit trickier since it has to run the lspci command, capture its output, and filter through it to get the exact name of the chip Added a README to better document the script’s features Improved some formatting and display issues"}, {"post_id": 11589, "ts": "2026-06-18T21:33:41Z", "hours": 3.3083, "text": "First devlog on Slowfetch! I’m starting a new project, Slowfetch, which is basically a simple CLI fastfetch/neofetch copy that reads system files and runtime metrics and outputs them in an organized and visually appealing list This is my first Rust project too, so I spent a good chunk of this time learning and getting familiar with its basic concepts, Cargo, the documentation, and how it actually works I’m currently only running it in a Debian VM for testing (it will be available for other distros and Windows/macOS in the future), so I also spent some time setting up VS Code’s remote ssh and installing packages in the VM Right now it only reads username, hostname, and OS info from the /etc directory and runtime metrics from /proc and outputs a simple list that’s somewhat color coded Rust is actually not as hard as I thought it would be once I got kinda used to it, so I’m pretty excited to implement a ton of other features for this project!"}]...
|
Title: Slowfetch by @tonymac129 | Stardance
Devlo Title: Slowfetch by @tonymac129 | Stardance
Devlogs:
First devlog on Slowfetch! I’m starting a new project, Slowfetch, which is basically a simple CLI fastfetch/neofetch copy that reads system files and runtime metrics and outputs them in an organized and visually appealing list This is my first Rust project too, so I spent a good chunk of this time learning and getting familiar with its basic concepts, Cargo, the documentation, and how it actually works I’m currently only running it in a Debian VM for testing (it will be available for other distros and Windows/macOS in the future), so I also spent some time setting up VS Code’s remote ssh and installing packages in the VM Right now it only reads username, hostname, and OS info from the /etc directory and runtime metrics from /proc and outputs a simple list that’s somewhat color coded Rust is actually not as hard as I thought it would be once I got kinda used to it, so I’m pretty excited to implement a ton of other features for this project!
Hardware stats and shell Slowfetch now displays the current memory usage out of the device’s total RAM and shows the usage percentage. It also converts the unit automatically; GB is the default and only uses MB/KB if current usage is less than 500 MB/KB It also reads the CPU’s info, model, and specifications from the /proc directory and displays the information alongside memory Current shell and the number of packages installed on the OS are also displayed using some string manipulation Getting the GPU info is a bit trickier since it has to run the lspci command, capture its output, and filter through it to get the exact name of the chip Added a README to better document the script’s features Improved some formatting and display issues
ASCII logos!!! Added the iconic ASCII distro logos from fastfetch/neofetch so you can better flex your operating system and nerdiness! Currently only Arch, Debian, and Linux ASCII logos are added with the symbols mostly correctly color coded I had to edit the logos quite a bit instead of just copying them from fastfetch’s output since they need to fit in my number of lines and keep the correct formatting Slowfetch can’t detect the distro and render the correct logo yet, so right now you can only pass it as a flag (with either arch, debian, or linux) to see the output, otherwise it doesn’t show a logo Added some placeholder list items (ip, locale, display), will be implemented soon I decided to only make Slowfetch support the major 4 distros I mentioned above since it’s too much of a pain (is it even possible?) to access Windows and macOS’ info
More stats & new logos! Added a disk storage usage list item that has a similar format as the memory display (used, total, and percentage) and correctly converts to the most appropriate unit. This was a lot harder to set up than fetching the memory since I had to use an external library and do some extra stuff Added private and public IPs, current locale, and current battery percentage Added new correctly colored and sized ASCII style logos for Ubuntu and Fedora. I just started VMs for these, copied Fastfetch’s output logos, colored them and slightly modified them to better fit Slowfetch Added the color blocks from Fastfetch that render 10 different colors at the bottom of the list so you can see the colors your monitor displays Slowfetch now automatically detects the current distro and renders the correct ASCII logo, and if it isn’t Debian, Arch, Fedora, or Ubuntu the default Linux logo is the fallback (since Slowfetch only supports Linux) Cleaned up the colors and reorganized the list items into sections for better organization and readability
Polishing & final touches! Slowfetch is now finally finished; the logos are colored and print out properly and all the statistics are organized and displayed accurately! Thanks to @crushedflea ’s contribution, the ASCII logo constants are now merged with the main file and a few other display bugs are fixed Adding a “–censor” or the shorthand “-c” flag now censors the public IP Added a GitHub release so you can actually download and use Slowfetch as an executable program! Updated the README so it’s more informative and contains instructions for setting up the development environment for Slowfetch or downloading the GitHub release
Ships:
I made Slowfetch, a simple, lightweight, and fast (slow) Fastfetch/Neofetch alternative for Linux operating systems that fetches and displays a list of organized useful system and hardware information and runtime metrics, as well as an ASCII logo of the distro. This is my first Rust project, and I didn’t have any ideas for what to build since I barely knew anything, but through this project, I gained a ton of experience working with Rust basics, interacting with the Linux file system, using Cargo and Rust libraries, and deploying the program as a working executable release on GitHub. I’m really proud of how everything turned out, especially the ASCII logos and the colors, that the program looks very polished and functional. Building this project also taught me a lot about how the kernel and command line programs actually function under the hood....
|
1793728329.8057506
|
1793814729.8057506
|