|
19506
|
HackingNotes by @Ashu-cipher | Stardance
|
Ashu-cipher
|
2
|
16.0
|
75
|
[{"ship_num": 1, "hours": 10.0, [{"ship_num": 1, "hours": 10.0, "multiplier": 3.46, "payout": 35, "blessing": "neutral", "text": "I am making wiki for CyberSecurity enthusiast, this will help them in learning, finding vulnerability, growing. This project will grow with me, my knowledge. You can use it as reference or as a wiki, whichever way you want to use. I hope you find it useful. There is too much to add, i will update these things time to time. currently on hold", "repo": "https://github.com/Ashu-Cipher/HackingNotes", "demo": "https://ashu-cipher.github.io/HackingNotes/", "ts": "2026-07-02T17:10:27Z"}, {"ship_num": 2, "hours": 5.0, "multiplier": 7.9, "payout": 40, "blessing": "neutral", "text": "I am making wiki for CyberSecurity enthusiast, this will help them in learning, finding vulnerability, growing. This project will grow with me, my knowledge. You can use it as reference or as a wiki, whichever way you want to use. I hope you find it useful. There is too much to add, i will update these things time to time. currently on hold", "repo": "https://github.com/Ashu-Cipher/HackingNotes", "demo": "https://ashu-cipher.github.io/HackingNotes/", "ts": "2026-06-16T00:12:08Z"}]...
|
[{"post_id": 9596, "ts": "2026 [{"post_id": 9596, "ts": "2026-06-16T00:06:41Z", "hours": 10.0, "text": "I’m Making Notes for those who’re interested in CyberSecurity. This project will grow with me, hope you find it useful."}, {"post_id": 10961, "ts": "2026-06-17T23:38:27Z", "hours": 1.0, "text": "Completed transmission media and switching, next is The osi model"}, {"post_id": 11202, "ts": "2026-06-18T10:23:58Z", "hours": 0.0, "text": "completed OSI model, next is TCP/IP model"}, {"post_id": 20909, "ts": "2026-07-02T17:05:33Z", "hours": 2.0, "text": "completed TCP/IP model, maybe not available on page, ig deployment error"}, {"post_id": 24777, "ts": "2026-07-08T15:55:16Z", "hours": 1.0, "text": "okay, so i have decided to continue this project after a break and Physical Layer is done, currently working on Data Link Layer, Data Link Layer is fairly long enough so it would take some more time, after that let’s see what can i do, feel free to criticise, i’m up for Constructive criticism"}]...
|
Title: HackingNotes by @Ashu-cipher | Stardance
D Title: HackingNotes by @Ashu-cipher | Stardance
Devlogs:
okay, so i have decided to continue this project after a break and Physical Layer is done, currently working on Data Link Layer, Data Link Layer is fairly long enough so it would take some more time, after that let’s see what can i do, feel free to criticise, i’m up for Constructive criticism
completed TCP/IP model, maybe not available on page, ig deployment error
completed OSI model, next is TCP/IP model
Completed transmission media and switching, next is The osi model
I’m Making Notes for those who’re interested in CyberSecurity. This project will grow with me, hope you find it useful.
Ships:
I am making wiki for CyberSecurity enthusiast, this will help them in learning, finding vulnerability, growing. This project will grow with me, my knowledge. You can use it as reference or as a wiki, whichever way you want to use. I hope you find it useful. There is too much to add, i will update these things time to time. currently on hold
I am making wiki for CyberSecurity enthusiast, this will help them in learning, finding vulnerability, growing. This project will grow with me, my knowledge. You can use it as reference or as a wiki, whichever way you want to use. I hope you find it useful. There is too much to add, i will update these things time to time. currently on hold...
|
1792878814.588628
|
1793742814.588628
|
|
19514
|
Treacherous Trucking by @redwoodsteve | Stardance
|
redwoodsteve
|
0
|
0.78
|
0
|
[]
|
[{"post_id": 9604, "ts": "2026 [{"post_id": 9604, "ts": "2026-06-16T00:17:40Z", "hours": 0.7814, "text": "Made a simple car controller script, with brakes and throttle. Keyboard and controller support using the new Input System! The new system is super fun in Unity, because you can easily add whatever silly controls you want with the click of a few buttons. (also, i know everything looks kinda… meh… but i will have my sister make some nice art for the game!)"}]...
|
Title: Treacherous Trucking by @redwoodsteve | Sta Title: Treacherous Trucking by @redwoodsteve | Stardance
Devlogs:
Made a simple car controller script, with brakes and throttle. Keyboard and controller support using the new Input System! The new system is super fun in Unity, because you can easily add whatever silly controls you want with the click of a few buttons. (also, i know everything looks kinda… meh… but i will have my sister make some nice art for the game!)...
|
1792666097.6970904
|
1793270897.6970904
|
|
11743
|
Simple 2-Tone Hackpad by @james2009329 | Stardance
|
james2009329
|
1
|
3.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-16T00:40:14Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "The 2 main special features of this hackpad is how the lid is slid in place and then screwed, and how it is on a 10 degree angle. I wanted to make the lid slide-in-place, so the front would be a single uniform piece of 3D printed plastic, which i thought would be more comfortable. The angle is for better ergonomics (and it matches my current keyboard angle). Using a new software (KiCAD) was challenging, as it took a lot to get used to. I’m happy with how everything came out. I’ve attached a ss of a section view of the case. You can see the lip and the chamfer that helps it slide in.", "repo": "https://github.com/james2009329/Simple-Hackpad", "demo": ""}]...
|
[{"post_id": 9609, "ts": "2026 [{"post_id": 9609, "ts": "2026-06-16T00:27:49Z", "hours": 0.3503, "text": "Just finished up the documentation for the hackpad!"}, {"post_id": 6299, "ts": "2026-06-10T16:26:13Z", "hours": 2.4817, "text": "Just about finished the CAD for my hackpad! My idea for it is for the entire lid to be slid in place like a shelf. Heres a picture of the assembly and a section view!"}]...
|
Title: Simple 2-Tone Hackpad by @james2009329 | St Title: Simple 2-Tone Hackpad by @james2009329 | Stardance
Devlogs:
Just about finished the CAD for my hackpad! My idea for it is for the entire lid to be slid in place like a shelf. Heres a picture of the assembly and a section view!
Just finished up the documentation for the hackpad!
Ships:
The 2 main special features of this hackpad is how the lid is slid in place and then screwed, and how it is on a 10 degree angle. I wanted to make the lid slide-in-place, so the front would be a single uniform piece of 3D printed plastic, which i thought would be more comfortable. The angle is for better ergonomics (and it matches my current keyboard angle). Using a new software (KiCAD) was challenging, as it took a lot to get used to. I’m happy with how everything came out. I’ve attached a ss of a section view of the case. You can see the lip and the chamfer that helps it slide in....
|
1792835656.6596503
|
1792922056.6596503
|
|
42
|
PIXORPHEUS by @Gabin | Stardance
|
Gabin
|
0
|
0.0
|
0
|
[]
|
[{"post_id": 961, "ts": "2026- [{"post_id": 961, "ts": "2026-06-02T18:52:24Z", "hours": 0.0, "text": "Added a full help channel ticket system to pixorpheus, the bot I’m building for my YSWS program. The bot now automatically creates support tickets when someone posts in the help channel, notifies the support team in a private channel, and lets helpers resolve tickets with a button. Started by reading through the nephthys source code (Hack Club’s open-source support bot) to understand how help channel bots work architecturally. Studied the ticket lifecycle, macro system, and database schema, then designed my own simplified version in JavaScript using Bolt.js, instead of using python like nephtys. Set up a PostgreSQL database on Neon, wrote the schema, and connected it to the bot. Migrated hosting from Nest to Railway for proper always-on deployment with automatic GitHub deploys. Ran into a few interesting issues along the way: Socket Mode vs HTTP mode : Railway doesn’t support WebSocket-based Socket Mode, so I switched to standard HTTP and configured the Slack Event Subscriptions and Interactivity URLs accordingly 502 errors : Railway was routing traffic to the wrong port; fixed by explicitly setting PORT=3000 Duplicate events : Slack sometimes sends the same event twice, causing duplicate ticket inserts; handled with a ON CONFLICT DO NOTHING in the DB Also added 11 slash commands (/pixl-ping, /pixl-stats, /pixl-roll, etc.) and a permission system so only helpers or support team members can resolve tickets. Tools used Claude & GitHub Copilot for looking up Bolt.js API docs and debugging error messages (~8 min total on Hackatime), mostly used to quickly read through unfamiliar error logs and API references rather than writing code What’s next !! Fix remaining edge cases where some messages don’t trigger ticket creation Add stale ticket auto-close Add a /pixl-ticket command to manually create tickets"}, {"post_id": 251, "ts": "2026-06-01T12:57:38Z", "hours": 0.0, "text": "I followed the guide and added the first command for my SLACK bot. for the moment it has only /pixl-joke /pixl-help /pixl-catfact and I will add more later. I only spent 20m on hackatime but spent like 1h trying to understand the different terminal I had to go through to setup nest, git push etc. I had a problem and first asked people why my bot wasn’t loading on nest server but after asking claude, I found out it was because the file with working directory was on /root and not /home.pixorpheus !"}]...
|
Title: PIXORPHEUS by @Gabin | Stardance
Devlogs:
Title: PIXORPHEUS by @Gabin | Stardance
Devlogs:
I followed the guide and added the first command for my SLACK bot. for the moment it has only /pixl-joke /pixl-help /pixl-catfact and I will add more later. I only spent 20m on hackatime but spent like 1h trying to understand the different terminal I had to go through to setup nest, git push etc. I had a problem and first asked people why my bot wasn’t loading on nest server but after asking claude, I found out it was because the file with working directory was on /root and not /home.pixorpheus !
Added a full help channel ticket system to pixorpheus, the bot I’m building for my YSWS program. The bot now automatically creates support tickets when someone posts in the help channel, notifies the support team in a private channel, and lets helpers resolve tickets with a button. Started by reading through the nephthys source code (Hack Club’s open-source support bot) to understand how help channel bots work architecturally. Studied the ticket lifecycle, macro system, and database schema, then designed my own simplified version in JavaScript using Bolt.js, instead of using python like nephtys. Set up a PostgreSQL database on Neon, wrote the schema, and connected it to the bot. Migrated hosting from Nest to Railway for proper always-on deployment with automatic GitHub deploys. Ran into a few interesting issues along the way: Socket Mode vs HTTP mode : Railway doesn’t support WebSocket-based Socket Mode, so I switched to standard HTTP and configured the Slack Event Subscriptions and Interactivity URLs accordingly 502 errors : Railway was routing traffic to the wrong port; fixed by explicitly setting PORT=3000 Duplicate events : Slack sometimes sends the same event twice, causing duplicate ticket inserts; handled with a ON CONFLICT DO NOTHING in the DB Also added 11 slash commands (/pixl-ping, /pixl-stats, /pixl-roll, etc.) and a permission system so only helpers or support team members can resolve tickets. Tools used Claude & GitHub Copilot for looking up Bolt.js API docs and debugging error messages (~8 min total on Hackatime), mostly used to quickly read through unfamiliar error logs and API references rather than writing code What’s next !! Fix remaining edge cases where some messages don’t trigger ticket creation Add stale ticket auto-close Add a /pixl-ticket command to manually create tickets...
|
1791826811.333287
|
1792690811.333287
|
|
17766
|
Mobile Alias Deck by @Oren | Stardance
|
Oren
|
0
|
8.18
|
0
|
[]
|
[{"post_id": 9615, "ts": "2026 [{"post_id": 9615, "ts": "2026-06-16T00:43:00Z", "hours": 8.1803, "text": "So I first started by scanning all of the cards so when the full app is eventually done it will have data to work with. I know most people would usually make the app and then get the data, and I agree that it is more logical but I wanted to challenge myself with this first. Initially I tried using the Gemini API to scan the cards of the physical deck and put the data into a file/database, which worked fine and gave good results but I struggled with the rate limits it offers. I also tried using both Qwen and Gemma as a local LLMs to avoid said rate limits but they gave not so good results while also being quite slow on their outputs at least using LM Studio, and for 400 cards speed is really important. I tried promting in both English and Hebrew but both gave non perfect results and were equally as slow (the video is at 4x speed):"}]...
|
Title: Mobile Alias Deck by @Oren | Stardance
Dev Title: Mobile Alias Deck by @Oren | Stardance
Devlogs:
So I first started by scanning all of the cards so when the full app is eventually done it will have data to work with. I know most people would usually make the app and then get the data, and I agree that it is more logical but I wanted to challenge myself with this first. Initially I tried using the Gemini API to scan the cards of the physical deck and put the data into a file/database, which worked fine and gave good results but I struggled with the rate limits it offers. I also tried using both Qwen and Gemma as a local LLMs to avoid said rate limits but they gave not so good results while also being quite slow on their outputs at least using LM Studio, and for 400 cards speed is really important. I tried promting in both English and Hebrew but both gave non perfect results and were equally as slow (the video is at 4x speed):...
|
1792752554.8148437
|
1793357354.8148437
|
|
13425
|
My very own WebOS by @mohan | Stardance
|
mohan
|
0
|
0.68
|
0
|
[]
|
[{"post_id": 9616, "ts": "2026 [{"post_id": 9616, "ts": "2026-06-16T00:43:35Z", "hours": 0.6811, "text": "I mainly focused on the about section, where I have links to some socials as well as a short bio and some projects I’ve worked on."}]...
|
Title: My very own WebOS by @mohan | Stardance
De Title: My very own WebOS by @mohan | Stardance
Devlogs:
I mainly focused on the about section, where I have links to some socials as well as a short bio and some projects I’ve worked on....
|
1792633696.2351546
|
1793238496.2351546
|
|
13631
|
wire snipping game by @aalex | Stardance
|
aalex
|
1
|
4.0
|
18
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-18T19:07:55Z", "hours": 4.0, "multiplier": 5.0, "payout": 18, "blessing": "neutral", "text": "I made a bomb defusal game featuring snipable wires, a customed designed spraying mechanism, and a case to go around the ardunio which doubles as a holder for the beeper. this project made me get comfortable with modeling around real objects, and writing ardunio code. check out the video of the project in action and let me know and please send any suggestions or feedback. thank you!", "repo": "https://github.com/icelolcream4-beep/bombdefusal", "demo": ""}]...
|
[{"post_id": 9618, "ts": "2026 [{"post_id": 9618, "ts": "2026-06-16T00:44:31Z", "hours": 0.8683, "text": "the core of the project is done! using the updated code and a hot glued support below the main servo holder the project just needs a case to hide the electronics."}, {"post_id": 8445, "ts": "2026-06-14T01:23:37Z", "hours": 1.7161, "text": "just finished the mount for the spray bottle/servo aswell as polishing the code."}, {"post_id": 5323, "ts": "2026-06-09T01:51:42Z", "hours": 1.0922, "text": "i just finished finished a rough draft of detecting when wires are disconnected."}]...
|
Title: wire snipping game by @aalex | Stardance
D Title: wire snipping game by @aalex | Stardance
Devlogs:
i just finished finished a rough draft of detecting when wires are disconnected.
just finished the mount for the spray bottle/servo aswell as polishing the code.
the core of the project is done! using the updated code and a hot glued support below the main servo holder the project just needs a case to hide the electronics.
Ships:
I made a bomb defusal game featuring snipable wires, a customed designed spraying mechanism, and a case to go around the ardunio which doubles as a holder for the beeper. this project made me get comfortable with modeling around real objects, and writing ardunio code. check out the video of the project in action and let me know and please send any suggestions or feedback. thank you!...
|
1792849773.8040245
|
1792936173.8040245
|
|
10329
|
Forever Ledger - A Database of Names by @Codificat Forever Ledger - A Database of Names by @Codification | Stardance...
|
Codification
|
0
|
8.74
|
0
|
[]
|
[{"post_id": 9620, "ts": "2026 [{"post_id": 9620, "ts": "2026-06-16T00:47:43Z", "hours": 1.1781, "text": "I suspect that this will be the final devlog before shipping. Forever Ledger is nearly complete. In this update, I added a navbar on the bottom, with various information such as privacy policy, terms and conditions, and contact. This is all necessary for handling payments in my country. I finished integrating stripe into the website, and also made a button where you can witness/upvote profiles."}, {"post_id": 4812, "ts": "2026-06-08T10:00:23Z", "hours": 1.0119, "text": "Added an entry details page + Custom comments filtered for profanity that anybody can use regardless of tier. HTTP is a very useful tool, I strongly look forward to using it in the future."}, {"post_id": 4615, "ts": "2026-06-08T00:06:47Z", "hours": 3.1767, "text": "Well it was difficult, but I made a perfectly scaling mobile build of the website, that works on all screen sizes along with ultra wide monitors. Some more features such as better country flags, improved profanity filtering, and system detection for light/dark theme were added too! Using http requests, I also added a live viewer count."}, {"post_id": 3897, "ts": "2026-06-07T00:14:34Z", "hours": 3.3783, "text": "The first major update to my website. Everything in the screenshot was made in the last 7 days, but here is what I made yesterday: Added a live feed + Signup options for the ledger. The feed is automatically updated immediately across all devices."}]...
|
Title: Forever Ledger - A Database of Names by @Co Title: Forever Ledger - A Database of Names by @Codification | Stardance
Devlogs:
The first major update to my website. Everything in the screenshot was made in the last 7 days, but here is what I made yesterday: Added a live feed + Signup options for the ledger. The feed is automatically updated immediately across all devices.
Well it was difficult, but I made a perfectly scaling mobile build of the website, that works on all screen sizes along with ultra wide monitors. Some more features such as better country flags, improved profanity filtering, and system detection for light/dark theme were added too! Using http requests, I also added a live viewer count.
Added an entry details page + Custom comments filtered for profanity that anybody can use regardless of tier. HTTP is a very useful tool, I strongly look forward to using it in the future.
I suspect that this will be the final devlog before shipping. Forever Ledger is nearly complete. In this update, I added a navbar on the bottom, with various information such as privacy policy, terms and conditions, and contact. This is all necessary for handling payments in my country. I finished integrating stripe into the website, and also made a button where you can witness/upvote profiles....
|
1792792277.4779713
|
1793397077.4779713
|
|
19281
|
RhythmCremental by @OrangePainting | Stardance
|
OrangePainting
|
0
|
1.52
|
0
|
[]
|
[{"post_id": 9622, "ts": "2026 [{"post_id": 9622, "ts": "2026-06-16T00:50:57Z", "hours": 1.5153, "text": "This is a game I am working on that combines both rhythm and incremental genres to make something that remains fun over time. Currently, I am reworking my core mechanic as it doesn’t feel as fun as I want it. I’m experimenting with a match 3 mechanic to hopefully get some fun gameplay!"}]...
|
Title: RhythmCremental by @OrangePainting | Starda Title: RhythmCremental by @OrangePainting | Stardance
Devlogs:
This is a game I am working on that combines both rhythm and incremental genres to make something that remains fun over time. Currently, I am reworking my core mechanic as it doesn’t feel as fun as I want it. I’m experimenting with a match 3 mechanic to hopefully get some fun gameplay!...
|
1792615943.5751686
|
1793220743.5751686
|
|
479
|
Game by @Llamamed6 | Stardance
|
Llamamed6
|
1
|
4.77
|
1
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-01T18:47:20Z", "hours": 2.0, "multiplier": 1.64, "payout": 1, "blessing": "neutral", "text": "I added two thing on this I made a mini keyboard that explode when you click a button and I made geometry dash wave. For Geometry Dash the controls are space is up and once you let go of space your character moves down and R is for restart. For the key board you move your curser to each letter then click and it will show up and once you click explode keyboard the key board will disappear and return after five seconds.", "repo": "https://github.com/dwightcrozier-molina-gif/my_python", "demo": "https://mypython--dwightcrozier-m.replit.app"}]...
|
[{"post_id": 9626, "ts": "2026 [{"post_id": 9626, "ts": "2026-06-16T01:03:58Z", "hours": 2.7703, "text": "I am working on a game similar to geometry dash and I have made the wave gamemode."}, {"post_id": 374, "ts": "2026-06-01T18:38:38Z", "hours": 1.6872, "text": "I am working like a game similar to geometry dash"}]...
|
Title: Game by @Llamamed6 | Stardance
Devlogs:
I Title: Game by @Llamamed6 | Stardance
Devlogs:
I am working like a game similar to geometry dash
I am working on a game similar to geometry dash and I have made the wave gamemode.
Ships:
I added two thing on this I made a mini keyboard that explode when you click a button and I made geometry dash wave. For Geometry Dash the controls are space is up and once you let go of space your character moves down and R is for restart. For the key board you move your curser to each letter then click and it will show up and once you click explode keyboard the key board will disappear and return after five seconds....
|
1792846506.3316226
|
1792932906.3316226
|
|
6580
|
card video game by @flyingfish | Stardance
|
flyingfish
|
0
|
32.22
|
0
|
[]
|
[{"post_id": 9627, "ts": "2026 [{"post_id": 9627, "ts": "2026-06-16T01:05:29Z", "hours": 8.2886, "text": "i added a bot that can play against you. it really is just a random number generator but it works. i also made the plus 2 cards and skip cards work along with fixing a bug where reverse cards cant be played on the sides of the board(unity takes a long time to load and i didnt get a new screen shot so i just put the old one in mb)"}, {"post_id": 6603, "ts": "2026-06-11T02:30:51Z", "hours": 9.5603, "text": "i fix the bug where it would crash if you place any card on the side and i made the reverse card work. reverse cards switch the card above and below and it also switches sides"}, {"post_id": 5376, "ts": "2026-06-09T03:49:52Z", "hours": 5.0986, "text": "i just spent 3 hours making it so you cant place a card on another card and i added some logic so you can only place cards next to cards of the same color or number"}, {"post_id": 4461, "ts": "2026-06-07T19:46:11Z", "hours": 9.2722, "text": "i forgot to post any dev logs but so far i have made a grid that you can put cards on but there is no logic so its mostly visual rn"}]...
|
Title: card video game by @flyingfish | Stardance
Title: card video game by @flyingfish | Stardance
Devlogs:
i forgot to post any dev logs but so far i have made a grid that you can put cards on but there is no logic so its mostly visual rn
i just spent 3 hours making it so you cant place a card on another card and i added some logic so you can only place cards next to cards of the same color or number
i fix the bug where it would crash if you place any card on the side and i made the reverse card work. reverse cards switch the card above and below and it also switches sides
i added a bot that can play against you. it really is just a random number generator but it works. i also made the plus 2 cards and skip cards work along with fixing a bug where reverse cards cant be played on the sides of the board(unity takes a long time to load and i didnt get a new screen shot so i just put the old one in mb)...
|
1792597939.59096
|
1793202739.59096
|
|
13718
|
Agentic Trading by @guy | Stardance
|
guy
|
0
|
4.2
|
0
|
[]
|
[{"post_id": 9631, "ts": "2026 [{"post_id": 9631, "ts": "2026-06-16T01:14:21Z", "hours": 1.1956, "text": "I made a button to call an endpoint that gets all the data from the database, formats it into the format the charts candles like, and graphs it surprisingly quickly"}, {"post_id": 6947, "ts": "2026-06-11T17:29:44Z", "hours": 1.9381, "text": "I made a small web GUI and made a sqlite database thing to use yahoo finance api to get historical data and put it into a database by their stock ticker. I tried to use a library but it ended up being depreciated so I had to switch"}, {"post_id": 5290, "ts": "2026-06-09T00:42:21Z", "hours": 1.0617, "text": "So this is an idea I’ve had for a while, but I want to revisit this. Gemma 4 12b can run on my 12gb 1080 ti and still have some context which is great. I made a basic harness to let me make custom tools for the AI. Right now, it’s just a fake weather one, but it is pretty modular."}]...
|
Title: Agentic Trading by @guy | Stardance
Devlog Title: Agentic Trading by @guy | Stardance
Devlogs:
So this is an idea I’ve had for a while, but I want to revisit this. Gemma 4 12b can run on my 12gb 1080 ti and still have some context which is great. I made a basic harness to let me make custom tools for the AI. Right now, it’s just a fake weather one, but it is pretty modular.
I made a small web GUI and made a sqlite database thing to use yahoo finance api to get historical data and put it into a database by their stock ticker. I tried to use a library but it ended up being depreciated so I had to switch
I made a button to call an endpoint that gets all the data from the database, formats it into the format the charts candles like, and graphs it surprisingly quickly...
|
1792691535.8936288
|
1793296335.8936288
|
|
2194
|
personal liquid cooling device by @flyingfish | St personal liquid cooling device by @flyingfish | Stardance...
|
flyingfish
|
0
|
4.41
|
0
|
[]
|
[{"post_id": 9632, "ts": "2026 [{"post_id": 9632, "ts": "2026-06-16T01:16:45Z", "hours": 4.4144, "text": "this is the case for the thing it has a water bottle and battery then i will use a semiconductor cooler with a radiating fan. the water bottle and battery go inside the backpack and the fan goes outside the backpack so there is a cover that can snap on incase of rain"}]...
|
Title: personal liquid cooling device by @flyingfi Title: personal liquid cooling device by @flyingfish | Stardance
Devlogs:
this is the case for the thing it has a water bottle and battery then i will use a semiconductor cooler with a radiating fan. the water bottle and battery go inside the backpack and the fan goes outside the backpack so there is a cover that can snap on incase of rain...
|
1792731101.574722
|
1793335901.574722
|
|
19320
|
My awesome macropad! by @zak_books1 | Stardance
|
zak_books1
|
1
|
3.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-16T01:33:22Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "A custom four-key macro pad built with KiCad, QMK firmware, and a 3D-printed case for fast, reliable controls.", "repo": "https://github.com/zakbooks1/TuffPad", "demo": ""}]...
|
[{"post_id": 9637, "ts": "2026 [{"post_id": 9637, "ts": "2026-06-16T01:25:30Z", "hours": 2.835, "text": "finaly done lets go"}, {"post_id": 9429, "ts": "2026-06-15T19:50:00Z", "hours": 0.5417, "text": "about to 3d model the case for it"}]...
|
Title: My awesome macropad! by @zak_books1 | Stard Title: My awesome macropad! by @zak_books1 | Stardance
Devlogs:
about to 3d model the case for it
finaly done lets go
Ships:
A custom four-key macro pad built with KiCad, QMK firmware, and a 3D-printed case for fast, reliable controls....
|
1792828601.9860518
|
1792915001.9860518
|
|
9685
|
M.2 rp2040 breakout board by @peiqia0 | Stardance
|
peiqia0
|
0
|
0.74
|
0
|
[]
|
[{"post_id": 9643, "ts": "2026 [{"post_id": 9643, "ts": "2026-06-16T01:40:55Z", "hours": 0.7442, "text": "m.2 Breakout board firmware"}]...
|
Title: M.2 rp2040 breakout board by @peiqia0 | Sta Title: M.2 rp2040 breakout board by @peiqia0 | Stardance
Devlogs:
m.2 Breakout board firmware...
|
1792640986.2339623
|
1793245786.2339623
|
|
17392
|
AeroStrike by @aamir_pa2009 | Stardance
|
aamir_pa2009
|
1
|
1.99
|
2
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-12T19:49:23Z", "hours": 0.0, "multiplier": 4.97, "payout": 2, "blessing": "neutral", "text": "I made a plane fighter game where you sink enemy NPC cruisers. What was challenging was learning how to integrate all the files into one file to make it run more smoothly and how to host the game. I plan on adding chat to the game and a multiplayer.", "repo": "https://github.com/AamirKPathan/AeroStrike", "demo": "https://aamir-pa2009.itch.io/aerostrike"}]...
|
[{"post_id": 9646, "ts": "2026 [{"post_id": 9646, "ts": "2026-06-16T01:44:06Z", "hours": 0.2581, "text": "Changelog - AeroStrike All notable changes to this project will be documented in this file. [1.2.0] - 2026-06-15 Added Scoring System : Implemented a comprehensive scoring system. +500 points for destroying enemy jets. +2000 points for sinking the enemy cruiser. +100 bonus points for every flare burst conserved at the end of a mission. HUD Updates : Added a real-time score display to the top-left HUD. End Screens : Victory and Game Over screens now display the final score. Disorientation Mechanics : Player : Rapid high-G turns (7 direction changes) now cause a 5-second stall and fire lockout with a “DISORIENTED” HUD warning. Missiles : Incoming missiles can now be disoriented by 4 sharp evasion turns when in close proximity, causing them to lose their lock. Changed Enemy Missile Visuals : Enemy missiles (from both jets and the cruiser) now match the geometry of friendly missiles but are colored red ( 0xff3333 ) for clear identification. Combat Balance : Enemy jets and the cruiser now have a 10-second cooldown between homing missile launches. Friendly carrier defense missiles now deal 0 damage but continue to track and explode on targets for visual atmosphere. Camera System : Refined the follow-camera to be closer and more dynamic, improving visibility and the sense of speed. Enemy AI : Fixed a bug where enemy aircraft were stationary; they now correctly patrol and engage in dogfights. Fixed Enemy Jet Orientation : Corrected the nose orientation of enemy jets so they face forward during flight. Spawn Logic : Adjusted enemy spawn distances and visibility for better engagement flow. Carrier Defense : Restored the carrier’s missile launch logic after it was temporarily removed. [1.1.0] - 2026-06-15 Added Flare System : Added a flare limit of 10 bursts per sortie. HUD Counter : Added a “FLARES” counter to the status panel. Refill Logic : Landing on the carrier now fully replenishes flares along with health and missiles. Fixed Enemy Missile Geometry : Updated enemy projectiles to use proper 3D missile models instead of simple spheres."}, {"post_id": 8821, "ts": "2026-06-14T17:41:00Z", "hours": 1.7283, "text": "Devlog – Major Update to AeroStrike Hey everyone! I just pushed a big update to AeroStrike, and I wanted to share what’s new, what I fixed, and what I learned while improving the project. ✨ What’s New • New Enemy Jets + AI I added simple enemy fighters that chase the player, turn toward you, and fire homing missiles. This helped me learn more about vector math, direction interpolation, and basic pursuit behavior. • Homing Missiles Enemy missiles now track the player smoothly instead of flying straight. They steer using direction lerping and have a warning indicator when they get close. • Flares (Countermeasures) You can now deploy flares to distract incoming missiles. Missiles will retarget flares if they get close enough. • Carrier HP + Bomb Damage The enemy cruiser now has a proper health system. Bombs deal damage, and the cruiser sinks when its HP reaches zero. • Radar System I added a 2D radar that shows: Enemy jets The enemy cruiser This taught me how to convert world coordinates into UI positions. • Landing + Rearming You can land on the carrier to repair and restock bombs. This added a fun gameplay loop and made the mission feel more complete. 🎮 Controls Fixes The Up/Down pitch controls were broken before — they now work properly. Pitching feels smoother and more responsive. 🎨 CSS Overhaul I completely reworked the UI styling: Cleaner HUD Minimal, modern look Consistent color theme Better spacing and readability Subtle glow effects for a “fighter jet” feel This makes the game look more polished and easier to read during gameplay."}, {"post_id": 7648, "ts": "2026-06-12T19:46:44Z", "hours": 0.3775, "text": "Finally Finished my First Game, One Large Leap For Me."}]...
|
Title: AeroStrike by @aamir_pa2009 | Stardance
De Title: AeroStrike by @aamir_pa2009 | Stardance
Devlogs:
Finally Finished my First Game, One Large Leap For Me.
Devlog – Major Update to AeroStrike Hey everyone! I just pushed a big update to AeroStrike, and I wanted to share what’s new, what I fixed, and what I learned while improving the project. ✨ What’s New • New Enemy Jets + AI I added simple enemy fighters that chase the player, turn toward you, and fire homing missiles. This helped me learn more about vector math, direction interpolation, and basic pursuit behavior. • Homing Missiles Enemy missiles now track the player smoothly instead of flying straight. They steer using direction lerping and have a warning indicator when they get close. • Flares (Countermeasures) You can now deploy flares to distract incoming missiles. Missiles will retarget flares if they get close enough. • Carrier HP + Bomb Damage The enemy cruiser now has a proper health system. Bombs deal damage, and the cruiser sinks when its HP reaches zero. • Radar System I added a 2D radar that shows: Enemy jets The enemy cruiser This taught me how to convert world coordinates into UI positions. • Landing + Rearming You can land on the carrier to repair and restock bombs. This added a fun gameplay loop and made the mission feel more complete. 🎮 Controls Fixes The Up/Down pitch controls were broken before — they now work properly. Pitching feels smoother and more responsive. 🎨 CSS Overhaul I completely reworked the UI styling: Cleaner HUD Minimal, modern look Consistent color theme Better spacing and readability Subtle glow effects for a “fighter jet” feel This makes the game look more polished and easier to read during gameplay.
Changelog - AeroStrike All notable changes to this project will be documented in this file. [1.2.0] - 2026-06-15 Added Scoring System : Implemented a comprehensive scoring system. +500 points for destroying enemy jets. +2000 points for sinking the enemy cruiser. +100 bonus points for every flare burst conserved at the end of a mission. HUD Updates : Added a real-time score display to the top-left HUD. End Screens : Victory and Game Over screens now display the final score. Disorientation Mechanics : Player : Rapid high-G turns (7 direction changes) now cause a 5-second stall and fire lockout with a “DISORIENTED” HUD warning. Missiles : Incoming missiles can now be disoriented by 4 sharp evasion turns when in close proximity, causing them to lose their lock. Changed Enemy Missile Visuals : Enemy missiles (from both jets and the cruiser) now match the geometry of friendly missiles but are colored red ( 0xff3333 ) for clear identification. Combat Balance : Enemy jets and the cruiser now have a 10-second cooldown between homing missile launches. Friendly carrier defense missiles now deal 0 damage but continue to track and explode on targets for visual atmosphere. Camera System : Refined the follow-camera to be closer and more dynamic, improving visibility and the sense of speed. Enemy AI : Fixed a bug where enemy aircraft were stationary; they now correctly patrol and engage in dogfights. Fixed Enemy Jet Orientation : Corrected the nose orientation of enemy jets so they face forward during flight. Spawn Logic : Adjusted enemy spawn distances and visibility for better engagement flow. Carrier Defense : Restored the carrier’s missile launch logic after it was temporarily removed. [1.1.0] - 2026-06-15 Added Flare System : Added a flare limit of 10 bursts per sortie. HUD Counter : Added a “FLARES” counter to the status panel. Refill Logic : Landing on the carrier now fully replenishes flares along with health and missiles. Fixed Enemy Missile Geometry : Updated enemy projectiles to use proper 3D missile models instead of simple spheres.
Ships:
I made a plane fighter game where you sink enemy NPC cruisers. What was challenging was learning how to integrate all the files into one file to make it run more smoothly and how to host the game. I plan on adding chat to the game and a multiplayer....
|
1792828288.934203
|
1792914688.934203
|
|
17101
|
Cube Root by @samatua1221 | Stardance
|
samatua1221
|
0
|
4.24
|
0
|
[]
|
[{"post_id": 9650, "ts": "2026 [{"post_id": 9650, "ts": "2026-06-16T01:50:51Z", "hours": 1.1394, "text": "Majority of today was spent working on the actual schematics of the project since I was able to finish up working on finding all of the materials. It did take me awhile to find the right software to actually make the schematic before I just gave up and went back to KiCad on my Chromebook (which took a while to download in itself). But aside from that, not too much more progress today aside from the basics of the schematic done."}, {"post_id": 8430, "ts": "2026-06-14T00:48:32Z", "hours": 1.0567, "text": "Spent a whole lot more time hammering down what’s going to be the materials for my project and working that up into a pretty clean BOM. Now, I’ll be moving on to the actual piecing together of everything, making the schematic through online circuit diagram editor to make sure everything works properly."}, {"post_id": 8375, "ts": "2026-06-13T22:35:32Z", "hours": 1.1667, "text": "More of today was spent working on gathering all of my materials again, making sure that I was able to have some type of ground to start working. I did have to spend quite a bit of time trying to again look for the right power source, but was finally able to find one that was available to get locally. I also spent a good amount of time finding the sensors that I’d want to use, deciding on using both orientation with a 3-axis IMU as well as using sound with one of the Arduino type microphone sensors to be able to make some LED movements reliant on the audio environment as well. The cube will probably be about 10cmx10cm, since the LED screens are about 8mm^2, so the rest of the room will just be a custom 3D printed case to hold all of the electronics inside as well as the LED lights themselves. Right now, the biggest thing I’m trying to decide between is how I’ll wire all of the pieces together, and I think it’ll be some form of using 18/24 AWG wire to link them all with the power source located outside of the cube since the bank would be way to big to fit inside the cube itself."}, {"post_id": 7942, "ts": "2026-06-13T07:53:55Z", "hours": 0.8783, "text": "Today, I spent most of my time researching the different parts, trying to figure out if this would be a feasible project to work on. I don’t have too much experience with LED strips, but I have enough experience with coding IMUs that I think I could figure out how to connect the two relatively easily. I also spent some time trying to work on the way I would power the cube (since every battery pack for the amount of power I’d need seems to be out of stock), but aside from that the first day went pretty well."}]...
|
Title: Cube Root by @samatua1221 | Stardance
Devl Title: Cube Root by @samatua1221 | Stardance
Devlogs:
Today, I spent most of my time researching the different parts, trying to figure out if this would be a feasible project to work on. I don’t have too much experience with LED strips, but I have enough experience with coding IMUs that I think I could figure out how to connect the two relatively easily. I also spent some time trying to work on the way I would power the cube (since every battery pack for the amount of power I’d need seems to be out of stock), but aside from that the first day went pretty well.
More of today was spent working on gathering all of my materials again, making sure that I was able to have some type of ground to start working. I did have to spend quite a bit of time trying to again look for the right power source, but was finally able to find one that was available to get locally. I also spent a good amount of time finding the sensors that I’d want to use, deciding on using both orientation with a 3-axis IMU as well as using sound with one of the Arduino type microphone sensors to be able to make some LED movements reliant on the audio environment as well. The cube will probably be about 10cmx10cm, since the LED screens are about 8mm^2, so the rest of the room will just be a custom 3D printed case to hold all of the electronics inside as well as the LED lights themselves. Right now, the biggest thing I’m trying to decide between is how I’ll wire all of the pieces together, and I think it’ll be some form of using 18/24 AWG wire to link them all with the power source located outside of the cube since the bank would be way to big to fit inside the cube itself.
Spent a whole lot more time hammering down what’s going to be the materials for my project and working that up into a pretty clean BOM. Now, I’ll be moving on to the actual piecing together of everything, making the schematic through online circuit diagram editor to make sure everything works properly.
Majority of today was spent working on the actual schematics of the project since I was able to finish up working on finding all of the materials. It did take me awhile to find the right software to actually make the schematic before I just gave up and went back to KiCad on my Chromebook (which took a while to download in itself). But aside from that, not too much more progress today aside from the basics of the schematic done....
|
1792568882.0541885
|
1793173682.0541885
|
|
3010
|
Some weird Wii project by @Lunk | Stardance
|
Lunk
|
0
|
3.34
|
0
|
[]
|
[{"post_id": 9655, "ts": "2026 [{"post_id": 9655, "ts": "2026-06-16T02:00:27Z", "hours": 2.3992, "text": "The bottom plate is done but I still need to work on getting the two halves to work."}, {"post_id": 8377, "ts": "2026-06-13T22:38:18Z", "hours": 0.9408, "text": "I’ve seen some Wii slim projects before, but I want to build my own in a way that’s easy to customize. I also want it to be the slimmest yet! So far, I started designing the base plate and did a test print to make sure the posts weren’t… screwed, and they’re not!"}]...
|
Title: Some weird Wii project by @Lunk | Stardance Title: Some weird Wii project by @Lunk | Stardance
Devlogs:
I’ve seen some Wii slim projects before, but I want to build my own in a way that’s easy to customize. I also want it to be the slimmest yet! So far, I started designing the base plate and did a test print to make sure the posts weren’t… screwed, and they’re not!
The bottom plate is done but I still need to work on getting the two halves to work....
|
1792633849.077712
|
1793238649.077712
|
|
17009
|
Monster fighting rpg by @NerdySpaceDragon | Starda Monster fighting rpg by @NerdySpaceDragon | Stardance...
|
NerdySpaceDragon
|
0
|
0.74
|
0
|
[]
|
[{"post_id": 9661, "ts": "2026 [{"post_id": 9661, "ts": "2026-06-16T02:13:06Z", "hours": 0.7383, "text": "Dev Log #1 I’ve stated to work on an RPG style video game based off of my high school experience. I am currently working on setting up the player character. I have added most of the animations now. I will need to add the code to make the player actually be able to move. After working on finishing up the player, I will work on figuring out the battle mechanics. P.S. I am currently using free assets off of itch.io, they will be replaced with my own art later down the line though"}]...
|
Title: Monster fighting rpg by @NerdySpaceDragon | Title: Monster fighting rpg by @NerdySpaceDragon | Stardance
Devlogs:
Dev Log #1 I’ve stated to work on an RPG style video game based off of my high school experience. I am currently working on setting up the player character. I have added most of the animations now. I will need to add the code to make the player actually be able to move. After working on finishing up the player, I will work on figuring out the battle mechanics. P.S. I am currently using free assets off of itch.io, they will be replaced with my own art later down the line though...
|
1792759872.2204335
|
1793364672.2204335
|
|
19551
|
Background hacker by @EthanCubes | Stardance
|
EthanCubes
|
0
|
0.71
|
0
|
[]
|
[{"post_id": 9668, "ts": "2026 [{"post_id": 9668, "ts": "2026-06-16T02:30:39Z", "hours": 0.7067, "text": "I spent 40 minutes to get a “hello world” console output. I created a Chrome Extension that literally only outputs Hello World and installed it on Chrome. Not much progress in my work to create an extension that can change any background, but at least I can get the extension to run something. how did this take me 40 minutes bro. (look at the console output, you can find hello world there)"}]...
|
Title: Background hacker by @EthanCubes | Stardanc Title: Background hacker by @EthanCubes | Stardance
Devlogs:
I spent 40 minutes to get a “hello world” console output. I created a Chrome Extension that literally only outputs Hello World and installed it on Chrome. Not much progress in my work to create an extension that can change any background, but at least I can get the extension to run something. how did this take me 40 minutes bro. (look at the console output, you can find hello world there)...
|
1792630111.6795557
|
1793234911.6795557
|
|
19385
|
Doodle Cam by @adam_wu0630 | Stardance
|
adam_wu0630
|
0
|
1.11
|
0
|
[]
|
[{"post_id": 9673, "ts": "2026 [{"post_id": 9673, "ts": "2026-06-16T02:39:12Z", "hours": 1.1119, "text": "Here you go: Doodle Cam-Devlog #1 So Doodle Cam is a camera I’m building on a Raspberry Pi that takes a photo and turns it into a cool art style, kind of like a filter but on a real camera. There’s no printing, you just plug it into your computer with a USB cable to get the pictures off. Right now I’m writing all the code in Python on my laptop first before I put it on the Pi. At first I wanted to make it look like a kid’s crayon drawing. I tried doing it with just OpenCV code, then I tried using AI with the Replicate API. The AI looked the best, but I figured out it can’t run on a Raspberry Pi because it’s way too slow, and it also costs money for every picture. So I switched to doing everything offline with OpenCV instead. I changed the first preset to a black-and-white pencil sketch since OpenCV is actually really good at that, and I’ve been tweaking it a bunch, removing the background, smoothing the photo, adding dark outlines so the face shows up, and adding shading so it looks more like a real drawing. Next I want to get the code running on the actual Raspberry Pi with the camera. After that I’ll add a little screen so you can see the sketch right after you take the photo. Then I’ll set it up so the Pi shows up like a USB drive when you plug it in, add a button to take pictures and switch presets, and make more styles like cartoon and watercolor."}]...
|
Title: Doodle Cam by @adam_wu0630 | Stardance
Dev Title: Doodle Cam by @adam_wu0630 | Stardance
Devlogs:
Here you go: Doodle Cam-Devlog #1 So Doodle Cam is a camera I’m building on a Raspberry Pi that takes a photo and turns it into a cool art style, kind of like a filter but on a real camera. There’s no printing, you just plug it into your computer with a USB cable to get the pictures off. Right now I’m writing all the code in Python on my laptop first before I put it on the Pi. At first I wanted to make it look like a kid’s crayon drawing. I tried doing it with just OpenCV code, then I tried using AI with the Replicate API. The AI looked the best, but I figured out it can’t run on a Raspberry Pi because it’s way too slow, and it also costs money for every picture. So I switched to doing everything offline with OpenCV instead. I changed the first preset to a black-and-white pencil sketch since OpenCV is actually really good at that, and I’ve been tweaking it a bunch, removing the background, smoothing the photo, adding dark outlines so the face shows up, and adding shading so it looks more like a real drawing. Next I want to get the code running on the actual Raspberry Pi with the camera. After that I’ll add a little screen so you can see the sketch right after you take the photo. Then I’ll set it up so the Pi shows up like a USB drive when you plug it in, add a button to take pictures and switch presets, and make more styles like cartoon and watercolor....
|
1792525766.3128202
|
1793130566.3128202
|
|
8522
|
SideLine - Match Recorder by @Osmosis | Stardance
|
Osmosis
|
0
|
9.6
|
0
|
[]
|
[{"post_id": 9675, "ts": "2026 [{"post_id": 9675, "ts": "2026-06-16T02:42:47Z", "hours": 0.4956, "text": "The pivot — drone → courtside gimbal (and a lesson) Here’s where the project hit its biggest wall, and I want to log it honestly because the recovery taught me more than any milestone. I was about to spec a drone. Then I actually researched drone law in Qatar and found out it’s one of the strictest regimes in the world: every single flight needs a QCAA permit (owning a drone gives you no right to fly it), and there’s a privacy law (Penal Code Art. 333) against filming people without consent, penalties up to two years. For a system whose whole job is filming school matches full of players and spectators, that’s not a paperwork hurdle, it’s a wall. My original picture a drone autonomously filming matches was effectively dead. The lesson, written down so I don’t forget it: research the constraints of the real world before you fall in love with a plan. I’d validated the software to machine precision, but I almost skipped checking whether the deployment was even legal. Check the boring stuff first. So I swapped the drone for a 3-DOF gimbal on a rail: a motorised camera mount (pan / tilt / roll) that slides along a track, parked courtside. No permit. Same filming-consent terms my existing fixed cameras already navigate. And it runs every match, not the one-off a permitted drone flight would’ve been. It’s more deployable than the drone ever was. A gimbal is also a categorically real difference from just pointing a camera, for one optical reason that isn’t arguable: a fixed camera can only ever crop the pixels it already has, but a gimbal physically moves the lens real parallax, a real push-in that changes perspective, footage that simply doesn’t exist in a static feed. The human directs the intent (“orbit that player,” “push in”) and the system, which understands the scene, executes the move. That’s the thing a fixed camera can’t do, and it survived the pivot completely intact. M9 — the gimbal’s brain (software) Stardance just opened a hardware track, but this milestone was deliberately software: adapt the system to the gimbal before the parts arrive, so the maths is proven when the hardware lands. The beautiful part: because I’d kept the architecture cleanly separated for nine milestones, the drone→gimbal pivot touched exactly one layer. The gesture engine, the scene tracking, the intent commands, the flight-path engine, the live bridge all unchanged. The only new code is a converter that takes an ideal 3D camera pose and works out what the gimbal can physically do with it: pan/tilt/roll angles to aim, plus a position along the rail. And it stays honest, which is the whole point. A gimbal at a fixed pivot can rotate perfectly but can’t translate so a true orbit (circling a subject) is impossible without the camera leaving its rail. The converter proves this with numbers instead of faking it: a follow shot aims with 0.00° error and zero positional gap (the rig does it cleanly), while an attempted orbit still aims perfectly but reports a 9.05-unit gap, flagged out-of-reach on every frame the system refuses to pretend it can do something the hardware can’t. Honest problems that will probably come up: this is geometry on a perfect simulator. The real gimbal will have motor speed limits, inertia, and backlash, it won’t snap to an angle instantly. That’s the hardware phase’s problem, and I’m not pretending the clean sim is the real rig. Up next: the glove parts are shipping. When they land, the build goes physical. breadboard, sensors, solder. Then the gimbal it is"}, {"post_id": 4838, "ts": "2026-06-08T11:14:50Z", "hours": 1.9914, "text": "Hi I’m Aarav Sharma and I want to direct a drone with my hands, not just piloting but actual direction. Introducing AirLine: direct a drone with your hands, don’t pilot it. Most gesture drones map your hand to a flight stick (tilt to bank, raise to climb) — you become the joystick. AirLine instead reads cinematic intent (“follow that player,” “orbit the subject”) and figures out the flight itself, because it understands the scene. It’s a branch off my capstone SideLine (an AI sports-analytics system that already tracks “the player with the ball”), reusing its vision core untouched. Software first, glove I build myself next, drone last. Devlog: M1: AirLine runs SideLine’s tracker through a clean seam, vision core untouched. ~19 FPS. M2: Lock onto one subject. Found track IDs fragment — 293/540 frames “lost.” Quantified the re-ID problem on footage, not a $400 drone. M3: Virtual camera follows like an operated shot, drifts to wide when the target’s lost. First time it looked real. M4: Webcam gestures (MediaPipe) — but it conflicts with my vision stack. Setup stopped instead of breaking it. Best decision of the day. M5: Quarantined gestures in their own environment. First real-hand numbers: mostly 10/10 after fixing bugs unit tests missed. M6: Two-process live system — my hand directs the shot in real time. ~297ms latency, only 35ms of it transport. M7: First 3D camera move: orbit on a tiltable plane, proven by geometric invariants to machine precision (~4e-16). M8: Added push-in, pull-out, dolly. Full shot vocabulary done. 146 tests, vision core never touched. Next: hardware actually building the gesture glove by hand and integrating a drone"}, {"post_id": 4178, "ts": "2026-06-07T12:19:57Z", "hours": 7.1161, "text": "Hi I’m Aarav Sharma, I started this before Stardance, so this first devlog covers everything built so far (about 6 hours of work) in one go. Sideline is an AI system that films a school football or basketball match from a single fixed camera and turns that one recording into three different things: tactical analytics for coaches, event highlight reels for the school socials, and a personal highlight clip for every player, not just the goal-scorers. It runs entirely on a local laptop with no subscriptions, which matters because the commercial equivalents (Veo, Pixellot) cost hundreds up front plus monthly fees, putting them out of reach for a normal school. The computer vision (both football and basketball). The core is one shared pipeline that detects players and the ball, tracks them across the match, works out which team each player is on, and maps the camera view onto real court coordinates so distances and positions actually mean something in metres. Getting each piece trustworthy was the bulk of the time, and a lot of it was fighting genuinely hard problems. The basketball ball tracker kept locking onto players’ heads (round, ball-sized, and constantly held right next to the ball during a shot), and I had to prove that no shape or size rule could ever separate them before fixing it with a small appearance classifier I trained on a few thousand hand-sorted image crops (head rejection went from hopeless to 98.5%). Team detection on similar kits kept collapsing into one cluster until I switched to appearance embeddings, which also caught a possession stat that was confidently pointing at the wrong team entirely. The three deliverables. Coach analytics come out as a one-page report plus an annotated tactical video (heatmaps, distance covered, possession, formation, territory), with every number honestly labelled as either validated or derived. Event highlights are auto-detected and ranked so the best moments float to the top instead of flooding whoever is editing. Player highlights are built to be inclusive by construction: every player who steps on the court gets footage, using their on-ball moments where they have them, which is the part no commercial product bothers with and the part a school actually cares about. The app. All of that is wrapped in a working local web app, “Sideline, Match Studio”, with a dark cinematic interface a non-technical teacher can run start to finish: upload a match, click the four court corners on a freeze-frame, pick which deliverables they want, and download the results. The backend is a FastAPI server that runs the heavy AI as background jobs (a full match takes around 3 hours, so it processes while you walk away and can survive a restart), and it wraps my existing pipeline scripts rather than rewriting them. The whole thing is tested end to end with 62 passing checks, and I have already stress-tested it on a full 47-minute match to see what breaks at real scale. Next stop is real deployment at my school, which is the one thing I cannot fully validate until I have footage from our own courts and teams."}]...
|
Title: SideLine - Match Recorder by @Osmosis | Sta Title: SideLine - Match Recorder by @Osmosis | Stardance
Devlogs:
Hi I’m Aarav Sharma, I started this before Stardance, so this first devlog covers everything built so far (about 6 hours of work) in one go. Sideline is an AI system that films a school football or basketball match from a single fixed camera and turns that one recording into three different things: tactical analytics for coaches, event highlight reels for the school socials, and a personal highlight clip for every player, not just the goal-scorers. It runs entirely on a local laptop with no subscriptions, which matters because the commercial equivalents (Veo, Pixellot) cost hundreds up front plus monthly fees, putting them out of reach for a normal school. The computer vision (both football and basketball). The core is one shared pipeline that detects players and the ball, tracks them across the match, works out which team each player is on, and maps the camera view onto real court coordinates so distances and positions actually mean something in metres. Getting each piece trustworthy was the bulk of the time, and a lot of it was fighting genuinely hard problems. The basketball ball tracker kept locking onto players’ heads (round, ball-sized, and constantly held right next to the ball during a shot), and I had to prove that no shape or size rule could ever separate them before fixing it with a small appearance classifier I trained on a few thousand hand-sorted image crops (head rejection went from hopeless to 98.5%). Team detection on similar kits kept collapsing into one cluster until I switched to appearance embeddings, which also caught a possession stat that was confidently pointing at the wrong team entirely. The three deliverables. Coach analytics come out as a one-page report plus an annotated tactical video (heatmaps, distance covered, possession, formation, territory), with every number honestly labelled as either validated or derived. Event highlights are auto-detected and ranked so the best moments float to the top instead of flooding whoever is editing. Player highlights are built to be inclusive by construction: every player who steps on the court gets footage, using their on-ball moments where they have them, which is the part no commercial product bothers with and the part a school actually cares about. The app. All of that is wrapped in a working local web app, “Sideline, Match Studio”, with a dark cinematic interface a non-technical teacher can run start to finish: upload a match, click the four court corners on a freeze-frame, pick which deliverables they want, and download the results. The backend is a FastAPI server that runs the heavy AI as background jobs (a full match takes around 3 hours, so it processes while you walk away and can survive a restart), and it wraps my existing pipeline scripts rather than rewriting them. The whole thing is tested end to end with 62 passing checks, and I have already stress-tested it on a full 47-minute match to see what breaks at real scale. Next stop is real deployment at my school, which is the one thing I cannot fully validate until I have footage from our own courts and teams.
Hi I’m Aarav Sharma and I want to direct a drone with my hands, not just piloting but actual direction. Introducing AirLine: direct a drone with your hands, don’t pilot it. Most gesture drones map your hand to a flight stick (tilt to bank, raise to climb) — you become the joystick. AirLine instead reads cinematic intent (“follow that player,” “orbit the subject”) and figures out the flight itself, because it understands the scene. It’s a branch off my capstone SideLine (an AI sports-analytics system that already tracks “the player with the ball”), reusing its vision core untouched. Software first, glove I build myself next, drone last. Devlog: M1: AirLine runs SideLine’s tracker through a clean seam, vision core untouched. ~19 FPS. M2: Lock onto one subject. Found track IDs fragment — 293/540 frames “lost.” Quantified the re-ID problem on footage, not a $400 drone. M3: Virtual camera follows like an operated shot, drifts to wide when the target’s lost. First time it looked real. M4: Webcam gestures (MediaPipe) — but it conflicts with my vision stack. Setup stopped instead of breaking it. Best decision of the day. M5: Quarantined gestures in their own environment. First real-hand numbers: mostly 10/10 after fixing bugs unit tests missed. M6: Two-process live system — my hand directs the shot in real time. ~297ms latency, only 35ms of it transport. M7: First 3D camera move: orbit on a tiltable plane, proven by geometric invariants to machine precision (~4e-16). M8: Added push-in, pull-out, dolly. Full shot vocabulary done. 146 tests, vision core never touched. Next: hardware actually building the gesture glove by hand and integrating a drone
The pivot — drone → courtside gimbal (and a lesson) Here’s where the project hit its biggest wall, and I want to log it honestly because the recovery taught me more than any milestone. I was about to spec a drone. Then I actually researched drone law in Qatar and found out it’s one of the strictest regimes in the world: every single flight needs a QCAA permit (owning a drone gives you no right to fly it), and there’s a privacy law (Penal Code Art. 333) against filming people without consent, penalties up to two years. For a system whose whole job is filming school matches full of players and spectators, that’s not a paperwork hurdle, it’s a wall. My original picture a drone autonomously filming matches was effectively dead. The lesson, written down so I don’t forget it: research the constraints of the real world before you fall in love with a plan. I’d validated the software to machine precision, but I almost skipped checking whether the deployment was even legal. Check the boring stuff first. So I swapped the drone for a 3-DOF gimbal on a rail: a motorised camera mount (pan / tilt / roll) that slides along a track, parked courtside. No permit. Same filming-consent terms my existing fixed cameras already navigate. And it runs every match, not the one-off a permitted drone flight would’ve been. It’s more deployable than the drone ever was. A gimbal is also a categorically real difference from just pointing a camera, for one optical reason that isn’t arguable: a fixed camera can only ever crop the pixels it already has, but a gimbal physically moves the lens real parallax, a real push-in that changes perspective, footage that simply doesn’t exist in a static feed. The human directs the intent (“orbit that player,” “push in”) and the system, which understands the scene, executes the move. That’s the thing a fixed camera can’t do, and it survived the pivot completely intact. M9 — the gimbal’s brain (software) Stardance just opened a hardware track, but this milestone was deliberately software: adapt the system to the gimbal before the parts arrive, so the maths is proven when the hardware lands. The beautiful part: because I’d kept the architecture cleanly separated for nine milestones, the drone→gimbal pivot touched exactly one layer. The gesture engine, the scene tracking, the intent commands, the flight-path engine, the live bridge all unchanged. The only new code is a converter that takes an ideal 3D camera pose and works out what the gimbal can physically do with it: pan/tilt/roll angles to aim, plus a position along the rail. And it stays honest, which is the whole point. A gimbal at a fixed pivot can rotate perfectly but can’t translate so a true orbit (circling a subject) is impossible without the camera leaving its rail. The converter proves this with numbers instead of faking it: a follow shot aims with 0.00° error and zero positional gap (the rig does it cleanly), while an attempted orbit still aims perfectly but reports a 9.05-unit gap, flagged out-of-reach on every frame the system refuses to pretend it can do something the hardware can’t. Honest problems that will probably come up: this is geometry on a perfect simulator. The real gimbal will have motor speed limits, inertia, and backlash, it won’t snap to an angle instantly. That’s the hardware phase’s problem, and I’m not pretending the clean sim is the real rig. Up next: the glove parts are shipping. When they land, the build goes physical. breadboard, sensors, solder. Then the gimbal it is...
|
1792594557.4440548
|
1793199357.4440548
|
|
7135
|
adhdpen by @shoux2 | Stardance
|
shoux2
|
0
|
2.13
|
0
|
[]
|
[{"post_id": 9676, "ts": "2026 [{"post_id": 9676, "ts": "2026-06-16T02:45:27Z", "hours": 2.1264, "text": "Research and development 1"}]...
|
Title: adhdpen by @shoux2 | Stardance
Devlogs:
Re Title: adhdpen by @shoux2 | Stardance
Devlogs:
Research and development 1...
|
1792651933.9070473
|
1793256733.9070473
|
|
14785
|
ManhwaOS by @ElliotsLittleWave | Stardance
|
ElliotsLittleWave
|
1
|
11.0
|
79
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-16T05:18:46Z", "hours": 11.0, "multiplier": 7.24, "payout": 79, "blessing": "neutral", "text": "i made a manhwaOS for all novel and manhwa users to use and save timee. Currently its at the beta stage so most of the actual TIME SAVERS are being added on webOS2 since if i add it rn i maaayyy just have no more ideas for WEBOS2 The most challenging was the design. I actually tried drawing hahahhaah to no avail :( welp atleast it looks okay now since i added leaves and godrays", "repo": "https://github.com/Maxwell7779/ManhwaOS", "demo": "https://manhwa-os.vercel.app/"}]...
|
[{"post_id": 9680, "ts": "2026 [{"post_id": 9680, "ts": "2026-06-16T02:56:09Z", "hours": 0.3944, "text": "LAST LAST DEVLOG#idk THANK YOU FOR EVERYTHINGG this is my first ever project and im so happy and proud that it was shipped HERE IN STARDAANCEEE~!! BYE BYEEE"}, {"post_id": 9133, "ts": "2026-06-15T09:00:10Z", "hours": 0.4122, "text": "LAST DEVLOG #8 FINISHED LAST GOAL AND WILL SHIP added it where when you drag a window over another it prioritzes the window youre dragging and obscues the other windooww will be pushing then submitting BYE YALL"}, {"post_id": 9116, "ts": "2026-06-15T08:04:23Z", "hours": 1.7992, "text": "Devlog#7 ADDED FALLING LEAVES AND GODRAYYSSS!!! i thought what would make it look better? ITS LEAAAVESSS however the main challenge was making it look the same on mobile. I WAS GENUINELY STUCK FOR AN HOUR on making the god rays on mobile not stick to the top while making it look the same on desktop and found : isMobile - i added these to change stuff on mobile aka the responsiveness and all while keeping the desktop UI the same as before!! next devlog ill be making the obscurity of windows change when overlapping to enhance readibility and user-friendliness BYEEE"}, {"post_id": 8775, "ts": "2026-06-14T16:12:42Z", "hours": 2.9244, "text": "DEVLOG#6 possibly last devlog now IMPROVED APP AESTHETIC. Andd YOU CAN NOW DRAG ON MOBILE also improved mobile responsiveness for my mobile viewers to rate highlyy. ALSO finally made it look good, and work across all zoom sizes both mobile and pc YEHEYY hope yall rate this highlyy bye byee"}, {"post_id": 8145, "ts": "2026-06-13T16:14:19Z", "hours": 1.8044, "text": "DEVLOG #5 ADDED A VISITOR COUNTER!! sooo what did i do? i ADVERTISED IT ON REDITT AND DC BTWW i did this and took 2 hours just to leave a good impression on you viewers so plsss rate it highly hehehe THANKSS!! BTW i use supabase for the database and getting the VISITOR COUNT it took me so long its so tricky with the sql editor and stuff BUT I DID ITT"}, {"post_id": 7536, "ts": "2026-06-12T16:11:42Z", "hours": 1.8386, "text": "DEVLOG#4 WHATS NEW!! NEW BACKGROUND search bar seperated for the text not to bleed on mobile better mobile responsiveness change the fonts to MANGA MASTER for that added subtle details into this OS since its a manhwaOS GOAL NEXT DEVLOG add a last feature where when cursor is hovered to the left it opens setting then right you can change the wallpaper ALRIGHT BYE YALL!! NOTE: there was this bad gateway problem so i couldnt update thats why theres a pretty drastic change cuz i was stuck in this computer basically uhh ever since 10 hours ago lol"}, {"post_id": 7418, "ts": "2026-06-12T11:01:33Z", "hours": 0.7914, "text": "DEVLOG #3 BABYY!! YOU CAN SEARCH FOR ANY MANHWA ONLINE!! UPDATE: I SPENT LEGIT 30 mins on LAW cuz it turns out i cant have manhwa on this website because of copyright issues. SO instead i linked it to my manhwa page and my website became a sort of middle man also i feel bad that i didnt accomplish my main goal i added a search bar to open the apps ANDDD ANY MANHWA ONLINEE!! also fixed the issue where the apps open on the same places"}, {"post_id": 7335, "ts": "2026-06-12T07:21:13Z", "hours": 0.6242, "text": "sadly i lost my other file and now i have to redo it which i can but sadly i did commit in time in GIT but had to clone it so my time spent coding went back to 20 minutes"}, {"post_id": 7305, "ts": "2026-06-12T05:24:33Z", "hours": 0.7842, "text": "Im currently making a WebOS to read Manhwas on and i thought itd be possible to read from webtoon adn others inside my webpage? working on it currently"}]...
|
Title: ManhwaOS by @ElliotsLittleWave | Stardance
Title: ManhwaOS by @ElliotsLittleWave | Stardance
Devlogs:
Im currently making a WebOS to read Manhwas on and i thought itd be possible to read from webtoon adn others inside my webpage? working on it currently
sadly i lost my other file and now i have to redo it which i can but sadly i did commit in time in GIT but had to clone it so my time spent coding went back to 20 minutes
DEVLOG #3 BABYY!! YOU CAN SEARCH FOR ANY MANHWA ONLINE!! UPDATE: I SPENT LEGIT 30 mins on LAW cuz it turns out i cant have manhwa on this website because of copyright issues. SO instead i linked it to my manhwa page and my website became a sort of middle man also i feel bad that i didnt accomplish my main goal i added a search bar to open the apps ANDDD ANY MANHWA ONLINEE!! also fixed the issue where the apps open on the same places
DEVLOG#4 WHATS NEW!! NEW BACKGROUND search bar seperated for the text not to bleed on mobile better mobile responsiveness change the fonts to MANGA MASTER for that added subtle details into this OS since its a manhwaOS GOAL NEXT DEVLOG add a last feature where when cursor is hovered to the left it opens setting then right you can change the wallpaper ALRIGHT BYE YALL!! NOTE: there was this bad gateway problem so i couldnt update thats why theres a pretty drastic change cuz i was stuck in this computer basically uhh ever since 10 hours ago lol
DEVLOG #5 ADDED A VISITOR COUNTER!! sooo what did i do? i ADVERTISED IT ON REDITT AND DC BTWW i did this and took 2 hours just to leave a good impression on you viewers so plsss rate it highly hehehe THANKSS!! BTW i use supabase for the database and getting the VISITOR COUNT it took me so long its so tricky with the sql editor and stuff BUT I DID ITT
DEVLOG#6 possibly last devlog now IMPROVED APP AESTHETIC. Andd YOU CAN NOW DRAG ON MOBILE also improved mobile responsiveness for my mobile viewers to rate highlyy. ALSO finally made it look good, and work across all zoom sizes both mobile and pc YEHEYY hope yall rate this highlyy bye byee
Devlog#7 ADDED FALLING LEAVES AND GODRAYYSSS!!! i thought what would make it look better? ITS LEAAAVESSS however the main challenge was making it look the same on mobile. I WAS GENUINELY STUCK FOR AN HOUR on making the god rays on mobile not stick to the top while making it look the same on desktop and found : isMobile - i added these to change stuff on mobile aka the responsiveness and all while keeping the desktop UI the same as before!! next devlog ill be making the obscurity of windows change when overlapping to enhance readibility and user-friendliness BYEEE
LAST DEVLOG #8 FINISHED LAST GOAL AND WILL SHIP added it where when you drag a window over another it prioritzes the window youre dragging and obscues the other windooww will be pushing then submitting BYE YALL
LAST LAST DEVLOG#idk THANK YOU FOR EVERYTHINGG this is my first ever project and im so happy and proud that it was shipped HERE IN STARDAANCEEE~!! BYE BYEEE
Ships:
i made a manhwaOS for all novel and manhwa users to use and save timee. Currently its at the beta stage so most of the actual TIME SAVERS are being added on webOS2 since if i add it rn i maaayyy just have no more ideas for WEBOS2 The most challenging was the design. I actually tried drawing hahahhaah to no avail :( welp atleast it looks okay now since i added leaves and godrays...
|
1792835521.8985412
|
1792921921.8985412
|
|
506
|
Animorphs Book 1 VN by @AJ | Stardance
|
AJ
|
0
|
0.42
|
0
|
[]
|
[{"post_id": 97, "ts": "2026-0 [{"post_id": 97, "ts": "2026-05-31T18:25:17Z", "hours": 0.4225, "text": "Voices for the main characters in the story. I had sound bites from my last game, but created a new voice for Jake, as I thought none of the ones I made already fit him well. I’m happy with how they sound so far!"}]...
|
Title: Animorphs Book 1 VN by @AJ | Stardance
Dev Title: Animorphs Book 1 VN by @AJ | Stardance
Devlogs:
Voices for the main characters in the story. I had sound bites from my last game, but created a new voice for Jake, as I thought none of the ones I made already fit him well. I’m happy with how they sound so far!...
|
1792550846.589516
|
1793155646.589516
|
|
7758
|
the rude slack bot by @shivank | Stardance
|
shivank
|
1
|
16.44
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-05T10:13:26Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a Slack, but which can respond to you. You can make your good mood into something different. It’s response. Can be anywhere from funny to annoying. Good luck.", "repo": "https://github.com/ShivankVibes/rude-slack-bot-tempilate", "demo": "https://hackclub.enterprise.slack.com/archives/D0B8KPXM3HP"}]...
|
[{"post_id": 9720, "ts": "2026 [{"post_id": 9720, "ts": "2026-06-16T04:23:58Z", "hours": 15.4383, "text": "Added fall backs in case of the Gemini reply failing and added Easter eggs"}, {"post_id": 2657, "ts": "2026-06-05T10:12:20Z", "hours": 0.3508, "text": "a rude slack bot, how is the poster?"}, {"post_id": 2649, "ts": "2026-06-05T09:45:01Z", "hours": 0.9972, "text": "the “kindest” slack bot on earth"}]...
|
Title: the rude slack bot by @shivank | Stardance
Title: the rude slack bot by @shivank | Stardance
Devlogs:
the “kindest” slack bot on earth
a rude slack bot, how is the poster?
Added fall backs in case of the Gemini reply failing and added Easter eggs
Ships:
I made a Slack, but which can respond to you. You can make your good mood into something different. It’s response. Can be anywhere from funny to annoying. Good luck....
|
1792824860.180525
|
1792911260.180525
|
|
19119
|
BrawlBoard by @Maskaphobia | Stardance
|
Maskaphobia
|
0
|
1.88
|
0
|
[]
|
[{"post_id": 9721, "ts": "2026 [{"post_id": 9721, "ts": "2026-06-16T04:27:49Z", "hours": 0.7286, "text": "Updated the UI + added a potential API"}, {"post_id": 9184, "ts": "2026-06-15T12:38:43Z", "hours": 1.1547, "text": "First Devlog: Those who play Brawl Stars, feel free to give me your comments :) If you are an experienced player like me, you may feel a point where Brawl Stars lacks some interactiveness. Therefore, I created a vision where the Battlecard feature in the game links to a separate website, sparking a community where aesthetics and personality may triumph over the usual gaming. Progress: Created the skeleton of the website Next step: Improve card form/UI"}]...
|
Title: BrawlBoard by @Maskaphobia | Stardance
Dev Title: BrawlBoard by @Maskaphobia | Stardance
Devlogs:
First Devlog: Those who play Brawl Stars, feel free to give me your comments :) If you are an experienced player like me, you may feel a point where Brawl Stars lacks some interactiveness. Therefore, I created a vision where the Battlecard feature in the game links to a separate website, sparking a community where aesthetics and personality may triumph over the usual gaming. Progress: Created the skeleton of the website Next step: Improve card form/UI
Updated the UI + added a potential API...
|
1792608835.6318843
|
1793213635.6318843
|
|
19610
|
AI debate by @suryanshmishra_e | Stardance
|
suryanshmishra_e
|
0
|
0.41
|
0
|
[]
|
[{"post_id": 9724, "ts": "2026 [{"post_id": 9724, "ts": "2026-06-16T04:38:43Z", "hours": 0.4147, "text": "I am working on making my portfolio where i ca showcase all my work,, Currently in progress"}]...
|
Title: AI debate by @suryanshmishra_e | Stardance
Title: AI debate by @suryanshmishra_e | Stardance
Devlogs:
I am working on making my portfolio where i ca showcase all my work,, Currently in progress...
|
1792774428.5276592
|
1793379228.5276592
|
|
17029
|
Pronoun Palace Music Player by @xanderath | Starda Pronoun Palace Music Player by @xanderath | Stardance...
|
xanderath
|
1
|
3.0
|
20
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-16T05:02:13Z", "hours": 3.0, "multiplier": 5.8, "payout": 20, "blessing": "neutral", "text": "As this was one of the first mods made for this game, I had to learn how the game works and how to make my mod load.", "repo": "https://github.com/Emarald64/music_player", "demo": "https://youtu.be/Y2NHza-pziE"}]...
|
[{"post_id": 9729, "ts": "2026 [{"post_id": 9729, "ts": "2026-06-16T04:50:45Z", "hours": 0.4364, "text": "added proper sprites for the cassette"}, {"post_id": 8417, "ts": "2026-06-14T00:03:20Z", "hours": 0.5031, "text": "Added animations to buttons and sound effects for clicks and the cassette flip"}, {"post_id": 8320, "ts": "2026-06-13T20:42:24Z", "hours": 2.4183, "text": "added title screen button, cassette player sprite, and music playing logic. Also made the regular songs play on side A and the the shadow songs on side B"}]...
|
Title: Pronoun Palace Music Player by @xanderath | Title: Pronoun Palace Music Player by @xanderath | Stardance
Devlogs:
added title screen button, cassette player sprite, and music playing logic. Also made the regular songs play on side A and the the shadow songs on side B
Added animations to buttons and sound effects for clicks and the cassette flip
added proper sprites for the cassette
Ships:
As this was one of the first mods made for this game, I had to learn how the game works and how to make my mod load....
|
1792835418.1501486
|
1792921818.1501486
|
|
5752
|
MarketSim-AI by @Diego | Stardance
|
Diego
|
0
|
3.13
|
0
|
[]
|
[{"post_id": 9736, "ts": "2026 [{"post_id": 9736, "ts": "2026-06-16T05:03:46Z", "hours": 0.43, "text": "day whatever Building the Market Simulation Clock Today I implemented two core pieces of the MarketSim AI simulation engine: step() and get_history() . The biggest challenge in this project is preventing future data leakage. The trading agent must only see information that would have been available on the current simulated date. To support this, I created a trading calendar system based on historical SPY market data. Instead of manually adding one day at a time (which would break on weekends and holidays), the simulator follows actual market trading days. The new step() method advances the simulation exactly one trading day forward by moving through this calendar. I also implemented get_history() , which acts as a security layer between the agent and the raw market data. When historical data is requested, the method filters the dataset to include only dates up to the current simulation date before returning the requested lookback window. This ensures the agent can never accidentally access future information. Example: history = env . get_history ( \" AAPL \" , lookback_days = 30 ) returns only the previous 30 trading days that existed at that point in time. Along the way I added unit tests to verify: Environment creation Trading-day advancement with step() Historical data retrieval Prevention of future-date access Current project status: ✅ Data download pipeline ✅ Data cleaning pipeline ✅ DataLoader ✅ MarketEnvironment ✅ Trading calendar system ✅ step() simulation advancement ✅ get_history() future-leakage protection ✅ 7 passing tests The simulator can now move through history one trading day at a time while enforcing realistic information constraints—the foundation needed for future trading agents."}, {"post_id": 7325, "ts": "2026-06-12T06:25:15Z", "hours": 0.8553, "text": "Today I worked on various things. I worked on the data loader python file. Ensuring that all the tickers were clean, and processed and then loaded. Then I worked on the market environment python file. This is arguably the most important file because I need to make sure that no future data can be seen by it. After that, I created tests for both the data loader, and the market environment to make sure I am writing production quality code."}, {"post_id": 5981, "ts": "2026-06-10T01:08:06Z", "hours": 0.8575, "text": "Today I spent the majority of my time loading my data. This means downloading the raw data from Yahoo Finance. Then I realized it came in a format I didn’t want. So as you can see below, I spent some time cleaning it up."}, {"post_id": 5424, "ts": "2026-06-09T05:55:58Z", "hours": 0.9831, "text": "Today I spent a lot of time working on organizing all my files and getting the correct architecture structure set up. Very boring indeed."}]...
|
Title: MarketSim-AI by @Diego | Stardance
Devlogs Title: MarketSim-AI by @Diego | Stardance
Devlogs:
Today I spent a lot of time working on organizing all my files and getting the correct architecture structure set up. Very boring indeed.
Today I spent the majority of my time loading my data. This means downloading the raw data from Yahoo Finance. Then I realized it came in a format I didn’t want. So as you can see below, I spent some time cleaning it up.
Today I worked on various things. I worked on the data loader python file. Ensuring that all the tickers were clean, and processed and then loaded. Then I worked on the market environment python file. This is arguably the most important file because I need to make sure that no future data can be seen by it. After that, I created tests for both the data loader, and the market environment to make sure I am writing production quality code.
day whatever Building the Market Simulation Clock Today I implemented two core pieces of the MarketSim AI simulation engine: step() and get_history() . The biggest challenge in this project is preventing future data leakage. The trading agent must only see information that would have been available on the current simulated date. To support this, I created a trading calendar system based on historical SPY market data. Instead of manually adding one day at a time (which would break on weekends and holidays), the simulator follows actual market trading days. The new step() method advances the simulation exactly one trading day forward by moving through this calendar. I also implemented get_history() , which acts as a security layer between the agent and the raw market data. When historical data is requested, the method filters the dataset to include only dates up to the current simulation date before returning the requested lookback window. This ensures the agent can never accidentally access future information. Example: history = env . get_history ( " AAPL " , lookback_days = 30 ) returns only the previous 30 trading days that existed at that point in time. Along the way I added unit tests to verify: Environment creation Trading-day advancement with step() Historical data retrieval Prevention of future-date access Current project status: ✅ Data download pipeline ✅ Data cleaning pipeline ✅ DataLoader ✅ MarketEnvironment ✅ Trading calendar system ✅ step() simulation advancement ✅ get_history() future-leakage protection ✅ 7 passing tests The simulator can now move through history one trading day at a time while enforcing realistic information constraints—the foundation needed for future trading agents....
|
1792742122.1877778
|
1793346922.1877778
|
|
13901
|
Smart Earth/Sky Monitor by @Diego | Stardance
|
Diego
|
0
|
3.87
|
0
|
[]
|
[{"post_id": 9738, "ts": "2026 [{"post_id": 9738, "ts": "2026-06-16T05:07:20Z", "hours": 0.8217, "text": "Today I spent a lot of time reorganizing things. I took my anomaly_detection.py file, and removed it from the scheduler. This was because the scheduler.py file ran this and the ml_models.py time every hour on the hour. So instead I added the anomaly_detection.py file to the ml_models.py, so now it runs that, and then the scheduler runs the models file, which then runs the anomaly detection file, so its all in one complete loop: every hour: scheduler -> ml models -> anomaly detection Because of this change I was able to add the anomaly detection (Isolation Forest algorithm) as a feature for all the models I was training: the random forest alg, neural network, and linear regression model."}, {"post_id": 7323, "ts": "2026-06-12T06:18:24Z", "hours": 1.8372, "text": "Wow well today was a lot of work. Today I added some more models to my ml_models.py file, but more importantly I changed the logs on it. Then I serialized the models to the disk. After that I redid the QuickChecks.R file because I realized I was struggling to be able to view each dataset to see what data I was collecting and how I was doing. Then I saved the model performance metrics and was able to view them. A lot of busy work today."}, {"post_id": 5423, "ts": "2026-06-09T05:54:01Z", "hours": 1.2083, "text": "Today I worked on adding a Random Forest Classifier to my list of prediction models being run by this python script to test if I can predict if a earthquake will be over or under 5.0 magnitude."}]...
|
Title: Smart Earth/Sky Monitor by @Diego | Stardan Title: Smart Earth/Sky Monitor by @Diego | Stardance
Devlogs:
Today I worked on adding a Random Forest Classifier to my list of prediction models being run by this python script to test if I can predict if a earthquake will be over or under 5.0 magnitude.
Wow well today was a lot of work. Today I added some more models to my ml_models.py file, but more importantly I changed the logs on it. Then I serialized the models to the disk. After that I redid the QuickChecks.R file because I realized I was struggling to be able to view each dataset to see what data I was collecting and how I was doing. Then I saved the model performance metrics and was able to view them. A lot of busy work today.
Today I spent a lot of time reorganizing things. I took my anomaly_detection.py file, and removed it from the scheduler. This was because the scheduler.py file ran this and the ml_models.py time every hour on the hour. So instead I added the anomaly_detection.py file to the ml_models.py, so now it runs that, and then the scheduler runs the models file, which then runs the anomaly detection file, so its all in one complete loop: every hour: scheduler -> ml models -> anomaly detection Because of this change I was able to add the anomaly detection (Isolation Forest algorithm) as a feature for all the models I was training: the random forest alg, neural network, and linear regression model....
|
1792727675.787469
|
1793332475.787469
|
|
7330
|
My first slack bot! by @Rivaan | Stardance
|
Rivaan
|
1
|
6.34
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-07T08:17:08Z", "hours": 5.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I built SlackyBOT , an open-source AI-powered Slack assistant using Node.js, Slack Bolt, and Google Gemini AI. The bot supports multiple features including: Gemini AI chat ( /hbsc-gemini ) Weather reports ( /hbsc-weather ) Calculator commands Memes, jokes, and fun facts Coin flips Help and utility commands The most challenging part was integrating multiple APIs and debugging Slack permissions, payload handling, and external service responses. I also learned how to work with geocoding APIs since weather services require coordinates instead of city names. I’m most proud of successfully deploying the bot on Hack Club Nest and making it available for public testing through a live Slack workspace. How to Test Click Try Project . Join the demo Slack workspace. Open the #slackybot-demo-stardance channel. Run: /hbsc-help /hbsc-gemini explain recursion /hbsc-weather london /hbsc-meme The project includes a public GitHub repository, documentation, website, and a live deployment on NEST that remains online 24/7 for testing.", "repo": "https://github.com/Abhiudaymaurya/Slack-Bot", "demo": "https://hackclub.enterprise.slack.com/archives/C0BQZDSTC4S"}]...
|
[{"post_id": 9741, "ts": "2026 [{"post_id": 9741, "ts": "2026-06-16T05:09:17Z", "hours": 1.3353, "text": "Final Update Upgraded the Slack bot according to the reviewer’s comments. Deleted the AI capabilities from the bot, and edited the README accordingly for the updated version of the project. Some additional minor changes have been done in the code as well."}, {"post_id": 4064, "ts": "2026-06-07T07:45:17Z", "hours": 1.9183, "text": "🤖 SlackyBOT — Project Complete After several iterations, SlackyBOT is now fully functional, deployed, and available for public testing. SlackyBOT is an open-source Slack assistant built with Node.js, Slack Bolt, and Google Gemini API. The bot combines AI assistance, weather reports, utility tools, calculators, and entertainment features directly inside Slack. ✅ Implemented Features /hbsc-help /hbsc-ping /hbsc-sum /hbsc-minus /hbsc-multiply /hbsc-divide /hbsc-joke /hbsc-funfact /hbsc-meme /hbsc-coinflip /hbsc-weather <city> /hbsc-gemini <question> 🛠 What I Built Google Gemini AI integration Real-time weather reports with geocoding Calculator utilities Meme, joke, and fun fact commands Slash command handling with Slack Bolt Public demo workspace Project website and documentation Deployment on Hack Club Nest 📚 What I Learned This project taught me much more than Slack bot development. Building backend applications with Node.js Working with multiple external APIs Debugging production issues Environment variable management Slack permissions and app configuration Error handling and API validation Deploying and maintaining a live service One of the most interesting challenges was the weather system. Since weather APIs typically require coordinates rather than city names, I implemented geocoding to convert user input into usable location data before fetching forecasts. 🌐 Live Demo & Testing A public demo workspace is available for testing SlackyBOT. Demo Website https://abhiudaymaurya.github.io/Slack-Bot/ How to Test Open the demo website. Click Join Demo Workspace . Join the Slack workspace using your Slack account. Open the #slackybot-demo-stardance channel. Try the available slash commands. SlackyBOT is deployed on Hack Club Nest and remains online for public testing. The project includes: Public GitHub repository Documentation and setup instructions Demo website Public Slack workspace for testing 🎯 Final Result What started as a simple experiment with Slack slash commands evolved into a complete AI-powered Slack assistant with multiple integrations, public deployment, and real users able to test it. Building SlackyBOT gave me valuable experience with APIs, backend development, debugging, deployment, and designing software that people can interact with directly inside Slack. 🚀 Ready for review and public testing."}, {"post_id": 3378, "ts": "2026-06-06T08:39:59Z", "hours": 1.6344, "text": "🤖 SlackyBOT Progress Update Today was a big milestone for SlackyBOT. What started as a simple Slack bot now supports calculator commands, fun commands, weather lookups, and Google Gemini AI. ✅ Features Completed /hbsc-help /hbsc-ping /hbsc-sum /hbsc-minus /hbsc-multiply /hbsc-divide /hbsc-joke /hbsc-funfact /hbsc-meme /hbsc-coinflip /hbsc-weather <city> /hbsc-gemini <question> 🛠 What I Learned Building slash commands with Slack Bolt Working with external APIs Managing environment variables and permissions Debugging API responses and payload issues Using geocoding APIs for weather lookups Integrating Google Gemini AI into Slack 🌤 Biggest Challenge The weather command was more challenging than I expected. Most weather APIs require latitude and longitude instead of a city name, so I added geocoding to convert user input into coordinates before requesting weather data. 🚀 Current Progress Gemini AI integration complete Weather command complete Fun commands complete Calculator commands complete Documentation complete Demo workspace available Public website available 🎯 Next Step Deploy SlackyBOT on Hack Club Nest so it can stay online 24/7 and be tested without running it locally. This project has been a great way to learn more about APIs, backend development, debugging, and building tools that people can use directly inside Slack."}, {"post_id": 2654, "ts": "2026-06-05T10:06:58Z", "hours": 0.7667, "text": "🤖 Gemini AI Integration Complete I just integrated Google Gemini AI into SlackyBOT. Now users can ask questions right from Slack. Get answers generated by AI. It was tougher than I thought to get this feature working. I faced issues with API configuration, accessing models, Slack permissions and a few bugs in my code.. After checking logs and documentation I got it working. ✅ Available Commands /hbsc-help /hbsc-ping /hbsc-joke /hbsc-sum /hbsc-gemini <question> 🎬 Gemini AI Demo 🛠 What I Learned Handling commands with Slack Bolt Integrating Google Gemini API Managing environment variables Debugging. Handling errors Configuring Slack. App settings 🎯 Next Steps I plan to deploy SlackyBOT on Hack Club Nest. This way it can stay online all the time. Be accessible, without needing to run locally. Credits Gemini Documentation Slack Documentation StarDance Beginner Guide"}, {"post_id": 2574, "ts": "2026-06-05T04:43:23Z", "hours": 0.5281, "text": "🤖 First Step in Building SlackyBOT Today I started building my own Slack bot and learned how Slack apps and slash commands work. After setting up Slack Bolt and reading through the documentation, I got my first commands working: /hbsc-ping /hbsc-help /hbsc-joke The joke command fetches jokes from an external API and sends them directly to Slack. ✅ What I Built Created the Slack app Set up Slack Bolt Added slash command handling Implemented a ping command Implemented a help command Implemented a joke command using an external API 🛠 What I Learned How Slack slash commands work How to process user commands in the backend Slack Bolt fundamentals Making API requests from a Slack bot 🎯 Next Steps Add calculator commands Integrate Gemini AI Add weather commands Deploy the bot for testing A small step, but SlackyBOT is finally taking shape. 🚀"}]...
|
Title: My first slack bot! by @Rivaan | Stardance
Title: My first slack bot! by @Rivaan | Stardance
Devlogs:
🤖 First Step in Building SlackyBOT Today I started building my own Slack bot and learned how Slack apps and slash commands work. After setting up Slack Bolt and reading through the documentation, I got my first commands working: /hbsc-ping /hbsc-help /hbsc-joke The joke command fetches jokes from an external API and sends them directly to Slack. ✅ What I Built Created the Slack app Set up Slack Bolt Added slash command handling Implemented a ping command Implemented a help command Implemented a joke command using an external API 🛠 What I Learned How Slack slash commands work How to process user commands in the backend Slack Bolt fundamentals Making API requests from a Slack bot 🎯 Next Steps Add calculator commands Integrate Gemini AI Add weather commands Deploy the bot for testing A small step, but SlackyBOT is finally taking shape. 🚀
🤖 Gemini AI Integration Complete I just integrated Google Gemini AI into SlackyBOT. Now users can ask questions right from Slack. Get answers generated by AI. It was tougher than I thought to get this feature working. I faced issues with API configuration, accessing models, Slack permissions and a few bugs in my code.. After checking logs and documentation I got it working. ✅ Available Commands /hbsc-help /hbsc-ping /hbsc-joke /hbsc-sum /hbsc-gemini <question> 🎬 Gemini AI Demo 🛠 What I Learned Handling commands with Slack Bolt Integrating Google Gemini API Managing environment variables Debugging. Handling errors Configuring Slack. App settings 🎯 Next Steps I plan to deploy SlackyBOT on Hack Club Nest. This way it can stay online all the time. Be accessible, without needing to run locally. Credits Gemini Documentation Slack Documentation StarDance Beginner Guide
🤖 SlackyBOT Progress Update Today was a big milestone for SlackyBOT. What started as a simple Slack bot now supports calculator commands, fun commands, weather lookups, and Google Gemini AI. ✅ Features Completed /hbsc-help /hbsc-ping /hbsc-sum /hbsc-minus /hbsc-multiply /hbsc-divide /hbsc-joke /hbsc-funfact /hbsc-meme /hbsc-coinflip /hbsc-weather <city> /hbsc-gemini <question> 🛠 What I Learned Building slash commands with Slack Bolt Working with external APIs Managing environment variables and permissions Debugging API responses and payload issues Using geocoding APIs for weather lookups Integrating Google Gemini AI into Slack 🌤 Biggest Challenge The weather command was more challenging than I expected. Most weather APIs require latitude and longitude instead of a city name, so I added geocoding to convert user input into coordinates before requesting weather data. 🚀 Current Progress Gemini AI integration complete Weather command complete Fun commands complete Calculator commands complete Documentation complete Demo workspace available Public website available 🎯 Next Step Deploy SlackyBOT on Hack Club Nest so it can stay online 24/7 and be tested without running it locally. This project has been a great way to learn more about APIs, backend development, debugging, and building tools that people can use directly inside Slack.
🤖 SlackyBOT — Project Complete After several iterations, SlackyBOT is now fully functional, deployed, and available for public testing. SlackyBOT is an open-source Slack assistant built with Node.js, Slack Bolt, and Google Gemini API. The bot combines AI assistance, weather reports, utility tools, calculators, and entertainment features directly inside Slack. ✅ Implemented Features /hbsc-help /hbsc-ping /hbsc-sum /hbsc-minus /hbsc-multiply /hbsc-divide /hbsc-joke /hbsc-funfact /hbsc-meme /hbsc-coinflip /hbsc-weather <city> /hbsc-gemini <question> 🛠 What I Built Google Gemini AI integration Real-time weather reports with geocoding Calculator utilities Meme, joke, and fun fact commands Slash command handling with Slack Bolt Public demo workspace Project website and documentation Deployment on Hack Club Nest 📚 What I Learned This project taught me much more than Slack bot development. Building backend applications with Node.js Working with multiple external APIs Debugging production issues Environment variable management Slack permissions and app configuration Error handling and API validation Deploying and maintaining a live service One of the most interesting challenges was the weather system. Since weather APIs typically require coordinates rather than city names, I implemented geocoding to convert user input into usable location data before fetching forecasts. 🌐 Live Demo & Testing A public demo workspace is available for testing SlackyBOT. Demo Website https://abhiudaymaurya.github.io/Slack-Bot/ How to Test Open the demo website. Click Join Demo Workspace . Join the Slack workspace using your Slack account. Open the #slackybot-demo-stardance channel. Try the available slash commands. SlackyBOT is deployed on Hack Club Nest and remains online for public testing. The project includes: Public GitHub repository Documentation and setup instructions Demo website Public Slack workspace for testing 🎯 Final Result What started as a simple experiment with Slack slash commands evolved into a complete AI-powered Slack assistant with multiple integrations, public deployment, and real users able to test it. Building SlackyBOT gave me valuable experience with APIs, backend development, debugging, deployment, and designing software that people can interact with directly inside Slack. 🚀 Ready for review and public testing.
Final Update Upgraded the Slack bot according to the reviewer’s comments. Deleted the AI capabilities from the bot, and edited the README accordingly for the updated version of the project. Some additional minor changes have been done in the code as well.
Ships:
I built SlackyBOT , an open-source AI-powered Slack assistant using Node.js, Slack Bolt, and Google Gemini AI. The bot supports multiple features including: Gemini AI chat ( /hbsc-gemini ) Weather reports ( /hbsc-weather ) Calculator commands Memes, jokes, and fun facts Coin flips Help and utility commands The most challenging part was integrating multiple APIs and debugging Slack permissions, payload handling, and external service responses. I also learned how to work with geocoding APIs since weather services require coordinates instead of city names. I’m most proud of successfully deploying the bot on Hack Club Nest and making it available for public testing through a live Slack workspace. How to Test Click Try Project . Join the demo Slack workspace. Open the #slackybot-demo-stardance channel. Run: /hbsc-help /hbsc-gemini explain recursion /hbsc-weather london /hbsc-meme The project includes a public GitHub repository, documentation, website, and a live deployment on NEST that remains online 24/7 for testing....
|
1792828494.6025455
|
1792914894.6025455
|
|
19662
|
Calculator by @smjp | Stardance
|
smjp
|
1
|
0.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-25T06:54:08Z", "hours": 0.0, "multiplier": 1.25, "payout": 0, "blessing": "neutral", "text": "I made a calculator project! Its very simple and one of the basic things you make while learning javascript but the biggest thing i learnt at that time was DOM. Right now, I am working on a really big project, this project was 2 weeks ago!", "repo": "https://github.com/Spirit62/Calculator", "demo": "https://spirit62.github.io/Calculator/"}]...
|
[{"post_id": 9745, "ts": "2026 [{"post_id": 9745, "ts": "2026-06-16T05:16:15Z", "hours": 0.4072, "text": "I built a sleek, dark-themed calculator web application featuring a modern minimalist button grid and real-time computation logic after practicing more of my JavaScript fundamentals. Currently, the most challenging part was managing the calculation state, updating the UI display dynamically with each button click, and ensuring operators stringed together correctly in the background, especially since I’m still quite new to web development. However, now it looks really sharp with its smooth rounded buttons and vibrant orange accent colors, and even if it’s a straightforward project, I hope you guys do give it a good spin at least once and maybe suggest some improvements!"}]...
|
Title: Calculator by @smjp | Stardance
Devlogs:
I Title: Calculator by @smjp | Stardance
Devlogs:
I built a sleek, dark-themed calculator web application featuring a modern minimalist button grid and real-time computation logic after practicing more of my JavaScript fundamentals. Currently, the most challenging part was managing the calculation state, updating the UI display dynamically with each button click, and ensuring operators stringed together correctly in the background, especially since I’m still quite new to web development. However, now it looks really sharp with its smooth rounded buttons and vibrant orange accent colors, and even if it’s a straightforward project, I hope you guys do give it a good spin at least once and maybe suggest some improvements!
Ships:
I made a calculator project! Its very simple and one of the basic things you make while learning javascript but the biggest thing i learnt at that time was DOM. Right now, I am working on a really big project, this project was 2 weeks ago!...
|
1792849884.3960989
|
1792936284.3960989
|
|
3922
|
cosnap by @youngzheimer | Stardance
|
youngzheimer
|
0
|
9.55
|
0
|
[]
|
[{"post_id": 9749, "ts": "2026 [{"post_id": 9749, "ts": "2026-06-16T05:26:32Z", "hours": 4.7889, "text": "many things login&signup page design fixed session logic a bit many thing with event"}, {"post_id": 4755, "ts": "2026-06-08T06:29:59Z", "hours": 2.2228, "text": "made signup & login & session w/ JWT and RTR"}, {"post_id": 821, "ts": "2026-06-02T14:36:52Z", "hours": 1.7575, "text": "making form from json schema"}, {"post_id": 594, "ts": "2026-06-02T02:45:58Z", "hours": 0.7789, "text": "example DB values for testing"}]...
|
Title: cosnap by @youngzheimer | Stardance
Devlog Title: cosnap by @youngzheimer | Stardance
Devlogs:
example DB values for testing
making form from json schema
made signup & login & session w/ JWT and RTR
many things login&signup page design fixed session logic a bit many thing with event...
|
1792803281.214417
|
1793408081.214417
|
|
15624
|
My awesome macropad! by @Rudraa | Stardance
|
Rudraa
|
1
|
9.0
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-17T03:40:59Z", "hours": 9.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a 12 key macro pad with an 0.91 OLED display . the challenges i mostly faces was in the CAD softwere i have to made this model 4 times after i get corection and same goes for the PCB design IG I have changed my PCB design for 3-4 times also but this weas really funn i learned a lot !! now i have skills in CAD and PCB designes Now what this macro pad actually does? the first is its really looking cool with 12 keys and a small OLED display the top 9 keyes and bottom 2 left keyes are for layer 0 and when we press th bottom right key th macro pad shifted to the Layer 1 so i have 22 Keys indirectly and 1 Model key . This is main features of his and its minimilistic and when the shipment arrives i am going to hand pain the cherry blossomo tree on the Key board front penal that makes it way coool And i have used th AI for undertsnding and solving erroress in PCB and CAD models (In those mostly used You tube but still used the AI also as a tutor to guild me)and in the code i have also used AI . Thats itt its really cool , minimilistic , highly featured CherryPad. Looking fowerd to see that shipp Lets Goooo …", "repo": "https://github.com/Rudraa-25/cherryblossom-pad", "demo": ""}]...
|
[{"post_id": 9759, "ts": "2026 [{"post_id": 9759, "ts": "2026-06-16T06:02:04Z", "hours": 5.2725, "text": "Just complete my Macropad CAD designn Looking forward to write its Firmwere ASAP ,……. Letss Goo also if you found any mistackes or problrms in this Pls. LMK 😄😅"}, {"post_id": 7497, "ts": "2026-06-12T14:37:47Z", "hours": 2.0078, "text": "Routingss are completedd Letss Goo!!"}, {"post_id": 7290, "ts": "2026-06-12T04:47:23Z", "hours": 1.7939, "text": "Doing PCB Routing for my Macropad"}]...
|
Title: My awesome macropad! by @Rudraa | Stardance Title: My awesome macropad! by @Rudraa | Stardance
Devlogs:
Doing PCB Routing for my Macropad
Routingss are completedd Letss Goo!!
Just complete my Macropad CAD designn Looking forward to write its Firmwere ASAP ,……. Letss Goo also if you found any mistackes or problrms in this Pls. LMK 😄😅
Ships:
I made a 12 key macro pad with an 0.91 OLED display . the challenges i mostly faces was in the CAD softwere i have to made this model 4 times after i get corection and same goes for the PCB design IG I have changed my PCB design for 3-4 times also but this weas really funn i learned a lot !! now i have skills in CAD and PCB designes Now what this macro pad actually does? the first is its really looking cool with 12 keys and a small OLED display the top 9 keyes and bottom 2 left keyes are for layer 0 and when we press th bottom right key th macro pad shifted to the Layer 1 so i have 22 Keys indirectly and 1 Model key . This is main features of his and its minimilistic and when the shipment arrives i am going to hand pain the cherry blossomo tree on the Key board front penal that makes it way coool And i have used th AI for undertsnding and solving erroress in PCB and CAD models (In those mostly used You tube but still used the AI also as a tutor to guild me)and in the code i have also used AI . Thats itt its really cool , minimilistic , highly featured CherryPad. Looking fowerd to see that shipp Lets Goooo …...
|
1792821082.9652429
|
1792907482.9652429
|
|
18952
|
Starslack by @valentine | Stardance
|
valentine
|
1
|
2.91
|
0
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-16T05:01:20Z", "hours": 2.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a simple Slack app that shows random NWS alerts, flips coins, and shows random bunnies upon request.", "repo": "https://github.com/valbuildr/starslack", "demo": "https://hackclub.enterprise.slack.com/archives/C0BARAFQ9U5"}]...
|
[{"post_id": 9763, "ts": "2026 [{"post_id": 9763, "ts": "2026-06-16T06:11:49Z", "hours": 0.9069, "text": "I’ve added a help command to Starslack, showing all available commands and what they do. Starslack also now has a channel on the Hack Club Slack."}, {"post_id": 9715, "ts": "2026-06-16T04:13:28Z", "hours": 1.0219, "text": "Learning more about how Slack bots work as someone who’s worked on a Discord bot or few has been really interesting. Today I learned how to use blocks, buttons, modals and more. Making improvements to the random NWS alert command utilizing them makes me much more proud of it. (I also added a random bunny image command 🐇)"}, {"post_id": 9064, "ts": "2026-06-15T04:13:21Z", "hours": 0.9411, "text": "Figuring out what exactly to add to a project when I’m just learning about the tools is quite hard. It took me longer than I like to admit to come up with the seemingly random feature of just providing a random NWS alert."}]...
|
Title: Starslack by @valentine | Stardance
Devlog Title: Starslack by @valentine | Stardance
Devlogs:
Figuring out what exactly to add to a project when I’m just learning about the tools is quite hard. It took me longer than I like to admit to come up with the seemingly random feature of just providing a random NWS alert.
Learning more about how Slack bots work as someone who’s worked on a Discord bot or few has been really interesting. Today I learned how to use blocks, buttons, modals and more. Making improvements to the random NWS alert command utilizing them makes me much more proud of it. (I also added a random bunny image command 🐇)
I’ve added a help command to Starslack, showing all available commands and what they do. Starslack also now has a channel on the Hack Club Slack.
Ships:
I made a simple Slack app that shows random NWS alerts, flips coins, and shows random bunnies upon request....
|
1792824615.538971
|
1792911015.538971
|
|
17248
|
Wanderpin by @darshjain | Stardance
|
darshjain
|
1
|
40.0
|
735
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-06-16T08:35:27Z", "hours": 40.0, "multiplier": 18.23, "payout": 735, "blessing": "neutral", "text": "Wanderpin is a 3D-globe trip planner where the journey is the product, not the spreadsheet. Drop pins on a spinning night-earth, watch your route stitch together, then hit Play and fly the whole trip as a cinematic reel - gliding across the globe for long hops and dropping into real 3D terrain when two stops are close. The hardest part was making the globe-to-3D handoff feel continuous. Two heavy engines (three.js for the globe, MapLibre for terrain) had to crossfade without a tile-load flash, so I warm the 3D view in the background and only commit once it’s actually ready. I also caught the play-through reel re-rendering the entire app - globe included - on every caption tick; moving the caption into its own useSyncExternalStore so only it updates made the fly-through visibly smoother. I’m proud that it feels like a journey instead of a form: the cinematic reel, ~40k curated places that each carry a vibe and a fun fact, and one-tap sharing as a postcard, a public link, or an embeddable live globe. To try it: open the live link, search a city or just click the globe to drop pins (or start from a template like India’s Golden Triangle), then hit Play. Zoom all the way into a pin to watch it cross into street-level 3D. Built with React 19 + TypeScript, three.js, MapLibre GL, and Vercel serverless.", "repo": "https://github.com/darshnerd/wanderpin", "demo": "https://wanderpin-ecru.vercel.app/"}]...
|
[{"post_id": 9766, "ts": "2026 [{"post_id": 9766, "ts": "2026-06-16T06:22:00Z", "hours": 3.9347, "text": "Wanderpin - the first five seconds, final touchups Everything in this batch is about the moment someone lands : a blank globe is intimidating, so I built a real first-run, made it personal, and fixed a jank I’d been ignoring. A front door instead of an empty globe New visitors get a welcome dialog: Plan a trip, or Remember one you took. Either way there are starter templates (a week in Italy, around the world, a California road trip) you can drop in with one tap and start dragging stops around. Coachmarks that follow the actual UI A short guided tour spotlights real elements: search, the view toggle, Play. It measures each target’s live bounding rect, re-measures on resize and focus, flips above/below by screen half, and hides itself the moment you focus the search box so it never fights you while typing. Dismissals persist so it doesn’t nag on return visits. Where it stands Build’s green, all staged, not yet committed. Next: watch real first sessions, do people tap through a template or skip straight to search?"}, {"post_id": 9295, "ts": "2026-06-15T16:44:56Z", "hours": 4.0172, "text": "Wanderpin - getting routes to leave the ground Live: https://wanderpin-ecru.vercel.app/ One update, mostly one stubborn visual I’d twice given up on: real lifted route arcs on the 3D map. Arcs that finally hug the globe deck.gl’s ArcLayer drifts on a MapLibre globe (it only knows Web Mercator), and my earlier hand-rolled layer compiled, ran, threw zero errors, and painted nothing. The fix came from reading MapLibre’s own shaders: inject its projection prelude and call projectTileFor3D(pos, elevation) . The thing I’d missed every time - elevation is in meters above the sphere , fed through five per-frame uniforms, not a raw matrix. Then the polish fights: a z-fight speckle (fixed by not writing depth), a 50 km minimum lift that made short hops launch like fireworks, and a fat vertical wall at city zoom (now fades out past ~zoom 10). An optional day timeline New “Days” view in the trip panel. Weekend trip? You’ll never see it. Month-long? Hit “Organize into days” and stops group into collapsible days you can split, reorder, fit the globe to, or play one at a time. A day is a contiguous slice of the route, so “move to Day 3” repositions the stop and re-normalizes - the route and itinerary stay honest. Days travel on share links too. Where it stands Live at site, (Also squashed a deploy bug: one .tsx API route made Vercel type-check the whole api/ folder with no tsconfig - a tiny api/tsconfig.json fixed it.)"}, {"post_id": 9121, "ts": "2026-06-15T08:21:12Z", "hours": 5.0136, "text": "Wanderpin - the globe looked dumb on a 20 km hop, so I taught it to zoom This batch turns a Wanderpin trip from a thing on your screen into a thing you can send to a friend - with a real link preview, an embeddable globe, and a reel that finally looks good on short hops. Share a journey, for real Hit Share and you get a public link ( /t/slug ) in a box, plus Copy, the native share sheet, and WhatsApp / Instagram / X buttons. The interesting part is what happens when someone opens that link: /t/:slug is server-rendered ( api/share.ts ) and serves a dynamically generated Open Graph image ( api/og.tsx via @vercel/og ) - so pasting a Wanderpin link into a chat unfurls into a proper preview card instead of a blank rectangle. There’s an embeddable globe too: /embed/:slug renders just the spinning globe (a tiny route check in main.tsx swaps the whole app for EmbedView ), and the share dialog hands you the <iframe> snippet. Shared trips auto-expire after 7 days via a pg_cron job, so the table stays small and old links quietly die. The reel got smarter - 3D for the short hops The globe fly-through looks flat when two stops are 20 km apart - the arc is a stub and the camera barely moves. So now the Play reel checks each leg: anything under 200 km crosses into the 3D map (terrain + buildings) with a zoom picked from the distance, longer legs stay as globe arcs. It asks once before playing, and video recording stays globe-only so captures never go blank. What bit me Instagram has no web “share a link” intent (unlike WhatsApp/X). So the IG button copies the link and opens Instagram - the native share sheet handles it properly on phones. The slug kept vanishing from the URL. A shared trip was calling replaceState(\"/\") the instant it loaded, so /t/slug disappeared mid-playback and you couldn’t re-share what you were watching. Moved that reset onto the “Create yourslongs. The reel switch reused the globe↔3D handoff plumbing, and the type-checker caught a flyTo signature mismatch before it shipped - the map handle wants { zoom } , not a bare number. Where it stands It all builds clean, Try it: https://wanderpin-ecru.vercel.app/"}, {"post_id": 8858, "ts": "2026-06-14T19:05:10Z", "hours": 6.1658, "text": "Wanderpin - zoom into the world Two big things landed this week: the map went from 26 hand-picked places to ~40,000, and zooming into the globe now drops you into a real 3D city. From 26 places to 40,000 - and they all have a vibe Wanderpin used to know about 26 famous spots. Now it knows ~40k: cities, towns, UNESCO sites, landmarks, and the world’s most-visited attractions - each tagged with a one-word vibe (Coastal, Alpine, Arid, Heritage, Sacred, Volcanic…). The fun part is the vibes aren’t hand-typed. They’re derived at build time from real data: a Köppen climate raster (so Cairo reads “Arid” and Athens “Mediterranean”), distance to an actual coastline for “Coastal”, GeoNames elevation/feature codes for peaks and castles, and Wikidata’s annual-visitor numbers to rank “most visited”. Facts come from Wikipedia and UNESCO descriptions. Search is now instant and offline - type “Firenze” and Florence shows up. The fun part: zoom in and the globe becomes a city The home view is a space globe (three.js). The close-up is a different engine entirely - maplibre with 3D terrain and buildings. I wired up a level-of-detail handoff between them: zoom into a pin and it crosses from globe to 3D automatically, and zoom back out and it returns to the globe. The trick to making it not feel janky: when you start zooming in, it quietly mounts the 3D map hidden and lets it pull tiles in the background. Only once the tiles are warm does it crossfade. No blank loading flash. What broke (twice) It hung forever in preload. The crossfade waited on maplibre’s idle event to know tiles were ready - but that event sometimes never fires. The globe just kept zooming into black. Fix: commit after a 2.2s fallback even if idle is silent. The way back never worked. Zooming out in 3D wouldn’t return to the globe. Turned out map.on(\"zoom\") captured the callback once at mount - back when the view was still “globe” - so its if (view !== \"3d\") return guard killed every event forever. Fix: call the latest callback through a ref. Both are real bugs that would’ve bitten actual users on slow connections, not just test artifacts. Where it stands Globe -> 3D -> globe round-trips cleanly on both laptop and mobile, with zero console errors. Try it: https://wanderpin-ecru.vercel.app/"}, {"post_id": 8556, "ts": "2026-06-14T06:57:59Z", "hours": 3.3139, "text": "Wanderpin - Blog 5 - Update press play, watch your trip turn into a movie Live: https://wanderpin-ecru.vercel.app/ You drop a few pins on a globe and hit Play - and instead of a checklist, you get a cinematic fly-through you can actually share. This update was about chasing one idea until the app felt alive : the journey is the hero, the logistics hide in a drawer. The payoff Play used to just stop. Now it lands: the camera pulls back to frame the route, the arcs light up, and a date-stamped card counts up your distance, stops, countries and time. A little classifier scores the trip and picks the camera - a city hop zooms in, a round-the-world trip shows the marble. You also pick how you travel each leg (walk/train/flight…), which bends both the arc shape and the trip’s duration. Then three swings: export the fly-through as a video (recorded straight off the globe canvas, no server), “been there” pins that glow gold once visited, and a living globe - a warm daylight terminator plus each stop’s local time and current weather. What broke Geocode 500’d in prod, every call. Not a geocoding bug at all: type: \"module\" means Vercel runs the API as native ESM, and Node demands file extensions on imports. from \"./_nominatim\" crashed at load. One .js fixed it. The terminator looked gloomy. Darkening the night side just made an already-night map muddy. I flipped it - glow the sunlit side instead - and it finally read as “half the globe is lit.” Two suns. Every clear-sky stop showed ☀️ 06:28 · ☀️ 15° - my day marker next to the weather glyph. ngl used AI to build this image 😛"}, {"post_id": 8281, "ts": "2026-06-13T19:28:41Z", "hours": 4.5656, "text": "Wanderpin - I deleted the spreadsheet You open the app or you can :) (check it out - https://wanderpin-ecru.vercel.app/ ). A night-side Earth, city lights glowing, a slow spin. You drop a pin in Paris. Another in Tokyo. The arc draws across the globe, and right next to all of that, a panel quietly tells you your dream weighs 2.2 tonnes of CO₂ . That panel was killing the magic. This phase was about fixing it. The shift I stopped showing the numbers on the dream surface. Same numbers, just hidden one click deep behind a “Trip details” disclosure. In their place: one warm line that grows with the trip - “4 stops · 4 countries · An adventure taking shape.” You build a journey. The app reacts like it’s excited about it. Surprise me, the most fun thing the app could do, was buried under a dice icon. It’s the front door now: Take me somewhere. The empty state stopped being homework - “Your map’s a blank canvas, click to start” - and became an invitation: “Where are you dreaming of?” Drop your very first pin and the app whispers back: “Your journey begins in Santorini ✨” . Hover over a stop and a small card appears: “Why go - its iconic caldera is the rim of a colossal volcanic eruption.” Hit Play and the screen goes cinematic. Full-screen overlay, place name, vibe, progress dots, the route lighting up beneath. The trip used to be a spreadsheet. Now it’s a memory you haven’t made yet. The mobile catch Almost shipped a bug that would’ve made this look broken. On a phone, the empty-state “Take me somewhere” lives inside a bottom sheet. Tap it, and the surprise card was rendering behind the still-open sheet. To the user, nothing happened. To me, a testing pass on an iPhone-shaped viewport caught it the morning of. One-line fix. The kind that disappears in the diff but would have left every mobile user thinking the button was broken. Where it stands Empty state, surprise card, first pin, the reel - all warm now. The numbers are still there for the planners, behind one small toggle. The dreamers don’t see them at all. When Play ends, the camera pulls back, the whole route lights up, and the same numbers I just buried come surging back as a celebration - “You crossed 4 countries. Today, that’s a journey.” Same data, different feeling. The closing frame becomes a postcard you can share. The whole phase is one belief: people don’t open a travel app because they want to know how many kilometres a trip is. They open it because they want, for a minute, to imagine going somewhere. So show them the somewhere."}, {"post_id": 8043, "ts": "2026-06-13T12:44:32Z", "hours": 5.3458, "text": "Wanderpin - phase 3: real sharing, and the bug that ate an afternoon This update gave Wanderpin proper short links, a saved-trips library, and a route optimizer. But the part I’ll remember is a 100 KB mystery. Short links + a trip library Sharing used to cram the whole trip into a giant #... URL. Now there’s a tiny Supabase backend: hit Share and you get a clean …/t/aB3xY9 link that anyone can open, no login. Reads come straight from the browser (a public read policy), and writes go through a serverless function with the secret key, so nobody can scribble on the database from the client. When someone opens a shared link, the route flies stop to stop and a little “Make your own” card invites them to start their own. Click polish Spinning the globe was dropping stray pins, because react-globe.gl fires a click even at the end of a drag. Added a pointer-distance guard (under ~5px = a real click). Clicking open ocean now offers an “Add anyway” instead of a useless pin, and there’s an “Optimize route” button that reorders stops with nearest-neighbour + 2-opt to cut total distance. The bug: a 5-stop trip that was 400 KB Share kept failing in the browser with a 413 (payload too large). But the function worked fine when I hit it with curl. Same 5-stop trip, totally different size. I had the user dump their saved trip in the console. Five stops. 403,682 characters. Each stop had two mystery keys: __threeObjPoint and __threeObjLabel , ~100 KB each. Turns out react-globe.gl mutates the data objects you hand it - it bolts the entire Three.js render object (meshes, geometry, materials) straight onto your data. I was passing my live trip array to the globe, so it was quietly fattening every stop by 100 KB, which then got saved to localStorage and sent on publish. The hash link looked fine only because it re-packs specific fields, so it never saw the junk. Fix was two-fold: hand the globe throwaway copies so it scribbles on those instead of my real data, and sanitize trips to known fields on save/load (which also cleans up the bloated localStorage on next visit). Back to ~1 KB per trip. Where it stands Live at https://wanderpin-ecru.vercel.app/ - build a trip, optimize it, save it, share a short link, watch it fly. Honest caveats: shared trips are snapshots (open a link, get a copy - not live collaboration), and the globe’s three.js bundle is still the heavy chunk (lazy-loaded, so it only hits the 3D view). Lesson logged: never trust a viz library not to mutate your state."}, {"post_id": 7632, "ts": "2026-06-12T19:09:46Z", "hours": 3.2525, "text": "Wanderpin - phase 2: trips you can shape, share, and watch fly Phase 1 let you drop pins on a globe. Phase 2 turns that into an actual trip planner: reorder stops, edit them, share a link, and hit Play to watch the camera fly your whole route. Play: the globe earns its keep The feature I’m happiest with. There’s now a Play button that flies the camera stop to stop along your route, advancing the highlighted pin as it goes. On the 3D globe it looks the way I wanted the whole app to feel. The nice surprise: it was almost free. Back in phase 1 both the globe and the flat map exposed the same tiny flyTo handle. So the tour loop doesn’t know or care which view you’re on Editing, sharing, exporting Reorder by dragging (dnd-kit), with the route redrawing live. The drag handle is the only draggable bit, so dragging never fights tapping a stop to edit it. Edit a stop inline — rename, swap the emoji, add a note. Undo on remove and “clear all” via the toast, because I deleted my own trip twice testing it. Share builds a link with the whole trip compressed into the URL (lz-string), no backend. Open it anywhere and the trip loads. IDs are regenerated on import so a shared trip never collides with one you already have. Export to JSON or GPX, so a route can open in Google Earth. Where it stands Live at https://wanderpin-ecru.vercel.app/ . Every phase builds clean ( tsc + Vite) and deploys to Vercel on push. The loop now: build a trip, reorder and annotate it, watch it fly, share the link."}, {"post_id": 7419, "ts": "2026-06-12T11:12:40Z", "hours": 4.6761, "text": "Wanderpin - first build Check it out yourself -> https://wanderpin-ecru.vercel.app/ A little travel app where you drop pins on a spinning 3D globe (or a flat map if you prefer), and it stitches them into a trip with distances and country counts. Here’s where it’s at after the first couple of sessions. What it does so far Globe + map, same data. A 3D night-earth globe (three.js via react-globe.gl) with glowing pins and animated arcs between stops, and a 2D Leaflet map with a dashed route line. One toggle swaps between them - they render off the same trip array. Search and click to add. Type a city and it geocodes through OpenStreetMap’s Nominatim; or just click anywhere on the map and it reverse-geocodes the spot into a named pin. Surprise me. A pile of hand-picked destinations, each with a fun fact and a vibe, for when you don’t know where you want to go. It remembers. Trip, view, and “is this still the sample” all persist to localStorage. First-time visitors get a seeded Paris -> Rome -> Cairo route so the app isn’t empty on load. Spent a bit making the Nominatim calls polite: searches are debounced so a fast typer doesn’t fire a request per keystroke. Where it stands The core loop works end to end: search or click -> pin lands on globe and map -> trip panel updates distance (haversine) and country count -> reload and it’s all still there. Next up is editing/reordering stops and tidying the mobile layout"}]...
|
Title: Wanderpin by @darshjain | Stardance
Devlog Title: Wanderpin by @darshjain | Stardance
Devlogs:
Wanderpin - first build Check it out yourself -> https://wanderpin-ecru.vercel.app/ A little travel app where you drop pins on a spinning 3D globe (or a flat map if you prefer), and it stitches them into a trip with distances and country counts. Here’s where it’s at after the first couple of sessions. What it does so far Globe + map, same data. A 3D night-earth globe (three.js via react-globe.gl) with glowing pins and animated arcs between stops, and a 2D Leaflet map with a dashed route line. One toggle swaps between them - they render off the same trip array. Search and click to add. Type a city and it geocodes through OpenStreetMap’s Nominatim; or just click anywhere on the map and it reverse-geocodes the spot into a named pin. Surprise me. A pile of hand-picked destinations, each with a fun fact and a vibe, for when you don’t know where you want to go. It remembers. Trip, view, and “is this still the sample” all persist to localStorage. First-time visitors get a seeded Paris -> Rome -> Cairo route so the app isn’t empty on load. Spent a bit making the Nominatim calls polite: searches are debounced so a fast typer doesn’t fire a request per keystroke. Where it stands The core loop works end to end: search or click -> pin lands on globe and map -> trip panel updates distance (haversine) and country count -> reload and it’s all still there. Next up is editing/reordering stops and tidying the mobile layout
Wanderpin - phase 2: trips you can shape, share, and watch fly Phase 1 let you drop pins on a globe. Phase 2 turns that into an actual trip planner: reorder stops, edit them, share a link, and hit Play to watch the camera fly your whole route. Play: the globe earns its keep The feature I’m happiest with. There’s now a Play button that flies the camera stop to stop along your route, advancing the highlighted pin as it goes. On the 3D globe it looks the way I wanted the whole app to feel. The nice surprise: it was almost free. Back in phase 1 both the globe and the flat map exposed the same tiny flyTo handle. So the tour loop doesn’t know or care which view you’re on Editing, sharing, exporting Reorder by dragging (dnd-kit), with the route redrawing live. The drag handle is the only draggable bit, so dragging never fights tapping a stop to edit it. Edit a stop inline — rename, swap the emoji, add a note. Undo on remove and “clear all” via the toast, because I deleted my own trip twice testing it. Share builds a link with the whole trip compressed into the URL (lz-string), no backend. Open it anywhere and the trip loads. IDs are regenerated on import so a shared trip never collides with one you already have. Export to JSON or GPX, so a route can open in Google Earth. Where it stands Live at https://wanderpin-ecru.vercel.app/ . Every phase builds clean ( tsc + Vite) and deploys to Vercel on push. The loop now: build a trip, reorder and annotate it, watch it fly, share the link.
Wanderpin - phase 3: real sharing, and the bug that ate an afternoon This update gave Wanderpin proper short links, a saved-trips library, and a route optimizer. But the part I’ll remember is a 100 KB mystery. Short links + a trip library Sharing used to cram the whole trip into a giant #... URL. Now there’s a tiny Supabase backend: hit Share and you get a clean …/t/aB3xY9 link that anyone can open, no login. Reads come straight from the browser (a public read policy), and writes go through a serverless function with the secret key, so nobody can scribble on the database from the client. When someone opens a shared link, the route flies stop to stop and a little “Make your own” card invites them to start their own. Click polish Spinning the globe was dropping stray pins, because react-globe.gl fires a click even at the end of a drag. Added a pointer-distance guard (under ~5px = a real click). Clicking open ocean now offers an “Add anyway” instead of a useless pin, and there’s an “Optimize route” button that reorders stops with nearest-neighbour + 2-opt to cut total distance. The bug: a 5-stop trip that was 400 KB Share kept failing in the browser with a 413 (payload too large). But the function worked fine when I hit it with curl. Same 5-stop trip, totally different size. I had the user dump their saved trip in the console. Five stops. 403,682 characters. Each stop had two mystery keys: __threeObjPoint and __threeObjLabel , ~100 KB each. Turns out react-globe.gl mutates the data objects you hand it - it bolts the entire Three.js render object (meshes, geometry, materials) straight onto your data. I was passing my live trip array to the globe, so it was quietly fattening every stop by 100 KB, which then got saved to localStorage and sent on publish. The hash link looked fine only because it re-packs specific fields, so it never saw the junk. Fix was two-fold: hand the globe throwaway copies so it scribbles on those instead of my real data, and sanitize trips to known fields on save/load (which also cleans up the bloated localStorage on next visit). Back to ~1 KB per trip. Where it stands Live at https://wanderpin-ecru.vercel.app/ - build a trip, optimize it, save it, share a short link, watch it fly. Honest caveats: shared trips are snapshots (open a link, get a copy - not live collaboration), and the globe’s three.js bundle is still the heavy chunk (lazy-loaded, so it only hits the 3D view). Lesson logged: never trust a viz library not to mutate your state.
Wanderpin - I deleted the spreadsheet You open the app or you can :) (check it out - https://wanderpin-ecru.vercel.app/ ). A night-side Earth, city lights glowing, a slow spin. You drop a pin in Paris. Another in Tokyo. The arc draws across the globe, and right next to all of that, a panel quietly tells you your dream weighs 2.2 tonnes of CO₂ . That panel was killing the magic. This phase was about fixing it. The shift I stopped showing the numbers on the dream surface. Same numbers, just hidden one click deep behind a “Trip details” disclosure. In their place: one warm line that grows with the trip - “4 stops · 4 countries · An adventure taking shape.” You build a journey. The app reacts like it’s excited about it. Surprise me, the most fun thing the app could do, was buried under a dice icon. It’s the front door now: Take me somewhere. The empty state stopped being homework - “Your map’s a blank canvas, click to start” - and became an invitation: “Where are you dreaming of?” Drop your very first pin and the app whispers back: “Your journey begins in Santorini ✨” . Hover over a stop and a small card appears: “Why go - its iconic caldera is the rim of a colossal volcanic eruption.” Hit Play and the screen goes cinematic. Full-screen overlay, place name, vibe, progress dots, the route lighting up beneath. The trip used to be a spreadsheet. Now it’s a memory you haven’t made yet. The mobile catch Almost shipped a bug that would’ve made this look broken. On a phone, the empty-state “Take me somewhere” lives inside a bottom sheet. Tap it, and the surprise card was rendering behind the still-open sheet. To the user, nothing happened. To me, a testing pass on an iPhone-shaped viewport caught it the morning of. One-line fix. The kind that disappears in the diff but would have left every mobile user thinking the button was broken. Where it stands Empty state, surprise card, first pin, the reel - all warm now. The numbers are still there for the planners, behind one small toggle. The dreamers don’t see them at all. When Play ends, the camera pulls back, the whole route lights up, and the same numbers I just buried come surging back as a celebration - “You crossed 4 countries. Today, that’s a journey.” Same data, different feeling. The closing frame becomes a postcard you can share. The whole phase is one belief: people don’t open a travel app because they want to know how many kilometres a trip is. They open it because they want, for a minute, to imagine going somewhere. So show them the somewhere.
Wanderpin - Blog 5 - Update press play, watch your trip turn into a movie Live: https://wanderpin-ecru.vercel.app/ You drop a few pins on a globe and hit Play - and instead of a checklist, you get a cinematic fly-through you can actually share. This update was about chasing one idea until the app felt alive : the journey is the hero, the logistics hide in a drawer. The payoff Play used to just stop. Now it lands: the camera pulls back to frame the route, the arcs light up, and a date-stamped card counts up your distance, stops, countries and time. A little classifier scores the trip and picks the camera - a city hop zooms in, a round-the-world trip shows the marble. You also pick how you travel each leg (walk/train/flight…), which bends both the arc shape and the trip’s duration. Then three swings: export the fly-through as a video (recorded straight off the globe canvas, no server), “been there” pins that glow gold once visited, and a living globe - a warm daylight terminator plus each stop’s local time and current weather. What broke Geocode 500’d in prod, every call. Not a geocoding bug at all: type: "module" means Vercel runs the API as native ESM, and Node demands file extensions on imports. from "./_nominatim" crashed at load. One .js fixed it. The terminator looked gloomy. Darkening the night side just made an already-night map muddy. I flipped it - glow the sunlit side instead - and it finally read as “half the globe is lit.” Two suns. Every clear-sky stop showed ☀️ 06:28 · ☀️ 15° - my day marker next to the weather glyph. ngl used AI to build this image 😛
Wanderpin - zoom into the world Two big things landed this week: the map went from 26 hand-picked places to ~40,000, and zooming into the globe now drops you into a real 3D city. From 26 places to 40,000 - and they all have a vibe Wanderpin used to know about 26 famous spots. Now it knows ~40k: cities, towns, UNESCO sites, landmarks, and the world’s most-visited attractions - each tagged with a one-word vibe (Coastal, Alpine, Arid, Heritage, Sacred, Volcanic…). The fun part is the vibes aren’t hand-typed. They’re derived at build time from real data: a Köppen climate raster (so Cairo reads “Arid” and Athens “Mediterranean”), distance to an actual coastline for “Coastal”, GeoNames elevation/feature codes for peaks and castles, and Wikidata’s annual-visitor numbers to rank “most visited”. Facts come from Wikipedia and UNESCO descriptions. Search is now instant and offline - type “Firenze” and Florence shows up. The fun part: zoom in and the globe becomes a city The home view is a space globe (three.js). The close-up is a different engine entirely - maplibre with 3D terrain and buildings. I wired up a level-of-detail handoff between them: zoom into a pin and it crosses from globe to 3D automatically, and zoom back out and it returns to the globe. The trick to making it not feel janky: when you start zooming in, it quietly mounts the 3D map hidden and lets it pull tiles in the background. Only once the tiles are warm does it crossfade. No blank loading flash. What broke (twice) It hung forever in preload. The crossfade waited on maplibre’s idle event to know tiles were ready - but that event sometimes never fires. The globe just kept zooming into black. Fix: commit after a 2.2s fallback even if idle is silent. The way back never worked. Zooming out in 3D wouldn’t return to the globe. Turned out map.on("zoom") captured the callback once at mount - back when the view was still “globe” - so its if (view !== "3d") return guard killed every event forever. Fix: call the latest callback through a ref. Both are real bugs that would’ve bitten actual users on slow connections, not just test artifacts. Where it stands Globe -> 3D -> globe round-trips cleanly on both laptop and mobile, with zero console errors. Try it: https://wanderpin-ecru.vercel.app/
Wanderpin - the globe looked dumb on a 20 km hop, so I taught it to zoom This batch turns a Wanderpin trip from a thing on your screen into a thing you can send to a friend - with a real link preview, an embeddable globe, and a reel that finally looks good on short hops. Share a journey, for real Hit Share and you get a public link ( /t/slug ) in a box, plus Copy, the native share sheet, and WhatsApp / Instagram / X buttons. The interesting part is what happens when someone opens that link: /t/:slug is server-rendered ( api/share.ts ) and serves a dynamically generated Open Graph image ( api/og.tsx via @vercel/og ) - so pasting a Wanderpin link into a chat unfurls into a proper preview card instead of a blank rectangle. There’s an embeddable globe too: /embed/:slug renders just the spinning globe (a tiny route check in main.tsx swaps the whole app for EmbedView ), and the share dialog hands you the <iframe> snippet. Shared trips auto-expire after 7 days via a pg_cron job, so the table stays small and old links quietly die. The reel got smarter - 3D for the short hops The globe fly-through looks flat when two stops are 20 km apart - the arc is a stub and the camera barely moves. So now the Play reel checks each leg: anything under 200 km crosses into the 3D map (terrain + buildings) with a zoom picked from the distance, longer legs stay as globe arcs. It asks once before playing, and video recording stays globe-only so captures never go blank. What bit me Instagram has no web “share a link” intent (unlike WhatsApp/X). So the IG button copies the link and opens Instagram - the native share sheet handles it properly on phones. The slug kept vanishing from the URL. A shared trip was calling replaceState("/") the instant it loaded, so /t/slug disappeared mid-playback and you couldn’t re-share what you were watching. Moved that reset onto the “Create yourslongs. The reel switch reused the globe↔3D handoff plumbing, and the type-checker caught a flyTo signature mismatch before it shipped - the map handle wants { zoom } , not a bare number. Where it stands It all builds clean, Try it: https://wanderpin-ecru.vercel.app/
Wanderpin - getting routes to leave the ground Live: https://wanderpin-ecru.vercel.app/ One update, mostly one stubborn visual I’d twice given up on: real lifted route arcs on the 3D map. Arcs that finally hug the globe deck.gl’s ArcLayer drifts on a MapLibre globe (it only knows Web Mercator), and my earlier hand-rolled layer compiled, ran, threw zero errors, and painted nothing. The fix came from reading MapLibre’s own shaders: inject its projection prelude and call projectTileFor3D(pos, elevation) . The thing I’d missed every time - elevation is in meters above the sphere , fed through five per-frame uniforms, not a raw matrix. Then the polish fights: a z-fight speckle (fixed by not writing depth), a 50 km minimum lift that made short hops launch like fireworks, and a fat vertical wall at city zoom (now fades out past ~zoom 10). An optional day timeline New “Days” view in the trip panel. Weekend trip? You’ll never see it. Month-long? Hit “Organize into days” and stops group into collapsible days you can split, reorder, fit the globe to, or play one at a time. A day is a contiguous slice of the route, so “move to Day 3” repositions the stop and re-normalizes - the route and itinerary stay honest. Days travel on share links too. Where it stands Live at site, (Also squashed a deploy bug: one .tsx API route made Vercel type-check the whole api/ folder with no tsconfig - a tiny api/tsconfig.json fixed it.)
Wanderpin - the first five seconds, final touchups Everything in this batch is about the moment someone lands : a blank globe is intimidating, so I built a real first-run, made it personal, and fixed a jank I’d been ignoring. A front door instead of an empty globe New visitors get a welcome dialog: Plan a trip, or Remember one you took. Either way there are starter templates (a week in Italy, around the world, a California road trip) you can drop in with one tap and start dragging stops around. Coachmarks that follow the actual UI A short guided tour spotlights real elements: search, the view toggle, Play. It measures each target’s live bounding rect, re-measures on resize and focus, flips above/below by screen half, and hides itself the moment you focus the search box so it never fights you while typing. Dismissals persist so it doesn’t nag on return visits. Where it stands Build’s green, all staged, not yet committed. Next: watch real first sessions, do people tap through a template or skip straight to search?
Ships:
Wanderpin is a 3D-globe trip planner where the journey is the product, not the spreadsheet. Drop pins on a spinning night-earth, watch your route stitch together, then hit Play and fly the whole trip as a cinematic reel - gliding across the globe for long hops and dropping into real 3D terrain when two stops are close. The hardest part was making the globe-to-3D handoff feel continuous. Two heavy engines (three.js for the globe, MapLibre for terrain) had to crossfade without a tile-load flash, so I warm the 3D view in the background and only commit once it’s actually ready. I also caught the play-through reel re-rendering the entire app - globe included - on every caption tick; moving the caption into its own useSyncExternalStore so only it updates made the fly-through visibly smoother. I’m proud that it feels like a journey instead of a form: the cinematic reel, ~40k curated places that each carry a vibe and a fun fact, and one-tap sharing as a postcard, a public link, or an embeddable live globe. To try it: open the live link, search a city or just click the globe to drop pins (or start from a template like India’s Golden Triangle), then hit Play. Zoom all the way into a pin to watch it cross into street-level 3D. Built with React 19 + TypeScript, three.js, MapLibre GL, and Vercel serverless....
|
1792878485.7195795
|
1793742485.7195795
|
|
19703
|
KalaPass by @sp | Stardance
|
sp
|
0
|
5.27
|
0
|
[]
|
[{"post_id": 9767, "ts": "2026 [{"post_id": 9767, "ts": "2026-06-16T06:23:23Z", "hours": 5.2708, "text": "Make a rough sketch on my website design, its been along time since I last use Figma and this is the first time I actually use figma seriusly. LIke using it amazing feature that i previously doent know and wish to know earlier, like asset, variant, variable, the MCP thingy if im not mistaken. ITs still looks ugly as hell, but i think do it first, perfect later mindset is a way way better method on doing something like tis."}]...
|
Title: KalaPass by @sp | Stardance
Devlogs:
Make Title: KalaPass by @sp | Stardance
Devlogs:
Make a rough sketch on my website design, its been along time since I last use Figma and this is the first time I actually use figma seriusly. LIke using it amazing feature that i previously doent know and wish to know earlier, like asset, variant, variable, the MCP thingy if im not mistaken. ITs still looks ugly as hell, but i think do it first, perfect later mindset is a way way better method on doing something like tis....
|
1792713005.2358148
|
1793317805.2358148
|
|
1195
|
Resourcerer by @devcmb | Stardance
|
devcmb
|
0
|
4.56
|
0
|
[]
|
[{"post_id": 977, "ts": "2026- [{"post_id": 977, "ts": "2026-06-02T19:13:47Z", "hours": 0.8181, "text": "Made the homepage look a bit nicer (similar to vscode’s). I also added better backend logging, because its best to track a lot of different operations that could possibly fail to help anyone looking at the log files. Finally, i put up an eslint CI build to lint new files to ensure code quality"}, {"post_id": 839, "ts": "2026-06-02T15:06:19Z", "hours": 1.7164, "text": "More backend stuff Before I can really start on the frontend, I want my backend codebase to be pretty clean so I can properly expand on it later. Added a logging system which outputs to a file when the window closes Added a DataController which handles setting up user data files (currently just an empty recents.json and logs directory) Made the Open Project button on the client redirect to the empty project page, and show the path to confirm it worked"}, {"post_id": 376, "ts": "2026-06-01T18:45:14Z", "hours": 2.0206, "text": "Started off the project with some boilerplate, then moved over to a controller system to organize all the backend code. I added an Inter-Process Communication (IPC) system that acts as a bridge between the electron app and the backend. With this, i just started with a basic “Open project” folder prompt. I’ll implement the button, then start on the main editor. A lot lies ahead, but I can do it 🔥"}]...
|
Title: Resourcerer by @devcmb | Stardance
Devlogs Title: Resourcerer by @devcmb | Stardance
Devlogs:
Started off the project with some boilerplate, then moved over to a controller system to organize all the backend code. I added an Inter-Process Communication (IPC) system that acts as a bridge between the electron app and the backend. With this, i just started with a basic “Open project” folder prompt. I’ll implement the button, then start on the main editor. A lot lies ahead, but I can do it 🔥
More backend stuff Before I can really start on the frontend, I want my backend codebase to be pretty clean so I can properly expand on it later. Added a logging system which outputs to a file when the window closes Added a DataController which handles setting up user data files (currently just an empty recents.json and logs directory) Made the Open Project button on the client redirect to the empty project page, and show the path to confirm it worked
Made the homepage look a bit nicer (similar to vscode’s). I also added better backend logging, because its best to track a lot of different operations that could possibly fail to help anyone looking at the log files. Finally, i put up an eslint CI build to lint new files to ensure code quality...
|
1792666357.2308576
|
1793271157.2308576
|
|
19719
|
Apple Phenology Classification & Detection by Apple Phenology Classification & Detection by @sky_yuo | Stardance...
|
sky_yuo
|
0
|
9.28
|
0
|
[]
|
[{"post_id": 9777, "ts": "2026 [{"post_id": 9777, "ts": "2026-06-16T06:55:53Z", "hours": 9.2794, "text": "trained first version of yolo world model, created two stage inference with a classification of whole image then deleting non matching predictions. strengthened bounding boxes using nms. Specialized detectors trained on one class failed. Read literature on Cascade R-CNN and other classical bounding box strengthening literature. current MAP 50:95 0.41 on validation"}]...
|
Title: Apple Phenology Classification & Detect Title: Apple Phenology Classification & Detection by @sky_yuo | Stardance
Devlogs:
trained first version of yolo world model, created two stage inference with a classification of whole image then deleting non matching predictions. strengthened bounding boxes using nms. Specialized detectors trained on one class failed. Read literature on Cascade R-CNN and other classical bounding box strengthening literature. current MAP 50:95 0.41 on validation...
|
1792810209.50713
|
1793415009.50713
|
|
19724
|
ruview by @shash | Stardance
|
shash
|
0
|
2.84
|
0
|
[]
|
[{"post_id": 9780, "ts": "2026 [{"post_id": 9780, "ts": "2026-06-16T07:00:16Z", "hours": 2.8442, "text": "Ruvieew devlog 1"}]...
|
Title: ruview by @shash | Stardance
Devlogs:
Ruvi Title: ruview by @shash | Stardance
Devlogs:
Ruvieew devlog 1...
|
1792687642.3453052
|
1793292442.3453052
|
|
19727
|
Aria by @shash | Stardance
|
shash
|
0
|
19.1
|
0
|
[]
|
[{"post_id": 9782, "ts": "2026 [{"post_id": 9782, "ts": "2026-06-16T07:01:20Z", "hours": 19.0967, "text": "dv log 1"}]...
|
Title: Aria by @shash | Stardance
Devlogs:
dv log Title: Aria by @shash | Stardance
Devlogs:
dv log 1...
|
1791825147.1482143
|
1792689147.1482143
|
|
19728
|
balls by @shash | Stardance
|
shash
|
0
|
6.9
|
0
|
[]
|
[{"post_id": 9783, "ts": "2026 [{"post_id": 9783, "ts": "2026-06-16T07:02:21Z", "hours": 6.9, "text": "balls"}]...
|
Title: balls by @shash | Stardance
Devlogs:
balls
|
1792731118.3602872
|
1793335918.3602872
|
|
19731
|
code by @shash | Stardance
|
shash
|
0
|
12.62
|
0
|
[]
|
[{"post_id": 9787, "ts": "2026 [{"post_id": 9787, "ts": "2026-06-16T07:04:30Z", "hours": 12.6208, "text": "code"}]...
|
Title: code by @shash | Stardance
Devlogs:
code
|
1792752705.1428206
|
1793357505.1428206
|
|
19732
|
mine by @shash | Stardance
|
shash
|
0
|
0.73
|
0
|
[]
|
[{"post_id": 9788, "ts": "2026 [{"post_id": 9788, "ts": "2026-06-16T07:05:10Z", "hours": 0.73, "text": "mine"}]...
|
Title: mine by @shash | Stardance
Devlogs:
mine
|
1792673670.3865423
|
1793278470.3865423
|
|
19734
|
wisprflow batch by @shash | Stardance
|
shash
|
0
|
0.28
|
0
|
[]
|
[{"post_id": 9789, "ts": "2026 [{"post_id": 9789, "ts": "2026-06-16T07:06:54Z", "hours": 0.2789, "text": "wisprflowbstch"}]...
|
Title: wisprflow batch by @shash | Stardance
Devl Title: wisprflow batch by @shash | Stardance
Devlogs:
wisprflowbstch...
|
1792778073.8664396
|
1793382873.8664396
|
|
19736
|
animotica by @shash | Stardance
|
shash
|
0
|
4.63
|
0
|
[]
|
[{"post_id": 9790, "ts": "2026 [{"post_id": 9790, "ts": "2026-06-16T07:07:52Z", "hours": 4.6339, "text": "animotica"}]...
|
Title: animotica by @shash | Stardance
Devlogs:
a Title: animotica by @shash | Stardance
Devlogs:
animotica...
|
1792569044.3730319
|
1793173844.3730319
|
|
19737
|
TT by @shash | Stardance
|
shash
|
0
|
20.12
|
0
|
[]
|
[{"post_id": 9792, "ts": "2026 [{"post_id": 9792, "ts": "2026-06-16T07:08:30Z", "hours": 20.1189, "text": "tt"}]...
|
Title: TT by @shash | Stardance
Devlogs:
tt
|
1792608640.9847531
|
1793213440.9847531
|
|
19738
|
testttt by @shash | Stardance
|
shash
|
0
|
2.1
|
0
|
[]
|
[{"post_id": 9793, "ts": "2026 [{"post_id": 9793, "ts": "2026-06-16T07:09:22Z", "hours": 2.0978, "text": "test"}]...
|
Title: testttt by @shash | Stardance
Devlogs:
tes Title: testttt by @shash | Stardance
Devlogs:
test...
|
1792623267.015983
|
1793228067.015983
|
|
19739
|
testfiles by @shash | Stardance
|
shash
|
0
|
0.29
|
0
|
[]
|
[{"post_id": 9794, "ts": "2026 [{"post_id": 9794, "ts": "2026-06-16T07:10:35Z", "hours": 0.2872, "text": "testfiles"}]...
|
Title: testfiles by @shash | Stardance
Devlogs:
t Title: testfiles by @shash | Stardance
Devlogs:
testfiles...
|
1792734897.5630536
|
1793339697.5630536
|