|
69083
|
My awesome macropad! by @avab | Stardance
|
avab
|
0
|
0.52
|
0
|
[]
|
[{"post_id": 78865, "ts": "202 [{"post_id": 78865, "ts": "2026-10-11T20:08:11Z", "hours": 0.515, "text": "Downloaded KiCad, followed the Hackpad guide to draw the schematic and route the PCB."}]...
|
Title: My awesome macropad! by @avab | Stardance
Title: My awesome macropad! by @avab | Stardance
Devlogs:
Downloaded KiCad, followed the Hackpad guide to draw the schematic and route the PCB....
|
1793130534.3506773
|
1793735334.3506773
|
|
17264
|
AmendOS : A GPU-Accelerated Web OS by @Umang | Sta AmendOS : A GPU-Accelerated Web OS by @Umang | Stardance...
|
Umang
|
0
|
1.89
|
0
|
[]
|
[{"post_id": 7887, "ts": "2026 [{"post_id": 7887, "ts": "2026-06-13T05:04:46Z", "hours": 0.2683, "text": "Walkthorugh of the Project AmendOS"}, {"post_id": 7877, "ts": "2026-06-13T04:26:20Z", "hours": 0.3519, "text": "AmendOS is officially around 50% done , and it’s finally starting to feel like an actual operating system instead of just a web project. Over the past few sessions, I’ve built and refined the core desktop experience, including the menu bar, Dock, window manager, Finder, virtual file system, settings, widgets, and a Linux-inspired terminal. I’ve also been working on integrating real applications and designing the architecture for future support of user-owned GPU servers and remote workstations. A lot of time has gone into polishing the UI to move away from the generic “WebOS” look and closer to something people would genuinely enjoy using every day. There’s still a long way to go—especially around real app execution, Launchpad, backend connectivity, and overall polish—but seeing AmendOS boot up and function like a real desktop environment has been incredibly motivating. It’s messy, experimental, and constantly evolving, but that’s exactly what makes building it fun."}, {"post_id": 7537, "ts": "2026-06-12T16:12:31Z", "hours": 1.265, "text": "You can link your own GPU Clusters through a pipeline or locally on your nwtwork and link it with my Web OS and Access a very powerful computer in your hands. You can use VPS also and link them here and now you will have a GUI backed with your powerful VPS or Homeserver or Your own Computer. Here’s the first look of it:"}]...
|
Title: AmendOS : A GPU-Accelerated Web OS by @Uman Title: AmendOS : A GPU-Accelerated Web OS by @Umang | Stardance
Devlogs:
You can link your own GPU Clusters through a pipeline or locally on your nwtwork and link it with my Web OS and Access a very powerful computer in your hands. You can use VPS also and link them here and now you will have a GUI backed with your powerful VPS or Homeserver or Your own Computer. Here’s the first look of it:
AmendOS is officially around 50% done , and it’s finally starting to feel like an actual operating system instead of just a web project. Over the past few sessions, I’ve built and refined the core desktop experience, including the menu bar, Dock, window manager, Finder, virtual file system, settings, widgets, and a Linux-inspired terminal. I’ve also been working on integrating real applications and designing the architecture for future support of user-owned GPU servers and remote workstations. A lot of time has gone into polishing the UI to move away from the generic “WebOS” look and closer to something people would genuinely enjoy using every day. There’s still a long way to go—especially around real app execution, Launchpad, backend connectivity, and overall polish—but seeing AmendOS boot up and function like a real desktop environment has been incredibly motivating. It’s messy, experimental, and constantly evolving, but that’s exactly what makes building it fun.
Walkthorugh of the Project AmendOS...
|
1793137743.6345403
|
1793742543.6345403
|
|
68456
|
Antishor-pqc by @itsdecodeaditya | Stardance
|
itsdecodeaditya
|
1
|
9.0
|
83
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-12T15:24:05Z", "hours": 9.0, "multiplier": 9.67, "payout": 83, "blessing": "neutral", "text": "I made a Mathematical demonstration of How our traditional cryptographic methods use larger composite numbers whose prime factors are difficult for classical computers, hence public key was safe but after quantum computers, this computational limits could break by period finding. Secondly next demo was of how we can protect our secret key using noise so patterns become less obvious and neither classical nor quantum computers can break it. So major learning i got is of shor’s algorithm and how encryptions really work.", "repo": "https://github.com/decodeaditya/AntiShor-PQC", "demo": "https://antishor.streamlit.app/"}]...
|
[{"post_id": 78870, "ts": "202 [{"post_id": 78870, "ts": "2026-10-11T20:24:02Z", "hours": 3.9525, "text": "Devlog 2: Securing the Keys So guys, Earlier I implemented the Shor's algorithm that shows how Traditional encryptions could be broken easily with Quantum computers , this time I did demonstration of how we can protect our Secrets from Quantum technology . Basically If you know about Cryptographic encryptions , you might know that we actually never reveal the secret keys while communicating with other parties instead we use our Public keys to do so, which is nothing but simply a mathematical wrap that is generated with help of secret keys and then mathematical blanket over it makes it harder to guess which secret keys might have generated that Public key . Both Traditional and Post quantum cryptography are different ways to wrap that secret against the potential threats. Earlier when we used very large prime number we relied on computational limits of classical computers that they will practically take so much time to break the pattern and we enjoyed the security until quantum computers came and started to break that same computational limits at very fast pace, then we needed something that QPUs cannot break and we decided that we would use methods which is not a mathematical complexity but just complete chaos and randomness . One of popular way is Lattice cryptography where we insert random errors in public keys that no obvious pattern is recognized by Quantum . Hence safe against QPU and Classical both. I have used simple linear equations instead of how actual matrices used by real life encryptions but for understanding analogically same things that generates public output( b ), public keys ( a ), inserted error and bounded by particular modulus . The idea is same that we would use these Linear equations for Cryptographic handshake between different parties. Noise would make it difficult to reveal secret hence our Objective is fulfilled. You can play with Parameters and if you have some idea and want to contribute, the repo is open. Thanks for Reading!"}, {"post_id": 77942, "ts": "2026-10-08T21:32:02Z", "hours": 4.6617, "text": "Devlog 1: Simulating the Attack So this project is about a Demonstration of how Quantum computers poses a major threat to modern day cyber algorithms like RSA . To be more Specific modern day cryptography uses a principle called Harvest now, decrypt later, which means that a very large number( key ) which is very computationally expensive to factorize and only factors of that number can break encryption. So considering the computational limitations of classical computers we just use it until a very fast computational machine comes up and messes our Encryptions. So in today’s time, Quantum computers have come and they can potentially break encryptions based on Shor’s algorithm , which theoretically uses period finding of a random number less than the key and raises it to power sequentially, finding if the modulus is 1. After that, the same pattern will repeat. After finding the period of repetition, we find the HCF of the random number raised to the power of period/2 ± 1 and the key . This will give us two factors, and only period finding is computationally hard for classical computers because of their brute-forcing / one-by-one checking or guessing method to find the period. Quantum computers, using the power of Quantum parallelism, find periods very fast. Also, suppose the key is even, or in the beginning itself we find out that the HCF of the key and the chosen random number is more than one (or in simple words, the random number is a factor of the key). In both cases, classical computers are enough to find the factors. In fact, due to this fact, even large numbers are not used in encryptions. Here, for the UI layer I used Streamlit . Also, I kept an option in the dropdown so users don’t accidentally enter a number that crashes their computer. On the right side, there is a wave that shows the repetition of the period for some timeline. In the next update I will also add a simulation on how we make encryptions that tolerate these quantum attacks. I will push it on GitHub so you can check this version."}]...
|
Title: Antishor-pqc by @itsdecodeaditya | Stardanc Title: Antishor-pqc by @itsdecodeaditya | Stardance
Devlogs:
Devlog 1: Simulating the Attack So this project is about a Demonstration of how Quantum computers poses a major threat to modern day cyber algorithms like RSA . To be more Specific modern day cryptography uses a principle called Harvest now, decrypt later, which means that a very large number( key ) which is very computationally expensive to factorize and only factors of that number can break encryption. So considering the computational limitations of classical computers we just use it until a very fast computational machine comes up and messes our Encryptions. So in today’s time, Quantum computers have come and they can potentially break encryptions based on Shor’s algorithm , which theoretically uses period finding of a random number less than the key and raises it to power sequentially, finding if the modulus is 1. After that, the same pattern will repeat. After finding the period of repetition, we find the HCF of the random number raised to the power of period/2 ± 1 and the key . This will give us two factors, and only period finding is computationally hard for classical computers because of their brute-forcing / one-by-one checking or guessing method to find the period. Quantum computers, using the power of Quantum parallelism, find periods very fast. Also, suppose the key is even, or in the beginning itself we find out that the HCF of the key and the chosen random number is more than one (or in simple words, the random number is a factor of the key). In both cases, classical computers are enough to find the factors. In fact, due to this fact, even large numbers are not used in encryptions. Here, for the UI layer I used Streamlit . Also, I kept an option in the dropdown so users don’t accidentally enter a number that crashes their computer. On the right side, there is a wave that shows the repetition of the period for some timeline. In the next update I will also add a simulation on how we make encryptions that tolerate these quantum attacks. I will push it on GitHub so you can check this version.
Devlog 2: Securing the Keys So guys, Earlier I implemented the Shor's algorithm that shows how Traditional encryptions could be broken easily with Quantum computers , this time I did demonstration of how we can protect our Secrets from Quantum technology . Basically If you know about Cryptographic encryptions , you might know that we actually never reveal the secret keys while communicating with other parties instead we use our Public keys to do so, which is nothing but simply a mathematical wrap that is generated with help of secret keys and then mathematical blanket over it makes it harder to guess which secret keys might have generated that Public key . Both Traditional and Post quantum cryptography are different ways to wrap that secret against the potential threats. Earlier when we used very large prime number we relied on computational limits of classical computers that they will practically take so much time to break the pattern and we enjoyed the security until quantum computers came and started to break that same computational limits at very fast pace, then we needed something that QPUs cannot break and we decided that we would use methods which is not a mathematical complexity but just complete chaos and randomness . One of popular way is Lattice cryptography where we insert random errors in public keys that no obvious pattern is recognized by Quantum . Hence safe against QPU and Classical both. I have used simple linear equations instead of how actual matrices used by real life encryptions but for understanding analogically same things that generates public output( b ), public keys ( a ), inserted error and bounded by particular modulus . The idea is same that we would use these Linear equations for Cryptographic handshake between different parties. Noise would make it difficult to reveal secret hence our Objective is fulfilled. You can play with Parameters and if you have some idea and want to contribute, the repo is open. Thanks for Reading!
Ships:
I made a Mathematical demonstration of How our traditional cryptographic methods use larger composite numbers whose prime factors are difficult for classical computers, hence public key was safe but after quantum computers, this computational limits could break by period finding. Secondly next demo was of how we can protect our secret key using noise so patterns become less obvious and neither classical nor quantum computers can break it. So major learning i got is of shor’s algorithm and how encryptions really work....
|
1793155858.3047993
|
1793242258.3047993
|
|
9936
|
Relay by @InvalidJoker | Stardance
|
InvalidJoker
|
2
|
27.0
|
411
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-11T21:09:50Z", "hours": 9.0, "multiplier": 17.24, "payout": 161, "blessing": "neutral", "text": "Relay v2? (if we can call it like that) Now that the base was solid and we had most of the features I focused on refining everything so I did exactly that: New UI Mutli Regional Relays Auto Updater QoL changes in general Have fun and try it out now: https://github.com/InvalidJoker/relay/tree/main#installation", "repo": "https://github.com/InvalidJoker/relay", "demo": "https://relay.koder.wtf"}, {"ship_num": 2, "ts": "2026-06-20T09:23:45Z", "hours": 18.0, "multiplier": 14.37, "payout": 250, "blessing": "neutral", "text": "Relay’s first ship I think Relay is finally ready for its first-ever ship! You can find instructions on how to use it at https://relay.koder.wtf For a long time, I’ve been looking for a nice solution to tunnel my local Minecraft servers and websites so I could share them with friends, and Relay is exactly that. Obviously, Relay isn’t even close to being finished yet and will continue to receive updates over time. :D So yeah, go ahead and give it a try! :p", "repo": "https://github.com/InvalidJoker/relay", "demo": "https://relay.koder.wtf"}]...
|
[{"post_id": 78872, "ts": "202 [{"post_id": 78872, "ts": "2026-10-11T20:45:08Z", "hours": 4.1264, "text": "Scaling Relay improve http performance add region based relay deployments some ui improvements add auto updater support Relay now supports choosing the best relay between multiple relays per “host”. Obv. we give you the freedom to say that you just want to have relay x and every feature we previously had will works as usual. I obv. did some more small changes as you can see above"}, {"post_id": 78115, "ts": "2026-10-09T16:31:40Z", "hours": 5.1892, "text": "Relay Rebranding I’ve completely rewritten the Relay website in Nuxt, fixing many bugs along the way and giving it a more polished, modern design that better fits the project. Check it out now at: https://relay.koder.wtf/"}, {"post_id": 12429, "ts": "2026-06-20T08:59:53Z", "hours": 2.8692, "text": "Relay is now public I think Relay has reached a point where I’m comfortable letting other people try it out. It’s now available at https://relay.koder.wtf/dashboard . The CLI supports Windows, macOS, and Linux, and can be installed with a simple script ( https://relay.koder.wtf/#how-it-works ). Currently, each user gets 2 reserved ports, 3 subdomains, and 1 completely custom domain. There’s still plenty of work ahead. Over the coming weeks, I’ll continue improving Relay and completely rework the dashboard, as it doesn’t look quite as polished as I’d like yet. I also plan to add a way for users to request additional subdomains directly through the platform. For now, I’d love for people to try it out and share their feedback."}, {"post_id": 11257, "ts": "2026-06-18T12:37:43Z", "hours": 6.2831, "text": "First Working Version I’ve got a first real version of Relay up and running :D The dashboard works, and both the HTTP and TCP proxy are stable. Next up is mostly cleanup: polishing the frontend, improving the CLI tools, and finally implementing run configurations so you can have a relay.toml file in your project and don’t have to type the entire command every time. After that, I’ll put together a demo deployment so people can actually try it out and break it a bit."}, {"post_id": 7483, "ts": "2026-06-12T14:20:09Z", "hours": 4.9442, "text": "I’ve started working on the frontend for Relay and made some structural changes. One major change is the removal of the dedicated Rust backend. All functionality is now handled directly within the Svelte application, simplifying development and deployment complexity. For the UI, I chose a minimal design built with shadcn-svelte. This gives Relay a clean, modern look. Upcoming Features: The dashboard will soon allow you to: Create and manage custom domains and subdomains Reserve specific ports for your projects, so you don’t have to send new ports to your friends everytime More updates soon :D"}, {"post_id": 4414, "ts": "2026-06-07T18:51:59Z", "hours": 2.6497, "text": "I wanted the CLI to be as intuitive as possible, so I came up with the following design. I’ve also made progress on building the Relay server itself. It now includes a communication layer for interacting with the CLI and supports client authentication."}, {"post_id": 4094, "ts": "2026-06-07T09:08:17Z", "hours": 0.7886, "text": "What is Relay? Relay is a TCP tunneling service. Unlike many other services on the market, it will be open-source and free to use (with some limitations, of course). We also plan to offer unique features, such as persistent domains, so your friends won’t have to update the URL every time they want to visit your site. Relay is currently a work in progress, so don’t expect anything too crazy just yet. I’ll keep you updated :)"}]...
|
Title: Relay by @InvalidJoker | Stardance
Devlogs Title: Relay by @InvalidJoker | Stardance
Devlogs:
What is Relay? Relay is a TCP tunneling service. Unlike many other services on the market, it will be open-source and free to use (with some limitations, of course). We also plan to offer unique features, such as persistent domains, so your friends won’t have to update the URL every time they want to visit your site. Relay is currently a work in progress, so don’t expect anything too crazy just yet. I’ll keep you updated :)
I wanted the CLI to be as intuitive as possible, so I came up with the following design. I’ve also made progress on building the Relay server itself. It now includes a communication layer for interacting with the CLI and supports client authentication.
I’ve started working on the frontend for Relay and made some structural changes. One major change is the removal of the dedicated Rust backend. All functionality is now handled directly within the Svelte application, simplifying development and deployment complexity. For the UI, I chose a minimal design built with shadcn-svelte. This gives Relay a clean, modern look. Upcoming Features: The dashboard will soon allow you to: Create and manage custom domains and subdomains Reserve specific ports for your projects, so you don’t have to send new ports to your friends everytime More updates soon :D
First Working Version I’ve got a first real version of Relay up and running :D The dashboard works, and both the HTTP and TCP proxy are stable. Next up is mostly cleanup: polishing the frontend, improving the CLI tools, and finally implementing run configurations so you can have a relay.toml file in your project and don’t have to type the entire command every time. After that, I’ll put together a demo deployment so people can actually try it out and break it a bit.
Relay is now public I think Relay has reached a point where I’m comfortable letting other people try it out. It’s now available at https://relay.koder.wtf/dashboard . The CLI supports Windows, macOS, and Linux, and can be installed with a simple script ( https://relay.koder.wtf/#how-it-works ). Currently, each user gets 2 reserved ports, 3 subdomains, and 1 completely custom domain. There’s still plenty of work ahead. Over the coming weeks, I’ll continue improving Relay and completely rework the dashboard, as it doesn’t look quite as polished as I’d like yet. I also plan to add a way for users to request additional subdomains directly through the platform. For now, I’d love for people to try it out and share their feedback.
Relay Rebranding I’ve completely rewritten the Relay website in Nuxt, fixing many bugs along the way and giving it a more polished, modern design that better fits the project. Check it out now at: https://relay.koder.wtf/
Scaling Relay improve http performance add region based relay deployments some ui improvements add auto updater support Relay now supports choosing the best relay between multiple relays per “host”. Obv. we give you the freedom to say that you just want to have relay x and every feature we previously had will works as usual. I obv. did some more small changes as you can see above
Ships:
Relay’s first ship I think Relay is finally ready for its first-ever ship! You can find instructions on how to use it at https://relay.koder.wtf For a long time, I’ve been looking for a nice solution to tunnel my local Minecraft servers and websites so I could share them with friends, and Relay is exactly that. Obviously, Relay isn’t even close to being finished yet and will continue to receive updates over time. :D So yeah, go ahead and give it a try! :p
Relay v2? (if we can call it like that) Now that the base was solid and we had most of the features I focused on refining everything so I did exactly that: New UI Mutli Regional Relays Auto Updater QoL changes in general Have fun and try it out now: https://github.com/InvalidJoker/relay/tree/main#installation...
|
1793137958.6843748
|
1793224358.6843748
|
|
27322
|
Bazaar Tracker HSB by @SagittaJL | Stardance
|
SagittaJL
|
1
|
48.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-11T20:56:51Z", "hours": 48.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I built a live Hypixel SkyBlock Bazaar tracker that ranks 1200+ items using my own Gamma and Omega market metrics. The hardest part was dealing with Hypixel’s item data and getting custom item icons to work reliably. I’m most proud that it went from a small Python script into a full Flask website that’s now live. You can try searching for items, changing tax/Omega settings, and switching backgrounds in the settings menu. This is for all the SkyBlock buffs.", "repo": "https://github.com/linjeffrey21-creator/BazaarTracker", "demo": "https://bazaar-tracker-ten.vercel.app/"}]...
|
[{"post_id": 78875, "ts": "202 [{"post_id": 78875, "ts": "2026-10-11T20:54:39Z", "hours": 0.4081, "text": "Project is live on Render!"}, {"post_id": 78852, "ts": "2026-10-11T19:30:12Z", "hours": 13.8189, "text": "The Bazaar Tracker looks better off now with live item data, ranking, search, taxes, custom Gamma/Omega scores, item icons, and a background picker. My next step is to host it somewhere so other people can actually use it."}, {"post_id": 72086, "ts": "2026-09-22T04:22:54Z", "hours": 2.4642, "text": "Put the backend on a website now, working on the aesthetics but first time with YouTube"}, {"post_id": 71641, "ts": "2026-09-21T06:38:25Z", "hours": 30.8742, "text": "Working on a Search Feature to Expand the Catalog"}, {"post_id": 18576, "ts": "2026-06-29T19:27:44Z", "hours": 0.0692, "text": "This started as a script to list Hypixel SkyBlock reforge stones by category. Then, I decided to turn it into a full-on demand & stability scoring system for the Bazaar. It’s still in the works, as I don’t have many products being tracked right now. There’s a custom Demand Score (γ) for every item and a Stability Score (Ω) for each item. The program also spits out a Top 20 list of the most liquid, most in-demand flips, ranked by gamma."}]...
|
Title: Bazaar Tracker HSB by @SagittaJL | Stardanc Title: Bazaar Tracker HSB by @SagittaJL | Stardance
Devlogs:
This started as a script to list Hypixel SkyBlock reforge stones by category. Then, I decided to turn it into a full-on demand & stability scoring system for the Bazaar. It’s still in the works, as I don’t have many products being tracked right now. There’s a custom Demand Score (γ) for every item and a Stability Score (Ω) for each item. The program also spits out a Top 20 list of the most liquid, most in-demand flips, ranked by gamma.
Working on a Search Feature to Expand the Catalog
Put the backend on a website now, working on the aesthetics but first time with YouTube
The Bazaar Tracker looks better off now with live item data, ranking, search, taxes, custom Gamma/Omega scores, item icons, and a background picker. My next step is to host it somewhere so other people can actually use it.
Project is live on Render!
Ships:
I built a live Hypixel SkyBlock Bazaar tracker that ranks 1200+ items using my own Gamma and Omega market metrics. The hardest part was dealing with Hypixel’s item data and getting custom item icons to work reliably. I’m most proud that it went from a small Python script into a full Flask website that’s now live. You can try searching for items, changing tax/Omega settings, and switching backgrounds in the settings menu. This is for all the SkyBlock buffs....
|
1793145146.2587867
|
1793231546.2587867
|
|
14535
|
Issued YSWS by @Acidicts | Stardance
|
Acidicts
|
1
|
91.58
|
1383
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-01T17:03:11Z", "hours": 89.0, "multiplier": 15.53, "payout": 1383, "blessing": "neutral", "text": "Shipped!!! There are a bunch of features and stuff that I have added to this since flavortown, from the ordering system to devlogs and ship flow. Project Info This is the ruby on rails app for the ysws draft #issued where YS: Designs made with Code WS: Clothes and other swag with those designs Features added: A bunch of features have been added and I have separated them to 3 categories Major ones for functionality, quality of life for feel and use, security for data security. New Major Features: Designs view now is more detailed including hackatime projects and images from devlogs and ships Ship flow system so you can submit to the ysws Product Design system (admin only - for making the shop items by importing from printful via api) Order system using lots of hotwired turbo (choose color, design placement rotation and scale) Notifications (3 types Normal which provides info and 2 others Boolean which gets a yes or no answer and text which gets a written answer Reviewer Panel which shows pending ships to review with some data on (need to add hackatime info for it though) Storing Reviewer proof videos in a cloudflare R2 storage Quality-Of-Life: Added better UI/UX with some issues with need for ironing out (eg font change from workbench to ‘lexend’ and ‘space mono’ Kept a consistent style through the site, although some panels might need better border colour On login it redirects to the page you logged in by Security: I added User DB encryption to protect user data stored on the postgres database instance, such as name and email Summary Made the functional part of the ysws site (Designs, ordering, shipping) Added more security for user data Improved UI(Font and colour scheme)", "repo": "https://github.com/Acidicts/Issued", "demo": "https://issued.bing-bong.uk"}]...
|
[{"post_id": 78879, "ts": "202 [{"post_id": 78879, "ts": "2026-10-11T21:05:08Z", "hours": 2.5772, "text": "I created the fulfilment system for a fulfilment team to use Recent changes Removed redundant save! calls and updated fulfillment tests to reduce unnecessary database operations and align test logic with current behavior 9acc056 . Added a fulfillment role, batch pipeline, and popup controller to support new workflow automation and UI interactions afa7a20 . The popup controller likely handles transient UI elements like notifications or modals. Fixed a crash in /designs preview rendering by resolving an issue blocking Ruby scan/lint CI, ensuring previews no longer fail unexpectedly ( 911f035 ). Corrected a stray question mark in a design preview image tag to prevent malformed HTML output ( 955dd6c ). Added a note about YSWS draft sponsorship documentation, possibly for tracking external partnerships or funding discussions ( d92d571 ). No performance optimizations or subsystem overhauls were addressed in this cycle. Next steps depend on external feedback and test coverage improvements implied by recent test updates."}, {"post_id": 75924, "ts": "2026-10-01T16:48:57Z", "hours": 0.6297, "text": "Deploying on coolify and fixing bugs with that + encrypting current db"}, {"post_id": 75729, "ts": "2026-09-30T21:34:41Z", "hours": 1.0775, "text": "Recent changes - Installed Bundler 4.0.4 in the Dockerfile to standardize gem management across environments ( 88ba659 ). - Ensured the verification directory exists for SVG upload tests, addressing missing file system setup in test workflows ( 83f2e53 ). - Resolved a Turbo conflict in order steps, likely related to event streaming or frame rendering in Rails views ( e8d08f4 ). Updated navigation unread counts dynamically from notification events, improving real-time feedback for user activity ( a75f6ff )."}, {"post_id": 75254, "ts": "2026-09-29T16:08:17Z", "hours": 3.9967, "text": "## Recent changes Notifications: Unanswered notifications now retain their unread status until explicitly addressed. This ensures users can distinguish between pending and resolved interactions without relying on manual state updates ( 751a370 ). Security: Authentication workflows, file uploads, and resource authorization checks have been updated with additional safeguards. Specifics include input validation and access control refinements, though implementation details are not disclosed in the commit message ( 97e48db )."}, {"post_id": 74657, "ts": "2026-09-27T21:33:33Z", "hours": 2.8042, "text": "Made Notifications Useful Recent changes Persistent unread state for unanswered boolean notifications Notifications with unresolved boolean actions (e.g., approvals) now remain marked as unread until explicitly addressed. This ensures users revisit pending decisions. Commit: 39aabb2 . Interactive notification replies with approval time tracking Added support for direct replies to notifications, along with timestamp logging for when approvals are finalized. This enables granular tracking of response times for actionable alerts. Commit: 6ac80f9 ."}, {"post_id": 74176, "ts": "2026-09-26T21:01:23Z", "hours": 9.8606, "text": "Recent changes Added ship request reviews, resubmission logic, and R2 storage integration for tracking reviewed submissions ( 41b1e43 ). Started on the review workflow Started on Resubmission logic Set up support for cloudflare R2 Guarded Hack Club token persistence behind encryption configuration, ensuring tokens are only stored when encryption is explicitly enabled ( a4b6d0c )."}, {"post_id": 71158, "ts": "2026-09-20T11:24:58Z", "hours": 2.1222, "text": "Recent changes Comment delete, Turbo Comment Box, and ship request fade functionality Add #destroy functionality to the comments with owner permission, path, delete button, and dependent comments. Make use of valid commentable_type/id while building comments and make responses as Turbo streams and wrap up comments within a Turbo frame. Resize the comment box according to the content changes detected by the MutationObserver. Make ship request modal and overlay fade in and out. Consider higher level ship request as blockers for all ship requests. Comment card and comment list styling."}, {"post_id": 70827, "ts": "2026-09-19T20:44:04Z", "hours": 7.9789, "text": "Recent changes Add comments to devlogs and ship requests Implement polymorphic Comment model with CommentsController, Stimulus-driven collapsing comment box, markdown preview form, and styles. Comments will be rendered by Turbo frames and allow editing by owner/admin. This is what else is included in this change: Encryption of hackclub_access_token and hackclub_refresh_token through ActiveRecord encryption, including config, env sample and migration task for already existing non-encrypted tokens. SSL enforcement in production (assume_ssl, force_ssl). Update filter_parameters to strip out sensitive information and OAuth tokens from logs. Fix ExchangeRate API call to include Bearer authentication header. Sanitization of devlogs HTML output through SafeListSanitizer. Update Design#can_make_devlog to can_make_devlog? method and restrict can_ship? check to devlogs without ship request. Add SRI integrity attribute to marked/DOMPurify scripts loaded from CDNs. UI improvements: styles for disabled buttons, utility class for hover-underline effect, devlog cards layout and info icons."}, {"post_id": 65654, "ts": "2026-09-10T22:45:01Z", "hours": 4.65, "text": "Recent changes Ship request flow and SVG conversion : Added support for processing ship requests, handling SVG conversions, and validating devlog images before submission 8ca9b5d9 . Nil safety for Hackatime projects : Wrapped the @hackatime_projects variable in an Array structure to prevent nil errors when retrieving project data a29691ff . CI environment and test ordering : Set RAILS_ENV=test for the CI setup process and reordered the sequence of test steps to improve execution reliability 2968d162 . Authorization consolidation : Refactored authorization guards and consolidated the linking logic for Hackatime projects 4c2b1836 ."}, {"post_id": 63555, "ts": "2026-09-07T13:59:01Z", "hours": 4.54, "text": "Recent changes Fixed a failure in the CI/CD pipeline commit Implemented status tracking for balance events and refined the underlying thread logic associated with them commit Refactored the token rendering component for render_encoded to allow {{design: design.id}} making a pill, to improve display fidelity and added an edit functionality for devlog entries commit Integrated support for uploading images directly within the devlog interface and established links to corresponding Hackatime projects commit"}, {"post_id": 62972, "ts": "2026-09-06T15:23:56Z", "hours": 7.4994, "text": "Added Devlogs and changed hackatime projects to be multi model per design. Move hackatime project linkage from a single designs.hackatime_project column to a has_many hackatime_projects model, syncing each project’s time and aggregating totals on designs. Add devlogs, ship_requests, ships, and comments models/routes/views for design logging and shipping, and make balance_events polymorphic.Update designs controller, helpers, and views to render multiple project pills, allow adding/removing linked projects, and show a combined hackatime/image/devlog layout. Add redcarpet for Markdown rendering and adjust CSS for dark mode, responsive galleries, and pill controls. Added Devlogs and the prep for adding the shipping flow I added devlogs to the project in prep for the shipping flow"}, {"post_id": 61811, "ts": "2026-09-04T21:55:13Z", "hours": 3.1611, "text": "Recent changes Added support for balance events and thread adjustments to improve financial tracking accuracy. This also included an update to the notification rendering system to safely handle these new data types without breaking existing templates (commit: ( faed39b57619 )). Fixed the positioning of the design box within the product editor. This specifically addresses display issues occurring when editing products via /admin/products/<id>/edit (commit: ( aa4e314b5dcd ))."}, {"post_id": 60507, "ts": "2026-09-02T21:52:42Z", "hours": 5.5383, "text": "I’ve focused on refining the shop page styling, header positioning, and cost handling logic ( d10a9c51 ). The recent batch of work involved schema adjustments for a product enabled flag, adding support for cost and thread costs ( 82f9f2d1 ), applying a schema fix ( 3f8bcb8a ), fixing CI pipeline issues ( 71e98a ), and pushing updates to production ( ca19da29 ). Recent changes Added an image variants system and updated views to utilize thumb and display variants specifically ( a2e4eb28 ). Implemented cost handling updates, including a specific support for thread costs alongside general product cost tracking ( 82f9f2d1 ). Added an auto annotaterb script executed within the Rails migration process ( 7d07d278 ). Applied schema fixes to ensure data integrity during the recent updates ( 3f8bcb8a ). Updated the RSVP page styles and refreshed the thanks template ( 217945eb ). Refined header positioning and shop page styling across the frontend ( d10a9c51 ). Added a product enabled flag to control product visibility and state in the system ( 82f9f2d1 ). Whats next: Umm, so whats next I think would be adding balance_events so you can trace changes in balances(spending/earning)"}, {"post_id": 59213, "ts": "2026-08-31T21:41:46Z", "hours": 2.8433, "text": "Since the last update, I’ve focused on enhancing the order preview system to support complex design workflows and improving image navigation for multi-image configurations. Recent changes Added multi-image preview navigation with left/right arrow buttons and an index display (e.g., “Image 2 of 5”) to streamline design review workflows ( b269fe5 ). This change directly addresses the need to review multiple design iterations in a single view without page reloads. Refactored the order preview component to support multiple print areas with independently configurable design images. This involved restructuring the preview logic to handle dynamic print area definitions while maintaining consistent state across design selections ( 0545118 ). The refactor enables customers to visualize different designs on separate print areas (e.g., front/back/ sleeves) within the same order preview."}, {"post_id": 58236, "ts": "2026-08-30T16:26:21Z", "hours": 8.9714, "text": "Print area management UI & backend ( a42a00d ): Built a full stack for managing print areas (think “where the design goes” on a shirt front or back). This includes models to store print area dimensions, controllers to handle CRUD ops, and RESTful routes to tie it all together. The frontend now lets users drag/drop to define print zones with responsive positioning ( position: absolute + transform: scale to handle dynamic sizing). Edge case: Products with multiple print areas (e.g., front + back) now render distinct configurations without clobbering state. Printful service & stock syncing ( 7b5d817 ): Added printful_id to product models to map Issued products to Printful’s inventory. UI updates to display Printful sync status (green checkmarks for success, red alerts for failures). Technical tangents The print area system was a slow make. For example: To ensure designs stay within printable bounds, I had to calculate dynamic margins based on product type (e.g., a hoodie’s print area ≠ a mug’s). This involved hacking some trigonometry into the frontend to snap selections to “safe zones.” On the backend, I’m using ActiveRecord callbacks to validate print area dimensions against product specs. If a user tries to set a print area wider than the product allows It raises a PrintAreaOutOfBounds error Future features The actual ship flow and being able to edit multiple print areas instead of just the one"}, {"post_id": 53048, "ts": "2026-08-23T13:14:54Z", "hours": 4.1422, "text": "Added Variants for size and colors with stock for each printful region facility. Stimulus target which groups the variants by colour and deletes empty groups"}, {"post_id": 50653, "ts": "2026-08-19T22:27:11Z", "hours": 3.3331, "text": "Created Printful API Integration and improved order screen to allow better customisations Add Printful import endpoint and order preview UI improvementsImplemented Printful product import, added order preview generation, UI styles, and controller changes for drag‑resize‑rotate preview."}, {"post_id": 37237, "ts": "2026-07-29T19:53:07Z", "hours": 0.3972, "text": "Improved the New Order Page to be neater, and better themed along the colour scheme"}, {"post_id": 37220, "ts": "2026-07-29T19:25:45Z", "hours": 1.2728, "text": "Rename admin-product to products and refactor CSS, controller, and views. Updated class names and CSS variables, added .no-product-grid and .dashed-break styles. Simplified image loading logic in the product preview controller, and replaced large inline layout styles with external stylesheet includes."}, {"post_id": 35739, "ts": "2026-07-27T11:35:58Z", "hours": 1.3936, "text": "Add brand colors, badge styles, and redesign pagesAdd brand color variables, badge styles, and a full redesign of design pages with responsive layouts, fixed redirect stuff, optimised by using one erb engine call for designs"}, {"post_id": 35463, "ts": "2026-07-26T22:10:06Z", "hours": 1.1911, "text": "Dropdown Styling & Component Replacement The design form’s dropdown interface was overhauled to improve visual consistency and user experience. A native <select> element was replaced with a custom-styled solution using 3ab7405 , allowing for greater flexibility in aligning with the project’s aesthetic goals. This change ensures smoother integration with the overall theme and avoids browser-specific styling quirks. CSS Refactoring & Theme Variables Design form styling was fully refactored in 928b7b0 , introducing global theme variables to streamline color, spacing, and typography management. This move simplifies future theme adjustments and promotes code reuse. Model defaults were also standardized to reduce redundancy in form initialization logic, making the codebase more maintainable. Admin Test Redirects In 2af0071 , the admin test workflow was updated to automatically redirect to the products list URL after test submissions. This improves user navigation by providing immediate feedback and next steps, ensuring a cohesive backend experience. Current Status The frontend is now more thematically consistent, with design forms serving as a primary focus area. Admin workflows are being optimized for clarity and efficiency, though backend test processing logic remains pending integration. The codebase is gradually adopting a modular structure, particularly for UI components and configuration. Things Learnt Custom dropdowns using CSS and JavaScript offer better cross-browser compatibility than styling native <select> elements. Theme variables significantly reduce the effort required for UI adjustments, especially as the project scales. Redirects in admin flows should be designed with user context in mind to avoid confusion."}, {"post_id": 34704, "ts": "2026-07-25T17:05:22Z", "hours": 1.6431, "text": "Project Summary: Admin & Infrastructure Progress Key Milestones & Features Built 🛠️ Admin Product Management UI : Added a full admin interface for product management, including preview capabilities, environment variable integration, and updated order flow logic. This enables admins to efficiently manage product listings and track orders. 🆓 Privacy Enhancements : Implemented a “hide PII” controller to anonymize user data in the UI, ensuring sensitive information is protected in user-facing tables. 🧪 Product Cost Handling : Validated GBP pricing logic for products, ensuring accurate cost handling in the British Pounds currency. 🛠️ CI/CD & Dependency Updates : Configured PostgreSQL in CI pipelines, updated database URLs, and bumped Ruby gem versions to ensure a stable, up-to-date environment. 🎨 Styling Cleanup : Replaced inline styles in admin views with stylesheet_link_tag imports, improving maintainability and separation of concerns. Current Status The project now has a functional admin dashboard for product and order management, with privacy features baked into user data displays. Infrastructure is PostgreSQL-ready in CI, and styling practices align with modern Rails conventions. Core e-commerce logic (pricing, currency) is under testing, with environment variables streamlining configuration. Lessons Learned Privacy by Design : Integrating PII protection early simplifies compliance and reduces technical debt. Infrastructure as Code : Automating PostgreSQL setup in CI saves manual effort and reduces environment inconsistencies. Maintainable Styles : Moving to external stylesheets improves collaboration and long-term code hygiene. Order Page Started Created a functional order page Currency Handling : Explicit GBP validation highlights the need for clear financial logic in order systems."}, {"post_id": 32945, "ts": "2026-07-22T13:01:39Z", "hours": 1.1947, "text": "Replace admin view inline styles with stylesheet_link_tag importsRemoved large embedded CSS from multiple admin templates and switched to external stylesheet links for consistency and maintainability."}, {"post_id": 32314, "ts": "2026-07-21T12:27:35Z", "hours": 0.3503, "text": "Add CurrencyConvertible include and cost conversion helpersInclude CurrencyConvertible in ApplicationHelper and Product, add cost_usd and cost_gbp methods, remove obsolete gbp_to_usd, usd_per_gbp and fetch_usd_conversion_rates, rename cost column comment, and adjust product inheritance."}, {"post_id": 32039, "ts": "2026-07-20T22:30:02Z", "hours": 1.2369, "text": "Update README, moved CSS files, fixed issues between pages (styling)Include planning file entry, revise README wording, and remove dashboard and notifications stylesheet files."}, {"post_id": 30900, "ts": "2026-07-18T21:33:53Z", "hours": 0.9747, "text": "feat(database): migrate from SQLite to PostgreSQL and switch to Redis infrastructure- replace sqlite3 with PostgreSQL database adapter in Gemfile and config configure Redis for caching, Action Cable, and Active Job instead of Solid adapters add guide attribute to User model for onboarding flow control implement user existence validation in ApplicationController refactor CSS architecture by moving stylesheets to components directory create shared designs.css stylesheet for design pages with responsive styling update todo partial to check guide flag before displaying onboarding prompts add migration for guide column on users table"}, {"post_id": 26210, "ts": "2026-07-10T21:30:31Z", "hours": 0.6197, "text": "Key Milestones & Features The project has made solid strides in building out core admin functionality and refining user interactions: Admin Controller Tests : Comprehensive tests for the dashboard, orders, and products controllers were added, ensuring reliability and laying groundwork for future expansions. Form Submission Control : A disable button feature was implemented in the design-form component to prevent multiple submissions, improving UX and reducing backend load. Dashboard Updates : The dashboard_controller.rb received updates (specifics pending documentation), likely enhancing core admin workflows. Current Status The admin interface is shaping up with test-covered controllers and polished frontend interactions. Testing prioritization suggests a focus on stability, while form improvements reflect attention to user-centric details. The project appears in an active development phase, with July 2026 commits indicating recent momentum. Things Learnt Test-Driven Practices : Adding controller tests early highlights the team’s emphasis on maintainable, scalable code. Form UX Nuances : Disabling submission buttons during processing is a small but impactful tweak to prevent errors and improve responsiveness. Documentation Gaps : The vague “Update dashboard_controller.rb” commit underscores the importance of descriptive commit messages for clarity in collaborative projects."}, {"post_id": 20347, "ts": "2026-07-01T22:27:04Z", "hours": 0.7008, "text": "fix(auth): update product params to include thread_cost instead of cost_gbp - replace deprecated cost_gbp parameter with thread_cost in product creation/update - adjust database migration to add thread_cost column to products table, added shop, added notification page"}, {"post_id": 19576, "ts": "2026-06-30T22:24:00Z", "hours": 1.3847, "text": "Used claude to brainstorm colour schemes and layouts. Created this new dashboard design and transitioned the rest of the site to follow the colour scheme"}, {"post_id": 13382, "ts": "2026-06-21T22:29:32Z", "hours": 0.6847, "text": "Add design image gallery with viewer page- Add image route, controller action, and full-size viewer template Add gallery grid on show page with hover overlays and timestamps Fix partial render syntax (collection with as: :image)"}, {"post_id": 12184, "ts": "2026-06-19T21:59:46Z", "hours": 2.8486, "text": "Summary Major update: background removal, UI improvements, model fixes, and CI stability. Changes Added RemoveBackgroundJob with rembg CLI for automatic background removal Created Image and DesignEditSession models; updated schema comments Added brand.css and regulated form partial for new/edit designs Added dark mode support and image preview scaling Enabled PostgreSQL extensions; switched dev DB to SQLite Removed stale migrations (verified, trust columns from users) Cleaned up model validations and associations Fixed CI test suite with updated fixtures Removed node_modules from git; added to .gitignore Removed unused editor and dashboard views Updated Gemfile/Gemfile.lock dependencies"}]...
|
Title: Issued YSWS by @Acidicts | Stardance
Devlo Title: Issued YSWS by @Acidicts | Stardance
Devlogs:
Summary Major update: background removal, UI improvements, model fixes, and CI stability. Changes Added RemoveBackgroundJob with rembg CLI for automatic background removal Created Image and DesignEditSession models; updated schema comments Added brand.css and regulated form partial for new/edit designs Added dark mode support and image preview scaling Enabled PostgreSQL extensions; switched dev DB to SQLite Removed stale migrations (verified, trust columns from users) Cleaned up model validations and associations Fixed CI test suite with updated fixtures Removed node_modules from git; added to .gitignore Removed unused editor and dashboard views Updated Gemfile/Gemfile.lock dependencies
Add design image gallery with viewer page- Add image route, controller action, and full-size viewer template Add gallery grid on show page with hover overlays and timestamps Fix partial render syntax (collection with as: :image)
Used claude to brainstorm colour schemes and layouts. Created this new dashboard design and transitioned the rest of the site to follow the colour scheme
fix(auth): update product params to include thread_cost instead of cost_gbp - replace deprecated cost_gbp parameter with thread_cost in product creation/update - adjust database migration to add thread_cost column to products table, added shop, added notification page
Key Milestones & Features The project has made solid strides in building out core admin functionality and refining user interactions: Admin Controller Tests : Comprehensive tests for the dashboard, orders, and products controllers were added, ensuring reliability and laying groundwork for future expansions. Form Submission Control : A disable button feature was implemented in the design-form component to prevent multiple submissions, improving UX and reducing backend load. Dashboard Updates : The dashboard_controller.rb received updates (specifics pending documentation), likely enhancing core admin workflows. Current Status The admin interface is shaping up with test-covered controllers and polished frontend interactions. Testing prioritization suggests a focus on stability, while form improvements reflect attention to user-centric details. The project appears in an active development phase, with July 2026 commits indicating recent momentum. Things Learnt Test-Driven Practices : Adding controller tests early highlights the team’s emphasis on maintainable, scalable code. Form UX Nuances : Disabling submission buttons during processing is a small but impactful tweak to prevent errors and improve responsiveness. Documentation Gaps : The vague “Update dashboard_controller.rb” commit underscores the importance of descriptive commit messages for clarity in collaborative projects.
feat(database): migrate from SQLite to PostgreSQL and switch to Redis infrastructure- replace sqlite3 with PostgreSQL database adapter in Gemfile and config configure Redis for caching, Action Cable, and Active Job instead of Solid adapters add guide attribute to User model for onboarding flow control implement user existence validation in ApplicationController refactor CSS architecture by moving stylesheets to components directory create shared designs.css stylesheet for design pages with responsive styling update todo partial to check guide flag before displaying onboarding prompts add migration for guide column on users table
Update README, moved CSS files, fixed issues between pages (styling)Include planning file entry, revise README wording, and remove dashboard and notifications stylesheet files.
Add CurrencyConvertible include and cost conversion helpersInclude CurrencyConvertible in ApplicationHelper and Product, add cost_usd and cost_gbp methods, remove obsolete gbp_to_usd, usd_per_gbp and fetch_usd_conversion_rates, rename cost column comment, and adjust product inheritance.
Replace admin view inline styles with stylesheet_link_tag importsRemoved large embedded CSS from multiple admin templates and switched to external stylesheet links for consistency and maintainability.
Project Summary: Admin & Infrastructure Progress Key Milestones & Features Built 🛠️ Admin Product Management UI : Added a full admin interface for product management, including preview capabilities, environment variable integration, and updated order flow logic. This enables admins to efficiently manage product listings and track orders. 🆓 Privacy Enhancements : Implemented a “hide PII” controller to anonymize user data in the UI, ensuring sensitive information is protected in user-facing tables. 🧪 Product Cost Handling : Validated GBP pricing logic for products, ensuring accurate cost handling in the British Pounds currency. 🛠️ CI/CD & Dependency Updates : Configured PostgreSQL in CI pipelines, updated database URLs, and bumped Ruby gem versions to ensure a stable, up-to-date environment. 🎨 Styling Cleanup : Replaced inline styles in admin views with stylesheet_link_tag imports, improving maintainability and separation of concerns. Current Status The project now has a functional admin dashboard for product and order management, with privacy features baked into user data displays. Infrastructure is PostgreSQL-ready in CI, and styling practices align with modern Rails conventions. Core e-commerce logic (pricing, currency) is under testing, with environment variables streamlining configuration. Lessons Learned Privacy by Design : Integrating PII protection early simplifies compliance and reduces technical debt. Infrastructure as Code : Automating PostgreSQL setup in CI saves manual effort and reduces environment inconsistencies. Maintainable Styles : Moving to external stylesheets improves collaboration and long-term code hygiene. Order Page Started Created a functional order page Currency Handling : Explicit GBP validation highlights the need for clear financial logic in order systems.
Dropdown Styling & Component Replacement The design form’s dropdown interface was overhauled to improve visual consistency and user experience. A native <select> element was replaced with a custom-styled solution using 3ab7405 , allowing for greater flexibility in aligning with the project’s aesthetic goals. This change ensures smoother integration with the overall theme and avoids browser-specific styling quirks. CSS Refactoring & Theme Variables Design form styling was fully refactored in 928b7b0 , introducing global theme variables to streamline color, spacing, and typography management. This move simplifies future theme adjustments and promotes code reuse. Model defaults were also standardized to reduce redundancy in form initialization logic, making the codebase more maintainable. Admin Test Redirects In 2af0071 , the admin test workflow was updated to automatically redirect to the products list URL after test submissions. This improves user navigation by providing immediate feedback and next steps, ensuring a cohesive backend experience. Current Status The frontend is now more thematically consistent, with design forms serving as a primary focus area. Admin workflows are being optimized for clarity and efficiency, though backend test processing logic remains pending integration. The codebase is gradually adopting a modular structure, particularly for UI components and configuration. Things Learnt Custom dropdowns using CSS and JavaScript offer better cross-browser compatibility than styling native <select> elements. Theme variables significantly reduce the effort required for UI adjustments, especially as the project scales. Redirects in admin flows should be designed with user context in mind to avoid confusion.
Add brand colors, badge styles, and redesign pagesAdd brand color variables, badge styles, and a full redesign of design pages with responsive layouts, fixed redirect stuff, optimised by using one erb engine call for designs
Rename admin-product to products and refactor CSS, controller, and views. Updated class names and CSS variables, added .no-product-grid and .dashed-break styles. Simplified image loading logic in the product preview controller, and replaced large inline layout styles with external stylesheet includes.
Improved the New Order Page to be neater, and better themed along the colour scheme
Created Printful API Integration and improved order screen to allow better customisations Add Printful import endpoint and order preview UI improvementsImplemented Printful product import, added order preview generation, UI styles, and controller changes for drag‑resize‑rotate preview.
Added Variants for size and colors with stock for each printful region facility. Stimulus target which groups the variants by colour and deletes empty groups
Print area management UI & backend ( a42a00d ): Built a full stack for managing print areas (think “where the design goes” on a shirt front or back). This includes models to store print area dimensions, controllers to handle CRUD ops, and RESTful routes to tie it all together. The frontend now lets users drag/drop to define print zones with responsive positioning ( position: absolute + transform: scale to handle dynamic sizing). Edge case: Products with multiple print areas (e.g., front + back) now render distinct configurations without clobbering state. Printful service & stock syncing ( 7b5d817 ): Added printful_id to product models to map Issued products to Printful’s inventory. UI updates to display Printful sync status (green checkmarks for success, red alerts for failures). Technical tangents The print area system was a slow make. For example: To ensure designs stay within printable bounds, I had to calculate dynamic margins based on product type (e.g., a hoodie’s print area ≠ a mug’s). This involved hacking some trigonometry into the frontend to snap selections to “safe zones.” On the backend, I’m using ActiveRecord callbacks to validate print area dimensions against product specs. If a user tries to set a print area wider than the product allows It raises a PrintAreaOutOfBounds error Future features The actual ship flow and being able to edit multiple print areas instead of just the one
Since the last update, I’ve focused on enhancing the order preview system to support complex design workflows and improving image navigation for multi-image configurations. Recent changes Added multi-image preview navigation with left/right arrow buttons and an index display (e.g., “Image 2 of 5”) to streamline design review workflows ( b269fe5 ). This change directly addresses the need to review multiple design iterations in a single view without page reloads. Refactored the order preview component to support multiple print areas with independently configurable design images. This involved restructuring the preview logic to handle dynamic print area definitions while maintaining consistent state across design selections ( 0545118 ). The refactor enables customers to visualize different designs on separate print areas (e.g., front/back/ sleeves) within the same order preview.
I’ve focused on refining the shop page styling, header positioning, and cost handling logic ( d10a9c51 ). The recent batch of work involved schema adjustments for a product enabled flag, adding support for cost and thread costs ( 82f9f2d1 ), applying a schema fix ( 3f8bcb8a ), fixing CI pipeline issues ( 71e98a ), and pushing updates to production ( ca19da29 ). Recent changes Added an image variants system and updated views to utilize thumb and display variants specifically ( a2e4eb28 ). Implemented cost handling updates, including a specific support for thread costs alongside general product cost tracking ( 82f9f2d1 ). Added an auto annotaterb script executed within the Rails migration process ( 7d07d278 ). Applied schema fixes to ensure data integrity during the recent updates ( 3f8bcb8a ). Updated the RSVP page styles and refreshed the thanks template ( 217945eb ). Refined header positioning and shop page styling across the frontend ( d10a9c51 ). Added a product enabled flag to control product visibility and state in the system ( 82f9f2d1 ). Whats next: Umm, so whats next I think would be adding balance_events so you can trace changes in balances(spending/earning)
Recent changes Added support for balance events and thread adjustments to improve financial tracking accuracy. This also included an update to the notification rendering system to safely handle these new data types without breaking existing templates (commit: ( faed39b57619 )). Fixed the positioning of the design box within the product editor. This specifically addresses display issues occurring when editing products via /admin/products/<id>/edit (commit: ( aa4e314b5dcd )).
Added Devlogs and changed hackatime projects to be multi model per design. Move hackatime project linkage from a single designs.hackatime_project column to a has_many hackatime_projects model, syncing each project’s time and aggregating totals on designs. Add devlogs, ship_requests, ships, and comments models/routes/views for design logging and shipping, and make balance_events polymorphic.Update designs controller, helpers, and views to render multiple project pills, allow adding/removing linked projects, and show a combined hackatime/image/devlog layout. Add redcarpet for Markdown rendering and adjust CSS for dark mode, responsive galleries, and pill controls. Added Devlogs and the prep for adding the shipping flow I added devlogs to the project in prep for the shipping flow
Recent changes Fixed a failure in the CI/CD pipeline commit Implemented status tracking for balance events and refined the underlying thread logic associated with them commit Refactored the token rendering component for render_encoded to allow {{design: design.id}} making a pill, to improve display fidelity and added an edit functionality for devlog entries commit Integrated support for uploading images directly within the devlog interface and established links to corresponding Hackatime projects commit
Recent changes Ship request flow and SVG conversion : Added support for processing ship requests, handling SVG conversions, and validating devlog images before submission 8ca9b5d9 . Nil safety for Hackatime projects : Wrapped the @hackatime_projects variable in an Array structure to prevent nil errors when retrieving project data a29691ff . CI environment and test ordering : Set RAILS_ENV=test for the CI setup process and reordered the sequence of test steps to improve execution reliability 2968d162 . Authorization consolidation : Refactored authorization guards and consolidated the linking logic for Hackatime projects 4c2b1836 .
Recent changes Add comments to devlogs and ship requests Implement polymorphic Comment model with CommentsController, Stimulus-driven collapsing comment box, markdown preview form, and styles. Comments will be rendered by Turbo frames and allow editing by owner/admin. This is what else is included in this change: Encryption of hackclub_access_token and hackclub_refresh_token through ActiveRecord encryption, including config, env sample and migration task for already existing non-encrypted tokens. SSL enforcement in production (assume_ssl, force_ssl). Update filter_parameters to strip out sensitive information and OAuth tokens from logs. Fix ExchangeRate API call to include Bearer authentication header. Sanitization of devlogs HTML output through SafeListSanitizer. Update Design#can_make_devlog to can_make_devlog? method and restrict can_ship? check to devlogs without ship request. Add SRI integrity attribute to marked/DOMPurify scripts loaded from CDNs. UI improvements: styles for disabled buttons, utility class for hover-underline effect, devlog cards layout and info icons.
Recent changes Comment delete, Turbo Comment Box, and ship request fade functionality Add #destroy functionality to the comments with owner permission, path, delete button, and dependent comments. Make use of valid commentable_type/id while building comments and make responses as Turbo streams and wrap up comments within a Turbo frame. Resize the comment box according to the content changes detected by the MutationObserver. Make ship request modal and overlay fade in and out. Consider higher level ship request as blockers for all ship requests. Comment card and comment list styling.
Recent changes Added ship request reviews, resubmission logic, and R2 storage integration for tracking reviewed submissions ( 41b1e43 ). Started on the review workflow Started on Resubmission logic Set up support for cloudflare R2 Guarded Hack Club token persistence behind encryption configuration, ensuring tokens are only stored when encryption is explicitly enabled ( a4b6d0c ).
Made Notifications Useful Recent changes Persistent unread state for unanswered boolean notifications Notifications with unresolved boolean actions (e.g., approvals) now remain marked as unread until explicitly addressed. This ensures users revisit pending decisions. Commit: 39aabb2 . Interactive notification replies with approval time tracking Added support for direct replies to notifications, along with timestamp logging for when approvals are finalized. This enables granular tracking of response times for actionable alerts. Commit: 6ac80f9 .
## Recent changes Notifications: Unanswered notifications now retain their unread status until explicitly addressed. This ensures users can distinguish between pending and resolved interactions without relying on manual state updates ( 751a370 ). Security: Authentication workflows, file uploads, and resource authorization checks have been updated with additional safeguards. Specifics include input validation and access control refinements, though implementation details are not disclosed in the commit message ( 97e48db ).
Recent changes - Installed Bundler 4.0.4 in the Dockerfile to standardize gem management across environments ( 88ba659 ). - Ensured the verification directory exists for SVG upload tests, addressing missing file system setup in test workflows ( 83f2e53 ). - Resolved a Turbo conflict in order steps, likely related to event streaming or frame rendering in Rails views ( e8d08f4 ). Updated navigation unread counts dynamically from notification events, improving real-time feedback for user activity ( a75f6ff ).
Deploying on coolify and fixing bugs with that + encrypting current db
I created the fulfilment system for a fulfilment team to use Recent changes Removed redundant save! calls and updated fulfillment tests to reduce unnecessary database operations and align test logic with current behavior 9acc056 . Added a fulfillment role, batch pipeline, and popup controller to support new workflow automation and UI interactions afa7a20 . The popup controller likely handles transient UI elements like notifications or modals. Fixed a crash in /designs preview rendering by resolving an issue blocking Ruby scan/lint CI, ensuring previews no longer fail unexpectedly ( 911f035 ). Corrected a stray question mark in a design preview image tag to prevent malformed HTML output ( 955dd6c ). Added a note about YSWS draft sponsorship documentation, possibly for tracking external partnerships or funding discussions ( d92d571 ). No performance optimizations or subsystem overhauls were addressed in this cycle. Next steps depend on external feedback and test coverage improvements implied by recent test updates.
Ships:
Shipped!!! There are a bunch of features and stuff that I have added to this since flavortown, from the ordering system to devlogs and ship flow. Project Info This is the ruby on rails app for the ysws draft #issued where YS: Designs made with Code WS: Clothes and other swag with those designs Features added: A bunch of features have been added and I have separated them to 3 categories Major ones for functionality, quality of life for feel and use, security for data security. New Major Features: Designs view now is more detailed including hackatime projects and images from devlogs and ships Ship flow system so you can submit to the ysws Product Design system (admin only - for making the shop items by importing from printful via api) Order system using lots of hotwired turbo (choose color, design placement rotation and scale) Notifications (3 types Normal which provides info and 2 others Boolean which gets a yes or no answer and text which gets a written answer Reviewer Panel which shows pending ships to review with some data on (need to add hackatime info for it though) Storing Reviewer proof videos in a cloudflare R2 storage Quality-Of-Life: Added better UI/UX with some issues with need for ironing out (eg font change from workbench to ‘lexend’ and ‘space mono’ Kept a consistent style through the site, although some panels might need better border colour On login it redirects to the page you logged in by Security: I added User DB encryption to protect user data stored on the postgres database instance, such as name and email Summary Made the functional part of the ysws site (Designs, ordering, shipping) Added more security for user data Improved UI(Font and colour scheme)...
|
1793152180.3656843
|
1793238580.3656843
|
|
38798
|
a game for maxime by @yayabskt | Stardance
|
yayabskt
|
1
|
23.68
|
406
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-09T20:03:24Z", "hours": 23.0, "multiplier": 14.42, "payout": 406, "blessing": "neutral", "text": "i just remake an old game prototype and i make it better at first it was all for a friend brithday then i wanted to improve it !!! i’m proud because it was the first time i make a real game even if it’s not perfect. there one thing that i’m sad for is because i can’t carry on this project because of schools works ect and the problem in my country (france) so i upload all i can do. i hope you will enjoy !!! i put here a part of the github readme before you try playing: “ in the game you play a “maxime” it’s my friend hehehe the input are the arrow key or ZQSD if you have a turet “x” to deploy and click on it to improve if you have a grenade push “a” to throw it if you have a frezze power put “g” to deploy it “ have a good day and enjoy (be kind ) i hope you will apreciate the game <3", "repo": "https://github.com/ysxaybarroso-ux/game-for-a-friend-yaya", "demo": "https://ysxaybarroso-ux.github.io/game-for-a-friend-yaya/aniv%20maxime/static/html/index.html"}]...
|
[{"post_id": 78885, "ts": "202 [{"post_id": 78885, "ts": "2026-10-11T21:21:00Z", "hours": 0.6847, "text": "heyyyy this is the last dev log !!! ============================================================ i post this one because i wasn’t aware i need to go thought a vote for validation and then the vote so since last time i just add the back button for the last menu when you beat the intro and then andle the delete and create a run"}, {"post_id": 78151, "ts": "2026-10-09T19:52:36Z", "hours": 4.8989, "text": "##heyyy dev log 6?? i guess ? : i just work on debuging some problem with the old function that doesn’t take in parameter some of the player new variable for some upgrades and i finish by personnalize the game menu and make gradient slider + button and background of course not everything is in place but it take forms"}, {"post_id": 54480, "ts": "2026-08-25T14:30:06Z", "hours": 6.1694, "text": "dev log # 03 !!!! =============================================== i have finish the cinematic !!! i pass a long long time trying to understand how could i make the caracter by caracter animation and still hanfle me to put pause on the phrase or make the character change speed of talking between word so i finally make list of all the phrase and the word of the dialogue and put the in a list in the list to handle the time!!! ====================================================== btw i also put a redirection to another html page when the animation is finish because i don’t tell it but IT WAS ONLY THE INTRO OF THE GAME hehehehe now it redirect to the menu of the game with the start/new/select/setting/credit button and i already prepare the rest in html but i’m starting the css and js and then i will hide the different menu ================================================ p.s i’m making a quit personal story but all you have to know now is that the main character fall in a world and response bcs people attack him and then he kill a boss that tell i’m he’s free but the main character have to keep fighting ? what does that meen? who know? see next time!!!"}, {"post_id": 43951, "ts": "2026-08-09T12:24:58Z", "hours": 3.4106, "text": "heyyyy it been a long!!! dev log 2!! ========================================================= recently i have been working on the background chaniging depending the enemis to feel it more like a boss!!!! and i also work on adding a neww cinematic in the UNDERTALE style for now it’s quite messy but it will be allright : the cinematic will append when you kill the 2nd boss then you will discover the power of BUILDING THING and then you will have the power to fortify your place and now the game take a top new way now the next step is to make a level menu after this litle intro of 2 boss and a menu to choose level DIFFERENT LEVEL DIFFERENT PLACE TO DEFEND!!! and this will be the same gameplay but with building phase and a litle story !!!!"}, {"post_id": 33814, "ts": "2026-07-24T01:42:56Z", "hours": 8.9861, "text": "first dev log 01 #### today i’m starting this project ##### (in fact i started it a long time ago but i don’t make a project TT) today i’ve had 2 thing 1. ### a funny sound effect in the touret menue 1. if you ran out of money a french ref sound effect apear!2. ### i work on making a new boss 1. (the first one was making impulsion) the second one now shoot bullet##### i take a long time re-organazing the code to implemant the new boss as the function i’ve made wasn’t really optimize or create for future update so i try my best to make it clear**i also encounter a problem as when i try my player was losing hp every time !!!!** i fix it when i understand the function that calculate distance don’t update so the old distance where calculated, i was having negative distance in the terminal while debuging"}]...
|
Title: a game for maxime by @yayabskt | Stardance
Title: a game for maxime by @yayabskt | Stardance
Devlogs:
first dev log 01 #### today i’m starting this project ##### (in fact i started it a long time ago but i don’t make a project TT) today i’ve had 2 thing 1. ### a funny sound effect in the touret menue 1. if you ran out of money a french ref sound effect apear!2. ### i work on making a new boss 1. (the first one was making impulsion) the second one now shoot bullet##### i take a long time re-organazing the code to implemant the new boss as the function i’ve made wasn’t really optimize or create for future update so i try my best to make it clear**i also encounter a problem as when i try my player was losing hp every time !!!!** i fix it when i understand the function that calculate distance don’t update so the old distance where calculated, i was having negative distance in the terminal while debuging
heyyyy it been a long!!! dev log 2!! ========================================================= recently i have been working on the background chaniging depending the enemis to feel it more like a boss!!!! and i also work on adding a neww cinematic in the UNDERTALE style for now it’s quite messy but it will be allright : the cinematic will append when you kill the 2nd boss then you will discover the power of BUILDING THING and then you will have the power to fortify your place and now the game take a top new way now the next step is to make a level menu after this litle intro of 2 boss and a menu to choose level DIFFERENT LEVEL DIFFERENT PLACE TO DEFEND!!! and this will be the same gameplay but with building phase and a litle story !!!!
dev log # 03 !!!! =============================================== i have finish the cinematic !!! i pass a long long time trying to understand how could i make the caracter by caracter animation and still hanfle me to put pause on the phrase or make the character change speed of talking between word so i finally make list of all the phrase and the word of the dialogue and put the in a list in the list to handle the time!!! ====================================================== btw i also put a redirection to another html page when the animation is finish because i don’t tell it but IT WAS ONLY THE INTRO OF THE GAME hehehehe now it redirect to the menu of the game with the start/new/select/setting/credit button and i already prepare the rest in html but i’m starting the css and js and then i will hide the different menu ================================================ p.s i’m making a quit personal story but all you have to know now is that the main character fall in a world and response bcs people attack him and then he kill a boss that tell i’m he’s free but the main character have to keep fighting ? what does that meen? who know? see next time!!!
##heyyy dev log 6?? i guess ? : i just work on debuging some problem with the old function that doesn’t take in parameter some of the player new variable for some upgrades and i finish by personnalize the game menu and make gradient slider + button and background of course not everything is in place but it take forms
heyyyy this is the last dev log !!! ============================================================ i post this one because i wasn’t aware i need to go thought a vote for validation and then the vote so since last time i just add the back button for the last menu when you beat the intro and then andle the delete and create a run
Ships:
i just remake an old game prototype and i make it better at first it was all for a friend brithday then i wanted to improve it !!! i’m proud because it was the first time i make a real game even if it’s not perfect. there one thing that i’m sad for is because i can’t carry on this project because of schools works ect and the problem in my country (france) so i upload all i can do. i hope you will enjoy !!! i put here a part of the github readme before you try playing: “ in the game you play a “maxime” it’s my friend hehehe the input are the arrow key or ZQSD if you have a turet “x” to deploy and click on it to improve if you have a grenade push “a” to throw it if you have a frezze power put “g” to deploy it “ have a good day and enjoy (be kind ) i hope you will apreciate the game <3...
|
1793148494.7042184
|
1793234894.7042184
|
|
67307
|
Suckless chip-8 emu by @nano | Stardance
|
nano
|
1
|
12.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-23T02:18:56Z", "hours": 12.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "A suckless complete CHIP-8 emulator written in C! What is in it? All instructions the original CHIP-8 architecture supported Graphical output to the terminal using (my beloved) ncurses Loading .ch8 roms Error handling with stderr What am I proud of? I am really proud of the optimizations i did for the project after pretty much finishing it. I am also proud of the way i implemented the keyboard (which was really hard) and the way it turned out. I am also proud of the error handling because it helped me level up in my overall knowledge in knowing how to handle errors. How is it built? It’s built in C using ncurses, following the suckless philosophy (optimized and only one source file) and most of the suckless style guide. There is a precompiled binary that was built with GitHub workflows using Ubuntu. The binary can be directly downloaded from the repo’s release page and can be used on (most) glibc-based Linux distros (build is compiled for Ubuntu and ncurses-v6 has to be installed on your system, original project was made with NixOS, which will also work). What I learned I learned how CPU’s operate (fetch, decode, execute), i learned about opcodes and parsing and i learned using bitwise operators effectively. It also taught me the importance of hexadecimal in programming. The project overall brought me closer to CompEng and how CPU’s work on a rudimentary level. It also taught me (as said) how to handle errors better and i think because of trying to make the project as suckless as possible the project also made me an overall better programmer. Known limitations / plans for the future Bugs can occur, even though no error that isn’t being handled by the program itself has been recorded. Still look out for bugs and if any are found write it to me as feedback please. As this project is a full emulator for CHIP-8 there isn’t that much to be done anymore which i am really proud of :) Closing word This project was pretty fun to make and it taught me a bunch. It is also my final project for Stardance which is a bit sad but i don’t/didn’t have enough time to start a new project which is why i will stop with this. Still i loved Stardance and it brought me closer to CE/SE than i would ever think i would get (before hearing of Stardance i wasn’t really fond of coding). To anyone reading this whole thing: Love y’all :)))", "repo": "https://github.com/skibidi-nano/eight-bit-emu", "demo": "https://github.com/skibidi-nano/eight-bit-emu/releases/tag/v.1.0.0"}]...
|
[{"post_id": 78887, "ts": "202 [{"post_id": 78887, "ts": "2026-10-11T21:37:08Z", "hours": 2.3575, "text": "LOG 5: LAST LOG BEFORE SHIP, MADE THE PROJECT MOSTLY SUCKLESS, REWORKED KEYBOARD, ADDED A DIE FUNCTION, ROMS ARE NOW LOADED VIA TERMINAL, ADDED MACROS, ADDED README FEATURES “SUCKLESS” I made the program (i think) as much compliant to the suckless philosophy as i can and did most of (not all of) the stylistic choices mentioned in the suckless style guide. I think making it suckless majorly improved the program KEYBOARD REWORK Because i decided i wanted to make the project basically suckless i have decided that i needed to rework the keyboard functions. I replaced the keyboard struct with long long keyboard[16]. The index is now the key and the value is the value that key_pressed compares against when the instrcutions are called. key_pressed returns (now - keypad[k]) < ACCEPTABLE_DISTANCE which made the logic way smaller and easier to read. I also replaced the ~ 60 lines key switch statement with a single array that has all the characters of the Chip-8 keyboard and compares it using strchr with the input ch and the difference between the return value of strchr and the positon of keyboard[0] is the index which the current time is written into DIE FUNCTION I added a die function that replaces all early exit functions that would kill the entire program. It gets an input string and other parameters (like printf would get) and print it to stderr. It does this by using varargs. If initscr() has been called it also does endwin() and if not it doesnt (a bool is turned to true after initscr() has been called). Because of this read_rom is now void because every error path calls die instead of returning false. fopen also calls strerror if it fails to display WHY fopen has failed TERMINAL INPUT Previously rom names were hardcoded into the program and had to be changed and recompiled if i wanted to change them. Now the program takes in multiple arguments (2 in total, more or less results in an error after which the proper usage is displayed) and the rom (if found) is copied and executed which makes testing multiple programs way easier. MACROS I removed magic number and replaced them with macros to make the code more readable and theoretically modifiable. README I added a README in the repo that explains pretty much everything that you would need to know before using the program"}, {"post_id": 78821, "ts": "2026-10-11T18:06:34Z", "hours": 2.0475, "text": "LOG 4: KEYBOARD IS FINALLY FUNCTIONAL FOR (hopefully) ALL INSTRUCTIONS!!!! (and some bug fixes) After a long battle with the code i finally figured out how to implement the keyboard without the keys only being picked up every once in a while. HOW DID I DO IT? Previously the keyboard was simple a bool array and if i a button was pressed the corresponding part of the keypad array was turned true. The issue with that was that with this simple implementation there had to be one of 2 mandatory pay-offs: Case A would be that the keys would be sticky and never get turned false, Case B would be that they get reset on every iteration of the main loop which is too fast for instructions 0x9E and 0xA1 in certain programs, as they need the value for multiple iterations. Simply holding down the key was actually too slow because of the way holding down a key works on linux which is why i had to do the following implmentation: Step A: Get the current pressed button, turn it to true and save the time the button was pressed Step B: Get the time distance between when the button was pressed and the current time . Loop through the keyboard array and check for keys that are true If a key is true and if the time distance is larger/equal than/to the threshold (50 ms), turn that key false. Following from this if the distance is smaller or equal to the acceptable distance the key stays true and the loop can work with it. BUG FIXES ISSUE WITH INSTRUCTION 0x8xy6 and 0x8xyE Previously 0x8xy6 and 0x8xyE bitshifted chip.v_reg[x] either « 1 or » 1 which i found out was false after rereading the docs because a test code wasnt working properly. The fix was just to implement the correct instruction (chip.v_reg[x] = chip.v_reg[y] « 1 or the same using » 1)"}, {"post_id": 77934, "ts": "2026-10-08T20:43:38Z", "hours": 3.5236, "text": "LOG 3: ROM LOADER, GRAPHICS ENGINE, KEYBOARD, FONTSET, TEST CODE FOREWORD FEATURES I kinda didnt click post on my last devlog which is why this is a combination of two devlogs but ig this has to suffice ROM LOADER I implemented a rom loader that opens and copies roms (.ch8 files) and then executes their instructions when the program runs. The rom reader opens the file with fopen and reads them into memory using fread once. GRAPHICS ENGINE I use my (beloved) ncurses for graphics and a function is called every cycle to print out the graphics on the 64x32 screen using either # for spots where the graphic display is true and ’ ’ for spots where it isnt KEYBOARD The keyboard uses getch that doesnt stop the loop but rather just listens for input and then sets the keyboard value of the pressed button to true FONTSET The fontset is pretty basic (its just an array of the standard chip-8 fontset that gets loaded into the memory array starting from 0x50) TEST CODE Ive written some very basic test code for testing purposes. Current functions are printing to the screen, setting variables and printing when a button is pressed. I coded the code in hex and used hexed.it to convert the hex code into .ch8 files BUG FIXES Luckily there where no major bugs previously in the code (there wasnt that much to be buggy) but obviously there where issues on the way to the current code. Because i dont remember everything i fixed on the way i wont list it in todays devlog (overall i just list bugs if they where in a previious commited/devlogged version)"}, {"post_id": 76247, "ts": "2026-10-02T20:59:24Z", "hours": 3.0142, "text": "LOG 2: KNOWING WHAT TO DO, IMPLEMENTED ALL INSTRUCTIONS WHAT KIND OF CPU AM I BUILDING? I am building a CHIP-8 CPU emulator in C based on the specifications at http://devernay.free.fr/hacks/chip8/C8TECH10.HTM . CURRENT FEATURES Currently i have implemented all of the regular CHIP-8 instructions that are listed on the source website. They are detected by checking for the specific flags and then execute code based on their variables. There are a total amount of 33 instructions available (normally there are 34 for CHIP-8 but one isn’t used in emulators). Currently the CPU cannot take instructions (will be implemented next probably)"}, {"post_id": 75944, "ts": "2026-10-01T17:50:35Z", "hours": 1.1839, "text": "LOG 1: MY OWN CPU EMULATOR IDEA I want to build my own CPU emulator for either a self built or Chip-8 architecture. Im very unsure which direction i want to go right now but i find the idea really interesting which is why i just started doing it. The project will (probably) be written fully in C and i hope that it will be able to run real programs. I hope the project will give me a better insight into how cpus and computers work in general CURRENT FEATURES Currently the CPU can add values to and jump between register and finally terminate itself. The values that are added/subtracted are set before compilation."}]...
|
Title: Suckless chip-8 emu by @nano | Stardance
D Title: Suckless chip-8 emu by @nano | Stardance
Devlogs:
LOG 1: MY OWN CPU EMULATOR IDEA I want to build my own CPU emulator for either a self built or Chip-8 architecture. Im very unsure which direction i want to go right now but i find the idea really interesting which is why i just started doing it. The project will (probably) be written fully in C and i hope that it will be able to run real programs. I hope the project will give me a better insight into how cpus and computers work in general CURRENT FEATURES Currently the CPU can add values to and jump between register and finally terminate itself. The values that are added/subtracted are set before compilation.
LOG 2: KNOWING WHAT TO DO, IMPLEMENTED ALL INSTRUCTIONS WHAT KIND OF CPU AM I BUILDING? I am building a CHIP-8 CPU emulator in C based on the specifications at http://devernay.free.fr/hacks/chip8/C8TECH10.HTM . CURRENT FEATURES Currently i have implemented all of the regular CHIP-8 instructions that are listed on the source website. They are detected by checking for the specific flags and then execute code based on their variables. There are a total amount of 33 instructions available (normally there are 34 for CHIP-8 but one isn’t used in emulators). Currently the CPU cannot take instructions (will be implemented next probably)
LOG 3: ROM LOADER, GRAPHICS ENGINE, KEYBOARD, FONTSET, TEST CODE FOREWORD FEATURES I kinda didnt click post on my last devlog which is why this is a combination of two devlogs but ig this has to suffice ROM LOADER I implemented a rom loader that opens and copies roms (.ch8 files) and then executes their instructions when the program runs. The rom reader opens the file with fopen and reads them into memory using fread once. GRAPHICS ENGINE I use my (beloved) ncurses for graphics and a function is called every cycle to print out the graphics on the 64x32 screen using either # for spots where the graphic display is true and ’ ’ for spots where it isnt KEYBOARD The keyboard uses getch that doesnt stop the loop but rather just listens for input and then sets the keyboard value of the pressed button to true FONTSET The fontset is pretty basic (its just an array of the standard chip-8 fontset that gets loaded into the memory array starting from 0x50) TEST CODE Ive written some very basic test code for testing purposes. Current functions are printing to the screen, setting variables and printing when a button is pressed. I coded the code in hex and used hexed.it to convert the hex code into .ch8 files BUG FIXES Luckily there where no major bugs previously in the code (there wasnt that much to be buggy) but obviously there where issues on the way to the current code. Because i dont remember everything i fixed on the way i wont list it in todays devlog (overall i just list bugs if they where in a previious commited/devlogged version)
LOG 4: KEYBOARD IS FINALLY FUNCTIONAL FOR (hopefully) ALL INSTRUCTIONS!!!! (and some bug fixes) After a long battle with the code i finally figured out how to implement the keyboard without the keys only being picked up every once in a while. HOW DID I DO IT? Previously the keyboard was simple a bool array and if i a button was pressed the corresponding part of the keypad array was turned true. The issue with that was that with this simple implementation there had to be one of 2 mandatory pay-offs: Case A would be that the keys would be sticky and never get turned false, Case B would be that they get reset on every iteration of the main loop which is too fast for instructions 0x9E and 0xA1 in certain programs, as they need the value for multiple iterations. Simply holding down the key was actually too slow because of the way holding down a key works on linux which is why i had to do the following implmentation: Step A: Get the current pressed button, turn it to true and save the time the button was pressed Step B: Get the time distance between when the button was pressed and the current time . Loop through the keyboard array and check for keys that are true If a key is true and if the time distance is larger/equal than/to the threshold (50 ms), turn that key false. Following from this if the distance is smaller or equal to the acceptable distance the key stays true and the loop can work with it. BUG FIXES ISSUE WITH INSTRUCTION 0x8xy6 and 0x8xyE Previously 0x8xy6 and 0x8xyE bitshifted chip.v_reg[x] either « 1 or » 1 which i found out was false after rereading the docs because a test code wasnt working properly. The fix was just to implement the correct instruction (chip.v_reg[x] = chip.v_reg[y] « 1 or the same using » 1)
LOG 5: LAST LOG BEFORE SHIP, MADE THE PROJECT MOSTLY SUCKLESS, REWORKED KEYBOARD, ADDED A DIE FUNCTION, ROMS ARE NOW LOADED VIA TERMINAL, ADDED MACROS, ADDED README FEATURES “SUCKLESS” I made the program (i think) as much compliant to the suckless philosophy as i can and did most of (not all of) the stylistic choices mentioned in the suckless style guide. I think making it suckless majorly improved the program KEYBOARD REWORK Because i decided i wanted to make the project basically suckless i have decided that i needed to rework the keyboard functions. I replaced the keyboard struct with long long keyboard[16]. The index is now the key and the value is the value that key_pressed compares against when the instrcutions are called. key_pressed returns (now - keypad[k]) < ACCEPTABLE_DISTANCE which made the logic way smaller and easier to read. I also replaced the ~ 60 lines key switch statement with a single array that has all the characters of the Chip-8 keyboard and compares it using strchr with the input ch and the difference between the return value of strchr and the positon of keyboard[0] is the index which the current time is written into DIE FUNCTION I added a die function that replaces all early exit functions that would kill the entire program. It gets an input string and other parameters (like printf would get) and print it to stderr. It does this by using varargs. If initscr() has been called it also does endwin() and if not it doesnt (a bool is turned to true after initscr() has been called). Because of this read_rom is now void because every error path calls die instead of returning false. fopen also calls strerror if it fails to display WHY fopen has failed TERMINAL INPUT Previously rom names were hardcoded into the program and had to be changed and recompiled if i wanted to change them. Now the program takes in multiple arguments (2 in total, more or less results in an error after which the proper usage is displayed) and the rom (if found) is copied and executed which makes testing multiple programs way easier. MACROS I removed magic number and replaced them with macros to make the code more readable and theoretically modifiable. README I added a README in the repo that explains pretty much everything that you would need to know before using the program
Ships:
A suckless complete CHIP-8 emulator written in C! What is in it? All instructions the original CHIP-8 architecture supported Graphical output to the terminal using (my beloved) ncurses Loading .ch8 roms Error handling with stderr What am I proud of? I am really proud of the optimizations i did for the project after pretty much finishing it. I am also proud of the way i implemented the keyboard (which was really hard) and the way it turned out. I am also proud of the error handling because it helped me level up in my overall knowledge in knowing how to handle errors. How is it built? It’s built in C using ncurses, following the suckless philosophy (optimized and only one source file) and most of the suckless style guide. There is a precompiled binary that was built with GitHub workflows using Ubuntu. The binary can be directly downloaded from the repo’s release page and can be used on (most) glibc-based Linux distros (build is compiled for Ubuntu and ncurses-v6 has to be installed on your system, original project was made with NixOS, which will also work). What I learned I learned how CPU’s operate (fetch, decode, execute), i learned about opcodes and parsing and i learned using bitwise operators effectively. It also taught me the importance of hexadecimal in programming. The project overall brought me closer to CompEng and how CPU’s work on a rudimentary level. It also taught me (as said) how to handle errors better and i think because of trying to make the project as suckless as possible the project also made me an overall better programmer. Known limitations / plans for the future Bugs can occur, even though no error that isn’t being handled by the program itself has been recorded. Still look out for bugs and if any are found write it to me as feedback please. As this project is a full emulator for CHIP-8 there isn’t that much to be done anymore which i am really proud of :) Closing word This project was pretty fun to make and it taught me a bunch. It is also my final project for Stardance which is a bit sad but i don’t/didn’t have enough time to start a new project which is why i will stop with this. Still i loved Stardance and it brought me closer to CE/SE than i would ever think i would get (before hearing of Stardance i wasn’t really fond of coding). To anyone reading this whole thing: Love y’all :)))...
|
1793109052.5825129
|
1793195452.5825129
|
|
60766
|
mern by @Sukuna | Stardance
|
Sukuna
|
0
|
13.0
|
0
|
[]
|
[{"post_id": 78889, "ts": "202 [{"post_id": 78889, "ts": "2026-10-11T21:47:28Z", "hours": 9.5328, "text": "Complted"}, {"post_id": 65513, "ts": "2026-09-10T18:23:50Z", "hours": 3.4633, "text": "working on the mern learning fullstack development"}]...
|
Title: mern by @Sukuna | Stardance
Devlogs:
worki Title: mern by @Sukuna | Stardance
Devlogs:
working on the mern learning fullstack development
Complted...
|
1793037013.9438648
|
1793641813.9438648
|
|
68902
|
Calculator by @Yare | Stardance
|
Yare
|
1
|
3.0
|
3
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-11T22:45:11Z", "hours": 3.0, "multiplier": 1.12, "payout": 3, "blessing": "neutral", "text": "I made a calculator for the first time using mostly HTML, CSS, and JavaScript. While I do have past experience using HTML and CSS, I am not too familiar with JavaScript so defining the buttons was harder than it should have been.", "repo": "https://github.com/Yare746/Calculator-2", "demo": "https://yare746.github.io/Calculator-2/"}]...
|
[{"post_id": 78892, "ts": "202 [{"post_id": 78892, "ts": "2026-10-11T22:13:51Z", "hours": 1.1822, "text": "After the whole incident last time I tried to redeem myself making a better calculator-like layout for my buttons and defined them . I also made the text that appeared at the top to show itself in a way that it seems as if someone is typing it in, and used the setTimeout to get rid of the letters after 20 seconds giving someone time to read it before it disappears. I at first wanted to make the numbers that appear in the display box or the intro sentences to have the same color animation as the buttons or the border of the display box but ultimately just chose to give it a text-shadow to make both pop out more. I kind of wanted to add a little bit of more interactive affects, but I may just submit it now and wait for feedback."}, {"post_id": 78636, "ts": "2026-10-11T04:25:16Z", "hours": 0.4519, "text": "Soo, I have to admit that there were a few bumps. I thought that I was having trouble syncing the commits from VS Code to the GitHub Platform and spent the majority of my time trying to figure out what was wrong. It turns out that I was looking at the wrong repository for GitHub and everything was working perfectly. While it may say I spent 27 minutes coding, I spent maybe an hour debugging and going back and forth between the two platforms. : I"}, {"post_id": 78255, "ts": "2026-10-10T05:07:04Z", "hours": 1.3086, "text": "This is the very first time I am making a calculator so please stand by. I wanted to make one that wasn’t so bland so I used the @keyframes to make the animation for the borders of the buttons and display box. I still haven’t had the buttons defined yet in JavaScript so I will work on that tomorrow as well as some animation changes to the dialogue that is above the display box of the calculator. I don’t know what else to add to this project , but I will try to brainstorm for anything unique that I can add for now."}]...
|
Title: Calculator by @Yare | Stardance
Devlogs:
T Title: Calculator by @Yare | Stardance
Devlogs:
This is the very first time I am making a calculator so please stand by. I wanted to make one that wasn’t so bland so I used the @keyframes to make the animation for the borders of the buttons and display box. I still haven’t had the buttons defined yet in JavaScript so I will work on that tomorrow as well as some animation changes to the dialogue that is above the display box of the calculator. I don’t know what else to add to this project , but I will try to brainstorm for anything unique that I can add for now.
Soo, I have to admit that there were a few bumps. I thought that I was having trouble syncing the commits from VS Code to the GitHub Platform and spent the majority of my time trying to figure out what was wrong. It turns out that I was looking at the wrong repository for GitHub and everything was working perfectly. While it may say I spent 27 minutes coding, I spent maybe an hour debugging and going back and forth between the two platforms. : I
After the whole incident last time I tried to redeem myself making a better calculator-like layout for my buttons and defined them . I also made the text that appeared at the top to show itself in a way that it seems as if someone is typing it in, and used the setTimeout to get rid of the letters after 20 seconds giving someone time to read it before it disappears. I at first wanted to make the numbers that appear in the display box or the intro sentences to have the same color animation as the buttons or the border of the display box but ultimately just chose to give it a text-shadow to make both pop out more. I kind of wanted to add a little bit of more interactive affects, but I may just submit it now and wait for feedback.
Ships:
I made a calculator for the first time using mostly HTML, CSS, and JavaScript. While I do have past experience using HTML and CSS, I am not too familiar with JavaScript so defining the buttons was harder than it should have been....
|
1793062367.276519
|
1793148767.276519
|
|
68113
|
CompatPy by @Oluxid | Stardance
|
Oluxid
|
0
|
16.08
|
0
|
[]
|
[{"post_id": 78898, "ts": "202 [{"post_id": 78898, "ts": "2026-10-11T23:04:28Z", "hours": 6.0397, "text": "bro… its too much to list but i released 26.10.3 by now… you can look at CHANGELOG.md"}, {"post_id": 77970, "ts": "2026-10-09T01:57:10Z", "hours": 2.8636, "text": "its 4am… i have been coding for a while now… my brain is fryed… i fixed 3 problems on my roadmap… and we just hit the 1K lines of code on lib.rs🥳🥳"}, {"post_id": 77928, "ts": "2026-10-08T20:15:10Z", "hours": 0.3858, "text": "CompatPy FIRST RELEASE!! i just released the first version of CompatPy. its available as a crate on crates.io and as a standalone Windows binary. for later versions i will make an .msi installer for windows so you will just be able to run “compatpy {project path}” instead of the headless binary but for now we gotta do it like this… ANYWAY YAAAYY🥳🥳"}, {"post_id": 77772, "ts": "2026-10-08T07:18:33Z", "hours": 4.4372, "text": "devlog #3 – we’re actually checking compatibility now CompatPy is starting to become an actual compatibility checker it can now scan a project, find its dependencies, look them up on PyPI , select the mathing package release, check its python requirements and then calculate which python versions work for the dependencies so instead of just pasting package versions and quitting it now actually pastes the compatible python versions over all packages like shown in the screenshot even though im on track there’s still plenty to build before this becomes a proper finished tool, but the core compatibility pipeline is now working"}, {"post_id": 77563, "ts": "2026-10-07T14:22:59Z", "hours": 1.2072, "text": "devlog#2 – version and installed state i just added the versions to detection so we can start working on PyPi compatibility checks"}, {"post_id": 77060, "ts": "2026-10-05T15:03:47Z", "hours": 1.1506, "text": "i made an basic dependency detection, i will still need to make version and compatibility stuff"}]...
|
Title: CompatPy by @Oluxid | Stardance
Devlogs:
i Title: CompatPy by @Oluxid | Stardance
Devlogs:
i made an basic dependency detection, i will still need to make version and compatibility stuff
devlog#2 – version and installed state i just added the versions to detection so we can start working on PyPi compatibility checks
devlog #3 – we’re actually checking compatibility now CompatPy is starting to become an actual compatibility checker it can now scan a project, find its dependencies, look them up on PyPI , select the mathing package release, check its python requirements and then calculate which python versions work for the dependencies so instead of just pasting package versions and quitting it now actually pastes the compatible python versions over all packages like shown in the screenshot even though im on track there’s still plenty to build before this becomes a proper finished tool, but the core compatibility pipeline is now working
CompatPy FIRST RELEASE!! i just released the first version of CompatPy. its available as a crate on crates.io and as a standalone Windows binary. for later versions i will make an .msi installer for windows so you will just be able to run “compatpy {project path}” instead of the headless binary but for now we gotta do it like this… ANYWAY YAAAYY🥳🥳
its 4am… i have been coding for a while now… my brain is fryed… i fixed 3 problems on my roadmap… and we just hit the 1K lines of code on lib.rs🥳🥳
bro… its too much to list but i released 26.10.3 by now… you can look at CHANGELOG.md...
|
1793116481.7804787
|
1793721281.7804787
|
|
69236
|
Student Intelligence by @defnotafunction | Stardan Student Intelligence by @defnotafunction | Stardance...
|
defnotafunction
|
0
|
0.59
|
0
|
[]
|
[{"post_id": 78900, "ts": "202 [{"post_id": 78900, "ts": "2026-10-11T23:21:28Z", "hours": 0.5908, "text": "Created a file dedicated to my app’s functionality related to ML."}]...
|
Title: Student Intelligence by @defnotafunction | Title: Student Intelligence by @defnotafunction | Stardance
Devlogs:
Created a file dedicated to my app’s functionality related to ML....
|
1793130792.6803868
|
1793735592.6803868
|
|
7225
|
Universe Data Booklet by @S_U_Wasi | Stardance
|
S_U_Wasi
|
2
|
26.88
|
216
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-08-16T19:37:05Z", "hours": 7.0, "multiplier": 9.05, "payout": 62, "blessing": "neutral", "text": "What I have built is known as Universe Data Booklet. As it’s name suggest it is a website which contains data on exoplanets and near earth asteroids. Previously it contains only data and analysis. But currently (After recent updates) there are many more features. To know about all the features please read my devlog or directly visit the website. While shipping this right now, I currently have many new ideas to add in this and I will definitely add those in future (Means coming soon). I cannot make Universe Data Booklet in one day or a week. I need time to create it. My vision regarding this project is very wide. I want that my project will help both learners and curious minds. During the development of this project I got into a problem. For latest near earth asteroids, I must have to use API. But I cannot put API on a completely open source project. That is why I have used public API. But public api has data fetch limits. Since the project is in it’s early state, not many users will visit. but I was thinking about future. That is why I came up with an idea, where I will use the Public API but it will never hit the limit (The smart caching). In my new development structure, the site will fetch data only once in 30 days (Data is fetched on the first visit after 30 days). Then that data is saved as cache and all other users get data from that one cache. By doing this data is fetched only once even if thousands of users visit at once. This solves the rate limit. but I need the latest data (at least 30 days). That is why the site fetch data once after 30 day. The program check the cache folder and if the data there is older than 30 days then the site fetches new data on the first visit and saves it. Now another storage problem arise. To solve that my site was programmed in such a way that it will store cache for 90 days and any cache data with are older than 90 days will be deleted. Thus I have solved the issue regarding the near Earth asteroids. I uses public api for near earth asteroids (Because asteroids data get change quickly). I uses csv file for exoplanets data (It is a manually saved data from authentic source) Thank You for giving Universe Data Booklet a try.", "repo": "https://github.com/MDSUWasi/Universe-Data-Booklet", "demo": "https://wasi100.pythonanywhere.com/"}, {"ship_num": 2, "ts": "2026-06-20T18:56:29Z", "hours": 11.0, "multiplier": 13.38, "payout": 154, "blessing": "neutral", "text": "Here is my Universe Data Booklet. As the mane suggest, this is a site which contains data about exoplanets and asteroids. Asteroids: Here I have used real asteroids data (Which is obtained through API ). Currently it contains data about asteroid which is near to our planet (Earth) Exoplanets: Exoplanets data is added manually inside the source code. So, exoplanets data can be viewed without any need of API. I have used API in asteroids but not in exoplanets because asteroids moves and changes around the Earth. And I want to work on current data. But exoplantes doesn’t change for a long time. So, there is no need of live API for that. There is a chart view in my site which shows the chat comparison between exoplanets/ asteroids mass. I have used public free API (I know about the limitations). I have solved that problem too. My site will only fetch data once in 30 days and saved it in cache. And through out the month the site will use that cache data. And again gives an API call after 31 days. Means, there will be only API call but many users can use my site. This also brings storage issue in my site. I have also fixed that. The cache data which are older than 90 days will be automatically removed. That’s all for now. I am also thinking for future update in this site too. Thank You.", "repo": "https://github.com/MDSUWasi/Universe-Data-Booklet", "demo": "https://wasi100.pythonanywhere.com/"}]...
|
[{"post_id": 78904, "ts": "202 [{"post_id": 78904, "ts": "2026-10-12T00:13:01Z", "hours": 1.5658, "text": "Another night-day another Problem . Yesterday I went to the source code to add a new theme and structure in Universe Data Booklet. Then I saw a bug in by server.py (backend). But I thought that I will just fix it after working on the theme. Then I worked on theme. Then during test time, I saw something scary (I will not tell what was that). Then I started fixing the theme, that caused bugs of js and css and them what! I never thought this would cause this much trouble. After some time, There was multiple tabs and tasks running into my PC (And which goes heavy on RAM). And What after My Virtual Development Environment got crashed and corrupt. And from night 11 AM to still now (6 AM) I am still fixing my environment otherwise all of my effort will be gone (I will lost my entire new source code)."}, {"post_id": 77832, "ts": "2026-10-08T13:27:04Z", "hours": 1.4394, "text": "New member I am glade to welcome Solar System as the new member on Universe Data Booklet . New Update! Now Universe Data Booklet have data on Planets, Exoplanets, Asteroids and Satellites (Including the artificial one). Now Universe Data Booklet can show image. But this feature is limited. I am thinking to thinking to increase (Just thinking for now) The above listed updates are just announcement for now. I haven’t released them yet, but going to in next few days. Since I took help from AI, I need to edit, debug and make some changes including reviewing and reviewing the code before releasing. Thank You"}, {"post_id": 77090, "ts": "2026-10-05T16:53:14Z", "hours": 0.9247, "text": "Upcoming Update Announcement In the next update there are huge changes coming. Some of them are shown below. A detailed description on exoplanets and asteroids: Now users can see a very detailed graphical data. This is because I have increased the number of data source. I have decreased the data fetch limit from 30 days to 7 days. So, starting from next release, all data provided in Universe Data Booklet will be re-new on the very first visit of each week unless there any issue pop up. Next work will be on Images for exoplanets and asteroids. This might be a tricky part because there are a lots of data and images for every data might be a problem. Let me check first. This is a new implementation idea I just thought. I will add this feature if I can successfully manage to find a way to add real images without disturbing the functionality and smoothness. All the thing I have mentioned above (except point 3) have been already implemented. I just have to review the source code twice again before release. Point 3 is on the way of implementation but not confirmed whether be released or not. If everything goes will. I will release this After my Exam is over. Thank You"}, {"post_id": 65478, "ts": "2026-09-10T17:09:51Z", "hours": 2.3808, "text": "Update Universe Data Booklet got a new update. And the updated version is currently online . On the previous version there are some typing errors and inconsistencies in the code, page and README. That is why I have revised and fix those. Now, I think user can relate the main page with the README. For new features. There 2 new features currently online. One is a game and another is a assistant. But both of those feature needs huge update soon. Currently I the game is 2D and Have no visual. The assistant currently cannot understand natural language. In the recent version the assistant can only answer if the name of asteroid or exoplanet available in the data are written as it is. And Currently I have no intention on adding LLM in it. My Future Plan for Universe Data Booklet I will design the assistant such a way that it will catch keywords on prompt and answer based on those keyword. The current Habitability Scanner is just like normal search and it doesn’t show much data on habitability (But it wasn’t made for that). I am thinking to work on this and will try to add more data. Since it is data booklet type. I think the current version have too much basic data. That is why I am thinking to add more data source and combine everything together. I am also thinking about a Wiki for Universe Data Booklet. After all those work. I think I will take some break from backend and frontend coding and work on Graphics (For game part, and icon). I also want to change it from 2D to 3D. Some new or updated idea may spark during the work on above. So, everything is changeable."}, {"post_id": 59722, "ts": "2026-09-01T17:22:43Z", "hours": 2.5711, "text": "I think I am going to ship Universe Data Booklet 3rd Time. Universe Data Booklet (UDB) is now on version 10.0.0.0.0 (It is also the second ship). From the first day of to now, UDB has improved a lot. Initially it was suppose to only display raw data in a graphical window. But as time passed new idea came to my mind and I add those in it. Currently UDB has many feature and I am going to add some more and make my 3rd ship of UDB before 30 September (Because I want to release it during ongoing Stardance). Overview on upcomming new updates: Changes on existing features. A universe explore game A Chat Bot (Used as alternative of search feature). Currently I am working on above 3. I may also add some more new feature if any new idea arrive."}, {"post_id": 44164, "ts": "2026-08-09T18:55:38Z", "hours": 0.9736, "text": "Today. I am going (I already have deployed. Go and check out if you want) to deploy the version 10.0.0.0.0 of Universe Data Booklet on Web and The first stable release. Currently Universe Data Booklet Have 3D Solar System Near Earth Asteroid View 3D Galactic exoplanet view 3D Map view Graph analysis (Difference of mass in bar diagram) Quiz Mode Flash Cards Guess Mode Research Mode I have updated the data row (Currently those are click-able) 4 different theme in 2 different structure. For more info see the README in the source code"}, {"post_id": 42726, "ts": "2026-08-07T16:20:15Z", "hours": 2.8481, "text": "Some new changes: Now, 3D vies have 2 different modes for exoplanets (A galaxy like simulation) and Asteroids (The solar system type simulation. Solar system because all data on asteroids are present for near Earth asteroids). Now, Universe Data Booklet have study (Flashcards, Quiz, Compare etc.) and research section (Specific details key point study). There are more updates. To see all of them and Try please wait until 10 August (I will deploy the site and Update it that day.). But the source is available in the repository. Those who are interested can give it a try directly from source code (But the source code is in early state and un-stable. So, I can not guarantee anything )."}, {"post_id": 41796, "ts": "2026-08-06T06:41:55Z", "hours": 1.5689, "text": "New Announcement: According to previous reviews and my own updates I have upgraded the Universe Data Booklet. New updates include: Now, users can download the data in good formate as PDF. There is new 3D view included. A new map included to get a visual map for both asteroids and exoplanets. A little bit change to chart view. Now, user can see the charts, 3D view and Map as a pop up (This was a issue in previous ship, and thanks to the reviews that I can fix them) Now the data row is click-able for selective view. There is a search bar for searching the exact asteroid and exoplanet by name The good thing is, user do not have to remember the full name for asteroids and exoplanets, only a partial correct name is enough New Features are currently written and available in the GitHub repository. I haven’t deployed those yet. Because I have some checking left (Including security and deployment issues). That is why the current site is not updated yet. I will deploy and release the update on 10 August 2026."}, {"post_id": 35261, "ts": "2026-07-26T15:46:56Z", "hours": 1.4956, "text": "I have upgraded the CSS, some of HTML (To introduce Hamburger) and some of JS. Initially I thought to give it a color matching with my portfolio, but that color doesn’t look good on it. That is why I used the current one (I have seen several other sites on this same color and I liked this)."}, {"post_id": 12689, "ts": "2026-06-20T18:44:22Z", "hours": 0.7319, "text": "I have added data about exoplanets (saved locally) and asteroids (data achieved using API). Additional to those, there is a graph view for asteroids and exoplanets, where, along x-axis there is exoplanets/ asteroids name and along y-axis there is the mass."}, {"post_id": 12400, "ts": "2026-06-20T07:20:52Z", "hours": 2.1811, "text": "Interface of my data booklet is ready."}, {"post_id": 5442, "ts": "2026-06-09T06:41:44Z", "hours": 4.4633, "text": "Previously I was thinking about making a universe data booklet with 20% universe data. But now I am thinking about increasing that limit."}, {"post_id": 3397, "ts": "2026-06-06T09:45:13Z", "hours": 4.1061, "text": "I am developing a universe Data Booklet for our Galaxy (up to a certain limit)"}]...
|
Title: Universe Data Booklet by @S_U_Wasi | Starda Title: Universe Data Booklet by @S_U_Wasi | Stardance
Devlogs:
I am developing a universe Data Booklet for our Galaxy (up to a certain limit)
Previously I was thinking about making a universe data booklet with 20% universe data. But now I am thinking about increasing that limit.
Interface of my data booklet is ready.
I have added data about exoplanets (saved locally) and asteroids (data achieved using API). Additional to those, there is a graph view for asteroids and exoplanets, where, along x-axis there is exoplanets/ asteroids name and along y-axis there is the mass.
I have upgraded the CSS, some of HTML (To introduce Hamburger) and some of JS. Initially I thought to give it a color matching with my portfolio, but that color doesn’t look good on it. That is why I used the current one (I have seen several other sites on this same color and I liked this).
New Announcement: According to previous reviews and my own updates I have upgraded the Universe Data Booklet. New updates include: Now, users can download the data in good formate as PDF. There is new 3D view included. A new map included to get a visual map for both asteroids and exoplanets. A little bit change to chart view. Now, user can see the charts, 3D view and Map as a pop up (This was a issue in previous ship, and thanks to the reviews that I can fix them) Now the data row is click-able for selective view. There is a search bar for searching the exact asteroid and exoplanet by name The good thing is, user do not have to remember the full name for asteroids and exoplanets, only a partial correct name is enough New Features are currently written and available in the GitHub repository. I haven’t deployed those yet. Because I have some checking left (Including security and deployment issues). That is why the current site is not updated yet. I will deploy and release the update on 10 August 2026.
Some new changes: Now, 3D vies have 2 different modes for exoplanets (A galaxy like simulation) and Asteroids (The solar system type simulation. Solar system because all data on asteroids are present for near Earth asteroids). Now, Universe Data Booklet have study (Flashcards, Quiz, Compare etc.) and research section (Specific details key point study). There are more updates. To see all of them and Try please wait until 10 August (I will deploy the site and Update it that day.). But the source is available in the repository. Those who are interested can give it a try directly from source code (But the source code is in early state and un-stable. So, I can not guarantee anything ).
Today. I am going (I already have deployed. Go and check out if you want) to deploy the version 10.0.0.0.0 of Universe Data Booklet on Web and The first stable release. Currently Universe Data Booklet Have 3D Solar System Near Earth Asteroid View 3D Galactic exoplanet view 3D Map view Graph analysis (Difference of mass in bar diagram) Quiz Mode Flash Cards Guess Mode Research Mode I have updated the data row (Currently those are click-able) 4 different theme in 2 different structure. For more info see the README in the source code
I think I am going to ship Universe Data Booklet 3rd Time. Universe Data Booklet (UDB) is now on version 10.0.0.0.0 (It is also the second ship). From the first day of to now, UDB has improved a lot. Initially it was suppose to only display raw data in a graphical window. But as time passed new idea came to my mind and I add those in it. Currently UDB has many feature and I am going to add some more and make my 3rd ship of UDB before 30 September (Because I want to release it during ongoing Stardance). Overview on upcomming new updates: Changes on existing features. A universe explore game A Chat Bot (Used as alternative of search feature). Currently I am working on above 3. I may also add some more new feature if any new idea arrive.
Update Universe Data Booklet got a new update. And the updated version is currently online . On the previous version there are some typing errors and inconsistencies in the code, page and README. That is why I have revised and fix those. Now, I think user can relate the main page with the README. For new features. There 2 new features currently online. One is a game and another is a assistant. But both of those feature needs huge update soon. Currently I the game is 2D and Have no visual. The assistant currently cannot understand natural language. In the recent version the assistant can only answer if the name of asteroid or exoplanet available in the data are written as it is. And Currently I have no intention on adding LLM in it. My Future Plan for Universe Data Booklet I will design the assistant such a way that it will catch keywords on prompt and answer based on those keyword. The current Habitability Scanner is just like normal search and it doesn’t show much data on habitability (But it wasn’t made for that). I am thinking to work on this and will try to add more data. Since it is data booklet type. I think the current version have too much basic data. That is why I am thinking to add more data source and combine everything together. I am also thinking about a Wiki for Universe Data Booklet. After all those work. I think I will take some break from backend and frontend coding and work on Graphics (For game part, and icon). I also want to change it from 2D to 3D. Some new or updated idea may spark during the work on above. So, everything is changeable.
Upcoming Update Announcement In the next update there are huge changes coming. Some of them are shown below. A detailed description on exoplanets and asteroids: Now users can see a very detailed graphical data. This is because I have increased the number of data source. I have decreased the data fetch limit from 30 days to 7 days. So, starting from next release, all data provided in Universe Data Booklet will be re-new on the very first visit of each week unless there any issue pop up. Next work will be on Images for exoplanets and asteroids. This might be a tricky part because there are a lots of data and images for every data might be a problem. Let me check first. This is a new implementation idea I just thought. I will add this feature if I can successfully manage to find a way to add real images without disturbing the functionality and smoothness. All the thing I have mentioned above (except point 3) have been already implemented. I just have to review the source code twice again before release. Point 3 is on the way of implementation but not confirmed whether be released or not. If everything goes will. I will release this After my Exam is over. Thank You
New member I am glade to welcome Solar System as the new member on Universe Data Booklet . New Update! Now Universe Data Booklet have data on Planets, Exoplanets, Asteroids and Satellites (Including the artificial one). Now Universe Data Booklet can show image. But this feature is limited. I am thinking to thinking to increase (Just thinking for now) The above listed updates are just announcement for now. I haven’t released them yet, but going to in next few days. Since I took help from AI, I need to edit, debug and make some changes including reviewing and reviewing the code before releasing. Thank You
Another night-day another Problem . Yesterday I went to the source code to add a new theme and structure in Universe Data Booklet. Then I saw a bug in by server.py (backend). But I thought that I will just fix it after working on the theme. Then I worked on theme. Then during test time, I saw something scary (I will not tell what was that). Then I started fixing the theme, that caused bugs of js and css and them what! I never thought this would cause this much trouble. After some time, There was multiple tabs and tasks running into my PC (And which goes heavy on RAM). And What after My Virtual Development Environment got crashed and corrupt. And from night 11 AM to still now (6 AM) I am still fixing my environment otherwise all of my effort will be gone (I will lost my entire new source code).
Ships:
Here is my Universe Data Booklet. As the mane suggest, this is a site which contains data about exoplanets and asteroids. Asteroids: Here I have used real asteroids data (Which is obtained through API ). Currently it contains data about asteroid which is near to our planet (Earth) Exoplanets: Exoplanets data is added manually inside the source code. So, exoplanets data can be viewed without any need of API. I have used API in asteroids but not in exoplanets because asteroids moves and changes around the Earth. And I want to work on current data. But exoplantes doesn’t change for a long time. So, there is no need of live API for that. There is a chart view in my site which shows the chat comparison between exoplanets/ asteroids mass. I have used public free API (I know about the limitations). I have solved that problem too. My site will only fetch data once in 30 days and saved it in cache. And through out the month the site will use that cache data. And again gives an API call after 31 days. Means, there will be only API call but many users can use my site. This also brings storage issue in my site. I have also fixed that. The cache data which are older than 90 days will be automatically removed. That’s all for now. I am also thinking for future update in this site too. Thank You.
What I have built is known as Universe Data Booklet. As it’s name suggest it is a website which contains data on exoplanets and near earth asteroids. Previously it contains only data and analysis. But currently (After recent updates) there are many more features. To know about all the features please read my devlog or directly visit the website. While shipping this right now, I currently have many new ideas to add in this and I will definitely add those in future (Means coming soon). I cannot make Universe Data Booklet in one day or a week. I need time to create it. My vision regarding this project is very wide. I want that my project will help both learners and curious minds. During the development of this project I got into a problem. For latest near earth asteroids, I must have to use API. But I cannot put API on a completely open source project. That is why I have used public API. But public api has data fetch limits. Since the project is in it’s early state, not many users will visit. but I was thinking about future. That is why I came up with an idea, where I will use the Public API but it will never hit the limit (The smart caching). In my new development structure, the site will fetch data only once in 30 days (Data is fetched on the first visit after 30 days). Then that data is saved as cache and all other users get data from that one cache. By doing this data is fetched only once even if thousands of users visit at once. This solves the rate limit. but I need the latest data (at least 30 days). That is why the site fetch data once after 30 day. The program check the cache folder and if the data there is older than 30 days then the site fetches new data on the first visit and saves it. Now another storage problem arise. To solve that my site was programmed in such a way that it will store cache for 90 days and any cache data with are older than 90 days will be deleted. Thus I have solved the issue regarding the near Earth asteroids. I uses public api for near earth asteroids (Because asteroids data get change quickly). I uses csv file for exoplanets data (It is a manually saved data from authentic source) Thank You for giving Universe Data Booklet a try....
|
1793141540.050979
|
1793227940.050979
|
|
4192
|
Artemis Hub by @PolarisSpace | Stardance
|
PolarisSpace
|
2
|
26.71
|
220
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-20T05:49:39Z", "hours": 7.0, "multiplier": 11.2, "payout": 78, "blessing": "neutral", "text": "This is my final ship for this project, I would encourage you to read my last shipment as I go in more detail of what the project is about. Basically, I built a central website hub that provides information on the Artemis Program. You can find certain information on my website within a few clicks what takes 4-8 clicks on the NASA website. Between the first ship to this one, I’ve mainly just been implementing some feedback I got from the first ship such as adding more text information in case someone doesn’t want to watch the videos, and adding random facts about the astronauts. I added dropdowns which display text which you can click to show, I made them drop down just to save space in the screen if it’s not being used. What took me a bit of time though was adding a script that would provide random information about each Artemis mission every time the page is loaded. That part took a little bit because I was running into an issue where facts for Artemis II would show but not Artemis III, it all had to do with text above overriding the text below. I just resolved this issue by adding the Arrays to the individual HTML files as they just shared the main.js file before.", "repo": "https://github.com/PolarisSpaceDev/ArtemisHub.github.io", "demo": "https://ursa-minor-studios.github.io/ArtemisHub.github.io/"}, {"ship_num": 2, "ts": "2026-07-12T02:00:28Z", "hours": 18.0, "multiplier": 7.99, "payout": 142, "blessing": "neutral", "text": "My project is called Artemis Hub, a static website that provides centralized information about the Artemis Program while showing our progress in building a moon base. It prevents people from navigating to multiple YouTube videos or the entire NASA site (I Frequently have to make multiple clicks to navigate that massive site), and just provides all that information on one page. Even to read information about Artemis II on the NASA site, you still have to view more than one page. So that’s the problem this project solves. To me the most challenging part of it was UI design, that’s what I spent most of my time on. I’m not very good at UI design, so this project allowed me to experiment with UI and I’m getting an idea of what works, doesn’t or what could be done better which will help me in future projects. I’ve also learned how to create a JavaScript countdown timer. For those testing the project, I am still working on responsive design, the site is navigable on mobile devices, but it’s a work in progress. This isn’t the final site, I still have more to do, but I’m doing a in-progress shipment. One thing I am proud of is getting the JavaScript countdown working, and the horizontal carousels made. I was too lazy to figure out how to make a carousel in JavaScript so I just used CSS to position each card and style the trackbar. I wasn’t sure if it was going to work, but it did.", "repo": "https://github.com/PolarisSpaceDev/ArtemisHub.github.io", "demo": "https://ursa-minor-studios.github.io/ArtemisHub.github.io/"}]...
|
[{"post_id": 78906, "ts": "202 [{"post_id": 78906, "ts": "2026-10-12T00:16:04Z", "hours": 1.7078, "text": "Made some progress on my Artemis website! Below is the changelog, but the highlight I have to share is the addition of a “Blogs” page that organizes blogs into rows. These blogs will be more detailed Artemis Updates. It’s the first blog structure I’ve done, so wanted to try it out. I also moved the left navigation bubble content to a bottom navigation bar. Removed Removed the bubble navbar on left side (Got moved to newely added bottom navbar) Added Bottom navigation bar Blog Page First Artemis Blog I would encourage you to look around the repository because I made some additions to it. I added badges at the top of the README file to neatly display some information about the website such as its version, programming languages, etc. Also added a CHANGELOG.md file so you can read every single change I’ve made to this website and read any future updates that are released. Created a Discussions tab at Top menu bar > Discussions so I can make announcements and updates about this project."}, {"post_id": 51420, "ts": "2026-08-21T03:36:32Z", "hours": 1.2047, "text": "Completed Artemis II page Completed the Artemis II page where I explained the flight profile, preparations, and its full flight timeline."}, {"post_id": 50781, "ts": "2026-08-20T04:49:37Z", "hours": 0.71, "text": "Artemis II Page Update! Devlog Formatting This is the first devlog that’s formatted nicely, I’ve been writing them on my phone and for some reason it doesn’t format there at all just displays as a large paragraph. But I’m writing this one on a computer allowing me to format paragraphs and headings. Artemis II page I’ve been working on the Artemis II page, I’m not quite finished but got the history of it and the preperations which explains the stacking timeline and the heatshield issue. Artemis I Timeline I added a timeline to the Artemis I page which you can see in the demo link. It shows major events that happened from stacking to reentry. Another thing I did was update the status of Artemis III below that countdown banner."}, {"post_id": 50607, "ts": "2026-08-19T20:21:50Z", "hours": 5.0447, "text": "Hello It’s been a little while since my last devlog but I plan to make them more frequently. This is my first log sincemy first shipment and Ive been spending thelasst 5 hours trying to implement the feedback I got. 1. Someone said it would be nice to see some facts about the astronauts, so I did something like that. I made an array that displays a random fact about the missions every time the page loads. This one took me a while to do because I was running into an issue where the Artemis I facts would display but not the subsequent ones. I went onto Stack Overflow and problem is resolved. 2. Someone said it would be nice to read texts about the missions rather thaan rely on videos because some people have different preferences for how they learn information. So what I did is created a series of dropdowns on the very bottom that tells you information aout the mission. I chose a dropdown format so they dont take up as much space on the page if its not being read."}, {"post_id": 26960, "ts": "2026-07-12T01:48:18Z", "hours": 1.1619, "text": "During this time, I have embedded two NASA simulations into the website for visualization. You can fine them by going to the Artemis II page and going to the moon base page under “Explore”. I also embedded some YouTube videos to #1 let people understand the idea of the Artemis Program and CLPS who aren’t familiar, and #2 you don’t have to search for multiple YouTube videos potentially on different channels. They all are here. And honestly, when you’re navigating a website, it’s more convenient to watch an embedded video than navigate to YouTube. The last thing I worked on a little bit was making the moon base section more mobile responsive. Still looks a little off, but better than it was before."}, {"post_id": 26647, "ts": "2026-07-11T16:13:29Z", "hours": 4.8525, "text": "Quite afew things have been added since my first devlog. So far I’ve worked a little bit on responsive design to make it more viewable on mobile. I also created a little bubble menu which allows you to transition between Hubs. I created a moon basepage which will provide centralized infirmation on our moon base plans specifically. I’m currently inn the process of implementing some of the simulations NASA created within my website through embedding."}, {"post_id": 17701, "ts": "2026-06-28T16:49:08Z", "hours": 6.7403, "text": "I did quite a few things during this 6 hours. First off, I moved the countdown to the top, andit sticks to the top. Secondly, I added a timeline to visually see each launch. The timeline I used is called JSTimrline which ises a spreadsheet you can embed to add a timeline. They also leave the option for you to create a JSON file ehich gives you more styling options. But I didn’t opt into that. Last thing, I’m leaarning how to use api’s. What you can see in the console is the bio for Cristina Koch provided by Launch Library II. I plan to create a bio for eaach of these astronauts only using the api, if the contents of the api change the web page should change automatically. Although I’m limited to 15 requests per hour which is annoying."}, {"post_id": 6291, "ts": "2026-06-10T16:00:06Z", "hours": 2.4675, "text": "I figured out how to make a countdown timer with JavaScript. This will count down the time left until the next Artemis launch. I also included a little tour of the website in the video. In the video I wait fir about 20 seconds to see that number hit 0. You can skip about 20 seconds if you don’t want to wait for that. Then the bottom of the countdown I will input the status of the Artemis mission. I don’t spend a whole lot of time with JavaScript which is why it took me 2 hours to do. Most of my time was figuring out the milliseconds to years, months, days, etc. I wanted it to show 2 days and 4 hours instead of something like 4000 hours. Another thing included in the video is a tour of some of my code. Let me know if you have any feedback."}, {"post_id": 4664, "ts": "2026-06-08T02:08:01Z", "hours": 2.5367, "text": "I’m creating a website that will provide centralized information about the Artemis Program. Demo is linked in the project for you to try out. I still need to make the website more responsive. What I did today was make the landing page for this website. This so far will include Artemis livestreams, videos, and information on specific missions. Deploying this on Github was a big pain because I needed to restructure the entire website directory, so GitHub could find my index.html file, stylesheet, and images. Let me know if you have any feedback, I’m probably going to make the carousels smaller."}]...
|
Title: Artemis Hub by @PolarisSpace | Stardance
D Title: Artemis Hub by @PolarisSpace | Stardance
Devlogs:
I’m creating a website that will provide centralized information about the Artemis Program. Demo is linked in the project for you to try out. I still need to make the website more responsive. What I did today was make the landing page for this website. This so far will include Artemis livestreams, videos, and information on specific missions. Deploying this on Github was a big pain because I needed to restructure the entire website directory, so GitHub could find my index.html file, stylesheet, and images. Let me know if you have any feedback, I’m probably going to make the carousels smaller.
I figured out how to make a countdown timer with JavaScript. This will count down the time left until the next Artemis launch. I also included a little tour of the website in the video. In the video I wait fir about 20 seconds to see that number hit 0. You can skip about 20 seconds if you don’t want to wait for that. Then the bottom of the countdown I will input the status of the Artemis mission. I don’t spend a whole lot of time with JavaScript which is why it took me 2 hours to do. Most of my time was figuring out the milliseconds to years, months, days, etc. I wanted it to show 2 days and 4 hours instead of something like 4000 hours. Another thing included in the video is a tour of some of my code. Let me know if you have any feedback.
I did quite a few things during this 6 hours. First off, I moved the countdown to the top, andit sticks to the top. Secondly, I added a timeline to visually see each launch. The timeline I used is called JSTimrline which ises a spreadsheet you can embed to add a timeline. They also leave the option for you to create a JSON file ehich gives you more styling options. But I didn’t opt into that. Last thing, I’m leaarning how to use api’s. What you can see in the console is the bio for Cristina Koch provided by Launch Library II. I plan to create a bio for eaach of these astronauts only using the api, if the contents of the api change the web page should change automatically. Although I’m limited to 15 requests per hour which is annoying.
Quite afew things have been added since my first devlog. So far I’ve worked a little bit on responsive design to make it more viewable on mobile. I also created a little bubble menu which allows you to transition between Hubs. I created a moon basepage which will provide centralized infirmation on our moon base plans specifically. I’m currently inn the process of implementing some of the simulations NASA created within my website through embedding.
During this time, I have embedded two NASA simulations into the website for visualization. You can fine them by going to the Artemis II page and going to the moon base page under “Explore”. I also embedded some YouTube videos to #1 let people understand the idea of the Artemis Program and CLPS who aren’t familiar, and #2 you don’t have to search for multiple YouTube videos potentially on different channels. They all are here. And honestly, when you’re navigating a website, it’s more convenient to watch an embedded video than navigate to YouTube. The last thing I worked on a little bit was making the moon base section more mobile responsive. Still looks a little off, but better than it was before.
Hello It’s been a little while since my last devlog but I plan to make them more frequently. This is my first log sincemy first shipment and Ive been spending thelasst 5 hours trying to implement the feedback I got. 1. Someone said it would be nice to see some facts about the astronauts, so I did something like that. I made an array that displays a random fact about the missions every time the page loads. This one took me a while to do because I was running into an issue where the Artemis I facts would display but not the subsequent ones. I went onto Stack Overflow and problem is resolved. 2. Someone said it would be nice to read texts about the missions rather thaan rely on videos because some people have different preferences for how they learn information. So what I did is created a series of dropdowns on the very bottom that tells you information aout the mission. I chose a dropdown format so they dont take up as much space on the page if its not being read.
Artemis II Page Update! Devlog Formatting This is the first devlog that’s formatted nicely, I’ve been writing them on my phone and for some reason it doesn’t format there at all just displays as a large paragraph. But I’m writing this one on a computer allowing me to format paragraphs and headings. Artemis II page I’ve been working on the Artemis II page, I’m not quite finished but got the history of it and the preperations which explains the stacking timeline and the heatshield issue. Artemis I Timeline I added a timeline to the Artemis I page which you can see in the demo link. It shows major events that happened from stacking to reentry. Another thing I did was update the status of Artemis III below that countdown banner.
Completed Artemis II page Completed the Artemis II page where I explained the flight profile, preparations, and its full flight timeline.
Made some progress on my Artemis website! Below is the changelog, but the highlight I have to share is the addition of a “Blogs” page that organizes blogs into rows. These blogs will be more detailed Artemis Updates. It’s the first blog structure I’ve done, so wanted to try it out. I also moved the left navigation bubble content to a bottom navigation bar. Removed Removed the bubble navbar on left side (Got moved to newely added bottom navbar) Added Bottom navigation bar Blog Page First Artemis Blog I would encourage you to look around the repository because I made some additions to it. I added badges at the top of the README file to neatly display some information about the website such as its version, programming languages, etc. Also added a CHANGELOG.md file so you can read every single change I’ve made to this website and read any future updates that are released. Created a Discussions tab at Top menu bar > Discussions so I can make announcements and updates about this project.
Ships:
My project is called Artemis Hub, a static website that provides centralized information about the Artemis Program while showing our progress in building a moon base. It prevents people from navigating to multiple YouTube videos or the entire NASA site (I Frequently have to make multiple clicks to navigate that massive site), and just provides all that information on one page. Even to read information about Artemis II on the NASA site, you still have to view more than one page. So that’s the problem this project solves. To me the most challenging part of it was UI design, that’s what I spent most of my time on. I’m not very good at UI design, so this project allowed me to experiment with UI and I’m getting an idea of what works, doesn’t or what could be done better which will help me in future projects. I’ve also learned how to create a JavaScript countdown timer. For those testing the project, I am still working on responsive design, the site is navigable on mobile devices, but it’s a work in progress. This isn’t the final site, I still have more to do, but I’m doing a in-progress shipment. One thing I am proud of is getting the JavaScript countdown working, and the horizontal carousels made. I was too lazy to figure out how to make a carousel in JavaScript so I just used CSS to position each card and style the trackbar. I wasn’t sure if it was going to work, but it did.
This is my final ship for this project, I would encourage you to read my last shipment as I go in more detail of what the project is about. Basically, I built a central website hub that provides information on the Artemis Program. You can find certain information on my website within a few clicks what takes 4-8 clicks on the NASA website. Between the first ship to this one, I’ve mainly just been implementing some feedback I got from the first ship such as adding more text information in case someone doesn’t want to watch the videos, and adding random facts about the astronauts. I added dropdowns which display text which you can click to show, I made them drop down just to save space in the screen if it’s not being used. What took me a bit of time though was adding a script that would provide random information about each Artemis mission every time the page is loaded. That part took a little bit because I was running into an issue where facts for Artemis II would show but not Artemis III, it all had to do with text above overriding the text below. I just resolved this issue by adding the Arrays to the individual HTML files as they just shared the main.js file before....
|
1793112722.0455294
|
1793199122.0455294
|
|
21137
|
Colosseus by @gauss | Stardance
|
gauss
|
0
|
69.15
|
0
|
[]
|
[{"post_id": 78908, "ts": "202 [{"post_id": 78908, "ts": "2026-10-12T00:22:17Z", "hours": 5.0272, "text": "IT WORKSSSSS ok sit tight brodini cuz i got a lot of stuff to tell you I burned another PCB! yea, u sure heard that right. I found out what the issue with the PCB was: the motor driver was in the wrong orientation, which connected the +12V rail itself to a gpio pin, frying the rp2040 entirely. Instead of using my hot air station to de-solder and rotate the driver, I decided to just make another board because I was lazy. The second board ended up not working either, and when I pressed down on one of the legs of the buck converter with a multimeter, the IC caught on fire and started smoking. I ended up needing to use a hot air station to replace the buck converter on that board, so I used it to heat up and fix the driver on my previous board while I was at it. I now have two working boards but does it really work? yup. how do you know? because I’m built like that I dont think so stfu ANYWAY…FIRMWARE TIMEEEE The best way to verify the board works is to test out its main feature: controlling Colosseus’ motors (goddamn I’ve spent so much time on the pcb that I’m still not comfortable with the actual name of the robot). I wrote some code in C to blink the KineticBoard’s onboard led, built and flashed the .uf2 to the pico, connected it to the board, andd… … … … IT DIDN’T CATCH ON FIRE! (that’s a first) it actually blinked the LED like it was supposed to. wow. With that boost in confidence, I was more inclined to write code for the robot itself. I started scaffolding a library for the robot, which I’m calling KineticLib . So far, I’ve written code to simplify PWM channels because the TB6612FNG motor driver relies on two of them. I tested my library by adding a demo project that makes the robot incrementally increase in speed, and then come back in the same manner. It worked too! things I HAVEN’T tested yet connecting the Pico to USB while it’s attached to the hat using the usb-c rececptacle to power other stuff (like a regular rpi) observing the effect of forcing the motors to spin while they are connected to the KineticBoard (I tried this briefly and I smelled some type of smoke, but I could very well just be paranoid) but yea all in all 11/10 experience i would highly recommend trying to make one of these on your own. if you happen to be brave enough to test these before I do, lmk what happens on slack (if you survive)."}, {"post_id": 77207, "ts": "2026-10-06T03:02:31Z", "hours": 0.9836, "text": "THE BOARD IS ON FIRE Not really, but it kinda is. After soldering all of the components on with an iron and hot plate, I connected the Pi Pico to the HAT via the female header sockets. I wrote a simple blinky script and verified that it worked when powered by my regular laptop. However, when I powered the KineticBoard HAT with the Pico, the RP2040 chip started smoking and I was able to capture a brief orange glow on camera. What now?? I’ll have to carefully look at what could have gone wrong. I tested the voltage readings from the multimeter and found that VSYS reads +5.1V when switched on, which makes sense because the Pico can accept that much. I did notice a constant 0.5V on the +3V3 pin for whatever reason (before attaching the pico). I’ll isolate the Pico on a breadboard and attach jumper wires only where needed, and gradually close in on the part that caused the failure. On a side note, I figured out why one of the LEDs isn’t working. It happens to not be connected to GND; however, everything else seems to be connected just fine."}, {"post_id": 74265, "ts": "2026-09-27T03:10:38Z", "hours": 4.0342, "text": "Custom Enclosure for the PCB After the board had travelled across the Pacific Ocean and the United States, it finally reached its destination at the core of Colosseus. UPDATE: THE PCB AND THE LCSC PARTS HAVE ARRIVED!!!! Whadidyado? I started creating a case for the KineticBoard. So far, I copied the layout of the board from KiCAD and added cutouts for parts that were meant to have user interaction. I tested out three prototypes before settling on one that actually fit (a lot of issues were solved by adding extra clearance and gaps). Potential Issues I’m 70% certain that the case won’t fit the bottom floor of the chassis, but that’s a problem for later. For now, I’m just designing the most badass case I can."}, {"post_id": 67863, "ts": "2026-09-14T04:29:30Z", "hours": 0.8228, "text": "Sent out the order! After finalizing the last parts of the extension board, I used my hardware grant to send the PCB over to JLC for fabrication. I separately purchased parts from LCSC."}, {"post_id": 63987, "ts": "2026-09-08T02:41:10Z", "hours": 2.2825, "text": "Finished the PCB The final coat of copper pavement was carefully laid out as the green city was unified at last. Changes I routed the motor driver’s pins to the two 6-pin adapters on the bottom right of the board. I connected the last pads, and added some finishing touches such as screw holes for a 3D-printed enclosure and some custom silkscreen cuz why not. I also filleted the edges as I read that it was a good practice online. What’s Next? All of the GND pads are isolated, so I need to make a copper fill zone or something to link all of them. I also plan on adding a little silkscreen on the back, and then we should be good to go!"}, {"post_id": 62644, "ts": "2026-09-06T03:28:09Z", "hours": 3.9669, "text": "Almost Done with the Layout With the components oriented in their city-like pattern, all that was left to do was to pave the final roads through the green adhesive base, connecting the motor driver to the 6-pin adapters. Changes? I decided to drop the 12V to 3.3V buck because the Pico has one internally, and I could just keep my 5V buck and feed its output into VSYS and extract 3.3V from the Pico’s +3V3 pin. I also ended up changing the orientation of some adapters because I couldn’t comprehend the fact that the PCB exists in 3 dimensions? Lastly, I greedily extended the bottom of the PCB so that both partitions could access one large +12V trace (the GPIO sockets were interfering). What next? All I have to do is wire up the connections to the motor driver and adapters, and we should be good to manufacture ts."}, {"post_id": 57735, "ts": "2026-08-30T00:13:42Z", "hours": 3.4392, "text": "Finished KineticBoard HAT Schematic I spent a few hours finishing the schematic for the KineticBoard HAT, an extension board that allows the Pi Pico to control motors. Additions Rather than using a standard Li-Ion to power the Pico and a really small power bank to power the Pi, I decided to just use one: the Li-Ion. For this to happen, the PCB would need to convert 12V to 5V and expose this voltage through a USB-C connector. I decided to copy & paste my old buck converter schematic, but I had to pick different resistance values such that this formula V = 0.925 * (1 + R1/R2) yielded ~5.1V. This seems easy, but I wanted to use some resistors that I already had. I decided to make a C program that picked the most optimal values for this voltage divider. The program works by following a 2 pointer algorithm which adjusts the numerator and the denominator by shuffling through a sorted list of the resistance values, and finding the ones that are closest to the target voltage. I also expanded on my old buck converter by making the +3V3 net controlled by a switch, just so that no weird stuff happens if I connect both the PC and battery to the board at the same time. Lastly, I added the 6-pin JST connectors, the motor driver, and a few status LEDs. I put everything in the PCB editor in the end, and I’m honestly terrified of routing this thing, but that’s a problem for later lol."}, {"post_id": 52037, "ts": "2026-08-22T02:18:59Z", "hours": 2.0181, "text": "Another PCB????? I’m creating a second motor driver board, but this time instead of being a standalone devboard, it is only a hat. Schematic Stuff I added symbols for header sockets, the barrel jacks, a buck converter, and the usual dozens of resistors and caps. The pinout for the buck converter was so annoying and something about putting non-connecting wires on top of each other pissed me off a lot. It’s an eyesore, and I can already tell that I have to use a billion vias to get everything working once I’ll hit the layout stage."}, {"post_id": 41542, "ts": "2026-08-05T20:17:20Z", "hours": 1.6042, "text": "So I Almost Burned My Finger I was trying to get the encoders to work, but in the process of reading data through USB serial, I got a mild shock How Did This Happen? To configure hall effect encoders, you need to give each wheel a good spin to determine how many “pulses” are detected by the Pico. The detection part is quite simple: whenever the wheel turns a certain amount, motor encoders A and B change state. This can be detected through an interrupt and then printed out (in the main loop, not the callback). However, in the process of printing it out, I touched the USB-C receptacle and felt it get extremely hot, and later realized that something got shorted somewhere. Any Guesses Where? Looking back at the situation, I had connected the battery and USB power from my laptop to the board at the same time, so something might have gone wrong there. Another thing that was going wrong was that the receptacle itself was coming off, so it could be that one of the pads, say +5V for instance, came in contact with like GND or smth, inducing shock if someone were to touch it. Here’s an image from the timelapse right before I plugged the board into my laptop and fried it:"}, {"post_id": 41002, "ts": "2026-08-04T21:46:57Z", "hours": 0.25, "text": "Soldered the GPIO pins Yea idk why I didn’t do this earlier but I needed the GPIO pins to read data from the motor encoders."}, {"post_id": 37990, "ts": "2026-07-31T02:44:53Z", "hours": 2.0092, "text": "First Drive I checked the devboard for any last errors and connected it to the motors on the robot! Final checks I verified that the KineticBoard Leaf works when it’s powered by USB and by the 5000mAh Li-Ion battery. I did this by writing a simple program that toggles a GPIO pin, and used a multimeter to read the oscillating voltages. It worked!! Test Drive! I already had firmware from the design stage, but it was written for a different motor driver so I decided to start from scratch. I created a basic motor drive “class” (structs/functions to go with the struct) in C and set up my CMake project in a way that I could add a demos folder later. Now that I had custom firmware for the TB6612FNG, I wired up each screw terminal pair to the M1 and M2 pins on each motor, and flipped the switch to see it drive perfectly! It was really relieving to see everything work on first try, and I gained a huge confidence boost in my embedded programming skills. Future Enhancements The motors came with 6-pin connectors, and I should have included appropriate receivers for these connectors on the KineticBoard Leaf rather than just generic screw terminals. Currently, I have to connect the 6-pin connector to 6 jumper wires, which is quite the eyesore."}, {"post_id": 37353, "ts": "2026-07-30T00:32:38Z", "hours": 0.35, "text": "Lab Visit + THE DEVBOARD WORKS NOW WOHOOO After inhaling a mole of lead-based solder fumes, I finally got the devboard to work!!! It’s my first ever PCB so I’m really stoked!! I visited my friend’s lab at the university where he works and we were able to debug and fix the devboard in a few hours. Unfortunately, I remembered that I had to record the whole thing in lapse in the last 20 minutes, but I guess that’s just karma for taking 9 hours ( ) to hand solder/debug a PCB in my last devlog (yes ik i suck). Issues My previous attempt at soldering failed because I set the temperature of my hot air gun too low, and I overestimated surface tension’s effect on my hot plate. I used a high-res microscope at the lab and saw that most of the QFN components were only partially soldered. I could quite literally see a tiny gap between the two pads. Another thing I saw was some obvious bridging, which I quickly fixed with a soldering iron. One of my biggest takeaways from the lab was that THE TYPE OF SOLDER FLUX MATTERS!!! I previously used some generic $14 flux from Amazon, but it was so bad that even some of the most powerful ultrasonic flux cleaners couldn’t get it off easily. It was also so thick that even the infrared lamp couldn’t get the RP2040 to stick down. My friend used (and recommended) water-soluble flux, which makes it easy to clean off without messy isopropyl alcohol. I ended up salvaging the parts from my old PCB to build a new one from scratch. I learned how to solder QFP packages, 0603s, and even 0402s with an iron. In the end, a soldering iron is THE BEST way to guarantee that your components are soldered down, especially when verified with a microscope. I also learned how to solder using an infrared lamp and hot air (properly, this time). Results??? Right as I finished soldering the last component, I connected it to my computer and held down bootselect….and IT WAS DETECTED AS A MASS STORAGE DEVICE!!! I was so excited at this time that I finally rekindled my motivation to keep building more of these PCBs (I was pretty close to giving up on PCB-related projects ngl). Anyway, right before leaving, I put it in the ultrasonic washer they have for PCBs (which is just a tiny container with water and ultrasonic waves being fired it at from all directions to take the flux off. I’m currently waiting until tomorrow for it to air dry, and then I’ll incorporate it in the robot!"}, {"post_id": 32135, "ts": "2026-07-21T02:56:44Z", "hours": 9.7003, "text": "Broken Devboard So this was my first time ever soldering a PCB, and I didn’t go easy on myself especially considering I used 0402 footprints on a 4-layer double-sided layout. I had hoped that it would work after soldering all the parts but unfortunately, it did not. Areas of Error The front portion was soldered using a hot plate, and the back was soldered with a hot air gun. This was my first time using a hot air gun, so I had my dad (a former electronics hobbyist) help me out a little. Turns out we both couldn’t fix it. One potential error is that the back side wasn’t properly soldered because we ran the air gun at 220 degrees fahrenheit, wihch could have meant that the core of the gun was that hot but outside it could be 150 or something. Another thing that could have gone wrong is the ICs could have been overheated and cooked, or a tiny bridge on the RP2040 could have shorted the whole thing. Next Steps and Debug I asked a friend (a guy who has a PhD in computer/rf engineering) to help me debug the board, and he said he’ll be more than happy to in a few weeks. In the meantime, I guess I’ll just make a bunch of more projects!"}, {"post_id": 28924, "ts": "2026-07-15T15:07:31Z", "hours": 3.2167, "text": "SMD Soldering Attempt The parts from LCSC and JLCPCB had arrived! This meant that I could finally build the final part of the robot: the KineticBoard controller (yk, the devboard with a motor driver on it?). It’s gonna be difficult because I have to solder both sides of the PCB, but so far I only soldered the first side. Some parts were misaligned but it looks mostly ok."}, {"post_id": 27967, "ts": "2026-07-13T22:31:13Z", "hours": 2.4608, "text": "Rebuilt the Robot The new standoffs had finished 3D printing, so I could finally replace the faulty old ones. Since I had to tear the robot down anyway, I decided to fix the motor slant problem as well. The solution to the motor slant problem was relatively simple: some foam padding to lift the motors up to the horizontal. This solution not only worked perfectly, but also gave the robot a little bit of shock absorbance. After that, all I had to do was build the robot with the new standoffs, which was actually quite a chore because it’s hard to use a screwdriver at an angle."}, {"post_id": 26870, "ts": "2026-07-11T22:02:49Z", "hours": 0.9167, "text": "Standoff Redesign The old standoffs had an issue because they weren’t properly threaded, which meant that there really wasn’t much aside from minimal friction that was holding the screws in place. The Fix I redesigned the standoffs by making them wider, thoroughly hollow, and exposed on one half. This allowed me to slide nuts and screws inside the standoffs, which will guarantee a perfect lock. Another issue that this redesign fixed was the blocked hole problem. Essentially, when I put a screw in a hole on the middle chassis, I couldn’t then use that same hole for another standoff to connect the other side. This solves that issue since a single screw on the middle chassis can now go through two standoffs at once, allowing me to connect both sides."}, {"post_id": 24486, "ts": "2026-07-08T01:50:07Z", "hours": 2.2497, "text": "Assembly Time! Alas, the fun part officially begins! At the time of writing this, most of the parts I ordered online have arrived, with the exception of the custom PCB from JLC. The parts for the chassis just came out of the 3D printer an hour before I started my session, so I had enough parts to finally build the robot! Challenges Building the actual robot brought tiny errors that I had previously overlooked to light. For starters, the 2.5mm trough, while looking very aesthetic, caused the motors to tilt slightly upwards. Additionally, the custom 3D-printed standoffs didn’t really hold on to the M3 screws, so I’m just hoping gravity does its thing. I might have to hot glue them later if more issues arise out of this. Lastly, the motors come with female-to-female cables, but my KineticBoard Leaf expects female-to-male. I might add male headers to the next iteration of the KineticBoard Leaf."}, {"post_id": 23890, "ts": "2026-07-07T03:00:11Z", "hours": 2.5553, "text": "Quality-of-life Updates for the Chassis I had used horseshoe-type straps previously in an RC Car design but those had a tendency to slide horizontally. With that in mind, I decided to use the motor’s 2 M3 screws to build a strap on each side of the chassis to lock the motors in place. I’ll still keep one horseshoe clamp for each motor in addition to this for stability purposes."}, {"post_id": 15868, "ts": "2026-06-25T19:55:35Z", "hours": 3.5669, "text": "Fixing the KineticBoard Did you know that something as simple as a double-sided version of a Pi Pico can cost around $150 to manufacture from JLC? Yea, I didn’t either. Silkscreen Redesigns! I made some newer art to put as a silkscreen. I think what I had before was okay, but it seemed a bit sloppy. GitHub submodule stuff I updated the KineticBoard Repo and added it as a submodule to my main repository. Capacitor Fix From my last session, I ended with picking a capacitor that had a higher voltage rating since passing 12V through a 6.3V capacitor will definitely cause dielectric breakdown. My solution last time was to use an 25V electrolytic aluminum capacitor, which ended up being too big. To resolve the overlap, I just chose a different SMD Capacitor footprint—this time for a tantalum capacitor since they’re much smaller. Inverted Screw Terminals Apparently the screw terminals were inverted this whole time. I realized this since the arrows were pointing toward the terminals from the center of the board, rather from the outside (the arrows indicate the direction that the wire will enter). I fixed this by rotating each screw terminal by 180 but this just caused 19 DRC violations. Of course, I had to reroute all of the traces that were flipped, and of course I had made it so that fixing one trace blocks the other trace from passing through. I ended up solving this problem by dropping a via and routing the board through one of the 2 middle layers. And it costs WHAT??? Yup. The board itself costs $7, but then JLCPCBA decided to ramp up the cost to $150 with a $50 setup fee, $30 “loading into the feeder” fee, and so on. I’m thinking of buying a hot plate to “solder” all of the SMD parts on the board at home, but some of my caps are 0402 and those things are genuinely microscopic."}, {"post_id": 15472, "ts": "2026-06-25T04:59:34Z", "hours": 4.2003, "text": "CAD Touch-ups I had previously built a chassis for this robot before in Stasis, but I had never shipped it. Today, I looked at the BOM for the assembly and saw that the metal standoffs that hold the layers together cost more than $2 per piece. I avoided this fee by modeling my own plastic standoffs that had M3 holes on both ends. I also updated the wheels to fit better with the chassis and use less filament. Unfortunately, this increased the mass moment of inertia of the wheels so stopping them and getting them to start might be a future issue? (I hope not tho plsplspls). You have a devboard too? Whatttt Yep! At Stasis, I also made a devboard known as the KineticBoard for this robot. This wasn’t shipped either. Since the devboard was almost complete, I decided to start looking up how to use JLCPCB and realized that I had yet another BOM to fill. Yayyyy🫠. I spent a solid hour figuring JLC out and also saw that one of my capacitor footprints needs to be updated because they don’t make 100uF capacitors in a size that’s expected of the 22pF ones (oopsie). Unfortunately, doing so resulted in another issue which is that the new capacitor is colliding with the motor driver, so fixing that is gonna be a lot of fun 🫠🫠🫠🫠. Anyway that’s a task for tomorrow."}, {"post_id": 14801, "ts": "2026-06-24T01:22:15Z", "hours": 1.2106, "text": "Dual-motor…drive? I added a second motor and added support for turning in the Pico’s firmware. The main challenge in this session was figuring out how the robot will turn. Since the entire purpose of the Pico is to be the Pi’s personal uber driver, it should have the ability to process almost every command on its own without reliance on the Pi. To put it simply, the Pi won’t say “hey, turn one motor this way and the other one in the opposite direction to create a torque to make the robot spin,”; instead, it will simply say something like “turn this way!” and the Pi will figure out the angle in which it should turn and it will internally compute how it should control the motors. The new command structure is now 2 bits for direction + 2 dummy bits + 4 control bits . Having the 2 bits for direction allows for 4 possible outputs. Since my histogram from the algorithm used intervals of 45 degrees, having 4 of those 45 degree chunks is enough to cover a 180 degree arc. With turning support in both the left and right direction using the command nibbles 0xD and 0xE , respectively, it is possible to complete a full rotation. INFINITE RECURSIONNNNNN Since the robot is supposed to only rotate for a little bit and then resume moving in whatever direction it was going in, I implemented this by using a recursive call to the control function itself and passing in the value of the old command as the new command to execute. This recursive behavior was only meant for turns, not straight movement. As you could guess from the header, this resulted in the program calling itself over and over if I did two turns (since the last command was a turn and it’s last command, by my stupid function call, is also a turn). I patched this by making the program only recall straight moves and not turns, that way it would never have a old_cmd encoding for another turn."}, {"post_id": 13518, "ts": "2026-06-22T03:51:37Z", "hours": 0.4742, "text": "It’s running on the Pi! I used a docker container to allow the web app to be easily hosted on a Raspberry Pi 4. Docker provided a somewhat seamless transition from my local linux environment to the Pi, but I still had to cross compile it for the ARM64 architecture and had to modify a few things Andddd of course I got stuck somewhere in the middle So web apps in docker apparently dont use localhost , instead, they use 0.0.0.0 and expose their port at runtime. This made it quite complicated, because the JavaScript needed to call its websocket from…itself (but on the browser end aka localhost), whereas the Python server would serve 0.0.0.0, which would be then connected to localhost by the daemon. This took me some time to realize, and it was more annoying to recompile the image every time I wanted to make a subtle change."}, {"post_id": 13303, "ts": "2026-06-21T19:42:03Z", "hours": 3.5881, "text": "Hardware Setup + Communication Interfaces drive me crazy Before you look at the time and freak out, I ran into like a dozen errors and each could have been caused by at least ten different independent variables 😭. What did you do? Anyway, I set up a Raspberry Pi 4 (the thing I’m also currently using for my website, www.StatixLabs.org ) and a Pi Pico. I soldered the pins on a DRV8833 motor driver module and connected it to the Pico. I then created 2 UART lines from the Pi to the Pi Pico, allowing them to communicate serially. I then attached a mini N20 motor (with encoders) to the Pico’s motor driver, but this will change when I get the funding to buy motors that can actually sustain the weight of the robot. I then created a command structure in which the Pi transmits a single byte of data to control the motor. The structure of the packet (well, at least I think it’s a packet?) is 4 bits for speed + 4 bits for command . On the regular Pi, I created a script that accepted user input in the form command,speed in which speed was a normalized float, being optional for the command stop which assumes a speed of 0. Commands like forward and backward transmit 0x?A and 0x?B , respectively, and the ? is just a placeholder for the speed nibble. Sooooo, why three and a half hours? Great question! It took me a solid hour to figure out how to use the motors with the Pi Pico. This is because I initially had one of the Undercity themed Pico Devboards, and I thought they were really cool so I didn’t wanna mistakenly ruin the design because of my lousy soldering. So, I just decided to use header pins and sandwiched the devboard in between the header pins and the breadboard. It partially worked, but it was unreliable for the entire right half of the board. I ended up having to use one of my Pico 2’s that I had already soldered, and I also had to change the CMake to account for this. I was extra confused because UART communication worked perfectly fine with my previous sandwich approach, but simple PWM motor control didn’t. Oh well, at least everything worked out in the end after the switch 🫠."}, {"post_id": 12819, "ts": "2026-06-20T23:57:18Z", "hours": 2.4442, "text": "Added Web UI Since the robot is targeted towards a more non-technical audience, I decided that a web interface is much better than a pygame window. This will also be a key part in a “ship” since it’s meant to be “published” and you can’t really publish a pygame script that first of all isn’t even a game lol. I learned how WebSockets work and I made a copy of the graphing script but stripped away the pygame API and added a web server to it. Some challenges I ran into were synchronization, so I solved it by creating a different thread in which the LiDAR runs and sends its data to a buffer, while the main thread runs the web server and sends the buffered data."}, {"post_id": 12150, "ts": "2026-06-19T21:00:23Z", "hours": 2.5475, "text": "Rework + Better Navigation I decided to rewrite the entire pygame display since whoever wrote it before did it totally backwards and it had caused my algorithms to break and a bunch of other problems. So after that pygame refresher, I also reworked my algorithm because tuning the linear max offset seemed to be too unreliable for a broad range of environments and using something like a reciprocal function would make the algorithm amplify noise because my lidar often picks up random particles that are super close to it’s surface (I tried wiping it with a dry cloth; it didn’t work). Anyway, the new algorithm turns the unit circle into a histogram of angles and then calculates the average distance in each interval to determine which direction is the furthest away. The algorithm then picks that direction since it is the best direction that the robot can move in for autonomous navigation (you know, finding new areas?). Anyway, this algorithm is still pretty elementary but it worked first try (well, technically second because of an optimization)."}, {"post_id": 11670, "ts": "2026-06-19T00:41:24Z", "hours": 1.6672, "text": "Basic Navigation Algorithm I implemented a naive navigation algorithm for the robot. the algorithm uses an obstacle avoidance strategy. So far, it uses a linear transform that pushes the robot away from nearby items. However, I noticed that IRL, the LiDAR doesn’t feel the push in the opposite direction until the obstacle gets too close. I’m planning on fixing this later by using an inversion function or something rather than just subtraction."}, {"post_id": 10941, "ts": "2026-06-17T22:49:12Z", "hours": 1.565, "text": "I created a basic scanner by using an RPLiDAR library from a YouTube Video . I adjusted the script for my LiDAR type and fixed a few bugs in the code such as angular positioning inversions. I also started working on the readjustment logic in which the frame is held still when the robot turns by rotating every point on the frame in the opposite direction that it is turning in. I also improved the color logic by using an actual gradient-based shader."}]...
|
Title: Colosseus by @gauss | Stardance
Devlogs:
I Title: Colosseus by @gauss | Stardance
Devlogs:
I created a basic scanner by using an RPLiDAR library from a YouTube Video . I adjusted the script for my LiDAR type and fixed a few bugs in the code such as angular positioning inversions. I also started working on the readjustment logic in which the frame is held still when the robot turns by rotating every point on the frame in the opposite direction that it is turning in. I also improved the color logic by using an actual gradient-based shader.
Basic Navigation Algorithm I implemented a naive navigation algorithm for the robot. the algorithm uses an obstacle avoidance strategy. So far, it uses a linear transform that pushes the robot away from nearby items. However, I noticed that IRL, the LiDAR doesn’t feel the push in the opposite direction until the obstacle gets too close. I’m planning on fixing this later by using an inversion function or something rather than just subtraction.
Rework + Better Navigation I decided to rewrite the entire pygame display since whoever wrote it before did it totally backwards and it had caused my algorithms to break and a bunch of other problems. So after that pygame refresher, I also reworked my algorithm because tuning the linear max offset seemed to be too unreliable for a broad range of environments and using something like a reciprocal function would make the algorithm amplify noise because my lidar often picks up random particles that are super close to it’s surface (I tried wiping it with a dry cloth; it didn’t work). Anyway, the new algorithm turns the unit circle into a histogram of angles and then calculates the average distance in each interval to determine which direction is the furthest away. The algorithm then picks that direction since it is the best direction that the robot can move in for autonomous navigation (you know, finding new areas?). Anyway, this algorithm is still pretty elementary but it worked first try (well, technically second because of an optimization).
Added Web UI Since the robot is targeted towards a more non-technical audience, I decided that a web interface is much better than a pygame window. This will also be a key part in a “ship” since it’s meant to be “published” and you can’t really publish a pygame script that first of all isn’t even a game lol. I learned how WebSockets work and I made a copy of the graphing script but stripped away the pygame API and added a web server to it. Some challenges I ran into were synchronization, so I solved it by creating a different thread in which the LiDAR runs and sends its data to a buffer, while the main thread runs the web server and sends the buffered data.
Hardware Setup + Communication Interfaces drive me crazy Before you look at the time and freak out, I ran into like a dozen errors and each could have been caused by at least ten different independent variables 😭. What did you do? Anyway, I set up a Raspberry Pi 4 (the thing I’m also currently using for my website, www.StatixLabs.org ) and a Pi Pico. I soldered the pins on a DRV8833 motor driver module and connected it to the Pico. I then created 2 UART lines from the Pi to the Pi Pico, allowing them to communicate serially. I then attached a mini N20 motor (with encoders) to the Pico’s motor driver, but this will change when I get the funding to buy motors that can actually sustain the weight of the robot. I then created a command structure in which the Pi transmits a single byte of data to control the motor. The structure of the packet (well, at least I think it’s a packet?) is 4 bits for speed + 4 bits for command . On the regular Pi, I created a script that accepted user input in the form command,speed in which speed was a normalized float, being optional for the command stop which assumes a speed of 0. Commands like forward and backward transmit 0x?A and 0x?B , respectively, and the ? is just a placeholder for the speed nibble. Sooooo, why three and a half hours? Great question! It took me a solid hour to figure out how to use the motors with the Pi Pico. This is because I initially had one of the Undercity themed Pico Devboards, and I thought they were really cool so I didn’t wanna mistakenly ruin the design because of my lousy soldering. So, I just decided to use header pins and sandwiched the devboard in between the header pins and the breadboard. It partially worked, but it was unreliable for the entire right half of the board. I ended up having to use one of my Pico 2’s that I had already soldered, and I also had to change the CMake to account for this. I was extra confused because UART communication worked perfectly fine with my previous sandwich approach, but simple PWM motor control didn’t. Oh well, at least everything worked out in the end after the switch 🫠.
It’s running on the Pi! I used a docker container to allow the web app to be easily hosted on a Raspberry Pi 4. Docker provided a somewhat seamless transition from my local linux environment to the Pi, but I still had to cross compile it for the ARM64 architecture and had to modify a few things Andddd of course I got stuck somewhere in the middle So web apps in docker apparently dont use localhost , instead, they use 0.0.0.0 and expose their port at runtime. This made it quite complicated, because the JavaScript needed to call its websocket from…itself (but on the browser end aka localhost), whereas the Python server would serve 0.0.0.0, which would be then connected to localhost by the daemon. This took me some time to realize, and it was more annoying to recompile the image every time I wanted to make a subtle change.
Dual-motor…drive? I added a second motor and added support for turning in the Pico’s firmware. The main challenge in this session was figuring out how the robot will turn. Since the entire purpose of the Pico is to be the Pi’s personal uber driver, it should have the ability to process almost every command on its own without reliance on the Pi. To put it simply, the Pi won’t say “hey, turn one motor this way and the other one in the opposite direction to create a torque to make the robot spin,”; instead, it will simply say something like “turn this way!” and the Pi will figure out the angle in which it should turn and it will internally compute how it should control the motors. The new command structure is now 2 bits for direction + 2 dummy bits + 4 control bits . Having the 2 bits for direction allows for 4 possible outputs. Since my histogram from the algorithm used intervals of 45 degrees, having 4 of those 45 degree chunks is enough to cover a 180 degree arc. With turning support in both the left and right direction using the command nibbles 0xD and 0xE , respectively, it is possible to complete a full rotation. INFINITE RECURSIONNNNNN Since the robot is supposed to only rotate for a little bit and then resume moving in whatever direction it was going in, I implemented this by using a recursive call to the control function itself and passing in the value of the old command as the new command to execute. This recursive behavior was only meant for turns, not straight movement. As you could guess from the header, this resulted in the program calling itself over and over if I did two turns (since the last command was a turn and it’s last command, by my stupid function call, is also a turn). I patched this by making the program only recall straight moves and not turns, that way it would never have a old_cmd encoding for another turn.
CAD Touch-ups I had previously built a chassis for this robot before in Stasis, but I had never shipped it. Today, I looked at the BOM for the assembly and saw that the metal standoffs that hold the layers together cost more than $2 per piece. I avoided this fee by modeling my own plastic standoffs that had M3 holes on both ends. I also updated the wheels to fit better with the chassis and use less filament. Unfortunately, this increased the mass moment of inertia of the wheels so stopping them and getting them to start might be a future issue? (I hope not tho plsplspls). You have a devboard too? Whatttt Yep! At Stasis, I also made a devboard known as the KineticBoard for this robot. This wasn’t shipped either. Since the devboard was almost complete, I decided to start looking up how to use JLCPCB and realized that I had yet another BOM to fill. Yayyyy🫠. I spent a solid hour figuring JLC out and also saw that one of my capacitor footprints needs to be updated because they don’t make 100uF capacitors in a size that’s expected of the 22pF ones (oopsie). Unfortunately, doing so resulted in another issue which is that the new capacitor is colliding with the motor driver, so fixing that is gonna be a lot of fun 🫠🫠🫠🫠. Anyway that’s a task for tomorrow.
Fixing the KineticBoard Did you know that something as simple as a double-sided version of a Pi Pico can cost around $150 to manufacture from JLC? Yea, I didn’t either. Silkscreen Redesigns! I made some newer art to put as a silkscreen. I think what I had before was okay, but it seemed a bit sloppy. GitHub submodule stuff I updated the KineticBoard Repo and added it as a submodule to my main repository. Capacitor Fix From my last session, I ended with picking a capacitor that had a higher voltage rating since passing 12V through a 6.3V capacitor will definitely cause dielectric breakdown. My solution last time was to use an 25V electrolytic aluminum capacitor, which ended up being too big. To resolve the overlap, I just chose a different SMD Capacitor footprint—this time for a tantalum capacitor since they’re much smaller. Inverted Screw Terminals Apparently the screw terminals were inverted this whole time. I realized this since the arrows were pointing toward the terminals from the center of the board, rather from the outside (the arrows indicate the direction that the wire will enter). I fixed this by rotating each screw terminal by 180 but this just caused 19 DRC violations. Of course, I had to reroute all of the traces that were flipped, and of course I had made it so that fixing one trace blocks the other trace from passing through. I ended up solving this problem by dropping a via and routing the board through one of the 2 middle layers. And it costs WHAT??? Yup. The board itself costs $7, but then JLCPCBA decided to ramp up the cost to $150 with a $50 setup fee, $30 “loading into the feeder” fee, and so on. I’m thinking of buying a hot plate to “solder” all of the SMD parts on the board at home, but some of my caps are 0402 and those things are genuinely microscopic.
Quality-of-life Updates for the Chassis I had used horseshoe-type straps previously in an RC Car design but those had a tendency to slide horizontally. With that in mind, I decided to use the motor’s 2 M3 screws to build a strap on each side of the chassis to lock the motors in place. I’ll still keep one horseshoe clamp for each motor in addition to this for stability purposes.
Assembly Time! Alas, the fun part officially begins! At the time of writing this, most of the parts I ordered online have arrived, with the exception of the custom PCB from JLC. The parts for the chassis just came out of the 3D printer an hour before I started my session, so I had enough parts to finally build the robot! Challenges Building the actual robot brought tiny errors that I had previously overlooked to light. For starters, the 2.5mm trough, while looking very aesthetic, caused the motors to tilt slightly upwards. Additionally, the custom 3D-printed standoffs didn’t really hold on to the M3 screws, so I’m just hoping gravity does its thing. I might have to hot glue them later if more issues arise out of this. Lastly, the motors come with female-to-female cables, but my KineticBoard Leaf expects female-to-male. I might add male headers to the next iteration of the KineticBoard Leaf.
Standoff Redesign The old standoffs had an issue because they weren’t properly threaded, which meant that there really wasn’t much aside from minimal friction that was holding the screws in place. The Fix I redesigned the standoffs by making them wider, thoroughly hollow, and exposed on one half. This allowed me to slide nuts and screws inside the standoffs, which will guarantee a perfect lock. Another issue that this redesign fixed was the blocked hole problem. Essentially, when I put a screw in a hole on the middle chassis, I couldn’t then use that same hole for another standoff to connect the other side. This solves that issue since a single screw on the middle chassis can now go through two standoffs at once, allowing me to connect both sides.
Rebuilt the Robot The new standoffs had finished 3D printing, so I could finally replace the faulty old ones. Since I had to tear the robot down anyway, I decided to fix the motor slant problem as well. The solution to the motor slant problem was relatively simple: some foam padding to lift the motors up to the horizontal. This solution not only worked perfectly, but also gave the robot a little bit of shock absorbance. After that, all I had to do was build the robot with the new standoffs, which was actually quite a chore because it’s hard to use a screwdriver at an angle.
SMD Soldering Attempt The parts from LCSC and JLCPCB had arrived! This meant that I could finally build the final part of the robot: the KineticBoard controller (yk, the devboard with a motor driver on it?). It’s gonna be difficult because I have to solder both sides of the PCB, but so far I only soldered the first side. Some parts were misaligned but it looks mostly ok.
Broken Devboard So this was my first time ever soldering a PCB, and I didn’t go easy on myself especially considering I used 0402 footprints on a 4-layer double-sided layout. I had hoped that it would work after soldering all the parts but unfortunately, it did not. Areas of Error The front portion was soldered using a hot plate, and the back was soldered with a hot air gun. This was my first time using a hot air gun, so I had my dad (a former electronics hobbyist) help me out a little. Turns out we both couldn’t fix it. One potential error is that the back side wasn’t properly soldered because we ran the air gun at 220 degrees fahrenheit, wihch could have meant that the core of the gun was that hot but outside it could be 150 or something. Another thing that could have gone wrong is the ICs could have been overheated and cooked, or a tiny bridge on the RP2040 could have shorted the whole thing. Next Steps and Debug I asked a friend (a guy who has a PhD in computer/rf engineering) to help me debug the board, and he said he’ll be more than happy to in a few weeks. In the meantime, I guess I’ll just make a bunch of more projects!
Lab Visit + THE DEVBOARD WORKS NOW WOHOOO After inhaling a mole of lead-based solder fumes, I finally got the devboard to work!!! It’s my first ever PCB so I’m really stoked!! I visited my friend’s lab at the university where he works and we were able to debug and fix the devboard in a few hours. Unfortunately, I remembered that I had to record the whole thing in lapse in the last 20 minutes, but I guess that’s just karma for taking 9 hours ( ) to hand solder/debug a PCB in my last devlog (yes ik i suck). Issues My previous attempt at soldering failed because I set the temperature of my hot air gun too low, and I overestimated surface tension’s effect on my hot plate. I used a high-res microscope at the lab and saw that most of the QFN components were only partially soldered. I could quite literally see a tiny gap between the two pads. Another thing I saw was some obvious bridging, which I quickly fixed with a soldering iron. One of my biggest takeaways from the lab was that THE TYPE OF SOLDER FLUX MATTERS!!! I previously used some generic $14 flux from Amazon, but it was so bad that even some of the most powerful ultrasonic flux cleaners couldn’t get it off easily. It was also so thick that even the infrared lamp couldn’t get the RP2040 to stick down. My friend used (and recommended) water-soluble flux, which makes it easy to clean off without messy isopropyl alcohol. I ended up salvaging the parts from my old PCB to build a new one from scratch. I learned how to solder QFP packages, 0603s, and even 0402s with an iron. In the end, a soldering iron is THE BEST way to guarantee that your components are soldered down, especially when verified with a microscope. I also learned how to solder using an infrared lamp and hot air (properly, this time). Results??? Right as I finished soldering the last component, I connected it to my computer and held down bootselect….and IT WAS DETECTED AS A MASS STORAGE DEVICE!!! I was so excited at this time that I finally rekindled my motivation to keep building more of these PCBs (I was pretty close to giving up on PCB-related projects ngl). Anyway, right before leaving, I put it in the ultrasonic washer they have for PCBs (which is just a tiny container with water and ultrasonic waves being fired it at from all directions to take the flux off. I’m currently waiting until tomorrow for it to air dry, and then I’ll incorporate it in the robot!
First Drive I checked the devboard for any last errors and connected it to the motors on the robot! Final checks I verified that the KineticBoard Leaf works when it’s powered by USB and by the 5000mAh Li-Ion battery. I did this by writing a simple program that toggles a GPIO pin, and used a multimeter to read the oscillating voltages. It worked!! Test Drive! I already had firmware from the design stage, but it was written for a different motor driver so I decided to start from scratch. I created a basic motor drive “class” (structs/functions to go with the struct) in C and set up my CMake project in a way that I could add a demos folder later. Now that I had custom firmware for the TB6612FNG, I wired up each screw terminal pair to the M1 and M2 pins on each motor, and flipped the switch to see it drive perfectly! It was really relieving to see everything work on first try, and I gained a huge confidence boost in my embedded programming skills. Future Enhancements The motors came with 6-pin connectors, and I should have included appropriate receivers for these connectors on the KineticBoard Leaf rather than just generic screw terminals. Currently, I have to connect the 6-pin connector to 6 jumper wires, which is quite the eyesore.
Soldered the GPIO pins Yea idk why I didn’t do this earlier but I needed the GPIO pins to read data from the motor encoders.
So I Almost Burned My Finger I was trying to get the encoders to work, but in the process of reading data through USB serial, I got a mild shock How Did This Happen? To configure hall effect encoders, you need to give each wheel a good spin to determine how many “pulses” are detected by the Pico. The detection part is quite simple: whenever the wheel turns a certain amount, motor encoders A and B change state. This can be detected through an interrupt and then printed out (in the main loop, not the callback). However, in the process of printing it out, I touched the USB-C receptacle and felt it get extremely hot, and later realized that something got shorted somewhere. Any Guesses Where? Looking back at the situation, I had connected the battery and USB power from my laptop to the board at the same time, so something might have gone wrong there. Another thing that was going wrong was that the receptacle itself was coming off, so it could be that one of the pads, say +5V for instance, came in contact with like GND or smth, inducing shock if someone were to touch it. Here’s an image from the timelapse right before I plugged the board into my laptop and fried it:
Another PCB????? I’m creating a second motor driver board, but this time instead of being a standalone devboard, it is only a hat. Schematic Stuff I added symbols for header sockets, the barrel jacks, a buck converter, and the usual dozens of resistors and caps. The pinout for the buck converter was so annoying and something about putting non-connecting wires on top of each other pissed me off a lot. It’s an eyesore, and I can already tell that I have to use a billion vias to get everything working once I’ll hit the layout stage.
Finished KineticBoard HAT Schematic I spent a few hours finishing the schematic for the KineticBoard HAT, an extension board that allows the Pi Pico to control motors. Additions Rather than using a standard Li-Ion to power the Pico and a really small power bank to power the Pi, I decided to just use one: the Li-Ion. For this to happen, the PCB would need to convert 12V to 5V and expose this voltage through a USB-C connector. I decided to copy & paste my old buck converter schematic, but I had to pick different resistance values such that this formula V = 0.925 * (1 + R1/R2) yielded ~5.1V. This seems easy, but I wanted to use some resistors that I already had. I decided to make a C program that picked the most optimal values for this voltage divider. The program works by following a 2 pointer algorithm which adjusts the numerator and the denominator by shuffling through a sorted list of the resistance values, and finding the ones that are closest to the target voltage. I also expanded on my old buck converter by making the +3V3 net controlled by a switch, just so that no weird stuff happens if I connect both the PC and battery to the board at the same time. Lastly, I added the 6-pin JST connectors, the motor driver, and a few status LEDs. I put everything in the PCB editor in the end, and I’m honestly terrified of routing this thing, but that’s a problem for later lol.
Almost Done with the Layout With the components oriented in their city-like pattern, all that was left to do was to pave the final roads through the green adhesive base, connecting the motor driver to the 6-pin adapters. Changes? I decided to drop the 12V to 3.3V buck because the Pico has one internally, and I could just keep my 5V buck and feed its output into VSYS and extract 3.3V from the Pico’s +3V3 pin. I also ended up changing the orientation of some adapters because I couldn’t comprehend the fact that the PCB exists in 3 dimensions? Lastly, I greedily extended the bottom of the PCB so that both partitions could access one large +12V trace (the GPIO sockets were interfering). What next? All I have to do is wire up the connections to the motor driver and adapters, and we should be good to manufacture ts.
Finished the PCB The final coat of copper pavement was carefully laid out as the green city was unified at last. Changes I routed the motor driver’s pins to the two 6-pin adapters on the bottom right of the board. I connected the last pads, and added some finishing touches such as screw holes for a 3D-printed enclosure and some custom silkscreen cuz why not. I also filleted the edges as I read that it was a good practice online. What’s Next? All of the GND pads are isolated, so I need to make a copper fill zone or something to link all of them. I also plan on adding a little silkscreen on the back, and then we should be good to go!
Sent out the order! After finalizing the last parts of the extension board, I used my hardware grant to send the PCB over to JLC for fabrication. I separately purchased parts from LCSC.
Custom Enclosure for the PCB After the board had travelled across the Pacific Ocean and the United States, it finally reached its destination at the core of Colosseus. UPDATE: THE PCB AND THE LCSC PARTS HAVE ARRIVED!!!! Whadidyado? I started creating a case for the KineticBoard. So far, I copied the layout of the board from KiCAD and added cutouts for parts that were meant to have user interaction. I tested out three prototypes before settling on one that actually fit (a lot of issues were solved by adding extra clearance and gaps). Potential Issues I’m 70% certain that the case won’t fit the bottom floor of the chassis, but that’s a problem for later. For now, I’m just designing the most badass case I can.
THE BOARD IS ON FIRE Not really, but it kinda is. After soldering all of the components on with an iron and hot plate, I connected the Pi Pico to the HAT via the female header sockets. I wrote a simple blinky script and verified that it worked when powered by my regular laptop. However, when I powered the KineticBoard HAT with the Pico, the RP2040 chip started smoking and I was able to capture a brief orange glow on camera. What now?? I’ll have to carefully look at what could have gone wrong. I tested the voltage readings from the multimeter and found that VSYS reads +5.1V when switched on, which makes sense because the Pico can accept that much. I did notice a constant 0.5V on the +3V3 pin for whatever reason (before attaching the pico). I’ll isolate the Pico on a breadboard and attach jumper wires only where needed, and gradually close in on the part that caused the failure. On a side note, I figured out why one of the LEDs isn’t working. It happens to not be connected to GND; however, everything else seems to be connected just fine.
IT WORKSSSSS ok sit tight brodini cuz i got a lot of stuff to tell you I burned another PCB! yea, u sure heard that right. I found out what the issue with the PCB was: the motor driver was in the wrong orientation, which connected the +12V rail itself to a gpio pin, frying the rp2040 entirely. Instead of using my hot air station to de-solder and rotate the driver, I decided to just make another board because I was lazy. The second board ended up not working either, and when I pressed down on one of the legs of the buck converter with a multimeter, the IC caught on fire and started smoking. I ended up needing to use a hot air station to replace the buck converter on that board, so I used it to heat up and fix the driver on my previous board while I was at it. I now have two working boards but does it really work? yup. how do you know? because I’m built like that I dont think so stfu ANYWAY…FIRMWARE TIMEEEE The best way to verify the board works is to test out its main feature: controlling Colosseus’ motors (goddamn I’ve spent so much time on the pcb that I’m still not comfortable with the actual name of the robot). I wrote some code in C to blink the KineticBoard’s onboard led, built and flashed the .uf2 to the pico, connected it to the board, andd… … … … IT DIDN’T CATCH ON FIRE! (that’s a first) it actually blinked the LED like it was supposed to. wow. With that boost in confidence, I was more inclined to write code for the robot itself. I started scaffolding a library for the robot, which I’m calling KineticLib . So far, I’ve written code to simplify PWM channels because the TB6612FNG motor driver relies on two of them. I tested my library by adding a demo project that makes the robot incrementally increase in speed, and then come back in the same manner. It worked too! things I HAVEN’T tested yet connecting the Pico to USB while it’s attached to the hat using the usb-c rececptacle to power other stuff (like a regular rpi) observing the effect of forcing the motors to spin while they are connected to the KineticBoard (I tried this briefly and I smelled some type of smoke, but I could very well just be paranoid) but yea all in all 11/10 experience i would highly recommend trying to make one of these on your own. if you happen to be brave enough to test these before I do, lmk what happens on slack (if you survive)....
|
1792691240.7314546
|
1793296040.7314546
|
|
68513
|
My own site! by @flatsoda | Stardance
|
flatsoda
|
1
|
5.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-12T01:38:42Z", "hours": 5.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made my first website. It is a site that gives and introduction about me a displays the things is like!", "repo": "https://github.com/flatcherrysoda/personal-website", "demo": "https://flatcherrysoda.github.io/personal-website/"}]...
|
[{"post_id": 78915, "ts": "202 [{"post_id": 78915, "ts": "2026-10-12T01:03:50Z", "hours": 3.8986, "text": "I finished up my website!! I didn’t really know what to put on it. So I just put the things I like. It took me like wayyy to long to figure out how to make the image hover titles … and the worst part is that it was broken just because I spelt something wrong. :[ but my site is now up!!!"}, {"post_id": 77714, "ts": "2026-10-08T02:13:55Z", "hours": 0.6344, "text": "I made the first into page for my website. This is my first time using HTML and CSS, W3Schools & google helped a lot lol :D."}]...
|
Title: My own site! by @flatsoda | Stardance
Devl Title: My own site! by @flatsoda | Stardance
Devlogs:
I made the first into page for my website. This is my first time using HTML and CSS, W3Schools & google helped a lot lol :D.
I finished up my website!! I didn’t really know what to put on it. So I just put the things I like. It took me like wayyy to long to figure out how to make the image hover titles … and the worst part is that it was broken just because I spelt something wrong. :[ but my site is now up!!!
Ships:
I made my first website. It is a site that gives and introduction about me a displays the things is like!...
|
1793062324.4448035
|
1793148724.4448035
|
|
15691
|
My action macropad! by @Akqwrdgamer_YT | Stardance
|
Akqwrdgamer_YT
|
0
|
10.58
|
0
|
[]
|
[{"post_id": 78916, "ts": "202 [{"post_id": 78916, "ts": "2026-10-12T01:13:36Z", "hours": 2.2536, "text": "final touches and making a cap for the dial"}, {"post_id": 78829, "ts": "2026-10-11T18:23:13Z", "hours": 1.0406, "text": "fixing cad tolerances it took 6 tries"}, {"post_id": 78799, "ts": "2026-10-11T17:09:51Z", "hours": 2.1297, "text": "testing cad tolerances, putting it into a assembly, and fixing hole sizes to fit a m4 14mm hex screw"}, {"post_id": 78761, "ts": "2026-10-11T14:58:21Z", "hours": 3.8814, "text": "The case is now done"}, {"post_id": 78223, "ts": "2026-10-10T00:45:42Z", "hours": 0.6497, "text": "The PCB is done now I’m working on making the case for it (BTW I was rec during this so I actually have 3-4 hours on it)"}, {"post_id": 78149, "ts": "2026-10-09T19:40:05Z", "hours": 0.6275, "text": "my macro pad"}]...
|
Title: My action macropad! by @Akqwrdgamer_YT | St Title: My action macropad! by @Akqwrdgamer_YT | Stardance
Devlogs:
my macro pad
The PCB is done now I’m working on making the case for it (BTW I was rec during this so I actually have 3-4 hours on it)
The case is now done
testing cad tolerances, putting it into a assembly, and fixing hole sizes to fit a m4 14mm hex screw
fixing cad tolerances it took 6 tries
final touches and making a cap for the dial...
|
1792767036.3308902
|
1793371836.3308902
|
|
63142
|
P1ˣᵖ by @starvulkan | Stardance
|
starvulkan
|
1
|
42.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-12T02:08:50Z", "hours": 42.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "P1xp!", "repo": "https://github.com/starvulkan/P1xp", "demo": "https://github.com/starvulkan/P1xp/releases/latest"}]...
|
[{"post_id": 78921, "ts": "202 [{"post_id": 78921, "ts": "2026-10-12T01:53:55Z", "hours": 3.1594, "text": "vroom vroom, Devlog 15: STARVULKAN WINS THE MENTAL SANITY GRAND PRIX ! guysss FINALLYY, after weeks and weeks of slowly decaying into insanity, i’ve FINALLYY finished this very cool and amazing project!! im so happy with how things came along at the end, and I hope y’all can enjoy this silly little F1 project! testing during the race went as smooth the smooth operator 55 himself before 2026, with basically one lone issue, that being the app struggling to refresh the race weekend post race (throughout the whole developing process my biggest enemy was that ending transition huh). that’s now fixed, it now uses storage to know if to refresh. wrote the whole readme today as well, by far the most effort i’ve ever made for a readme, but i had to cuz this project means quite a lot to me. and as a final feature, cuz if i didnt i would get exterminated from this planet by the copyright agents, i added the possibility for you to choose your track images for the hero! since i had to delete the hero images that came bundled before cuz copyright and redistribution and stuff, the app, by default, now comes with no hero image, just a silly gradient. you, the user, now have the power of choosing the circuit hero image, bring your own from whatever source! details on how to do this in the readme! and yea! like that, i’m finally shipping this project of mine! thanks to y’all that have followed the whole development process and my (alleged) suffering and gave your amazing support! it truly means a lot to me 💖."}, {"post_id": 78530, "ts": "2026-10-11T03:31:16Z", "hours": 2.2725, "text": "vroom vroom, Devlog 14: WE’RE NEARLY THEREEE!! im sooo closee to finishing this projectt! im actually soo happy with how things are coming along! although working on this messed up my sleep schedule very badly its really all been worth it. singapore quali testing went better than i expected, with the issues really just being the join live button hiding behind the hero cuz i forgot how to do basic css and the session end and live mode exit feeling very jarring as it ended immediately when the session ended, which combined with the F1 TV broadcast being off by aprox. 30 seconds, made the transition feel off. both of these have been fixed (more info below)! once again, im too tired to write another explanation for all the changes and updates i did, so its time to let github release notes me speak lol updates and changes in this build (tag 1.0.0-beta) 1. After a session ends, the app no longer leaves live mode immediately, rather it freezes final data (after 5 mins of wait to ensure all data is final) and waits until the user manually clicks exit live. this is to avoid the transition from live mode back to countdown from being very jarring, especially considering that F1 TV stream is delayed by a varying number of seconds. 2. added car status badges in the tower (these indicate if a car/driver is out, retired, in pit, or eliminated, and greys them out accordingly)! 3. animations in the tower! these indicate when a driver changes positions (either by overtaking/getting overtaken in race/sprint, or setting faster laps in practice/qualis). by obvious reasons, these project better in live mode than in demo mode (the whole thing is sped up x3, its an animation party lol). also didnt mention this in github but i added an about button in the app so its easier to find the build version yes you heard that right, this aint a DEV build, im confident enough in this build to finally upgrade the app to beta! if everything goes well tomorrow during the race, im finally releasing v1 and shipping this project! and if you ask why i just tested with quali and not with the sprint as i promised, eeeeh i may or may not have completely missed my alarm and slept through the sprint… DONT BLAME ME IM TIRED AF"}, {"post_id": 78212, "ts": "2026-10-09T23:53:23Z", "hours": 3.3825, "text": "vroom vroom, Devlog 13: post-singapore sprint quali testing! basically every feature worked during this test, but at the end of SQ2 the app decided to kill my hopes and dreams by exiting live mode mid-session, but i think ive found the fix (hopefully). once again, since ive not slept for over 30 hours atp, i am too tired to rewrite a new explanation for all the changes i did during this time period, so imma think smarter, not harder by recycling my very good and thorough explanation i used for the github release notes lol these are the changes and updates in this new build (DEV_0.3.0): 1. Instead of using an automatic switcher (which proved to give lots of errors) to switch between live mode and countdown, now you can enter/exit live mode through a button (when there’s an ongoing live session). 2. lap counter for races & sprints (only available in live mode). 3. Track map and live mode changes & updates (using MultiView’s API): better circuit outlines and color change for better visibility, track map broadcast orientation, numbered corners, sector flag zones, and pit loss with safety car and VSC figures. and yea, that’s that! now imma go get some real good sleep before waking up at 3 am AGAIN to test with the sprint race why do i do this to myself"}, {"post_id": 78051, "ts": "2026-10-09T11:51:21Z", "hours": 1.5442, "text": "vroom vroom, Devlog 12: post-singapore fp1 testing! WOW THE THING THAT DOES THE LIVE THING WORKS (kinda ig but YAYY nonetheless i wont have to experience more unnecessary mental decay !! ) had to fix a few things, some are bigger issues than others but i think i have permanent solutions for those (hopefully)! as described in the new github repo pre-release (tag DEV_0.2.0), main changes include: updates to the track map (had rendering issues and is incapable of projecting driver position dots without a F1 TV subscription token, so it’s stuck as a simple track map for now, I might add the option to connect to your F1 TV subscription in a future update). driver acronym fix (due to update overwrite blanking the driver acronyms were turning into their number fallbacks mid-session). proper session ending (now you should NOT have to wait an eternity for the app to leave live mode after a session ends, i hope!). i really didnt feel like writing another explanation for that lol ive barely slept tonight and sprint quali is in about 40 mins, so yea no more sleeping for me yayyy endme . so yea, its time for testing round 2! lets see how that goes."}, {"post_id": 78005, "ts": "2026-10-09T04:49:58Z", "hours": 1.4967, "text": "vroom vroom, Devlog 11.5: get lance strolled so major oversight, two issues that i completely forgot to fix before packaging came to my mind again. specifically: 1. the app was incapable of entering live mode on a fresh install during race weekend, cuz the cache was never created. 2. in case of a delay, cuz the live mode timer follows the predicted end time, the app would exit live mode before the session itself actually finished. these two are now fixed. now, the schedule comes bundled with the build, and proper processing in case of delay was added, only downside is that the app will take long to exit live mode, as it will stay waiting for signals after a session finishes, as this is the sacrifice to avoid, yk, leaving the whole session while its going on! installers for this build (DEV_0.1.1) are also now available in the repo. we will be back in 3 hours…"}, {"post_id": 77601, "ts": "2026-10-07T16:22:54Z", "hours": 0.8322, "text": "vroom vroom, Devlog 11: short n’ sweet short work session today i added an offline fallback to the drivers list in setup, as that was the only openf1-dependent item that still didnt have a fallback. it is also capable of self-updating. most importantly tho, i packaged the app itself! runners and installers are now available in the github repo (pre-release tag DEV_0.1.0), so feel free to try them out and to help out identifying bugs during the live testing this week in singapore! available for windows, macOS, and linux!"}, {"post_id": 77377, "ts": "2026-10-06T18:19:27Z", "hours": 1.1767, "text": "vroom vroom, Devlog 10.5: debugging dewormers this is a short one, just added a few visual debuggers in live stream mode in case of unexpected inchidents during live testing. i really dont have a good image for this devlog, so take the countdown to the day in which the f1 gods will decide to either keep me alive or to kill me."}, {"post_id": 77214, "ts": "2026-10-06T03:39:52Z", "hours": 5.4253, "text": "vroom vroom, Devlog 10: ITS LIGHTS OUT AND AWAY WE GO (untested) pt.2 yes im very creative with my devlog names and like in pt.1, ive just finished my longest work session EVER. but the process sure makes it worth it. first and foremost, the electron stuff is ready, so P1xp is now capable of invading your desktop! isnt that so cool? the new live session data fetcher is now ready to be tested! its, in short, a signalR core client in the electron main process that connects straight to f1’s own live timing feed, which is hosted in their servers. unlike openf1, this one is free and requires no account to access live data. due to f1’s feed being completely different from openf1’s as it sends partial deltas (so one driver and one field at a time), a naive merge wipes data it didnt mention. so, ive created a new converter that keeps a cache per driver and always emits complete rows, so the timing tower, track map, radio, and race control panes all project live data without a single change to any of them directly. in demo mode, the circuit outline for the track map comes from replaying a lap of position data. when live, theres no history. instead, the app accumulates each car’s trail as it goes and draws the whole circuit in roughly the first minute of running. IN THEORY (again), this should be a definite, fully functional build of P1xp. like before, i still need to test it live, so this week’s singapore gp will be my new test dummy. i created a recorder in the client thats capable of dumping every raw frame f1 sends to a file, plus a tool that reads a recording back and summarises what arrived. this allows me to have a recorded copy of singapore fp1 i can use as a permanent test fixture in case something doesnt work as intended during live testing. i really hope this works, im slowly going insane…"}, {"post_id": 76878, "ts": "2026-10-04T22:16:21Z", "hours": 4.5525, "text": "vroom vroom, Devlog 9: WE’RE BACK TO RACING!! so since i’ve only been able to work in short bursts of time over the past few days, progress had been very slow and not very devlog worthy, until today! i’ve been working on getting the most important OpenF1-dependent items to work offline, so in case of request blocks, they can still work just fine. this includes mainly the season calendar and the demo. the calendar now gets cached in storage for offline access. it is also able to update its contents by fetching from OpenF1 when possible, which helps make it proof to unexpected race calendar changes. for the demo, i created a .MJS file to create a .JSON file that saves the data from silverstone 2025 used in the demo. this allows the demo to always run offline and separate from openf1, instead of fetching data every time its used. this also allows the demo to run waaay faster than before, and makes it always available, even when openf1 blocks access to historical data when a live session is active. as a bonus, i also fixed the timing tower to actually differentiate between a race and practices/qualis, so for the latter it orders positions by best lap and show gaps to pole instead of race intervals, which are used for just the race itself. next up, i need to prepare the electron scaffolding for the app, as in order to fetch live data from F1 directly i need it to run as a desktop app. F1’s server doesnt send CORS headers, so browsers refuse to read it, but CORS is a browser rule, and electron’s main process is just node, so this allows a desktop app to connect where a webpage cant. and i need this to actually get the live session feed working, cuz as i said before… you mean i cant see LIVE data in the f1 LIVE experience app?! what kind of scam is this?!?!"}, {"post_id": 74717, "ts": "2026-09-28T02:04:18Z", "hours": 2.0064, "text": "vroom vroom, Devlog 8: HOW CAN YOU BE SO USELESS MAN?!?! pt.2 im backk! well technically ive been working a bit this whole time ive just not devlogged yet, so its time to report what has happened in the past few days! so as i mentioned last time, i tried to test with baku fp3, quali, and race, but my plan got cut short right in fp3. sooo due to my bad habit of not investigating deeply and not reading details, i didnt realize that OpenF1 doesnt give out LIVE session data to non-authorized users just historical data, which means there’s a paywall, stardance’s biggest enemy … soo effectively the project became useless in its current state. to add insult to injury, OpenF1 blocks all non-authorized requests to their servers when there’s a live session going on, so the whole app stops working when a live session begins lol you mean i cant see LIVE data in the f1 LIVE experience app?! what kind of scam is this?!?! if i had just investigated a bit further i would have found out that F1 themselves give out live session data for free. thing is, i can’t fetch this through web, so i will have to lock the app to desktop upon release. as for what ive actually done until now, i created a .json that saves the 2026 & 2027 calendars locally so it can fallback to that version when OpenF1 locks their servers and the home menu stops fetching data from them directly. this .json will also be capable of updating its contents when its fetching live from OpenF1, so in case of small inchidents (ahem war) that cause a race to be cancelled or changed of location (i sure love the bahrain gp in malaysia), the local calendar.json can update."}, {"post_id": 73429, "ts": "2026-09-25T02:20:58Z", "hours": 4.8192, "text": "vroom vroom, Devlog 7: ITS LIGHTS OUT AND AWAY WE GO (untested) FINALLYYY, after my longest work session ever, I got the live f1 session stream working*, with all the features i previously mentioned (time and position tower with wheel stats, race control, track map, team radios, and allocated space for F1 TV live stream if you are a subscriber)! *: the live stream was tested using past race data from silverstone 2025 (you can demo test the stream with the same data using the Demo option). It fetches the most eventful 10 minutes from this race, and plays them at 3x speed, so you can test most of the live stream features in less than 6 minutes! I still have to test the live stream with actual live session data from OpenF1, so i’ll use baku FP3, quali, and race to do this. You can join the testing and try P1xp out for the first time too, as all these changes are now public in the github pages deployment! If everything goes well during live testing, this version will be shipped! We’re so closeee!"}, {"post_id": 72533, "ts": "2026-09-23T04:47:23Z", "hours": 3.7092, "text": "vroom vroom, Devlog 6: less is more not a lot of visible progress today, but certainly a bunch of invisible developments! so most of the backend javascript scripts for the livestream session components (time and position tower, session data logger, track map) were programmed today. The possibility for a livestream demo was also added, to make it possible to test the livestream display screen even when a live f1 session isn’t going on at that time. This demo uses Silverstone 2025 for its race data, as it was quite a interesting and complete race with most of the data points that can be demoed and displayed by P1xp. tomorrow, i’ll edit and prepare the main 3 files (index.html, style.css, main.js) to use these scripts so these features can be deployed. i mean, its like the main selling point it would be outrageous if they weren’t available by the time baku fp1 starts, right? …right?"}, {"post_id": 72093, "ts": "2026-09-22T04:47:14Z", "hours": 1.0178, "text": "vroom vroom, Devlog 5: IMAGESSS!! so although once again my schedule really limited what i was able to do today, i was able to keep my promise and now there’s track display images in the countdown! woww so cool! added images for the tracks in the 2026 & 2027 calendars."}, {"post_id": 71589, "ts": "2026-09-21T03:28:01Z", "hours": 1.7422, "text": "vroom vroom: Devlog 4: hi starvulkan, my name is progress! i finally locked in and finished the stylesheet from its incomplete state, which means we have the first functioning deploy up now! tomorrow’s mission is to get good-looking track images for the big blank space on top of the countdown. i mean, its screaming to put an image on it!"}, {"post_id": 70956, "ts": "2026-09-20T03:08:22Z", "hours": 1.9233, "text": "vroom vroom, Devlog 3: wow… its… incomplete?!? yeaaa so due to my very fun schedule i didnt finish what i had intended to do today… i did finish index.html and the main JS script, so 2/3 ig! i really could only start the css stylesheet due to time, so im hopefully finishing that tomorrow, as well as actually testing if what i already did um… works. if everything goes well, the first actual deployed build should be up by tomorrow, so lets hope for the best! no updates to the github repo today, i want to finish these 3 fully first before committing and pushing."}, {"post_id": 70417, "ts": "2026-09-19T04:39:41Z", "hours": 1.2761, "text": "vroom vroom, Devlog 2: how can you be so useless man?! yeaa so my school made my free time vanish by adding so much stuff to do out of the blue, so yeaa kinda didnt do much today lol most importantly, the JavaScript base for the first time setup got done today, so thats something i guess… if my schedule allows it tomorrow i should start working on, yk, the actual main stuff (index.html, main.js, and style.css stuff). also i need to fix the currently broken deploy, as i have not updated the main files from their original vite templates state."}, {"post_id": 69961, "ts": "2026-09-18T04:04:00Z", "hours": 1.3525, "text": "vroom vroom, Devlog 1: the fun stuff so the idea for P1xp is to provide an unique way to experience F1, right from your pc. using data from openF1, it can show data like track info, current session positions, conditions, etc. If you are an F1 TV user (you’ll be able to determine all this through first time settings), you’ll get an allocated space in the app to place your F1 TV window to watch both the live stream and the session data simultaneously. if you are a F1 TV Premium user, you’ll also get a double allocated space to place the onboard cam for your favorite driver (also chosen through first time settings, this will matter for theming!). and speaking of theming, the app will offer multiple app themes and skins based on your favorite team chosen! today i did the vite scaffolding and the other fun environment setups and configs, and i programmed the JS controllers and bones for the team themes and the session schedules. it got too late to keep working on the rest, and i have homeworks to do soooo… i’ll work on the main functionality stuff tomorrow once im recharged lol. i need to get this app working before next thursday cuz the last F1 race weekend before Stardance ends is next week (welcome to skibidi toilet baku my dudesss 🔥🔥🔥) and after that its gonna be basically impossible to test the app. so yea i have a week to finish this! time to speedrunnnn"}]...
|
Title: P1ˣᵖ by @starvulkan | Stardance
Devlogs:
v Title: P1ˣᵖ by @starvulkan | Stardance
Devlogs:
vroom vroom, Devlog 1: the fun stuff so the idea for P1xp is to provide an unique way to experience F1, right from your pc. using data from openF1, it can show data like track info, current session positions, conditions, etc. If you are an F1 TV user (you’ll be able to determine all this through first time settings), you’ll get an allocated space in the app to place your F1 TV window to watch both the live stream and the session data simultaneously. if you are a F1 TV Premium user, you’ll also get a double allocated space to place the onboard cam for your favorite driver (also chosen through first time settings, this will matter for theming!). and speaking of theming, the app will offer multiple app themes and skins based on your favorite team chosen! today i did the vite scaffolding and the other fun environment setups and configs, and i programmed the JS controllers and bones for the team themes and the session schedules. it got too late to keep working on the rest, and i have homeworks to do soooo… i’ll work on the main functionality stuff tomorrow once im recharged lol. i need to get this app working before next thursday cuz the last F1 race weekend before Stardance ends is next week (welcome to skibidi toilet baku my dudesss 🔥🔥🔥) and after that its gonna be basically impossible to test the app. so yea i have a week to finish this! time to speedrunnnn
vroom vroom, Devlog 2: how can you be so useless man?! yeaa so my school made my free time vanish by adding so much stuff to do out of the blue, so yeaa kinda didnt do much today lol most importantly, the JavaScript base for the first time setup got done today, so thats something i guess… if my schedule allows it tomorrow i should start working on, yk, the actual main stuff (index.html, main.js, and style.css stuff). also i need to fix the currently broken deploy, as i have not updated the main files from their original vite templates state.
vroom vroom, Devlog 3: wow… its… incomplete?!? yeaaa so due to my very fun schedule i didnt finish what i had intended to do today… i did finish index.html and the main JS script, so 2/3 ig! i really could only start the css stylesheet due to time, so im hopefully finishing that tomorrow, as well as actually testing if what i already did um… works. if everything goes well, the first actual deployed build should be up by tomorrow, so lets hope for the best! no updates to the github repo today, i want to finish these 3 fully first before committing and pushing.
vroom vroom: Devlog 4: hi starvulkan, my name is progress! i finally locked in and finished the stylesheet from its incomplete state, which means we have the first functioning deploy up now! tomorrow’s mission is to get good-looking track images for the big blank space on top of the countdown. i mean, its screaming to put an image on it!
vroom vroom, Devlog 5: IMAGESSS!! so although once again my schedule really limited what i was able to do today, i was able to keep my promise and now there’s track display images in the countdown! woww so cool! added images for the tracks in the 2026 & 2027 calendars.
vroom vroom, Devlog 6: less is more not a lot of visible progress today, but certainly a bunch of invisible developments! so most of the backend javascript scripts for the livestream session components (time and position tower, session data logger, track map) were programmed today. The possibility for a livestream demo was also added, to make it possible to test the livestream display screen even when a live f1 session isn’t going on at that time. This demo uses Silverstone 2025 for its race data, as it was quite a interesting and complete race with most of the data points that can be demoed and displayed by P1xp. tomorrow, i’ll edit and prepare the main 3 files (index.html, style.css, main.js) to use these scripts so these features can be deployed. i mean, its like the main selling point it would be outrageous if they weren’t available by the time baku fp1 starts, right? …right?
vroom vroom, Devlog 7: ITS LIGHTS OUT AND AWAY WE GO (untested) FINALLYYY, after my longest work session ever, I got the live f1 session stream working*, with all the features i previously mentioned (time and position tower with wheel stats, race control, track map, team radios, and allocated space for F1 TV live stream if you are a subscriber)! *: the live stream was tested using past race data from silverstone 2025 (you can demo test the stream with the same data using the Demo option). It fetches the most eventful 10 minutes from this race, and plays them at 3x speed, so you can test most of the live stream features in less than 6 minutes! I still have to test the live stream with actual live session data from OpenF1, so i’ll use baku FP3, quali, and race to do this. You can join the testing and try P1xp out for the first time too, as all these changes are now public in the github pages deployment! If everything goes well during live testing, this version will be shipped! We’re so closeee!
vroom vroom, Devlog 8: HOW CAN YOU BE SO USELESS MAN?!?! pt.2 im backk! well technically ive been working a bit this whole time ive just not devlogged yet, so its time to report what has happened in the past few days! so as i mentioned last time, i tried to test with baku fp3, quali, and race, but my plan got cut short right in fp3. sooo due to my bad habit of not investigating deeply and not reading details, i didnt realize that OpenF1 doesnt give out LIVE session data to non-authorized users just historical data, which means there’s a paywall, stardance’s biggest enemy … soo effectively the project became useless in its current state. to add insult to injury, OpenF1 blocks all non-authorized requests to their servers when there’s a live session going on, so the whole app stops working when a live session begins lol you mean i cant see LIVE data in the f1 LIVE experience app?! what kind of scam is this?!?! if i had just investigated a bit further i would have found out that F1 themselves give out live session data for free. thing is, i can’t fetch this through web, so i will have to lock the app to desktop upon release. as for what ive actually done until now, i created a .json that saves the 2026 & 2027 calendars locally so it can fallback to that version when OpenF1 locks their servers and the home menu stops fetching data from them directly. this .json will also be capable of updating its contents when its fetching live from OpenF1, so in case of small inchidents (ahem war) that cause a race to be cancelled or changed of location (i sure love the bahrain gp in malaysia), the local calendar.json can update.
vroom vroom, Devlog 9: WE’RE BACK TO RACING!! so since i’ve only been able to work in short bursts of time over the past few days, progress had been very slow and not very devlog worthy, until today! i’ve been working on getting the most important OpenF1-dependent items to work offline, so in case of request blocks, they can still work just fine. this includes mainly the season calendar and the demo. the calendar now gets cached in storage for offline access. it is also able to update its contents by fetching from OpenF1 when possible, which helps make it proof to unexpected race calendar changes. for the demo, i created a .MJS file to create a .JSON file that saves the data from silverstone 2025 used in the demo. this allows the demo to always run offline and separate from openf1, instead of fetching data every time its used. this also allows the demo to run waaay faster than before, and makes it always available, even when openf1 blocks access to historical data when a live session is active. as a bonus, i also fixed the timing tower to actually differentiate between a race and practices/qualis, so for the latter it orders positions by best lap and show gaps to pole instead of race intervals, which are used for just the race itself. next up, i need to prepare the electron scaffolding for the app, as in order to fetch live data from F1 directly i need it to run as a desktop app. F1’s server doesnt send CORS headers, so browsers refuse to read it, but CORS is a browser rule, and electron’s main process is just node, so this allows a desktop app to connect where a webpage cant. and i need this to actually get the live session feed working, cuz as i said before… you mean i cant see LIVE data in the f1 LIVE experience app?! what kind of scam is this?!?!
vroom vroom, Devlog 10: ITS LIGHTS OUT AND AWAY WE GO (untested) pt.2 yes im very creative with my devlog names and like in pt.1, ive just finished my longest work session EVER. but the process sure makes it worth it. first and foremost, the electron stuff is ready, so P1xp is now capable of invading your desktop! isnt that so cool? the new live session data fetcher is now ready to be tested! its, in short, a signalR core client in the electron main process that connects straight to f1’s own live timing feed, which is hosted in their servers. unlike openf1, this one is free and requires no account to access live data. due to f1’s feed being completely different from openf1’s as it sends partial deltas (so one driver and one field at a time), a naive merge wipes data it didnt mention. so, ive created a new converter that keeps a cache per driver and always emits complete rows, so the timing tower, track map, radio, and race control panes all project live data without a single change to any of them directly. in demo mode, the circuit outline for the track map comes from replaying a lap of position data. when live, theres no history. instead, the app accumulates each car’s trail as it goes and draws the whole circuit in roughly the first minute of running. IN THEORY (again), this should be a definite, fully functional build of P1xp. like before, i still need to test it live, so this week’s singapore gp will be my new test dummy. i created a recorder in the client thats capable of dumping every raw frame f1 sends to a file, plus a tool that reads a recording back and summarises what arrived. this allows me to have a recorded copy of singapore fp1 i can use as a permanent test fixture in case something doesnt work as intended during live testing. i really hope this works, im slowly going insane…
vroom vroom, Devlog 10.5: debugging dewormers this is a short one, just added a few visual debuggers in live stream mode in case of unexpected inchidents during live testing. i really dont have a good image for this devlog, so take the countdown to the day in which the f1 gods will decide to either keep me alive or to kill me.
vroom vroom, Devlog 11: short n’ sweet short work session today i added an offline fallback to the drivers list in setup, as that was the only openf1-dependent item that still didnt have a fallback. it is also capable of self-updating. most importantly tho, i packaged the app itself! runners and installers are now available in the github repo (pre-release tag DEV_0.1.0), so feel free to try them out and to help out identifying bugs during the live testing this week in singapore! available for windows, macOS, and linux!
vroom vroom, Devlog 11.5: get lance strolled so major oversight, two issues that i completely forgot to fix before packaging came to my mind again. specifically: 1. the app was incapable of entering live mode on a fresh install during race weekend, cuz the cache was never created. 2. in case of a delay, cuz the live mode timer follows the predicted end time, the app would exit live mode before the session itself actually finished. these two are now fixed. now, the schedule comes bundled with the build, and proper processing in case of delay was added, only downside is that the app will take long to exit live mode, as it will stay waiting for signals after a session finishes, as this is the sacrifice to avoid, yk, leaving the whole session while its going on! installers for this build (DEV_0.1.1) are also now available in the repo. we will be back in 3 hours…
vroom vroom, Devlog 12: post-singapore fp1 testing! WOW THE THING THAT DOES THE LIVE THING WORKS (kinda ig but YAYY nonetheless i wont have to experience more unnecessary mental decay !! ) had to fix a few things, some are bigger issues than others but i think i have permanent solutions for those (hopefully)! as described in the new github repo pre-release (tag DEV_0.2.0), main changes include: updates to the track map (had rendering issues and is incapable of projecting driver position dots without a F1 TV subscription token, so it’s stuck as a simple track map for now, I might add the option to connect to your F1 TV subscription in a future update). driver acronym fix (due to update overwrite blanking the driver acronyms were turning into their number fallbacks mid-session). proper session ending (now you should NOT have to wait an eternity for the app to leave live mode after a session ends, i hope!). i really didnt feel like writing another explanation for that lol ive barely slept tonight and sprint quali is in about 40 mins, so yea no more sleeping for me yayyy endme . so yea, its time for testing round 2! lets see how that goes.
vroom vroom, Devlog 13: post-singapore sprint quali testing! basically every feature worked during this test, but at the end of SQ2 the app decided to kill my hopes and dreams by exiting live mode mid-session, but i think ive found the fix (hopefully). once again, since ive not slept for over 30 hours atp, i am too tired to rewrite a new explanation for all the changes i did during this time period, so imma think smarter, not harder by recycling my very good and thorough explanation i used for the github release notes lol these are the changes and updates in this new build (DEV_0.3.0): 1. Instead of using an automatic switcher (which proved to give lots of errors) to switch between live mode and countdown, now you can enter/exit live mode through a button (when there’s an ongoing live session). 2. lap counter for races & sprints (only available in live mode). 3. Track map and live mode changes & updates (using MultiView’s API): better circuit outlines and color change for better visibility, track map broadcast orientation, numbered corners, sector flag zones, and pit loss with safety car and VSC figures. and yea, that’s that! now imma go get some real good sleep before waking up at 3 am AGAIN to test with the sprint race why do i do this to myself
vroom vroom, Devlog 14: WE’RE NEARLY THEREEE!! im sooo closee to finishing this projectt! im actually soo happy with how things are coming along! although working on this messed up my sleep schedule very badly its really all been worth it. singapore quali testing went better than i expected, with the issues really just being the join live button hiding behind the hero cuz i forgot how to do basic css and the session end and live mode exit feeling very jarring as it ended immediately when the session ended, which combined with the F1 TV broadcast being off by aprox. 30 seconds, made the transition feel off. both of these have been fixed (more info below)! once again, im too tired to write another explanation for all the changes and updates i did, so its time to let github release notes me speak lol updates and changes in this build (tag 1.0.0-beta) 1. After a session ends, the app no longer leaves live mode immediately, rather it freezes final data (after 5 mins of wait to ensure all data is final) and waits until the user manually clicks exit live. this is to avoid the transition from live mode back to countdown from being very jarring, especially considering that F1 TV stream is delayed by a varying number of seconds. 2. added car status badges in the tower (these indicate if a car/driver is out, retired, in pit, or eliminated, and greys them out accordingly)! 3. animations in the tower! these indicate when a driver changes positions (either by overtaking/getting overtaken in race/sprint, or setting faster laps in practice/qualis). by obvious reasons, these project better in live mode than in demo mode (the whole thing is sped up x3, its an animation party lol). also didnt mention this in github but i added an about button in the app so its easier to find the build version yes you heard that right, this aint a DEV build, im confident enough in this build to finally upgrade the app to beta! if everything goes well tomorrow during the race, im finally releasing v1 and shipping this project! and if you ask why i just tested with quali and not with the sprint as i promised, eeeeh i may or may not have completely missed my alarm and slept through the sprint… DONT BLAME ME IM TIRED AF
vroom vroom, Devlog 15: STARVULKAN WINS THE MENTAL SANITY GRAND PRIX ! guysss FINALLYY, after weeks and weeks of slowly decaying into insanity, i’ve FINALLYY finished this very cool and amazing project!! im so happy with how things came along at the end, and I hope y’all can enjoy this silly little F1 project! testing during the race went as smooth the smooth operator 55 himself before 2026, with basically one lone issue, that being the app struggling to refresh the race weekend post race (throughout the whole developing process my biggest enemy was that ending transition huh). that’s now fixed, it now uses storage to know if to refresh. wrote the whole readme today as well, by far the most effort i’ve ever made for a readme, but i had to cuz this project means quite a lot to me. and as a final feature, cuz if i didnt i would get exterminated from this planet by the copyright agents, i added the possibility for you to choose your track images for the hero! since i had to delete the hero images that came bundled before cuz copyright and redistribution and stuff, the app, by default, now comes with no hero image, just a silly gradient. you, the user, now have the power of choosing the circuit hero image, bring your own from whatever source! details on how to do this in the readme! and yea! like that, i’m finally shipping this project of mine! thanks to y’all that have followed the whole development process and my (alleged) suffering and gave your amazing support! it truly means a lot to me 💖.
Ships:
P1xp!...
|
1793058721.8959944
|
1793145121.8959944
|
|
69063
|
CyberDeck by @Grant19 | Stardance
|
Grant19
|
0
|
1.38
|
0
|
[]
|
[{"post_id": 78922, "ts": "202 [{"post_id": 78922, "ts": "2026-10-12T01:53:57Z", "hours": 0.5167, "text": "Lots of modeling, and planning, still looking for feedback, ideas welcome. This is what im thinking Right now"}, {"post_id": 78506, "ts": "2026-10-11T00:51:43Z", "hours": 0.8667, "text": "Started my Cyberdeck! Did part of the 3d model, if anyone has ideas for software for it or ideas message feel free to comment (I also planned and brainstormed, it didnt take me an hour to model just that)"}]...
|
Title: CyberDeck by @Grant19 | Stardance
Devlogs: Title: CyberDeck by @Grant19 | Stardance
Devlogs:
Started my Cyberdeck! Did part of the 3d model, if anyone has ideas for software for it or ideas message feel free to comment (I also planned and brainstormed, it didnt take me an hour to model just that)
Lots of modeling, and planning, still looking for feedback, ideas welcome. This is what im thinking Right now...
|
1793130500.8118684
|
1793735300.8118684
|
|
35278
|
Chess Bot by @akshayK | Stardance
|
akshayK
|
1
|
26.0
|
192
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-12T02:24:30Z", "hours": 26.0, "multiplier": 7.28, "payout": 192, "blessing": "neutral", "text": "This is a browser based chess engine, where you can play against a bot that I made. You can play with both the white and the black pieces. One challenge that was hard to fix was making the chessboard appear. I spend well over 2 hours trying to make it appear, and I finally got it to work because my CDN was not properly configured, and the one I downloaded was not the right version. I am proud of actually getting the chess bot to work, let alone making it to the point where it can actually beat me, and other bots on chess.com. You can play against this by going to the releases page and downloading the zip file. The index.html file houses the webpage where you can play against the chess bot. Good luck on beating my chess bot! (and don’t use stockfish :) )", "repo": "https://github.com/AkshayK-960/chessbot/", "demo": "https://chessbot-pi.vercel.app/"}]...
|
[{"post_id": 78925, "ts": "202 [{"post_id": 78925, "ts": "2026-10-12T02:05:25Z", "hours": 1.7031, "text": "Devlog #8 I finally implemented playing both white and black for the chess bot! So, I think it is pretty much done. I also updated the README.md on Github so it aligns more with what actual readme files look like, and i polished some code so it is easier to tweak in case anyone wanted to do that. (everything is in script.js) Overall, I think this was a really fun journey and I definitely learned a lot about javascript, and about creating something efficient and fast. So, that’s pretty much it, you can play the bot on github, and I published a release for the chess bot. Have fun!"}, {"post_id": 73826, "ts": "2026-09-26T03:25:31Z", "hours": 1.2069, "text": "Devlog 7 I am finishing up the HTML layout and the content for my project, and I just now realized that the chessbot is broken again ;( So for the weekend, my first task will be to fix that (probably by getting the code from previous versions of the chess bot) and maybe some finshing touches on the CSS. I still haven’t writtin the README file yet. I will get to it soon. By the time I’m posting this, there are about 5 days until the deadline, so that would probably be one of the final things to add. PS: if you are close to done with your project, this is your reminder to lock in and ship the project, good luck :) Also the image is the website not working 😢"}, {"post_id": 66852, "ts": "2026-09-12T19:36:32Z", "hours": 1.5772, "text": "DEVLOG 6 I changed the CSS around a little bit, because it looked basic. Now, the website has a paper theme, so it looks easier on the eyes. I really like this theme because it looks polished (the chess board isn’t working in the picture, i’m working on fixing it.) The analysis link now works, and by clicking it, it redirects you to a lichess analysis board of the current game. The page looks plain, so if there is something I should add, you can tell me below. the only things I really need to add now is an option to play with the black pieces AND maybe add more in the “how it works’ section."}, {"post_id": 63645, "ts": "2026-09-07T15:51:35Z", "hours": 5.2158, "text": "Devlog 5 I finished implementing a new bitboard engine, since the old chess.js library was really slow, and it froze the screen. ALSO, the github link was not displaying the chessboard, and i spent well over 2 hours trying to debug this. But in the end, the chess bot would not work correctly if the board appears in the github website. So, for now, if you want to test the chess bot, you can click releases in the github and download & run the HTML file. I plan to let the player play the black side too, instead of only white. (I will update the github repo soon so there is an option to download) P.S. You can change the background image in the code, and I might make an option to change the image in the website soon)"}, {"post_id": 46658, "ts": "2026-08-14T02:43:57Z", "hours": 6.5964, "text": "Devlog #4 It’s been a while, but I’ve finally (mostly) finished with coding the chess bot. I might go back to it soon, but I want to focus more on the visuals, so I made a simple UI based on the chess.com/lichess layout. I also made it so you can customize the background by entering the image URL. I also implemented an evaluation engine (with a low depth) for a numerical value of the position on board. I wanted a higher evaluation depth, but it lags whenever it calculates the score. So, it should be either depth 2 or 3, even if the actual bot is thinking deeper. If you have any suggestions, you can comment them, and I will try to add them."}, {"post_id": 42290, "ts": "2026-08-06T22:35:01Z", "hours": 3.2325, "text": "Devlog 3: By now, I’ve realized that the github pages doesn’t work. :( But, I’m trying to fix it as of now. (You can download the github project and it works that way though) As for the actual game, I have improved it so that instead of a set depth, it searches for the best move for a set amount of time, and if there is still time left over from the search, it increases its depth by 1, and searches one more move deep. It normally searches 3-5 moves deep on my PC and ~3 moves on my chromebook. I tested it against the chess.com bots, and it beats the beginner and intermediate bots pretty consistently. I also played it against Wendy bot (1500 elo) and it won! (I did not expect it to win) Here’s the game, if anyone wants to analyze it themselves: [Event “Play vs Bot”] [Site “Chess.com”] [Date “2026.08.06”] [Round “-”] [White “Wendy-BOT”] [Black “Chess-Bot(Stardance)”] [Result “0-1”] [CurrentPosition “5k2/pp4R1/6P1/3pB3/4b2P/7K/1P4q1/8 w - - 11 52”] [Timezone “UTC”] [ECO “C61”] [ECOUrl “https://www.chess.com/openings/Ruy-Lopez-Opening-Birds-Defense-4.Nxd4-exd4-5.O-O”] [UTCDate “2026.08.06”] [UTCTime “21:56:10”] [WhiteElo “1500”] [BlackElo “172”] [TimeControl “?”] [Termination “Akshay Kommoju won by checkmate”] [StartTime “21:56:10”] [EndDate “2026.08.06”] [EndTime “22:16:01”] [Link “https://www.chess.com/analysis/game/computer/1894651872/review?move=27”] [WhiteUrl “https://images.chesscomfiles.com/uploads/v1/user/66746050.adfcf725.50x50o.d52666e0e879.png”] [WhiteCountry “3”] [WhiteTitle “”] [BlackUrl “https://www.chess.com/bundles/web/images/noavatar_l.84a92436.gif”] [BlackCountry “69”] [BlackTitle “”] e4 e5 2. Nf3 Nc6 3. Bb5 Nd4 4. Nxd4 exd4 5. O-O Qg5 6. Bd3 Nf6 7. f4 Qh4 8. e5 Nd5 9. Qf3 Nb6 10. c3 dxc3 11. Nxc3 Bc5+ 12. Kh1 O-O 13. Ne4 Bd4 14. g3 Qe7 15. Ng5 h6 16. Qe4 f5 17. Qxd4 hxg5 18. fxg5 c5 19. Qf4 Nd5 20. Bc4 Qe6 21. Bxd5 Qxd5+ 22. Rf3 Re8 23. d4 cxd4 24. Qxf5 d6 25. e6 Bxe6 26. Qd3 Bg4 27. Kg2 Bxf3+ 28. Kf2 Bh1 29. Qb3 Qxb3 30. axb3 d5 31. Bf4 Be4 32. Rd1 d3 33. h4 Re6 34. Rc1 Rb6 35. Ke3 Rxb3 36. Be5 Rf8 37. Rc7 Rf3+ 38. Kd2 Rf2+ 39. Ke1 d2+ 40. Kxf2 d1=Q 41. Rxg7+ Kf8 42. g6 Rf3+ 43. Kg2 Rf4+ 44. Kh3 Qf1+ 45. Kh2 Rxh4+ 46. gxh4 Qh1+ 47. Kg3 Qf3+ 48. Kh2 Qh1+ 49. Kg3 Qf3+ 50. Kh2 Qf2+ 51. Kh3 Qg2# 0-1"}, {"post_id": 36613, "ts": "2026-07-28T20:41:36Z", "hours": 4.7978, "text": "I finally coding a basic bot that plays against you. This plays legal moves, and has a move depth of 3. I implemented minimax and piece square tables, so it would play better moves quickly. There is also an option to export the game as a pgn or fen, so you can evaluate the chess bot as well as your accuracy. currently, even with move depth 3, it is slow, especially when there are a lot of moves it has to sort through, and I want to make it so the algorithm works faster, even on lower end devices. Also, the algorithm is pretty bad, (it got about 75% accuracy on chess.com analysis) so I also plan on improving it in the future."}, {"post_id": 28656, "ts": "2026-07-15T01:20:40Z", "hours": 2.0831, "text": "Devlog #1 My first goal in building a chess bot is to code the board and defining the rules. I used chessboard.js to make the board, and I will later implement rules, so both sides can only play legal moves, and also castling, en passant, etc."}]...
|
Title: Chess Bot by @akshayK | Stardance
Devlogs: Title: Chess Bot by @akshayK | Stardance
Devlogs:
Devlog #1 My first goal in building a chess bot is to code the board and defining the rules. I used chessboard.js to make the board, and I will later implement rules, so both sides can only play legal moves, and also castling, en passant, etc.
I finally coding a basic bot that plays against you. This plays legal moves, and has a move depth of 3. I implemented minimax and piece square tables, so it would play better moves quickly. There is also an option to export the game as a pgn or fen, so you can evaluate the chess bot as well as your accuracy. currently, even with move depth 3, it is slow, especially when there are a lot of moves it has to sort through, and I want to make it so the algorithm works faster, even on lower end devices. Also, the algorithm is pretty bad, (it got about 75% accuracy on chess.com analysis) so I also plan on improving it in the future.
Devlog 3: By now, I’ve realized that the github pages doesn’t work. :( But, I’m trying to fix it as of now. (You can download the github project and it works that way though) As for the actual game, I have improved it so that instead of a set depth, it searches for the best move for a set amount of time, and if there is still time left over from the search, it increases its depth by 1, and searches one more move deep. It normally searches 3-5 moves deep on my PC and ~3 moves on my chromebook. I tested it against the chess.com bots, and it beats the beginner and intermediate bots pretty consistently. I also played it against Wendy bot (1500 elo) and it won! (I did not expect it to win) Here’s the game, if anyone wants to analyze it themselves: [Event “Play vs Bot”] [Site “Chess.com”] [Date “2026.08.06”] [Round “-”] [White “Wendy-BOT”] [Black “Chess-Bot(Stardance)”] [Result “0-1”] [CurrentPosition “5k2/pp4R1/6P1/3pB3/4b2P/7K/1P4q1/8 w - - 11 52”] [Timezone “UTC”] [ECO “C61”] [ECOUrl “https://www.chess.com/openings/Ruy-Lopez-Opening-Birds-Defense-4.Nxd4-exd4-5.O-O”] [UTCDate “2026.08.06”] [UTCTime “21:56:10”] [WhiteElo “1500”] [BlackElo “172”] [TimeControl “?”] [Termination “Akshay Kommoju won by checkmate”] [StartTime “21:56:10”] [EndDate “2026.08.06”] [EndTime “22:16:01”] [Link “https://www.chess.com/analysis/game/computer/1894651872/review?move=27”] [WhiteUrl “https://images.chesscomfiles.com/uploads/v1/user/66746050.adfcf725.50x50o.d52666e0e879.png”] [WhiteCountry “3”] [WhiteTitle “”] [BlackUrl “https://www.chess.com/bundles/web/images/noavatar_l.84a92436.gif”] [BlackCountry “69”] [BlackTitle “”] e4 e5 2. Nf3 Nc6 3. Bb5 Nd4 4. Nxd4 exd4 5. O-O Qg5 6. Bd3 Nf6 7. f4 Qh4 8. e5 Nd5 9. Qf3 Nb6 10. c3 dxc3 11. Nxc3 Bc5+ 12. Kh1 O-O 13. Ne4 Bd4 14. g3 Qe7 15. Ng5 h6 16. Qe4 f5 17. Qxd4 hxg5 18. fxg5 c5 19. Qf4 Nd5 20. Bc4 Qe6 21. Bxd5 Qxd5+ 22. Rf3 Re8 23. d4 cxd4 24. Qxf5 d6 25. e6 Bxe6 26. Qd3 Bg4 27. Kg2 Bxf3+ 28. Kf2 Bh1 29. Qb3 Qxb3 30. axb3 d5 31. Bf4 Be4 32. Rd1 d3 33. h4 Re6 34. Rc1 Rb6 35. Ke3 Rxb3 36. Be5 Rf8 37. Rc7 Rf3+ 38. Kd2 Rf2+ 39. Ke1 d2+ 40. Kxf2 d1=Q 41. Rxg7+ Kf8 42. g6 Rf3+ 43. Kg2 Rf4+ 44. Kh3 Qf1+ 45. Kh2 Rxh4+ 46. gxh4 Qh1+ 47. Kg3 Qf3+ 48. Kh2 Qh1+ 49. Kg3 Qf3+ 50. Kh2 Qf2+ 51. Kh3 Qg2# 0-1
Devlog #4 It’s been a while, but I’ve finally (mostly) finished with coding the chess bot. I might go back to it soon, but I want to focus more on the visuals, so I made a simple UI based on the chess.com/lichess layout. I also made it so you can customize the background by entering the image URL. I also implemented an evaluation engine (with a low depth) for a numerical value of the position on board. I wanted a higher evaluation depth, but it lags whenever it calculates the score. So, it should be either depth 2 or 3, even if the actual bot is thinking deeper. If you have any suggestions, you can comment them, and I will try to add them.
Devlog 5 I finished implementing a new bitboard engine, since the old chess.js library was really slow, and it froze the screen. ALSO, the github link was not displaying the chessboard, and i spent well over 2 hours trying to debug this. But in the end, the chess bot would not work correctly if the board appears in the github website. So, for now, if you want to test the chess bot, you can click releases in the github and download & run the HTML file. I plan to let the player play the black side too, instead of only white. (I will update the github repo soon so there is an option to download) P.S. You can change the background image in the code, and I might make an option to change the image in the website soon)
DEVLOG 6 I changed the CSS around a little bit, because it looked basic. Now, the website has a paper theme, so it looks easier on the eyes. I really like this theme because it looks polished (the chess board isn’t working in the picture, i’m working on fixing it.) The analysis link now works, and by clicking it, it redirects you to a lichess analysis board of the current game. The page looks plain, so if there is something I should add, you can tell me below. the only things I really need to add now is an option to play with the black pieces AND maybe add more in the “how it works’ section.
Devlog 7 I am finishing up the HTML layout and the content for my project, and I just now realized that the chessbot is broken again ;( So for the weekend, my first task will be to fix that (probably by getting the code from previous versions of the chess bot) and maybe some finshing touches on the CSS. I still haven’t writtin the README file yet. I will get to it soon. By the time I’m posting this, there are about 5 days until the deadline, so that would probably be one of the final things to add. PS: if you are close to done with your project, this is your reminder to lock in and ship the project, good luck :) Also the image is the website not working 😢
Devlog #8 I finally implemented playing both white and black for the chess bot! So, I think it is pretty much done. I also updated the README.md on Github so it aligns more with what actual readme files look like, and i polished some code so it is easier to tweak in case anyone wanted to do that. (everything is in script.js) Overall, I think this was a really fun journey and I definitely learned a lot about javascript, and about creating something efficient and fast. So, that’s pretty much it, you can play the bot on github, and I published a release for the chess bot. Have fun!
Ships:
This is a browser based chess engine, where you can play against a bot that I made. You can play with both the white and the black pieces. One challenge that was hard to fix was making the chessboard appear. I spend well over 2 hours trying to make it appear, and I finally got it to work because my CDN was not properly configured, and the one I downloaded was not the right version. I am proud of actually getting the chess bot to work, let alone making it to the point where it can actually beat me, and other bots on chess.com. You can play against this by going to the releases page and downloading the zip file. The index.html file houses the webpage where you can play against the chess bot. Good luck on beating my chess bot! (and don’t use stockfish :) )...
|
1793144920.993376
|
1793231320.993376
|
|
37389
|
Bio-Flow by @IvyMycelia | Stardance
|
IvyMycelia
|
0
|
14.19
|
0
|
[]
|
[{"post_id": 78932, "ts": "202 [{"post_id": 78932, "ts": "2026-10-12T02:39:38Z", "hours": 10.0867, "text": "What Happened? Been a while, hasn’t it? Anyways, some background context I feel is worth mentioning: BioFlow was created for a research project of mine. Not for anything less specific, not to be used as a universal tool — though that’d be nice! When I first made it, I realized pretty quickly that.. I’m not actually accomplishing anything for my research goal, but rather just trying to remake your generic Python Bioinformatics pipeline, which of course was not what I should focus on. As such, you’ll notice the project in its entirety has been changed to reflect this. The actual Changes There’s a LOT of changes, obviously. It’s around 10 hours worth of direct coding work (not counting all of the time spent doing research, gathering data, making decisions and creating formulas, etc.), and — as per usual — I didn’t break it up into multiple devlogs. Instead, I locked in for 4 days, and now we have: A computational analysis pipeline written mainly in Flower, which reads species metadata and protein annotations from TSV files, validates them, and exports candidate-family counts and normalized features. I used a C bridge for file access and numerical parsing. Five initial candidate categories, specifically laccase-associated proteins, manganese peroxidase, lignin peroxidase, versatile peroxidase, and cytochrome P450 candidates. Deduplication and conflict handling allows repeated hits and multiple annotation sources to not inflate the number of proteins counted, and proteins with competing family assignments are recorded as conflicting and excluded from the family counts. Proteome-size normalization, where candidate counts are expressed per 1,000 predicted proteins, whilst preserving the raw counts. Missing, zero, or inconsistent denominators produce (clearly marked!) missing values. So yea, that’s what’s been happening. Eventually I’ll link the paper to this somehow, and of course keep the analysis pipeline open source completely for reproducible results and independent verification! Thanks for reading, much love <3"}, {"post_id": 34947, "ts": "2026-07-26T02:04:35Z", "hours": 4.1069, "text": "Devlog: Documentation and v0.1.0 Date: 2026-07-22 Instead of jumping right into code — like I normally do — I decided to instead write documentation on how the project would be handled from a development standpoint. This included deciding on things such as Semantic Versioning, Conventional Commits, short-lived branches, and squash merges. None of it was particularly original, but the point was to remove any ambiguity regarding the actual developm from the actual work. I no longer need to wonder whether a feature belongs directly on main , what a release branch will be named, or whether generated binaries should be comitted. I also decided that CHANGELOG.md would remain at the root similar to the README , and other policy documents / actual project-facing documentation would live under docs/ . The first code The original CLI I wrote walked over every argument and then tried to interpret options and commands inside that very same loop. This causes conflicts and issues, especially relating to reading a filepath that might not exist in argv . I replaced it with the rule that one invocation has one command, and everything after it belongs to that command. The accepted shape thus is now: bioflo <command> [arguments] Commands may officially be written with zero, one, or two leading dashes — though any amount of dashes is current accepted. Dash removal is bounded rather than handled by an open-ended pointer loop, so inputs such as - and -- cannot be walked beyond the end of the string. Testing this produced a strange error where for whatever reason my system got stuck on a kernel write request, which froze all other kernel requests and muddied any other programs from running in my terminal. I restarted my computer and that was that. Really annoying because for like 20 minutes I thought the issue was me . It was not. Sequence decisions The first actual library module handles basic DNA sequences. Currently, a valid sequence can contain A , C , G , T , and N . I chose to accept N because unknown bases are common in real sequence data — from personal experience. Lowercase input is rejected rather than normalized implicitly purely just because I haven’t gotten to it yet. Empty strings are invalid sequences, but I did make it so that GC content for an empty string returns 0.0 to avoid division by zero. GC content is returned as a fraction between 0.0 and 1.0 , not as a percentage. This is to keep the value reusable rather than prioritize presentability. I deliberately kept the public API small for now as to avoid overextending the first release: is_valid_dna count_nucleotide gc_count gc_content The base-checking helper I have kept private. This is my first attempt at treating prop as an explicit public-facing endpoint rather than using it for everything. What v0.1.0 means Version 0.1.0 is by no means a feature-complete release (obviously). It’s my first steps at not only making a specific library for bioinformatics, but also testing Flower’s ability to even create usable libraries. The CLI still does not read files, FASTA parsing does not yet exist, and case normalization / additional ambiguity codes are also deferred. In the coming planned work, I intend for Bio-Flow to reach a somewhat usable state in the hopes of utilizing it for some of my own personal projects :)"}]...
|
Title: Bio-Flow by @IvyMycelia | Stardance
Devlog Title: Bio-Flow by @IvyMycelia | Stardance
Devlogs:
Devlog: Documentation and v0.1.0 Date: 2026-07-22 Instead of jumping right into code — like I normally do — I decided to instead write documentation on how the project would be handled from a development standpoint. This included deciding on things such as Semantic Versioning, Conventional Commits, short-lived branches, and squash merges. None of it was particularly original, but the point was to remove any ambiguity regarding the actual developm from the actual work. I no longer need to wonder whether a feature belongs directly on main , what a release branch will be named, or whether generated binaries should be comitted. I also decided that CHANGELOG.md would remain at the root similar to the README , and other policy documents / actual project-facing documentation would live under docs/ . The first code The original CLI I wrote walked over every argument and then tried to interpret options and commands inside that very same loop. This causes conflicts and issues, especially relating to reading a filepath that might not exist in argv . I replaced it with the rule that one invocation has one command, and everything after it belongs to that command. The accepted shape thus is now: bioflo <command> [arguments] Commands may officially be written with zero, one, or two leading dashes — though any amount of dashes is current accepted. Dash removal is bounded rather than handled by an open-ended pointer loop, so inputs such as - and -- cannot be walked beyond the end of the string. Testing this produced a strange error where for whatever reason my system got stuck on a kernel write request, which froze all other kernel requests and muddied any other programs from running in my terminal. I restarted my computer and that was that. Really annoying because for like 20 minutes I thought the issue was me . It was not. Sequence decisions The first actual library module handles basic DNA sequences. Currently, a valid sequence can contain A , C , G , T , and N . I chose to accept N because unknown bases are common in real sequence data — from personal experience. Lowercase input is rejected rather than normalized implicitly purely just because I haven’t gotten to it yet. Empty strings are invalid sequences, but I did make it so that GC content for an empty string returns 0.0 to avoid division by zero. GC content is returned as a fraction between 0.0 and 1.0 , not as a percentage. This is to keep the value reusable rather than prioritize presentability. I deliberately kept the public API small for now as to avoid overextending the first release: is_valid_dna count_nucleotide gc_count gc_content The base-checking helper I have kept private. This is my first attempt at treating prop as an explicit public-facing endpoint rather than using it for everything. What v0.1.0 means Version 0.1.0 is by no means a feature-complete release (obviously). It’s my first steps at not only making a specific library for bioinformatics, but also testing Flower’s ability to even create usable libraries. The CLI still does not read files, FASTA parsing does not yet exist, and case normalization / additional ambiguity codes are also deferred. In the coming planned work, I intend for Bio-Flow to reach a somewhat usable state in the hopes of utilizing it for some of my own personal projects :)
What Happened? Been a while, hasn’t it? Anyways, some background context I feel is worth mentioning: BioFlow was created for a research project of mine. Not for anything less specific, not to be used as a universal tool — though that’d be nice! When I first made it, I realized pretty quickly that.. I’m not actually accomplishing anything for my research goal, but rather just trying to remake your generic Python Bioinformatics pipeline, which of course was not what I should focus on. As such, you’ll notice the project in its entirety has been changed to reflect this. The actual Changes There’s a LOT of changes, obviously. It’s around 10 hours worth of direct coding work (not counting all of the time spent doing research, gathering data, making decisions and creating formulas, etc.), and — as per usual — I didn’t break it up into multiple devlogs. Instead, I locked in for 4 days, and now we have: A computational analysis pipeline written mainly in Flower, which reads species metadata and protein annotations from TSV files, validates them, and exports candidate-family counts and normalized features. I used a C bridge for file access and numerical parsing. Five initial candidate categories, specifically laccase-associated proteins, manganese peroxidase, lignin peroxidase, versatile peroxidase, and cytochrome P450 candidates. Deduplication and conflict handling allows repeated hits and multiple annotation sources to not inflate the number of proteins counted, and proteins with competing family assignments are recorded as conflicting and excluded from the family counts. Proteome-size normalization, where candidate counts are expressed per 1,000 predicted proteins, whilst preserving the raw counts. Missing, zero, or inconsistent denominators produce (clearly marked!) missing values. So yea, that’s what’s been happening. Eventually I’ll link the paper to this somehow, and of course keep the analysis pipeline open source completely for reproducible results and independent verification! Thanks for reading, much love <3...
|
1792568926.0165834
|
1793173726.0165834
|
|
69243
|
Hackpad by @pavithra_venkatesh | Stardance
|
pavithra_venkatesh
|
0
|
1.52
|
0
|
[]
|
[{"post_id": 78936, "ts": "202 [{"post_id": 78936, "ts": "2026-10-12T02:58:44Z", "hours": 1.5167, "text": "Hackpad - Made PCB and case with guide"}]...
|
Title: Hackpad by @pavithra_venkatesh | Stardance
Title: Hackpad by @pavithra_venkatesh | Stardance
Devlogs:
Hackpad - Made PCB and case with guide...
|
1793130807.474399
|
1793735607.474399
|
|
9801
|
eggooo by @matikda | Stardance
|
matikda
|
0
|
21.01
|
0
|
[]
|
[{"post_id": 7894, "ts": "2026 [{"post_id": 7894, "ts": "2026-06-13T05:21:10Z", "hours": 6.6747, "text": "I added the shop menu. I was confused why the hover and click functions were not working, but I realized that the text was completely covering the actuall button. That was a pretty easy fix. I used arrays with all the sprites, so I can iterate over all the buttons at once, which made my code much easier to follow. I might go back and add arrays to more parts, but it will not be as neat as this was. Lastly, I use graphics to create my text, so it is easily manipulatable, but it is making the game crash, so I will ned to go in and use real text next. Not looking forward to that."}, {"post_id": 5440, "ts": "2026-06-09T06:39:30Z", "hours": 4.6447, "text": "I finished the settings page sans a small volume bug. It now has the ability to skip and replay songs, turn music on and off, adjust the volume, and open an info page. I had a lot of trouble getting the text to update, as graphic updates are banned to prevent crashing. I just made a function to create brand new graphics as needed. I also added a favicon. I am realizing that I have barely touched the actual game part, though… next time."}, {"post_id": 5170, "ts": "2026-06-08T21:04:41Z", "hours": 2.6842, "text": "I added a settings menu with some text and buttons. I took a call for an hour and I then spent ~2 hours wondering why all my text suddenly wasn’t aligned. I finally realized that I had zoomed in to 110% and the code was fine🤦. Massive waste of time haha! I’m a bit worried that this could cause an issue on devices that have varying pixel densities but I am not going to worry about that for now."}, {"post_id": 4743, "ts": "2026-06-08T06:08:53Z", "hours": 7.0036, "text": "I am making a clicker game called eggooo! (I just realized I like the lowercase E better…). Today I worked on getting the starting screen working. I wanted the buttons to go down slightly when pressed to match the animation, but I had a lot of trouble, as I also had it dip when the mouse was hovering. When the mouse hovered above the dip but below the up limit, the button would freak out and rapidly switch between up and down. It looked like it was having a seizure. I fixed it by lowering just the image, not the hitbox, although now the hitbox is a bit off when the button is being hovered over. Oh well."}]...
|
Title: eggooo by @matikda | Stardance
Devlogs:
I Title: eggooo by @matikda | Stardance
Devlogs:
I am making a clicker game called eggooo! (I just realized I like the lowercase E better…). Today I worked on getting the starting screen working. I wanted the buttons to go down slightly when pressed to match the animation, but I had a lot of trouble, as I also had it dip when the mouse was hovering. When the mouse hovered above the dip but below the up limit, the button would freak out and rapidly switch between up and down. It looked like it was having a seizure. I fixed it by lowering just the image, not the hitbox, although now the hitbox is a bit off when the button is being hovered over. Oh well.
I added a settings menu with some text and buttons. I took a call for an hour and I then spent ~2 hours wondering why all my text suddenly wasn’t aligned. I finally realized that I had zoomed in to 110% and the code was fine🤦. Massive waste of time haha! I’m a bit worried that this could cause an issue on devices that have varying pixel densities but I am not going to worry about that for now.
I finished the settings page sans a small volume bug. It now has the ability to skip and replay songs, turn music on and off, adjust the volume, and open an info page. I had a lot of trouble getting the text to update, as graphic updates are banned to prevent crashing. I just made a function to create brand new graphics as needed. I also added a favicon. I am realizing that I have barely touched the actual game part, though… next time.
I added the shop menu. I was confused why the hover and click functions were not working, but I realized that the text was completely covering the actuall button. That was a pretty easy fix. I used arrays with all the sprites, so I can iterate over all the buttons at once, which made my code much easier to follow. I might go back and add arrays to more parts, but it will not be as neat as this was. Lastly, I use graphics to create my text, so it is easily manipulatable, but it is making the game crash, so I will ned to go in and use real text next. Not looking forward to that....
|
1792641082.5304234
|
1793245882.5304234
|
|
22382
|
The Art Archive by @danielSan | Stardance
|
danielSan
|
0
|
81.26
|
0
|
[]
|
[{"post_id": 78940, "ts": "202 [{"post_id": 78940, "ts": "2026-10-12T03:30:49Z", "hours": 10.2206, "text": "Hello fellow coders! Welcome to another devlog! It is now my time to share all the updates I have done to the app’s UI during this past week. Firstly, I started the development of the homeView, which looks really good so far! I have tried to keep the design familiar to what the infoView is like, so that it creates a sense of uniformity and familiarity to the user. Furthermore, I have also changed the tabView, so that, if you want to change between tabs, you can now simply slide between views, with no visible tab, so that you can use as much of the screen as possible. There are some things at which I am working on at the moment, but that I would like to finally share once they are refined and tested. Thanks for everything and see you really soon dear coders!"}, {"post_id": 76058, "ts": "2026-10-02T06:51:02Z", "hours": 10.0589, "text": "Hello dear coders! Welcome to another devlog! Just like I promised on last devlog, I have been profoundly working on the design itself of the app, since the database is now done, and I would like to show you some incredible changes we have done to make the experience as satisfying yet easy as possible. Firstly, you can now notice that we are using two main colors, instead of 1, extracted from the main artwork as both background and font colors, which make the view feel more “alive”. Also, I have now added both the name of the artwork and author on the “archive view”, which I hope you guys find more useful to identify artwork. Moreover, the most exciting feature for me to develop at the moment has been a proper landscape view, at which I have eliminated unnecessary elements (like title of the view or that long search bar) and substituted them for some more friendly alternatives, so that users can enjoy on this format without any big distractions. Furthermore, now the information view of each artwork includes a link to the web page of the museum where the data has been collected. That’s it for now! Thank you so much for everything, and see you really soon for more updates on the development of this app."}, {"post_id": 74223, "ts": "2026-09-26T23:33:32Z", "hours": 9.7308, "text": "Hello fellow coders to another devlog of my app! First of all, I am really excited for the announcement of the extension on stardande! It will allow me to be able to finish the app correctly without the need of rushing. Also, I would expect more devlogs as the date gets closer, as I am gonna try to focus harder on this project on the next few weeks. And even though there is not much to share (yet), I wanted to share some big news: The database is finally done!!! (yay). There will be a total of 400 selected artworks from all sorts of cultures available with their respective photo (at least on this basic version). And if you are wondering the reason why I am making my on database instead of just using an API, it’s for both ensuring a better look and simplicity + being able to access the app without the need of an internet connection. Even though I can not share any other news (yet), I would suggest staying tuned, as there are still many things to be unveiled about the app. See you soon!"}, {"post_id": 68466, "ts": "2026-09-15T04:52:10Z", "hours": 9.9583, "text": "Hello everyone! Welcome to another devlog about my app called “The Art Archive”. Firstly, I know I said the design of the menu of the Archive was already finished, but I felt like the old design wasn’t good enough, and I updated it to adapt to the size of the picture of the artwork. Sadly, that is all I can show at the moment, since I am currently working on polishing both the information view and the database, plus starting to design the home view. I will give you some updates really soon! See you all really soon!"}, {"post_id": 55650, "ts": "2026-08-27T16:39:51Z", "hours": 9.8736, "text": "Welcome to another devlog about my app called “The Art Archive”! Today I wanted to give some updates on what I have been working on for the past few weeks. Firstly, I have started developing a new screen at which you will be able to find all the information available about that artwork. And, even through there is still a long way to go on the development of the view, I would say that at the moment it is looking promising. Also, I have changed the artworks background colors and made them dynamic, so that they match the main color of it. Furthermore, I have also made some changes to the database, and I am expecting to finish it really soon, so that I can finally spend all my time developing and polishing the app’s design. And that is all the news I can share at the moment. I will see you all on the next devlog! Have a great day!"}, {"post_id": 39651, "ts": "2026-08-02T19:34:57Z", "hours": 10.3158, "text": "Hello! Welcome back to another devlog. Today I’m here to talk about some improvements that have been made onto the app UI, like a proper adaptation to the new header introduced in iOS 27, plus further improvements on the hierarchy of the cards typography. Moreover, there have been some minor changes made to the database of the art gallery with the addition of new artworks to it. In future updates, I am looking for making further improvements on the archive view before starting to develop the mainView and its system, plus adding some extra artworks onto the database. Hope you guys like how the app is looking so far! See you in the next devlog!"}, {"post_id": 27807, "ts": "2026-07-13T18:02:30Z", "hours": 9.9914, "text": "Hello Everyone! I wanted to give you some updates on my current project. Lately I have been updating the database and including some artworks from the Greek and British culture that I have found quite interesting. I have also started to plan the look of the UI, but I have not started developing it yet, since I would prefer to finish the database of the app before doing further changes to the UI. I will update the development of the app very soon with further changes at another devlog!"}, {"post_id": 22433, "ts": "2026-07-04T22:01:07Z", "hours": 11.1153, "text": "Hello everyone! Welcome to my first devlog ever about this new project I am currently developing during my free time, and which has been mainly driven by my love for art. Now, I would like to show you what I have been working on for the past week. Firstly, I have created a really basic interface (which will be updated later) and divided the app into two tabs: one tab called “home”, which has not been developed yet but it is planned to show 1 random artwork per day, and another one called “archive”, where all of the artworks are stored and can be accessed at any minute. Right now I am currently developing the database for the app, and obtaining all the necessary data from the MET museum. I am looking forward to sharing further progress in future devlogs!"}]...
|
Title: The Art Archive by @danielSan | Stardance
Title: The Art Archive by @danielSan | Stardance
Devlogs:
Hello everyone! Welcome to my first devlog ever about this new project I am currently developing during my free time, and which has been mainly driven by my love for art. Now, I would like to show you what I have been working on for the past week. Firstly, I have created a really basic interface (which will be updated later) and divided the app into two tabs: one tab called “home”, which has not been developed yet but it is planned to show 1 random artwork per day, and another one called “archive”, where all of the artworks are stored and can be accessed at any minute. Right now I am currently developing the database for the app, and obtaining all the necessary data from the MET museum. I am looking forward to sharing further progress in future devlogs!
Hello Everyone! I wanted to give you some updates on my current project. Lately I have been updating the database and including some artworks from the Greek and British culture that I have found quite interesting. I have also started to plan the look of the UI, but I have not started developing it yet, since I would prefer to finish the database of the app before doing further changes to the UI. I will update the development of the app very soon with further changes at another devlog!
Hello! Welcome back to another devlog. Today I’m here to talk about some improvements that have been made onto the app UI, like a proper adaptation to the new header introduced in iOS 27, plus further improvements on the hierarchy of the cards typography. Moreover, there have been some minor changes made to the database of the art gallery with the addition of new artworks to it. In future updates, I am looking for making further improvements on the archive view before starting to develop the mainView and its system, plus adding some extra artworks onto the database. Hope you guys like how the app is looking so far! See you in the next devlog!
Welcome to another devlog about my app called “The Art Archive”! Today I wanted to give some updates on what I have been working on for the past few weeks. Firstly, I have started developing a new screen at which you will be able to find all the information available about that artwork. And, even through there is still a long way to go on the development of the view, I would say that at the moment it is looking promising. Also, I have changed the artworks background colors and made them dynamic, so that they match the main color of it. Furthermore, I have also made some changes to the database, and I am expecting to finish it really soon, so that I can finally spend all my time developing and polishing the app’s design. And that is all the news I can share at the moment. I will see you all on the next devlog! Have a great day!
Hello everyone! Welcome to another devlog about my app called “The Art Archive”. Firstly, I know I said the design of the menu of the Archive was already finished, but I felt like the old design wasn’t good enough, and I updated it to adapt to the size of the picture of the artwork. Sadly, that is all I can show at the moment, since I am currently working on polishing both the information view and the database, plus starting to design the home view. I will give you some updates really soon! See you all really soon!
Hello fellow coders to another devlog of my app! First of all, I am really excited for the announcement of the extension on stardande! It will allow me to be able to finish the app correctly without the need of rushing. Also, I would expect more devlogs as the date gets closer, as I am gonna try to focus harder on this project on the next few weeks. And even though there is not much to share (yet), I wanted to share some big news: The database is finally done!!! (yay). There will be a total of 400 selected artworks from all sorts of cultures available with their respective photo (at least on this basic version). And if you are wondering the reason why I am making my on database instead of just using an API, it’s for both ensuring a better look and simplicity + being able to access the app without the need of an internet connection. Even though I can not share any other news (yet), I would suggest staying tuned, as there are still many things to be unveiled about the app. See you soon!
Hello dear coders! Welcome to another devlog! Just like I promised on last devlog, I have been profoundly working on the design itself of the app, since the database is now done, and I would like to show you some incredible changes we have done to make the experience as satisfying yet easy as possible. Firstly, you can now notice that we are using two main colors, instead of 1, extracted from the main artwork as both background and font colors, which make the view feel more “alive”. Also, I have now added both the name of the artwork and author on the “archive view”, which I hope you guys find more useful to identify artwork. Moreover, the most exciting feature for me to develop at the moment has been a proper landscape view, at which I have eliminated unnecessary elements (like title of the view or that long search bar) and substituted them for some more friendly alternatives, so that users can enjoy on this format without any big distractions. Furthermore, now the information view of each artwork includes a link to the web page of the museum where the data has been collected. That’s it for now! Thank you so much for everything, and see you really soon for more updates on the development of this app.
Hello fellow coders! Welcome to another devlog! It is now my time to share all the updates I have done to the app’s UI during this past week. Firstly, I started the development of the homeView, which looks really good so far! I have tried to keep the design familiar to what the infoView is like, so that it creates a sense of uniformity and familiarity to the user. Furthermore, I have also changed the tabView, so that, if you want to change between tabs, you can now simply slide between views, with no visible tab, so that you can use as much of the screen as possible. There are some things at which I am working on at the moment, but that I would like to finally share once they are refined and tested. Thanks for everything and see you really soon dear coders!...
|
1792774506.7667646
|
1793379306.7667646
|
|
50711
|
Godot Platformer by @Ethen | Stardance
|
Ethen
|
0
|
67.99
|
0
|
[]
|
[{"post_id": 78947, "ts": "202 [{"post_id": 78947, "ts": "2026-10-12T04:04:22Z", "hours": 11.8467, "text": "Godot Platformer What I added: I added a light Occluder in the level costumes to add shadows to the game I made a button (not fully working) I made button art in affinity I added (almost done!) a 3rd level I added disappearing platforms with animations of fading I almost got teleport gates to work (but then I broke them DX) I made teleporter art in (again) affinity Added normal maps to the button and teleporters, to make them look cool Added more point ligh2ds to things like the button and teleport gates to make them shiny without the players point light2d node What the buttons are meant to do: The buttons are a toggle for the disappearing and appearing platforms, so when the player or the ball enters the buttons collision shape, the level will disappear, and it will appear when the object comes off. What the teleport gates are meant to do: When the player stands in one, and the ball stands in the other, they switch places. I got the player and ball to teleport to each other’s places, but that eventually lead to them just teleporting when only one was touching one of the teleporters."}, {"post_id": 76262, "ts": "2026-10-02T23:35:53Z", "hours": 7.535, "text": "Godot platformer Better art!!!!! What I did: Made golf ball art in affinity I added a normal map and lighting to make golf ball and the goal art look 3d-ish (with help from @Robodog81 ) I also updated a bit of the level art to look more realistic. What I’m wanting to do next: Add teleport gates, when the player stands on one, and the ball goes on one, the player and the ball swap places. Grass, I want to make this a shader so I can animate it to the player’s and ball’s movement. I’ve been learning a bit of shader code in Godot, but I still need more experience."}, {"post_id": 75426, "ts": "2026-09-30T02:01:54Z", "hours": 9.6878, "text": "Godot Platformer What I’ve done I made 2 more levels Fixed a really annoying bug Fully resets the player’s animations on reset Made the player and ball spawn in set places for each level Made better particles A level transition for switching levels What I’m planning on doing next is adding more levels, getting the transition more smooth, maybe adding teleport gates, and adding a menu :D (I’ll probably think of more things to add later)"}, {"post_id": 74221, "ts": "2026-09-26T23:18:49Z", "hours": 9.2856, "text": "Godot platformer What I’ve added: A cool background Better looking timer Timer can reset if you click ‘r’ after reaching goal (with some help) I’m also trying to get level changing working with a transition :D"}, {"post_id": 68486, "ts": "2026-09-15T06:37:59Z", "hours": 8.7456, "text": "Godot platformer I did quite a lot! (with quite a lot of help) What I added: Waterfalls (made with particles) Timer reset Ball reset Player idle and player jump animations A finish flag Particles for getting to the flag Made the level green Timer stops when you get to the flag"}, {"post_id": 61876, "ts": "2026-09-05T01:06:55Z", "hours": 7.4656, "text": "Godot platformer What I added: Added an on screen timer (Tutorial) Made it so the ball can respawn when fallen off (With help)"}, {"post_id": 57983, "ts": "2026-08-30T09:59:47Z", "hours": 3.4069, "text": "Godot platformer What I added/changed: Made better particles Added ball physics (with a bit of help from a tutorial to get good collisions) Made ‘r’ the restart button"}, {"post_id": 56904, "ts": "2026-08-28T22:24:25Z", "hours": 6.4389, "text": "Godot platformer What I added: A double jump indicator Cool music (from pixabay) Player and bg particles More level A pointer for the player"}, {"post_id": 54358, "ts": "2026-08-25T09:54:26Z", "hours": 3.1353, "text": "A Godot platformer! What I added/changed: I decided to make a shooter with a neon-glowy art style I redid the player and level art I added double jump I added smooth scrolling I added a smooth friction movement system I made it so you can fall off the map and get reset Made the player and level glow This is my first game in Godot, so most of the code I had to search up how to do from a video or a website, but the art is made by me"}, {"post_id": 49382, "ts": "2026-08-18T05:20:43Z", "hours": 0.4436, "text": "A Godot platformer Learning Godot Made art Added in basic character movement"}]...
|
Title: Godot Platformer by @Ethen | Stardance
Dev Title: Godot Platformer by @Ethen | Stardance
Devlogs:
A Godot platformer Learning Godot Made art Added in basic character movement
A Godot platformer! What I added/changed: I decided to make a shooter with a neon-glowy art style I redid the player and level art I added double jump I added smooth scrolling I added a smooth friction movement system I made it so you can fall off the map and get reset Made the player and level glow This is my first game in Godot, so most of the code I had to search up how to do from a video or a website, but the art is made by me
Godot platformer What I added: A double jump indicator Cool music (from pixabay) Player and bg particles More level A pointer for the player
Godot platformer What I added/changed: Made better particles Added ball physics (with a bit of help from a tutorial to get good collisions) Made ‘r’ the restart button
Godot platformer What I added: Added an on screen timer (Tutorial) Made it so the ball can respawn when fallen off (With help)
Godot platformer I did quite a lot! (with quite a lot of help) What I added: Waterfalls (made with particles) Timer reset Ball reset Player idle and player jump animations A finish flag Particles for getting to the flag Made the level green Timer stops when you get to the flag
Godot platformer What I’ve added: A cool background Better looking timer Timer can reset if you click ‘r’ after reaching goal (with some help) I’m also trying to get level changing working with a transition :D
Godot Platformer What I’ve done I made 2 more levels Fixed a really annoying bug Fully resets the player’s animations on reset Made the player and ball spawn in set places for each level Made better particles A level transition for switching levels What I’m planning on doing next is adding more levels, getting the transition more smooth, maybe adding teleport gates, and adding a menu :D (I’ll probably think of more things to add later)
Godot platformer Better art!!!!! What I did: Made golf ball art in affinity I added a normal map and lighting to make golf ball and the goal art look 3d-ish (with help from @Robodog81 ) I also updated a bit of the level art to look more realistic. What I’m wanting to do next: Add teleport gates, when the player stands on one, and the ball goes on one, the player and the ball swap places. Grass, I want to make this a shader so I can animate it to the player’s and ball’s movement. I’ve been learning a bit of shader code in Godot, but I still need more experience.
Godot Platformer What I added: I added a light Occluder in the level costumes to add shadows to the game I made a button (not fully working) I made button art in affinity I added (almost done!) a 3rd level I added disappearing platforms with animations of fading I almost got teleport gates to work (but then I broke them DX) I made teleporter art in (again) affinity Added normal maps to the button and teleporters, to make them look cool Added more point ligh2ds to things like the button and teleport gates to make them shiny without the players point light2d node What the buttons are meant to do: The buttons are a toggle for the disappearing and appearing platforms, so when the player or the ball enters the buttons collision shape, the level will disappear, and it will appear when the object comes off. What the teleport gates are meant to do: When the player stands in one, and the ball stands in the other, they switch places. I got the player and ball to teleport to each other’s places, but that eventually lead to them just teleporting when only one was touching one of the teleporters....
|
1792641152.5343616
|
1793245952.5343616
|
|
64361
|
WakeUpDudeItsSchoolTime by @Pixeleyesd | Stardance
|
Pixeleyesd
|
0
|
6.14
|
0
|
[]
|
[{"post_id": 78952, "ts": "202 [{"post_id": 78952, "ts": "2026-10-12T05:34:32Z", "hours": 2.6514, "text": "I finished up my firmware and README.md. BOM.csv is also finished up. :) When you first boot up, it first asks you for your time zone (you enter the value to add to gmt), then it asks whether daylight savings applies. These customisations are saved to the internal memory. The alarm clock will show time on the main screen. You can add alarms by going into the menu, or by pressing the alarm menu hotkey (SW5). Once power cycled, it will not keep the time, but uses WIFI to resync time using the internet."}, {"post_id": 72480, "ts": "2026-09-23T01:28:59Z", "hours": 2.1506, "text": "I finished my CAD model and I’m now going onto Firmware creation :)."}, {"post_id": 71983, "ts": "2026-09-21T21:58:39Z", "hours": 1.3336, "text": "I finished up my schematic and then finished up my pcb. I am now going to do some CAD :)."}]...
|
Title: WakeUpDudeItsSchoolTime by @Pixeleyesd | St Title: WakeUpDudeItsSchoolTime by @Pixeleyesd | Stardance
Devlogs:
I finished up my schematic and then finished up my pcb. I am now going to do some CAD :).
I finished my CAD model and I’m now going onto Firmware creation :).
I finished up my firmware and README.md. BOM.csv is also finished up. :) When you first boot up, it first asks you for your time zone (you enter the value to add to gmt), then it asks whether daylight savings applies. These customisations are saved to the internal memory. The alarm clock will show time on the main screen. You can add alarms by going into the menu, or by pressing the alarm menu hotkey (SW5). Once power cycled, it will not keep the time, but uses WIFI to resync time using the internet....
|
1793062373.2564173
|
1793926373.2564173
|
|
69188
|
Pomodoro by @KevinW | Stardance
|
KevinW
|
1
|
13.0
|
28
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-12T06:01:42Z", "hours": 13.0, "multiplier": 4.2, "payout": 28, "blessing": "neutral", "text": "I made a Pomodoro timer inspired by the classic pomodoro techniques and the timeless addictive loops of idle games. I am very proud of sticking with my goal until the very end as it was an incredibly rewarding experience. However, I faced many challenged and I had to learn so much throughout this experience considering that I am new to software development. I used W3SCHOOLS to help me use key concepts that would help me make this webpage possible as well as youtube tutorials online giving me clear and simple explanations.", "repo": "https://github.com/wujunfan0/Pomodoro", "demo": "https://wujunfan0.github.io/Pomodoro/"}]...
|
[{"post_id": 78956, "ts": "202 [{"post_id": 78956, "ts": "2026-10-12T05:49:55Z", "hours": 6.4456, "text": "After countless of trials and errors in my latest development, I integrated many new features to the webpage. I had to learn a lot of JavaScript concepts I was unfamiliar with like duplicate declarations and global scope access but in the end I pushed through. I introduced a secret little bottom left prompt. When clicked, it brings you to a little cookie clicker game so you can slack off. Most of the other new things added were just minor improvements like adding an animated gradient background with flickering stars."}, {"post_id": 78895, "ts": "2026-10-11T22:34:45Z", "hours": 2.1142, "text": "I am currently testing out different algorithms and laying down the javascript logic for my project as I am rather new to javascript. I worked on creating functions, loops, and conditional statements to further enhance my webpage. Next session, I plan to implement and use this knowledge in my current webpage"}, {"post_id": 78856, "ts": "2026-10-11T19:47:49Z", "hours": 1.9936, "text": "I finally finished the CSS, in the middle of the project I encountered an error that stumped me for a long time, my entire webpage kept showing a blank white screen but in the end I was able to identify the problem and fix it. After adjusting some margins padding, I used complimentary to not overwhelm users, I also tried to be as minimal as possible."}, {"post_id": 78788, "ts": "2026-10-11T16:37:12Z", "hours": 1.145, "text": "After a bit of tweaking, I was able to complete the structure for my pomodoro webpage. I had to watch many tutorials and go through articles to figure out the right classes to use. I was able to correctly format the layout as well as making the buttons clickable. I kept forgetting to add closing tags which was frustrating because it messed up some of my code. Next, I plan on using CSS to polish this page to make it look neat and organized!"}, {"post_id": 78766, "ts": "2026-10-11T15:22:37Z", "hours": 1.6197, "text": "I practiced building the core structure of my pomodoro timer using HTML, I worked with standard layout tags like and also text inputs and buttons. I also created a separate file to practice and experiment with different tags and functions. Next, I want to build the real skeleton for my webpage."}]...
|
Title: Pomodoro by @KevinW | Stardance
Devlogs:
I Title: Pomodoro by @KevinW | Stardance
Devlogs:
I practiced building the core structure of my pomodoro timer using HTML, I worked with standard layout tags like and also text inputs and buttons. I also created a separate file to practice and experiment with different tags and functions. Next, I want to build the real skeleton for my webpage.
After a bit of tweaking, I was able to complete the structure for my pomodoro webpage. I had to watch many tutorials and go through articles to figure out the right classes to use. I was able to correctly format the layout as well as making the buttons clickable. I kept forgetting to add closing tags which was frustrating because it messed up some of my code. Next, I plan on using CSS to polish this page to make it look neat and organized!
I finally finished the CSS, in the middle of the project I encountered an error that stumped me for a long time, my entire webpage kept showing a blank white screen but in the end I was able to identify the problem and fix it. After adjusting some margins padding, I used complimentary to not overwhelm users, I also tried to be as minimal as possible.
I am currently testing out different algorithms and laying down the javascript logic for my project as I am rather new to javascript. I worked on creating functions, loops, and conditional statements to further enhance my webpage. Next session, I plan to implement and use this knowledge in my current webpage
After countless of trials and errors in my latest development, I integrated many new features to the webpage. I had to learn a lot of JavaScript concepts I was unfamiliar with like duplicate declarations and global scope access but in the end I pushed through. I introduced a secret little bottom left prompt. When clicked, it brings you to a little cookie clicker game so you can slack off. Most of the other new things added were just minor improvements like adding an animated gradient background with flickering stars.
Ships:
I made a Pomodoro timer inspired by the classic pomodoro techniques and the timeless addictive loops of idle games. I am very proud of sticking with my goal until the very end as it was an incredibly rewarding experience. However, I faced many challenged and I had to learn so much throughout this experience considering that I am new to software development. I used W3SCHOOLS to help me use key concepts that would help me make this webpage possible as well as youtube tutorials online giving me clear and simple explanations....
|
1793008390.874253
|
1793872390.874253
|
|
69281
|
Guide to Hack Club by @Angle_Mad | Stardance
|
Angle_Mad
|
0
|
0.43
|
0
|
[]
|
[{"post_id": 78958, "ts": "202 [{"post_id": 78958, "ts": "2026-10-12T05:56:42Z", "hours": 0.4336, "text": "Beginning the Basic Html and Tailwind CSS I started to work on the website to help guide beginners what Hack Club is about, and how it works. So far I just worked on basic html and I started messing around with tailwind, which with my very little experience already feels much easier to use than regular CSS. I started learning tailwind syntax and how it works with html. Doing that I made the website background, a pink color, give the header larger text, made the font bold, center the text, made it white and added a margin to the top."}]...
|
Title: Guide to Hack Club by @Angle_Mad | Stardanc Title: Guide to Hack Club by @Angle_Mad | Stardance
Devlogs:
Beginning the Basic Html and Tailwind CSS I started to work on the website to help guide beginners what Hack Club is about, and how it works. So far I just worked on basic html and I started messing around with tailwind, which with my very little experience already feels much easier to use than regular CSS. I started learning tailwind syntax and how it works with html. Doing that I made the website background, a pink color, give the header larger text, made the font bold, center the text, made it white and added a margin to the top....
|
1793130868.2174704
|
1793735668.2174704
|
|
65010
|
Music OS by @lantern | Stardance
|
lantern
|
2
|
29.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-12T06:42:56Z", "hours": 24.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "MusicOS is a complete web-based operating system. Files that you create or save persist across reloads. One app can have multiple windows, windows can be minimised, can be brought to the front, and the app itself can be quit (meaning all windows are closed). Windows can be fullscreened, minimised, or closed. Windows can be resized by holding and dragging the bottom right corner. The camera app stores files directly on the desktop, files can be renamed, named, created, deleted (sent to trash). All these operations can be performed via the file manager, RIGHT CLICK to see available options, the whole operating system uses a custom context menu! (when in doubt, right click ) AceEditor allows you to save files in different formats WITH syntax highlighting. Music OS has a collection consisting of 3 games, present on the Games folder on the Desktop. (MiniClip’s 8 Ball Pool, a Doom knockoff, and BlockWorlds)", "repo": "https://github.com/13513ji/Music-OS", "demo": "https://13513ji.github.io/Music-OS/"}, {"ship_num": 2, "ts": "2026-09-23T16:40:09Z", "hours": 5.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "This is my very first Web OS project . This is called Music OS simple and easy to use musician based theme , with really hard worked animation and theme. It has following features:- App minimising App fullscreen Camera App Calculator App Web Browser Settings App (customisable background) Multi-window support", "repo": "https://github.com/13513ji/Music-OS", "demo": "https://13513ji.github.io/Music-OS/"}]...
|
[{"post_id": 78962, "ts": "202 [{"post_id": 78962, "ts": "2026-10-12T06:26:55Z", "hours": 3.1667, "text": "Fixed the desktop, now the desktop layout is preserved throughout reloads and stuff. This was annoying me quite a bit so glad I was able to fix it"}, {"post_id": 78714, "ts": "2026-10-11T12:01:30Z", "hours": 5.8031, "text": "Added stuff:- 3 games, present on the Games folder on the Desktop. (MiniClip’s 8 Ball Pool, a Doom knockoff, and BlockWorlds) AceEditor allows you to save files in different formats WITH syntax highlighting Files that you create or save persist across reloads which can be added or deleted(in trash)"}, {"post_id": 78251, "ts": "2026-10-10T04:36:40Z", "hours": 10.6369, "text": "My Git hub repo account was lost , had work on the project again and code everything again🥀🥀"}, {"post_id": 76959, "ts": "2026-10-05T06:39:02Z", "hours": 2.8189, "text": "The files app is here :D managed to get desktop icon dragging working (turns out I had not imported the script <- wasted a lot of time debugging) now have Ace Editor"}, {"post_id": 74785, "ts": "2026-09-28T07:43:31Z", "hours": 1.2333, "text": "Going For Web OS 2✌️ Added the terminal app"}, {"post_id": 72723, "ts": "2026-09-23T16:23:08Z", "hours": 1.8842, "text": "All added features:- features:smooth window dragging window closing, minimising, fullscreen multiple windows of the same app app state management"}, {"post_id": 72668, "ts": "2026-09-23T13:48:09Z", "hours": 1.4978, "text": "Added Context menu and dock!!"}, {"post_id": 72633, "ts": "2026-09-23T12:04:17Z", "hours": 1.2322, "text": "Finished with the startup animation!!"}]...
|
Title: Music OS by @lantern | Stardance
Devlogs:
Title: Music OS by @lantern | Stardance
Devlogs:
Finished with the startup animation!!
Added Context menu and dock!!
All added features:- features:smooth window dragging window closing, minimising, fullscreen multiple windows of the same app app state management
Going For Web OS 2✌️ Added the terminal app
The files app is here :D managed to get desktop icon dragging working (turns out I had not imported the script <- wasted a lot of time debugging) now have Ace Editor
My Git hub repo account was lost , had work on the project again and code everything again🥀🥀
Added stuff:- 3 games, present on the Games folder on the Desktop. (MiniClip’s 8 Ball Pool, a Doom knockoff, and BlockWorlds) AceEditor allows you to save files in different formats WITH syntax highlighting Files that you create or save persist across reloads which can be added or deleted(in trash)
Fixed the desktop, now the desktop layout is preserved throughout reloads and stuff. This was annoying me quite a bit so glad I was able to fix it
Ships:
This is my very first Web OS project . This is called Music OS simple and easy to use musician based theme , with really hard worked animation and theme. It has following features:- App minimising App fullscreen Camera App Calculator App Web Browser Settings App (customisable background) Multi-window support
MusicOS is a complete web-based operating system. Files that you create or save persist across reloads. One app can have multiple windows, windows can be minimised, can be brought to the front, and the app itself can be quit (meaning all windows are closed). Windows can be fullscreened, minimised, or closed. Windows can be resized by holding and dragging the bottom right corner. The camera app stores files directly on the desktop, files can be renamed, named, created, deleted (sent to trash). All these operations can be performed via the file manager, RIGHT CLICK to see available options, the whole operating system uses a custom context menu! (when in doubt, right click ) AceEditor allows you to save files in different formats WITH syntax highlighting. Music OS has a collection consisting of 3 games, present on the Games folder on the Desktop. (MiniClip’s 8 Ball Pool, a Doom knockoff, and BlockWorlds)...
|
1792957997.4536116
|
1793821997.4536116
|
|
68390
|
MessOS by @stxrchett | Stardance
|
stxrchett
|
1
|
12.62
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-09T23:38:18Z", "hours": 10.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made an web-based OS inspired by the elements of old and new operating systems of Mac and Windows. It has a bright aquamarine and brown theme which reminds me of mint chocolate and inspired by the bright combinations of the new internet. There are two ‘apps’ and not many things to do. There are many more features I want to add but that will come later.", "repo": "https://github.com/rockysmart1/MessOS", "demo": "https://rockysmart1.github.io/MessOS/"}]...
|
[{"post_id": 78963, "ts": "202 [{"post_id": 78963, "ts": "2026-10-12T06:27:41Z", "hours": 0.4578, "text": "Apps now drag overlayed under windows and .75 opacity when pressed."}, {"post_id": 78957, "ts": "2026-10-12T05:53:02Z", "hours": 2.1667, "text": "Added few functions for better use experience. App overlay is now triggered by clicking into the window (The Spotify iframe does not allow this so I might make a custom music player) or by opening new app. Added Spotify. Added resizable windows."}, {"post_id": 78199, "ts": "2026-10-09T23:17:58Z", "hours": 3.0883, "text": "Added notes app, ability to drag apps around, notes icon, fixed a few bugs. Is this the start of something greater?"}, {"post_id": 77723, "ts": "2026-10-08T03:02:02Z", "hours": 3.3258, "text": "Changed my project name to MessOS. I added better UI and the ability to open one app being the welcome screen. Deciding on a chocolate chip mint colour theme. Cleaned up my code super neat. Hopefully by the next log it will have more than one app :P"}, {"post_id": 77689, "ts": "2026-10-07T22:10:33Z", "hours": 3.4333, "text": "Adding my first devlog! I was able to follow the tutorial and create the base of my website. The window movement took a bit of adjustment to work properly where I switched it from being based on ids to classes. By the next log I hope to make the UI more pleasant."}]...
|
Title: MessOS by @stxrchett | Stardance
Devlogs:
Title: MessOS by @stxrchett | Stardance
Devlogs:
Adding my first devlog! I was able to follow the tutorial and create the base of my website. The window movement took a bit of adjustment to work properly where I switched it from being based on ids to classes. By the next log I hope to make the UI more pleasant.
Changed my project name to MessOS. I added better UI and the ability to open one app being the welcome screen. Deciding on a chocolate chip mint colour theme. Cleaned up my code super neat. Hopefully by the next log it will have more than one app :P
Added notes app, ability to drag apps around, notes icon, fixed a few bugs. Is this the start of something greater?
Added few functions for better use experience. App overlay is now triggered by clicking into the window (The Spotify iframe does not allow this so I might make a custom music player) or by opening new app. Added Spotify. Added resizable windows.
Apps now drag overlayed under windows and .75 opacity when pressed.
Ships:
I made an web-based OS inspired by the elements of old and new operating systems of Mac and Windows. It has a bright aquamarine and brown theme which reminds me of mint chocolate and inspired by the bright combinations of the new internet. There are two ‘apps’ and not many things to do. There are many more features I want to add but that will come later....
|
1793065806.745258
|
1793152206.745258
|
|
60047
|
Rune n' Repeat Game by @Robodog81 | Stardance
|
Robodog81
|
0
|
11.59
|
0
|
[]
|
[{"post_id": 78972, "ts": "202 [{"post_id": 78972, "ts": "2026-10-12T07:15:56Z", "hours": 11.585, "text": "This project is my way to get familiar with Godot as it is my first time using the engine. I spent most of my time (after getting familiar with the engine) working with the shader script and tile maps (I made animated grass bc why not). Me and a friend have plans to recreate a game that I made is scratch a while ago and I am using this project to experiment with different assets and concepts of the game. I put a fair bit of effort into the magic shader for cast spells. It takes in a 3d noise map to display the coloured magic fog and also distorts the anything behind it. You can’t see it in the pictures but the magic is animated as the noise shifts along the Z axis making it swirl. So far I am enjoying Godot and hope to implement this into the full game when we make it. :) Here is the original game: https://scratch.mit.edu/projects/1204494990/"}]...
|
Title: Rune n' Repeat Game by @Robodog81 | Sta Title: Rune n' Repeat Game by @Robodog81 | Stardance
Devlogs:
This project is my way to get familiar with Godot as it is my first time using the engine. I spent most of my time (after getting familiar with the engine) working with the shader script and tile maps (I made animated grass bc why not). Me and a friend have plans to recreate a game that I made is scratch a while ago and I am using this project to experiment with different assets and concepts of the game. I put a fair bit of effort into the magic shader for cast spells. It takes in a 3d noise map to display the coloured magic fog and also distorts the anything behind it. You can’t see it in the pictures but the magic is animated as the noise shifts along the Z axis making it swirl. So far I am enjoying Godot and hope to implement this into the full game when we make it. :) Here is the original game: https://scratch.mit.edu/projects/1204494990/...
|
1793030072.089425
|
1793634872.089425
|
|
68762
|
MY about me site by @rishith12 | Stardance
|
rishith12
|
1
|
8.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-12T07:20:41Z", "hours": 8.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "This is my own personal website with my own creative CSS design. It includes everything regarding who I am and stuff .There is no need fo any pervious knowledge for thsi project and the most challenging part that i face was the part where i had to dsign teh css that’s it.", "repo": "https://github.com/Rishith88/About-me-site/", "demo": "https://rishith88.github.io/About-me-site/"}]...
|
[{"post_id": 78973, "ts": "202 [{"post_id": 78973, "ts": "2026-10-12T07:17:38Z", "hours": 7.6069, "text": "This is a website that I made that showcases all the projects I worked on and my own journey"}]...
|
Title: MY about me site by @rishith12 | Stardance
Title: MY about me site by @rishith12 | Stardance
Devlogs:
This is a website that I made that showcases all the projects I worked on and my own journey
Ships:
This is my own personal website with my own creative CSS design. It includes everything regarding who I am and stuff .There is no need fo any pervious knowledge for thsi project and the most challenging part that i face was the part where i had to dsign teh css that’s it....
|
1793062351.1795697
|
1793148751.1795697
|
|
50869
|
my APOD site by @rishith12 | Stardance
|
rishith12
|
2
|
6.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-12T07:48:05Z", "hours": 0.0, "multiplier": 1.7, "payout": 0, "blessing": "neutral", "text": "It is a nasaapod site where we have anotekaer a todo list a podomoro time a search abr a editable shrocut grid and a nasaapod.", "repo": "https://github.com/Rishith88/Nasaapod", "demo": "https://hackclubnasapod.netlify.app/"}, {"ship_num": 2, "ts": "2026-08-19T15:22:59Z", "hours": 6.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made the NASA APOD. This is my first project in Stardance, and it is pretty creative. It looks futuristic with an interactive space theme, which represents the very essence of NASA. I made this with over 6 hrs of coding and 2 hours of designing the JavaScript logic. This uses HTML for its basic overall structure, CSS for its creative styles, and JavaScript for its logic. It uses the creative stars effect with a daily update below and a background with NASA pictures displayed all the time. This looks cool and perfectly describes the organisation and also makes it interactive. I am proud of the exquisite features that it provides, like the shortcut menu or the interactive search bar of the Pomodoro timer that I have added. We can add and remove sites at our convenience. It is easy for developers to test it; just open it and navigate through it like any other browser, but now with an essence of creativity and a futuristic mentality.", "repo": "https://github.com/Rishith88/Nasaapod", "demo": "https://hackclubnasapod.netlify.app/"}]...
|
[{"post_id": 78978, "ts": "202 [{"post_id": 78978, "ts": "2026-10-12T07:45:48Z", "hours": 0.2875, "text": "Made a few edits"}, {"post_id": 50307, "ts": "2026-08-19T13:58:14Z", "hours": 5.9592, "text": "This is a creative nasa apod with a futuristic design and a techy mindset. I spent approximately 6hrs coding this i hope you like it !!!!!!"}]...
|
Title: my APOD site by @rishith12 | Stardance
Dev Title: my APOD site by @rishith12 | Stardance
Devlogs:
This is a creative nasa apod with a futuristic design and a techy mindset. I spent approximately 6hrs coding this i hope you like it !!!!!!
Made a few edits
Ships:
I made the NASA APOD. This is my first project in Stardance, and it is pretty creative. It looks futuristic with an interactive space theme, which represents the very essence of NASA. I made this with over 6 hrs of coding and 2 hours of designing the JavaScript logic. This uses HTML for its basic overall structure, CSS for its creative styles, and JavaScript for its logic. It uses the creative stars effect with a daily update below and a background with NASA pictures displayed all the time. This looks cool and perfectly describes the organisation and also makes it interactive. I am proud of the exquisite features that it provides, like the shortcut menu or the interactive search bar of the Pomodoro timer that I have added. We can add and remove sites at our convenience. It is easy for developers to test it; just open it and navigate through it like any other browser, but now with an essence of creativity and a futuristic mentality.
It is a nasaapod site where we have anotekaer a todo list a podomoro time a search abr a editable shrocut grid and a nasaapod....
|
1793062494.6700714
|
1793148894.6700714
|
|
47571
|
My own site! by @natnaelkedir | Stardance
|
natnaelkedir
|
0
|
1.45
|
0
|
[]
|
[{"post_id": 78983, "ts": "202 [{"post_id": 78983, "ts": "2026-10-12T07:59:56Z", "hours": 1.4508, "text": "I’m working on a minimalist portfolio website. I have designed finished design the UI and now I’m working on building the website itself using React and TailwindCss. It will have the following sections : An about section A projects section showing projects I’ve built Experience section A contact section"}]...
|
Title: My own site! by @natnaelkedir | Stardance
Title: My own site! by @natnaelkedir | Stardance
Devlogs:
I’m working on a minimalist portfolio website. I have designed finished design the UI and now I’m working on building the website itself using React and TailwindCss. It will have the following sections : An about section A projects section showing projects I’ve built Experience section A contact section...
|
1792522071.2747612
|
1793126871.2747612
|
|
69302
|
Renewable energy certificate Fraud detection by @s Renewable energy certificate Fraud detection by @shreyanshh | Stardance...
|
shreyanshh
|
0
|
8.07
|
0
|
[]
|
[{"post_id": 78985, "ts": "202 [{"post_id": 78985, "ts": "2026-10-12T08:12:56Z", "hours": 8.07, "text": "Built RECON (Renewable Energy Certificate Observation Network) to eliminate double-counting, false telemetry, and fraudulent issuance in clean energy markets using an end-to-end ML verification pipeline paired with blockchain registries: Multi-Stage AI/ML Fraud Pipeline: • Deep Autoencoders: Reconstruct normal time-series generation profiles from power meters/IoT telemetry; elevated reconstruction error isolates anomalous spikes and unfeasible power yields. • Isolation Forests: Unsupervised partition-based anomaly scoring to instantly isolate multidimensional outliers across solar irradiance, wind speed, capacity factors, and reported MWh. • XGBoost Risk Classifier: Gradient-boosted decision trees trained on labeled behavioral signatures to aggregate features into a calibrated composite fraud risk score (0–100%). Blockchain Registry (ERC-721): • Built and deployed smart contracts on Ethereum Sepolia. • Automatically blocks minting if ML risk scores exceed threshold limits. • Issues immutable certificate tokens upon verified generation and burns/retires tokens upon market redemption to prevent double-claiming. Full-Stack Telemetry Dashboard: • Built an analytics dashboard displaying real-time generation metrics, sensor deviations, anomaly scores, and on-chain verification transaction proofs."}]...
|
Title: Renewable energy certificate Fraud detectio Title: Renewable energy certificate Fraud detection by @shreyanshh | Stardance
Devlogs:
Built RECON (Renewable Energy Certificate Observation Network) to eliminate double-counting, false telemetry, and fraudulent issuance in clean energy markets using an end-to-end ML verification pipeline paired with blockchain registries: Multi-Stage AI/ML Fraud Pipeline: • Deep Autoencoders: Reconstruct normal time-series generation profiles from power meters/IoT telemetry; elevated reconstruction error isolates anomalous spikes and unfeasible power yields. • Isolation Forests: Unsupervised partition-based anomaly scoring to instantly isolate multidimensional outliers across solar irradiance, wind speed, capacity factors, and reported MWh. • XGBoost Risk Classifier: Gradient-boosted decision trees trained on labeled behavioral signatures to aggregate features into a calibrated composite fraud risk score (0–100%). Blockchain Registry (ERC-721): • Built and deployed smart contracts on Ethereum Sepolia. • Automatically blocks minting if ML risk scores exceed threshold limits. • Issues immutable certificate tokens upon verified generation and burns/retires tokens upon market redemption to prevent double-claiming. Full-Stack Telemetry Dashboard: • Built an analytics dashboard displaying real-time generation metrics, sensor deviations, anomaly scores, and on-chain verification transaction proofs....
|
1793130879.396735
|
1793735679.396735
|
|
28121
|
Chatbot RAG by @Hamna | Stardance
|
Hamna
|
2
|
77.71
|
1127
|
[{"ship_num": 1, "ts": "2026-0 [{"ship_num": 1, "ts": "2026-09-04T20:16:08Z", "hours": 37.0, "multiplier": 16.89, "payout": 615, "blessing": "neutral", "text": "Made a RAG chatbot that mimics my friends personality using Llama and Hugging Face. NOTE: I’m using zero GPU on HF so after 100 msgs it goes to sleeping mood , in that case the chatbot would reply a random thing like “system off” , “internet is down” or something like that , so don’t worry about that, come after 24Hr and she’ll talk normally FACT: Senpai used to say a lot “Haii haii” which is a japanese phrase for “yes” so don’t worry about that either, she’s just being friendly with ya Hope ya’ll love this version of chatbot", "repo": "https://github.com/lilithCode/Senpai-Chatbot", "demo": "https://senpai-chatbot.vercel.app/"}, {"ship_num": 2, "ts": "2026-08-17T14:23:40Z", "hours": 36.0, "multiplier": 14.99, "payout": 512, "blessing": "neutral", "text": "I built a AI RAG chatbot that mimics my friends personality , trained on whatsapp chats so it actually talks like my friend instead of generic robot ai. fine tuned llama 3b with LoRA on kaggle’s free gpu, deployed it on hf spaces zeroGPU gradio for backend and next.js on vercel for frontend, plus added RAG so it can clean up messy texts and pull live info from the web when needed. it genuinely feels like talking to my friend, all built for free. to test it. just start chatting, first msg might take a sec to load (model’s waking up)", "repo": "https://github.com/lilithCode/Senpai-Chatbot", "demo": "https://senpai-chatbot.vercel.app/"}]...
|
[{"post_id": 78990, "ts": "202 [{"post_id": 78990, "ts": "2026-10-12T08:38:28Z", "hours": 4.7081, "text": "here"}, {"post_id": 61751, "ts": "2026-09-04T20:10:09Z", "hours": 0.5464, "text": "Guyss!! This is gonna be the last change I’ve made today, Senpai chatbot is live now and she’s talking like my friend (really couldn’t be more happy to see her talk to me again 🥹 )"}, {"post_id": 61709, "ts": "2026-09-04T19:04:49Z", "hours": 0.4631, "text": "Made some Minor UI changes on frontend nextjs"}, {"post_id": 53148, "ts": "2026-08-23T16:07:39Z", "hours": 9.6033, "text": "After testing the chatbot with around 50 beta users, I found several issues that weren’t obvious during development. Responses were too long, the personality became too generic when using RAG, Urdu and English were sometimes mixed incorrectly, and the mobile layout needed work. I shortened the responses, restricted web search to things like news and sports, improved the system prompt and input handling, redesigned the mobile UI, and added a message explaining the cold start delay"}, {"post_id": 51779, "ts": "2026-08-21T16:52:36Z", "hours": 8.5322, "text": "I added logging, I started finding problems that weren’t obvious from the frontend. Web searches were sometimes failing silently, too many messages were causing token overflows, and using both max_length and max_new_tokens was causing unexpected behavior. I fixed these issues by adding proper error handling, limiting the conversation context, and simplifying the token settings. I also built a small debug dashboard to track searches, response times, token usage, and errors (Ughh I’m really exhausted now)"}, {"post_id": 50775, "ts": "2026-08-20T04:39:03Z", "hours": 8.7972, "text": "I initially moved the deployment to Replicate to improve response speed. It worked and responses dropped from around 15–30 seconds to about 5–10 seconds but then it also introduced extra cost and complexity. In the end, I decided to stay with Hugging Face Spaces because the free setup is more suitable for this side project. Also improved the HF app.py file"}, {"post_id": 50127, "ts": "2026-08-19T06:54:46Z", "hours": 8.6286, "text": "I noticed that the model was giving very generic and robotic responses even though it worked much better during training. After debugging, I realized I was using a different system prompt during inference than the one I used while fine tuning. Once I switched back to the exact same prompt, the responses became much more consistent. Also fixed Hackclub key errors , now it’s working fine"}, {"post_id": 48921, "ts": "2026-08-17T14:15:13Z", "hours": 10.1547, "text": "wanted senpai to be more. Previous It was only talking with using fine tuned Llama model but if i’ll ask it something like what’s happening in the world, it won’t talk back like my friend cause it didn’t have that latest information of the world so i added RAG. used the hackclub api as a middleman llm that cleans up messy input and decides if a web search is needed ( like “what’s the fifa score rn” this will be flagged as a web search needed query) two bugs along the way: responses were so slow at first , turns out just zeroGPU cold starts, chills out after msg 1 model started sounding fake n robotic bc i overwrote it with a huge system prompt. fixed this by making the heavy prompt short so now gng it’s live, plz talk to her"}, {"post_id": 46190, "ts": "2026-08-13T07:44:42Z", "hours": 7.7883, "text": "I uploaded my model on Hugging Face with zero GPU (made a new hf space called amadeus, picked gradio as the sdk, zeroGPU as hardware) If someone else is thinking about starting in HF, just wanna tell the annoying part: cold starts. first message takes 20-40s while the model loads into memory. after that it’s quick like 3-8s then built an actual next.js frontend since raw gradio ui felt kinda mid, hooked it up through an api route, deployed on vercel with my env keys And it’s live"}, {"post_id": 45064, "ts": "2026-08-11T10:21:56Z", "hours": 11.2864, "text": "Trained the data ( This took soo much time fr) I used kaggle’s free gpu (t4, sometimes p100 if i got lucky) to fine tune llama 3b with LoRA through PEFT. quick explainer since people asked LoRA freezes the whole base model (32m params untouched) and only trains a tiny set of adapter params (420k). instead of retraining the entire model I put a extra layer of changed weights on top of the model which is way cheaper and faster than the traditional training tested it after training and it WORKED. The model is giving the same energy, same little phrases, actual personality of my friend which is kinda scary ngl notebook’s public if you wanna nerd out: https://www.kaggle.com/code/hamnamubarak/amadeus/edit"}, {"post_id": 33459, "ts": "2026-07-23T13:12:01Z", "hours": 6.3861, "text": "so i’m building senpai, an ai that actually talks like my friend, not some normal chatbot. so first thing first, I need data to learn from so here’s wht I did: exported a whole year of whatsapp chats with my friend (yes i read through all of it, and got his consent). wrote a python script on kaggle to clean it up and formatting it into proper training pairs not glamorous but this is like 30% of the actual work tbh, garbage data can cause strange and irrelevant replies Then I trained this on Kaggle with Llama model with LoRA adaptation Right now the replies aren’t so great, I’ll do some fine tuning later"}]...
|
Title: Chatbot RAG by @Hamna | Stardance
Devlogs: Title: Chatbot RAG by @Hamna | Stardance
Devlogs:
so i’m building senpai, an ai that actually talks like my friend, not some normal chatbot. so first thing first, I need data to learn from so here’s wht I did: exported a whole year of whatsapp chats with my friend (yes i read through all of it, and got his consent). wrote a python script on kaggle to clean it up and formatting it into proper training pairs not glamorous but this is like 30% of the actual work tbh, garbage data can cause strange and irrelevant replies Then I trained this on Kaggle with Llama model with LoRA adaptation Right now the replies aren’t so great, I’ll do some fine tuning later
Trained the data ( This took soo much time fr) I used kaggle’s free gpu (t4, sometimes p100 if i got lucky) to fine tune llama 3b with LoRA through PEFT. quick explainer since people asked LoRA freezes the whole base model (32m params untouched) and only trains a tiny set of adapter params (420k). instead of retraining the entire model I put a extra layer of changed weights on top of the model which is way cheaper and faster than the traditional training tested it after training and it WORKED. The model is giving the same energy, same little phrases, actual personality of my friend which is kinda scary ngl notebook’s public if you wanna nerd out: https://www.kaggle.com/code/hamnamubarak/amadeus/edit
I uploaded my model on Hugging Face with zero GPU (made a new hf space called amadeus, picked gradio as the sdk, zeroGPU as hardware) If someone else is thinking about starting in HF, just wanna tell the annoying part: cold starts. first message takes 20-40s while the model loads into memory. after that it’s quick like 3-8s then built an actual next.js frontend since raw gradio ui felt kinda mid, hooked it up through an api route, deployed on vercel with my env keys And it’s live
wanted senpai to be more. Previous It was only talking with using fine tuned Llama model but if i’ll ask it something like what’s happening in the world, it won’t talk back like my friend cause it didn’t have that latest information of the world so i added RAG. used the hackclub api as a middleman llm that cleans up messy input and decides if a web search is needed ( like “what’s the fifa score rn” this will be flagged as a web search needed query) two bugs along the way: responses were so slow at first , turns out just zeroGPU cold starts, chills out after msg 1 model started sounding fake n robotic bc i overwrote it with a huge system prompt. fixed this by making the heavy prompt short so now gng it’s live, plz talk to her
I noticed that the model was giving very generic and robotic responses even though it worked much better during training. After debugging, I realized I was using a different system prompt during inference than the one I used while fine tuning. Once I switched back to the exact same prompt, the responses became much more consistent. Also fixed Hackclub key errors , now it’s working fine
I initially moved the deployment to Replicate to improve response speed. It worked and responses dropped from around 15–30 seconds to about 5–10 seconds but then it also introduced extra cost and complexity. In the end, I decided to stay with Hugging Face Spaces because the free setup is more suitable for this side project. Also improved the HF app.py file
I added logging, I started finding problems that weren’t obvious from the frontend. Web searches were sometimes failing silently, too many messages were causing token overflows, and using both max_length and max_new_tokens was causing unexpected behavior. I fixed these issues by adding proper error handling, limiting the conversation context, and simplifying the token settings. I also built a small debug dashboard to track searches, response times, token usage, and errors (Ughh I’m really exhausted now)
After testing the chatbot with around 50 beta users, I found several issues that weren’t obvious during development. Responses were too long, the personality became too generic when using RAG, Urdu and English were sometimes mixed incorrectly, and the mobile layout needed work. I shortened the responses, restricted web search to things like news and sports, improved the system prompt and input handling, redesigned the mobile UI, and added a message explaining the cold start delay
Made some Minor UI changes on frontend nextjs
Guyss!! This is gonna be the last change I’ve made today, Senpai chatbot is live now and she’s talking like my friend (really couldn’t be more happy to see her talk to me again 🥹 )
here
Ships:
I built a AI RAG chatbot that mimics my friends personality , trained on whatsapp chats so it actually talks like my friend instead of generic robot ai. fine tuned llama 3b with LoRA on kaggle’s free gpu, deployed it on hf spaces zeroGPU gradio for backend and next.js on vercel for frontend, plus added RAG so it can clean up messy texts and pull live info from the web when needed. it genuinely feels like talking to my friend, all built for free. to test it. just start chatting, first msg might take a sec to load (model’s waking up)
Made a RAG chatbot that mimics my friends personality using Llama and Hugging Face. NOTE: I’m using zero GPU on HF so after 100 msgs it goes to sleeping mood , in that case the chatbot would reply a random thing like “system off” , “internet is down” or something like that , so don’t worry about that, come after 24Hr and she’ll talk normally FACT: Senpai used to say a lot “Haii haii” which is a japanese phrase for “yes” so don’t worry about that either, she’s just being friendly with ya Hope ya’ll love this version of chatbot...
|
1793108912.6759431
|
1793195312.6759431
|
|
60442
|
Sorting Arena by @Ash-ioL | Stardance
|
Ash-ioL
|
0
|
6.13
|
0
|
[]
|
[{"post_id": 78991, "ts": "202 [{"post_id": 78991, "ts": "2026-10-12T08:46:27Z", "hours": 1.9256, "text": "Devlog 2 I added better overlap prevention by making it so that the page is still interactable when running, but this still has some flaws with reloading, and inconsistencies with cache and actual values which need to be fixed. I also added the html structure that replicates the attached design (generated by figma ai). Currently there’s no styling, only the code stucture. Future plans: Improve overlap prevention Add classes to make design styling easier Complete number slider Figure out why the speed seems to be capped Code logic for the results Struggles: Not much but it feels kind of tedious to write each thing line by line even though I’m using autocomplete. I’m also struggling to figure out why there’s a max speed cap."}, {"post_id": 78002, "ts": "2026-10-09T04:34:43Z", "hours": 4.2003, "text": "Devlog 1 I made a quick prototype, and added several sorting algorithms. It is at a usable state but has many bugs. It displays the result as an alert like this. Biggest challenge was working with all the small variables like the time and stuff and working with asynchronization."}]...
|
Title: Sorting Arena by @Ash-ioL | Stardance
Devl Title: Sorting Arena by @Ash-ioL | Stardance
Devlogs:
Devlog 1 I made a quick prototype, and added several sorting algorithms. It is at a usable state but has many bugs. It displays the result as an alert like this. Biggest challenge was working with all the small variables like the time and stuff and working with asynchronization.
Devlog 2 I added better overlap prevention by making it so that the page is still interactable when running, but this still has some flaws with reloading, and inconsistencies with cache and actual values which need to be fixed. I also added the html structure that replicates the attached design (generated by figma ai). Currently there’s no styling, only the code stucture. Future plans: Improve overlap prevention Add classes to make design styling easier Complete number slider Figure out why the speed seems to be capped Code logic for the results Struggles: Not much but it feels kind of tedious to write each thing line by line even though I’m using autocomplete. I’m also struggling to figure out why there’s a max speed cap....
|
1793033501.4645588
|
1793638301.4645588
|
|
69127
|
NiroSlackBot by @Nurazkhan | Stardance
|
Nurazkhan
|
1
|
2.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-12T09:07:16Z", "hours": 2.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Welcome NiroBot! It is my personal bot in slack! Actually it was pretty easy, I added my personal function that would be helpful for me in daily life. Yet, I was also happy to learn the process. It was my first SlackBot. There was some problems when responding with image, and hosting bot to the nest. But I was able to debug them. I also spent time making readme readable and made demo.md with screens of each response. Hope you enjoy! `Available Commands: /nirobot-ping - Check bot latency /nirobot-catfact - Get a cat fact /nirobot-trend - Get Latest trending repos from github /nirobot-currency - Get USD and CNY values in terms of KZT /nirobot-anime - Get least of ongoing animes. /nirobot-help - Get Info about all comands.`", "repo": "https://github.com/Nurazkhan/NiroSlackBot", "demo": "https://hackclub.enterprise.slack.com/archives/C0C8HA4S6BU"}]...
|
[{"post_id": 78994, "ts": "202 [{"post_id": 78994, "ts": "2026-10-12T09:02:41Z", "hours": 0.9997, "text": "Completed! Last thing I have added was random trending git repo. When searching freeapis i found interesting one. Which was official github api. So, now I can get random open source project by command. Well it was pretty straightforward to implement. The new thing I learned was mrkdwn format use in slackbot respond, i had to make clickable link. Also I spent time making readme readable and making demo md. I looked throught projects of others and tried to get best from other. So, i made channel for my bot for ease of testing. Also, i had removed joke function from tutorial as api seeps to fail. Also, I have uploaded bot to the nest! it actually had problems, but they were easy to solve, I just accidentally added extra text in .env file, but it was fixed."}, {"post_id": 78977, "ts": "2026-10-12T07:38:04Z", "hours": 0.3725, "text": "2 Function added. It converts currencies like USD and CNY to my local currency. apparently very easy as it doesnt involve any image or other. Straightforward send get request to api, fetch it and respond with it. I think I will ship third function and after fixing the readme will already ship it."}, {"post_id": 78693, "ts": "2026-10-11T10:01:04Z", "hours": 0.7194, "text": "Just starting out. Quickly passed through the guide and got the basics of making slack bots. So after pinging my own bot and adding basic cat fact funtion I tried to add my own function that sends api to anime provider. So, now I can see all ongoing animes. Had to look through githubs of other projects to learn how to send images, as guide focused only on text response. But currently I am pretty happy with the result, Also thinking of adding other functions too. Not sure for now what I will add."}]...
|
Title: NiroSlackBot by @Nurazkhan | Stardance
Dev Title: NiroSlackBot by @Nurazkhan | Stardance
Devlogs:
Just starting out. Quickly passed through the guide and got the basics of making slack bots. So after pinging my own bot and adding basic cat fact funtion I tried to add my own function that sends api to anime provider. So, now I can see all ongoing animes. Had to look through githubs of other projects to learn how to send images, as guide focused only on text response. But currently I am pretty happy with the result, Also thinking of adding other functions too. Not sure for now what I will add.
2 Function added. It converts currencies like USD and CNY to my local currency. apparently very easy as it doesnt involve any image or other. Straightforward send get request to api, fetch it and respond with it. I think I will ship third function and after fixing the readme will already ship it.
Completed! Last thing I have added was random trending git repo. When searching freeapis i found interesting one. Which was official github api. So, now I can get random open source project by command. Well it was pretty straightforward to implement. The new thing I learned was mrkdwn format use in slackbot respond, i had to make clickable link. Also I spent time making readme readable and making demo md. I looked throught projects of others and tried to get best from other. So, i made channel for my bot for ease of testing. Also, i had removed joke function from tutorial as api seeps to fail. Also, I have uploaded bot to the nest! it actually had problems, but they were easy to solve, I just accidentally added extra text in .env file, but it was fixed.
Ships:
Welcome NiroBot! It is my personal bot in slack! Actually it was pretty easy, I added my personal function that would be helpful for me in daily life. Yet, I was also happy to learn the process. It was my first SlackBot. There was some problems when responding with image, and hosting bot to the nest. But I was able to debug them. I also spent time making readme readable and made demo.md with screens of each response. Hope you enjoy! `Available Commands: /nirobot-ping - Check bot latency /nirobot-catfact - Get a cat fact /nirobot-trend - Get Latest trending repos from github /nirobot-currency - Get USD and CNY values in terms of KZT /nirobot-anime - Get least of ongoing animes. /nirobot-help - Get Info about all comands.`...
|
1793062387.946687
|
1793148787.946687
|
|
6948
|
Needoh Factory by @Oscar_da_best | Stardance
|
Oscar_da_best
|
2
|
46.0
|
399
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-12T09:36:31Z", "hours": 6.0, "multiplier": 8.4, "payout": 54, "blessing": "neutral", "text": "I added a obby island to the project and made the game run a little better in general less bugs now and i am working on ading all the coming soon features", "repo": "https://github.com/Duder-coolman/needoh-tycoon", "demo": "https://www.roblox.com/games/85070662876748/Needoh-Factory"}, {"ship_num": 2, "ts": "2026-09-15T02:11:55Z", "hours": 40.0, "multiplier": 8.67, "payout": 345, "blessing": "neutral", "text": "I made a game called Needoh Factory where you buy needohs and merge them to get cooler needohs that make more money. This was a challanging project because I challenged myself to step away from AI an really test what I could do as well as basiclly learing Luau for the first time. I am proud of how far I have come on this journey and proud of the effort I put into this game. anyone who wats to test my project can test it as long as they make a roblox account!", "repo": "https://github.com/Duder-coolman/needoh-tycoon", "demo": "https://www.roblox.com/games/85070662876748/Needoh-Factory"}]...
|
[{"post_id": 78999, "ts": "202 [{"post_id": 78999, "ts": "2026-10-12T09:34:08Z", "hours": 1.1264, "text": "I made a new gem curency and fixed some more bugs that were pretty game breaking like things getting out of the droppers"}, {"post_id": 78019, "ts": "2026-10-09T07:03:58Z", "hours": 2.2419, "text": "I added a parkour island as somthing to do while you passivly make money and the parkour will reward a new currency called gems which will be very useful in the future."}, {"post_id": 77759, "ts": "2026-10-08T05:48:11Z", "hours": 3.0975, "text": "I replaced my script with a Module script allowing me to use the function in other parts of my game like when the player joins or amy other time I need to update the GUI. Mainly jut doing bug fixes right now before I add any more big features to the game and I dont really remember everything I did. :P"}, {"post_id": 68404, "ts": "2026-09-15T02:07:23Z", "hours": 2.4011, "text": "Finished up the game early, a lot is not done but there will be an update hopefully before stardance ends"}, {"post_id": 66425, "ts": "2026-09-12T07:50:55Z", "hours": 5.7147, "text": "There are three pictures I really dislike UI but I am pushing through it and had some fun making the map more decorated. made a working teleport system. Next I will make a shop for the ingame currency and I will add background music as well as making the purchases work. I’m really enjoying this project and hoping to finish in the next week!! :)"}, {"post_id": 65184, "ts": "2026-09-10T04:05:22Z", "hours": 5.5197, "text": "I finisshed the conversion sysstem that allows the player to convert thier needohs into monye finally completeing the core loop of the game. it is not playable and I will be debugging and decorating for the next 10-15 hours🥳🥳 then I can finally ship it I also completed a startup script so that all the UI can update when A player joins the game to display the correct prices and I watched a tutorial on how to make numbers with suffixes after them to make the pricees easier to read."}, {"post_id": 55382, "ts": "2026-08-27T05:38:59Z", "hours": 5.3786, "text": "i added coded the dropper models into the tower and now you can buy them and merge three to get the next level up. they also drop mini and simplified versions of themselves that the player can pick up for a currency that will then be turned into coins im super happy that this project is coming along and am looking forward to shiping it soon."}, {"post_id": 52062, "ts": "2026-08-22T03:48:39Z", "hours": 4.2428, "text": "I made the second row this time. give me some feedback please i like any critisizm just keep in mind I litteraly just started learning. the first row is in my last post. happy to begin working on the main loop of the game soon."}, {"post_id": 48697, "ts": "2026-08-17T06:30:55Z", "hours": 3.6744, "text": "Made a whole pack of runic symbols that I will sell on roblox’s marketplace for $0.99 and made 10 models for my game planning on finishing the other 10 tommorow."}, {"post_id": 47227, "ts": "2026-08-15T00:29:49Z", "hours": 2.0911, "text": "Made the buttons more appealing and rewrote the button purchasing script to make it less repetetive."}, {"post_id": 43160, "ts": "2026-08-08T08:30:52Z", "hours": 5.4481, "text": "Made a save data storage script and a script to buy droppers I cannot figure out how to add code blocks so these terrible pictures will have to do"}, {"post_id": 5630, "ts": "2026-06-09T14:38:25Z", "hours": 2.2406, "text": "I added the main element of the game and made a plot system that gives the player a plot when they load in. (lighting looks bad because it is not textured yet)"}, {"post_id": 4036, "ts": "2026-06-07T06:49:08Z", "hours": 1.775, "text": "Added pathways and portals for obstacle courses, its so hard to make pathways… planning on making a lot of progress tommorow and waiting to finishing building so I can start scripting 🙏"}, {"post_id": 3341, "ts": "2026-06-06T07:05:12Z", "hours": 0.5228, "text": "Added water around the islands and bridges connecting them. planning on locking in tomorrow"}, {"post_id": 2599, "ts": "2026-06-05T06:43:34Z", "hours": 0.3025, "text": "Currently very busy finishing up school but I was able to make a measured out map."}, {"post_id": 1982, "ts": "2026-06-04T07:40:57Z", "hours": 0.5017, "text": "Basic Hover effect for button along with other basic thing I like to set up when I start a project"}]...
|
Title: Needoh Factory by @Oscar_da_best | Stardanc Title: Needoh Factory by @Oscar_da_best | Stardance
Devlogs:
Basic Hover effect for button along with other basic thing I like to set up when I start a project
Currently very busy finishing up school but I was able to make a measured out map.
Added water around the islands and bridges connecting them. planning on locking in tomorrow
Added pathways and portals for obstacle courses, its so hard to make pathways… planning on making a lot of progress tommorow and waiting to finishing building so I can start scripting 🙏
I added the main element of the game and made a plot system that gives the player a plot when they load in. (lighting looks bad because it is not textured yet)
Made a save data storage script and a script to buy droppers I cannot figure out how to add code blocks so these terrible pictures will have to do
Made the buttons more appealing and rewrote the button purchasing script to make it less repetetive.
Made a whole pack of runic symbols that I will sell on roblox’s marketplace for $0.99 and made 10 models for my game planning on finishing the other 10 tommorow.
I made the second row this time. give me some feedback please i like any critisizm just keep in mind I litteraly just started learning. the first row is in my last post. happy to begin working on the main loop of the game soon.
i added coded the dropper models into the tower and now you can buy them and merge three to get the next level up. they also drop mini and simplified versions of themselves that the player can pick up for a currency that will then be turned into coins im super happy that this project is coming along and am looking forward to shiping it soon.
I finisshed the conversion sysstem that allows the player to convert thier needohs into monye finally completeing the core loop of the game. it is not playable and I will be debugging and decorating for the next 10-15 hours🥳🥳 then I can finally ship it I also completed a startup script so that all the UI can update when A player joins the game to display the correct prices and I watched a tutorial on how to make numbers with suffixes after them to make the pricees easier to read.
There are three pictures I really dislike UI but I am pushing through it and had some fun making the map more decorated. made a working teleport system. Next I will make a shop for the ingame currency and I will add background music as well as making the purchases work. I’m really enjoying this project and hoping to finish in the next week!! :)
Finished up the game early, a lot is not done but there will be an update hopefully before stardance ends
I replaced my script with a Module script allowing me to use the function in other parts of my game like when the player joins or amy other time I need to update the GUI. Mainly jut doing bug fixes right now before I add any more big features to the game and I dont really remember everything I did. :P
I added a parkour island as somthing to do while you passivly make money and the parkour will reward a new currency called gems which will be very useful in the future.
I made a new gem curency and fixed some more bugs that were pretty game breaking like things getting out of the droppers
Ships:
I made a game called Needoh Factory where you buy needohs and merge them to get cooler needohs that make more money. This was a challanging project because I challenged myself to step away from AI an really test what I could do as well as basiclly learing Luau for the first time. I am proud of how far I have come on this journey and proud of the effort I put into this game. anyone who wats to test my project can test it as long as they make a roblox account!
I added a obby island to the project and made the game run a little better in general less bugs now and i am working on ading all the coming soon features...
|
1793148782.9288151
|
1793235182.9288151
|
|
66687
|
Aibot by @Sai_Shreyansh | Stardance
|
Sai_Shreyansh
|
0
|
2.97
|
0
|
[]
|
[{"post_id": 79000, "ts": "202 [{"post_id": 79000, "ts": "2026-10-12T09:36:18Z", "hours": 1.7594, "text": "Just did another grind rn"}, {"post_id": 75134, "ts": "2026-09-29T07:53:45Z", "hours": 0.5397, "text": "tried smth in vs code, keep getting errors fr some reason"}, {"post_id": 75116, "ts": "2026-09-29T05:36:14Z", "hours": 0.6708, "text": "Aibot, finished with the schematics(not perfect but its alright ig)"}]...
|
Title: Aibot by @Sai_Shreyansh | Stardance
Devlog Title: Aibot by @Sai_Shreyansh | Stardance
Devlogs:
Aibot, finished with the schematics(not perfect but its alright ig)
tried smth in vs code, keep getting errors fr some reason
Just did another grind rn...
|
1793101841.6076102
|
1793706641.6076102
|
|
69246
|
Arduino-mini-weather-station by @Che | Stardance
|
Che
|
0
|
0.28
|
0
|
[]
|
[{"post_id": 79003, "ts": "202 [{"post_id": 79003, "ts": "2026-10-12T09:46:23Z", "hours": 0.2775, "text": "I am finally done with the first prototype, I build a mini weather station using an Arduino to mesure temps, humidity, light and rain. I used Python, Pandas and Matplotlib to analyse and safe the data I got from my Arduino. Sadly I picked the wrong sensors, they started giving me nonsense data pretty quickly :("}]...
|
Title: Arduino-mini-weather-station by @Che | Star Title: Arduino-mini-weather-station by @Che | Stardance
Devlogs:
I am finally done with the first prototype, I build a mini weather station using an Arduino to mesure temps, humidity, light and rain. I used Python, Pandas and Matplotlib to analyse and safe the data I got from my Arduino. Sadly I picked the wrong sensors, they started giving me nonsense data pretty quickly :(...
|
1793130813.3220468
|
1793735613.3220468
|
|
69024
|
Terminal-game by @BigBrainNevin | Stardance
|
BigBrainNevin
|
1
|
3.6
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-10T17:13:13Z", "hours": 3.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "I made a chess game which is playable on the terminal. The most challenging part I would say was the library ‘Blessed’ which was the library used to make the terminal playable and also debugging the co-ordinates of the chess game. I did this project initially for Terra the ‘hack club’ game but I also uploaded for this because why not? I am planning to add an AI opponent and overall improve the experience.", "repo": "https://github.com/Nevin-Thomas1810/Terminal-game", "demo": "https://github.com/Nevin-Thomas1810/Terminal-game/blob/main/test.py"}]...
|
[{"post_id": 79006, "ts": "202 [{"post_id": 79006, "ts": "2026-10-12T09:55:56Z", "hours": 0.5967, "text": "Added an AI opponent(stockfish) to this."}, {"post_id": 78391, "ts": "2026-10-10T17:06:09Z", "hours": 3.1361, "text": "I worked on a chess game playable in the terminal."}]...
|
Title: Terminal-game by @BigBrainNevin | Stardance Title: Terminal-game by @BigBrainNevin | Stardance
Devlogs:
I worked on a chess game playable in the terminal.
Added an AI opponent(stockfish) to this.
Ships:
I made a chess game which is playable on the terminal. The most challenging part I would say was the library ‘Blessed’ which was the library used to make the terminal playable and also debugging the co-ordinates of the chess game. I did this project initially for Terra the ‘hack club’ game but I also uploaded for this because why not? I am planning to add an AI opponent and overall improve the experience....
|
1793062381.2055483
|
1793148781.2055483
|
|
69318
|
Calculator by ANSEL by @ALM | Stardance
|
ALM
|
1
|
1.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-12T12:05:37Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "This project is a simple and user-friendly calculator built using only HTML and CSS, without JavaScript. The main objective of this project is to create a clean and attractive calculator interface while improving my skills in web development and CSS styling. The calculator design includes buttons for numbers, basic arithmetic operations such as addition, subtraction, multiplication, and division, along with a display screen. HTML is used to structure the calculator, while CSS is used to design the layout, style the buttons, add colors, and create a responsive and visually appealing interface. This project demonstrates how HTML and CSS can be used to build a calculator’s user interface without using JavaScript. Since JavaScript is not used, the calculator focuses mainly on its design and layout rather than performing actual calculations.", "repo": "https://github.com/ansellijomeledath-bit/CALCULATOR-by-Ansel", "demo": "https://ansellijomeledath-bit.github.io/CALCULATOR-by-Ansel/"}]...
|
[{"post_id": 79008, "ts": "202 [{"post_id": 79008, "ts": "2026-10-12T10:00:16Z", "hours": 1.2881, "text": "This project is a simple and user-friendly calculator built using only HTML and CSS, without JavaScript. The main objective of this project is to create a clean and attractive calculator interface while improving my skills in web development and CSS styling. The calculator design includes buttons for numbers, basic arithmetic operations such as addition, subtraction, multiplication, and division, along with a display screen. HTML is used to structure the calculator, while CSS is used to design the layout, style the buttons, add colors, and create a responsive and visually appealing interface. This project demonstrates how HTML and CSS can be used to build a calculator’s user interface without using JavaScript. Since JavaScript is not used, the calculator focuses mainly on its design and layout rather than performing actual calculations."}]...
|
Title: Calculator by ANSEL by @ALM | Stardance
De Title: Calculator by ANSEL by @ALM | Stardance
Devlogs:
This project is a simple and user-friendly calculator built using only HTML and CSS, without JavaScript. The main objective of this project is to create a clean and attractive calculator interface while improving my skills in web development and CSS styling. The calculator design includes buttons for numbers, basic arithmetic operations such as addition, subtraction, multiplication, and division, along with a display screen. HTML is used to structure the calculator, while CSS is used to design the layout, style the buttons, add colors, and create a responsive and visually appealing interface. This project demonstrates how HTML and CSS can be used to build a calculator’s user interface without using JavaScript. Since JavaScript is not used, the calculator focuses mainly on its design and layout rather than performing actual calculations.
Ships:
This project is a simple and user-friendly calculator built using only HTML and CSS, without JavaScript. The main objective of this project is to create a clean and attractive calculator interface while improving my skills in web development and CSS styling. The calculator design includes buttons for numbers, basic arithmetic operations such as addition, subtraction, multiplication, and division, along with a display screen. HTML is used to structure the calculator, while CSS is used to design the layout, style the buttons, add colors, and create a responsive and visually appealing interface. This project demonstrates how HTML and CSS can be used to build a calculator’s user interface without using JavaScript. Since JavaScript is not used, the calculator focuses mainly on its design and layout rather than performing actual calculations....
|
1793062396.0819993
|
1793148796.0819993
|
|
1170
|
Azimuthal by @M8000 | Stardance
|
M8000
|
2
|
36.0
|
527
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-12T10:59:29Z", "hours": 4.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Azimuthal - A satellite tracking webapp Trying to make this into my first professional website. The most difficult part was optimization and getting down loading/buffering times, followed by updating data automatically through API.", "repo": "https://github.com/abhijato-c/Azimuthal", "demo": "https://azimuthal.vercel.app/"}, {"ship_num": 2, "ts": "2026-07-13T12:15:27Z", "hours": 32.0, "multiplier": 16.56, "payout": 527, "blessing": "neutral", "text": "A satellite tracking website with features to filter, see location details, and see motion in real time. The most difficult part of the project was removing the lag, since tracking 18,000 satellites in real time is very computationally expensive", "repo": "https://github.com/abhijato-c/Azimuthal", "demo": "https://azimuthal.vercel.app/"}]...
|
[{"post_id": 79013, "ts": "202 [{"post_id": 79013, "ts": "2026-10-12T10:55:48Z", "hours": 0.34, "text": "Changes Fixed CRON job on vercel Added SEO optimizations through sitemaps, meta tags etc"}, {"post_id": 42559, "ts": "2026-08-07T11:42:50Z", "hours": 0.5564, "text": "Changes Limited max fast forward speed to 10x Limited max date range to 1 day back and forth from current time (TLE’s expire) Bugfix on interpolation not updating when timeline was scrubbed to a previous date. Next Update Try to reduce lag Faster updates"}, {"post_id": 41865, "ts": "2026-08-06T10:41:53Z", "hours": 0.6972, "text": "Changes Removed caching Space-Track cookie Added a GitHub repo badge Replaced .png Info and Menu icons with .svg files"}, {"post_id": 41260, "ts": "2026-08-05T11:19:45Z", "hours": 1.0658, "text": "Changes Added vercel speed analytics Fixed and muted some errors and warnings regarding npm packages Added a list of full launch site names, displayed instead of the code. Future Updates Add a github link/watermark (idk what it’s called) somewhere Fix issue where camera/satellites glitch when time is sped up (limit timeline, speed) Reduce loading times and lag"}, {"post_id": 40758, "ts": "2026-08-04T14:28:45Z", "hours": 1.0467, "text": "Changes Moved the countries list and country to launch site mapping from blob store to json file Added vercel analytics Details sidebar now shows full country name Next Updates Add json file of site names Show full site name in sidebar and search"}, {"post_id": 27637, "ts": "2026-07-13T12:13:07Z", "hours": 6.5639, "text": "Changes Fixed orbital calculations not auto updating Added interpolation Add location and position details in right sidebar Cleanup changes and minor refactor with the webworker."}, {"post_id": 16055, "ts": "2026-06-26T02:47:30Z", "hours": 1.7853, "text": "Fixes Cleaned up dead/burnt up satellites from db Minor fix in behavior of select all buttons Documented code, ts was seriously getting too complicated Major update - WebWorkers Managed to kinda deal with the lag by using WebWorkers. This means panning around the globe will be smoother, but in exchange, the satellite motions look framier as they are throttled."}, {"post_id": 15970, "ts": "2026-06-25T22:50:31Z", "hours": 1.7603, "text": "Changes Added satellite images for groups of satellites! There are now options to select and deselect all in the countries and sites menu. Searching by name now works. (literally forgot to implement this while working on filters) Images It’s impossible to individually get images for all 18,000 satellites, especially since most of them don’t have images or are classified. So here, I just used generic images for as many classes of satellites as possible. For example, all Starlink satellites have the same image, and all Russian COSMOS (military) satellites have a general depiction of the cosmos satellites. I tried to get the most accurate images for each group, but many are still artistic representations. All satellites not in any group fall back to a generic image Next step GET RID OF THE LAG! This has been pending for a long time, finally will work on it now."}, {"post_id": 15433, "ts": "2026-06-25T02:35:43Z", "hours": 2.73, "text": "Changes Changed map to MapTiler from Open Map Added tracking when you select a satellite. Camera automatically follows the satellite Tracking also shows the orbital trajectory in red Fixed a stupid bug where I added throttling to improve the performance, but that only reduce fps :/ Next Steps Add satellite images (idk how to do that for 18,000 satellites) Classify satellites and filter by category Color according to category"}, {"post_id": 14792, "ts": "2026-06-24T01:02:14Z", "hours": 1.3008, "text": "Created the right sidebar for details!"}, {"post_id": 12965, "ts": "2026-06-21T06:53:44Z", "hours": 1.2669, "text": "Made the list of satellites!"}, {"post_id": 9791, "ts": "2026-06-16T07:08:02Z", "hours": 2.1844, "text": "Updates Major CSS & color overhaul! Added the preview of the list of satellites returned by search, now need to make it dynamically added by js CSS and color designing is difficult, this update took quite a while… Next Make the list functional and clickable Show satellite details on click Trajectory tracking Try out the preview at nadir-space.vercel.app !"}, {"post_id": 8783, "ts": "2026-06-14T16:21:20Z", "hours": 1.7972, "text": "Finished the code to retrieve search results from the backend! Also filled in more sections of the sidebar. Next - show the search results in the scroll region, and handle search page flips."}, {"post_id": 8066, "ts": "2026-06-13T13:59:26Z", "hours": 1.0686, "text": "Added filters for launch site. Launch sites are populated automatically based on whichever countries are selected. Suggestions and improvements on GUI design are welcome! Next steps - Get the filtered satellites from the backend, and display them below the search filter on the sidebar as item boxes. Will also need to add trajectory tracking later."}, {"post_id": 7484, "ts": "2026-06-12T14:20:13Z", "hours": 1.6753, "text": "Working on some backend code for filtering satellite entries… This feature may take some time"}, {"post_id": 6905, "ts": "2026-06-11T16:06:27Z", "hours": 1.5061, "text": "Started work on the filter sidebar (suggestions on design improvements pls!!) Working with CSS is horrible, it takes me way too long to make a simple element fit properly.."}, {"post_id": 6242, "ts": "2026-06-10T14:21:04Z", "hours": 1.2944, "text": "Added the layouts for the search and info sidebar Next - populate the sidebars, first with the search function"}, {"post_id": 5612, "ts": "2026-06-09T14:03:39Z", "hours": 1.0925, "text": "Successfully rendered the satellites as moving dots! Now working on the GUI, including trajectory tracking, filtering, and loading screens."}, {"post_id": 4923, "ts": "2026-06-08T14:57:06Z", "hours": 1.115, "text": "Managed to write an API endpoint to retrieve satellite ID’s based on filters, will be used later in the frontend Next step - render the satellites as dots."}, {"post_id": 4079, "ts": "2026-06-07T08:35:10Z", "hours": 2.1633, "text": "Completed code to retrieve catalog of satellites, and store it in NeonDB! I might get banned from spacetrack bcz of the unholy number of API requests I fired for debugging…"}, {"post_id": 2757, "ts": "2026-06-05T15:12:05Z", "hours": 1.6494, "text": "It took me embarrassingly long to implement such a simple helper function! Finally though, I managed to be able to sign in to spacetrack, and store the session cookie provided in vercel blob storage. Most of my time went in debugging errors with blob storage, but now that I’ve learnt that, progress should be faster!"}, {"post_id": 303, "ts": "2026-06-01T15:43:25Z", "hours": 1.0647, "text": "Deployed the app on vercel, with a cesium js renderer!"}]...
|
Title: Azimuthal by @M8000 | Stardance
Devlogs:
D Title: Azimuthal by @M8000 | Stardance
Devlogs:
Deployed the app on vercel, with a cesium js renderer!
It took me embarrassingly long to implement such a simple helper function! Finally though, I managed to be able to sign in to spacetrack, and store the session cookie provided in vercel blob storage. Most of my time went in debugging errors with blob storage, but now that I’ve learnt that, progress should be faster!
Completed code to retrieve catalog of satellites, and store it in NeonDB! I might get banned from spacetrack bcz of the unholy number of API requests I fired for debugging…
Managed to write an API endpoint to retrieve satellite ID’s based on filters, will be used later in the frontend Next step - render the satellites as dots.
Successfully rendered the satellites as moving dots! Now working on the GUI, including trajectory tracking, filtering, and loading screens.
Added the layouts for the search and info sidebar Next - populate the sidebars, first with the search function
Started work on the filter sidebar (suggestions on design improvements pls!!) Working with CSS is horrible, it takes me way too long to make a simple element fit properly..
Working on some backend code for filtering satellite entries… This feature may take some time
Added filters for launch site. Launch sites are populated automatically based on whichever countries are selected. Suggestions and improvements on GUI design are welcome! Next steps - Get the filtered satellites from the backend, and display them below the search filter on the sidebar as item boxes. Will also need to add trajectory tracking later.
Finished the code to retrieve search results from the backend! Also filled in more sections of the sidebar. Next - show the search results in the scroll region, and handle search page flips.
Updates Major CSS & color overhaul! Added the preview of the list of satellites returned by search, now need to make it dynamically added by js CSS and color designing is difficult, this update took quite a while… Next Make the list functional and clickable Show satellite details on click Trajectory tracking Try out the preview at nadir-space.vercel.app !
Made the list of satellites!
Created the right sidebar for details!
Changes Changed map to MapTiler from Open Map Added tracking when you select a satellite. Camera automatically follows the satellite Tracking also shows the orbital trajectory in red Fixed a stupid bug where I added throttling to improve the performance, but that only reduce fps :/ Next Steps Add satellite images (idk how to do that for 18,000 satellites) Classify satellites and filter by category Color according to category
Changes Added satellite images for groups of satellites! There are now options to select and deselect all in the countries and sites menu. Searching by name now works. (literally forgot to implement this while working on filters) Images It’s impossible to individually get images for all 18,000 satellites, especially since most of them don’t have images or are classified. So here, I just used generic images for as many classes of satellites as possible. For example, all Starlink satellites have the same image, and all Russian COSMOS (military) satellites have a general depiction of the cosmos satellites. I tried to get the most accurate images for each group, but many are still artistic representations. All satellites not in any group fall back to a generic image Next step GET RID OF THE LAG! This has been pending for a long time, finally will work on it now.
Fixes Cleaned up dead/burnt up satellites from db Minor fix in behavior of select all buttons Documented code, ts was seriously getting too complicated Major update - WebWorkers Managed to kinda deal with the lag by using WebWorkers. This means panning around the globe will be smoother, but in exchange, the satellite motions look framier as they are throttled.
Changes Fixed orbital calculations not auto updating Added interpolation Add location and position details in right sidebar Cleanup changes and minor refactor with the webworker.
Changes Moved the countries list and country to launch site mapping from blob store to json file Added vercel analytics Details sidebar now shows full country name Next Updates Add json file of site names Show full site name in sidebar and search
Changes Added vercel speed analytics Fixed and muted some errors and warnings regarding npm packages Added a list of full launch site names, displayed instead of the code. Future Updates Add a github link/watermark (idk what it’s called) somewhere Fix issue where camera/satellites glitch when time is sped up (limit timeline, speed) Reduce loading times and lag
Changes Removed caching Space-Track cookie Added a GitHub repo badge Replaced .png Info and Menu icons with .svg files
Changes Limited max fast forward speed to 10x Limited max date range to 1 day back and forth from current time (TLE’s expire) Bugfix on interpolation not updating when timeline was scrubbed to a previous date. Next Update Try to reduce lag Faster updates
Changes Fixed CRON job on vercel Added SEO optimizations through sitemaps, meta tags etc
Ships:
A satellite tracking website with features to filter, see location details, and see motion in real time. The most difficult part of the project was removing the lag, since tracking 18,000 satellites in real time is very computationally expensive
Azimuthal - A satellite tracking webapp Trying to make this into my first professional website. The most difficult part was optimization and getting down loading/buffering times, followed by updating data automatically through API....
|
1793094914.29987
|
1793181314.29987
|
|
14351
|
YTS by @omarelasfar_31510 | Stardance
|
omarelasfar_31510
|
0
|
31.63
|
0
|
[]
|
[{"post_id": 79017, "ts": "202 [{"post_id": 79017, "ts": "2026-10-12T11:31:46Z", "hours": 22.7389, "text": "I’m working on the mechanism by which I can insert, connect, and retrieve data from several tables in the fewest number of queries."}, {"post_id": 10250, "ts": "2026-06-16T21:46:30Z", "hours": 8.8892, "text": "I’m making a YouTube scraper that can access videos in any channel and gather data about these videos for further analyzing"}]...
|
Title: YTS by @omarelasfar_31510 | Stardance
Devl Title: YTS by @omarelasfar_31510 | Stardance
Devlogs:
I’m making a YouTube scraper that can access videos in any channel and gather data about these videos for further analyzing
I’m working on the mechanism by which I can insert, connect, and retrieve data from several tables in the fewest number of queries....
|
1792788576.4165156
|
1793393376.4165156
|
|
68277
|
Amads Personal Portfolio Site by @Amad-Hussain-Dev Amads Personal Portfolio Site by @Amad-Hussain-Dev | Stardance...
|
Amad-Hussain-Dev
|
3
|
3.82
|
2
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-09T12:39:22Z", "hours": 1.0, "multiplier": 1.01, "payout": 1, "blessing": "neutral", "text": "this is my own personal portfolio site where I plan on adding all my certifications,achievements, projects and more. Currently built this for the Stardance mission “Personal Site”, but I had been planning on making something like this for quite a while, and the 10 stardust plus 11$ domain grant finally pushed me over the edge! Currently the website doesnt really have the best UI or subsection pages, but I have big plans on improving it with a more dynamic UI, subsections with multiple Images and more. Just need to find the time :) This is now my third ship and in it I have now added a section with my certifications", "repo": "https://github.com/dev-amad/personal-website", "demo": "https://syed-muhammad-amad-hussain.vercel.app/"}, {"ship_num": 2, "ts": "2026-10-07T11:02:03Z", "hours": 1.0, "multiplier": 1.04, "payout": 1, "blessing": "neutral", "text": "this is my own personal portfolio site where I plan on adding all my certifications,achievements, projects and more. Currently built this for the Stardance mission “Personal Site”, but I had been planning on making something like this for quite a while, and the 10 stardust plus 11$ domain grant finally pushed me over the edge! Currently the website doesnt really have the best UI or subsection pages, but I have big plans on improving it with a more dynamic UI, subsections with multiple Images and more. Just need to find the time :)", "repo": "https://github.com/dev-amad/personal-website", "demo": "https://syed-muhammad-amad-hussain.vercel.app/"}, {"ship_num": 3, "ts": "2026-10-06T15:23:02Z", "hours": 1.0, "multiplier": null, "payout": 0, "blessing": "neutral", "text": "Hello fellow Devs! I am Amad, a high school student all the way in the mystical land of Pakistan. This project is my personal portfolio website which I built as part of the missions on Hack Club Star Dance! Currently its quite a basic site but I have plans to make it into my true portfolio for throughout my educational career like adding my certifications,awards and more. just need to find that one free weekend. :)", "repo": "https://github.com/dev-amad/personal-website", "demo": "https://syed-muhammad-amad-hussain.vercel.app/"}]...
|
[{"post_id": 79018, "ts": "202 [{"post_id": 79018, "ts": "2026-10-12T11:35:27Z", "hours": 0.8164, "text": "header finally aligned to the top and added the direct links in certification section. also on day 6 of the stricky streak and a weak roll today. 62,869"}, {"post_id": 77817, "ts": "2026-10-08T12:08:50Z", "hours": 1.1322, "text": "Added a Certifications Section! Also added a kink to it in the navbar"}, {"post_id": 77531, "ts": "2026-10-07T10:55:44Z", "hours": 0.5319, "text": "adding my projects to the projects section with direct links. still experimenting with css and back ground colours. will likely keep the back ground as green instead of this blue tho"}, {"post_id": 77310, "ts": "2026-10-06T14:46:03Z", "hours": 0.3533, "text": "trying out css styling for the first time and adding links to my linkedin & github. NEXT STOPS GONNA BE UPLOADING THE CODE TO GITHUB!!!!"}, {"post_id": 77305, "ts": "2026-10-06T14:17:57Z", "hours": 0.3614, "text": "Added a Image of myself!!!"}, {"post_id": 77295, "ts": "2026-10-06T13:53:36Z", "hours": 0.4497, "text": "Started Building my own portfolio as part of the begginer stardance mission!!! Stoked to finally be doing one of these"}]...
|
Title: Amads Personal Portfolio Site by @Amad-Huss Title: Amads Personal Portfolio Site by @Amad-Hussain-Dev | Stardance
Devlogs:
Started Building my own portfolio as part of the begginer stardance mission!!! Stoked to finally be doing one of these
Added a Image of myself!!!
trying out css styling for the first time and adding links to my linkedin & github. NEXT STOPS GONNA BE UPLOADING THE CODE TO GITHUB!!!!
adding my projects to the projects section with direct links. still experimenting with css and back ground colours. will likely keep the back ground as green instead of this blue tho
Added a Certifications Section! Also added a kink to it in the navbar
header finally aligned to the top and added the direct links in certification section. also on day 6 of the stricky streak and a weak roll today. 62,869
Ships:
Hello fellow Devs! I am Amad, a high school student all the way in the mystical land of Pakistan. This project is my personal portfolio website which I built as part of the missions on Hack Club Star Dance! Currently its quite a basic site but I have plans to make it into my true portfolio for throughout my educational career like adding my certifications,awards and more. just need to find that one free weekend. :)
this is my own personal portfolio site where I plan on adding all my certifications,achievements, projects and more. Currently built this for the Stardance mission “Personal Site”, but I had been planning on making something like this for quite a while, and the 10 stardust plus 11$ domain grant finally pushed me over the edge! Currently the website doesnt really have the best UI or subsection pages, but I have big plans on improving it with a more dynamic UI, subsections with multiple Images and more. Just need to find the time :)
this is my own personal portfolio site where I plan on adding all my certifications,achievements, projects and more. Currently built this for the Stardance mission “Personal Site”, but I had been planning on making something like this for quite a while, and the 10 stardust plus 11$ domain grant finally pushed me over the edge! Currently the website doesnt really have the best UI or subsection pages, but I have big plans on improving it with a more dynamic UI, subsections with multiple Images and more. Just need to find the time :) This is now my third ship and in it I have now added a section with my certifications...
|
1793065790.0382798
|
1793152190.0382798
|
|
69321
|
magnetic carousel by @makeme44 | Stardance
|
makeme44
|
0
|
1.04
|
0
|
[]
|
[{"post_id": 79025, "ts": "202 [{"post_id": 79025, "ts": "2026-10-12T12:24:45Z", "hours": 1.0386, "text": "basicly there is a motor spining a plate with magnets they are placet so that there are no same polareties next to echoder and there is a plate above the spining plate that dosnt spin and on it u put feromagnetic balls that spin in the opisite direction of the changing mag field today i made just the assembely but i made the models my self before i knew about this"}]...
|
Title: magnetic carousel by @makeme44 | Stardance
Title: magnetic carousel by @makeme44 | Stardance
Devlogs:
basicly there is a motor spining a plate with magnets they are placet so that there are no same polareties next to echoder and there is a plate above the spining plate that dosnt spin and on it u put feromagnetic balls that spin in the opisite direction of the changing mag field today i made just the assembely but i made the models my self before i knew about this...
|
1793130894.5310233
|
1793735694.5310233
|
|
69327
|
Siyam-Portfolio by @Siyam | Stardance
|
Siyam
|
1
|
0.0
|
0
|
[{"ship_num": 1, "ts": "2026-1 [{"ship_num": 1, "ts": "2026-10-12T12:32:14Z", "hours": 0.0, "multiplier": 1.01, "payout": 0, "blessing": "neutral", "text": "Simple HTML & CSS Webpage. I built this webpage using custom HTML and CSS included via a < style > tag in the main document. Features : Pure HTML & CSS: Built entirely from scratch using standard semantic elements (< h1 >, < h2 >, < p >). Full-Screen Background Image: Uses CSS styling to scale and stretch a web-hosted image to fill the entire screen. Styling & Effects: Features a subtle blur effect on the background image while keeping the white text clear and easy to read. Live-Preview : https://tanzil-alam.github.io/Web/", "repo": "https://github.com/Tanzil-Alam/Web", "demo": "https://tanzil-alam.github.io/Web/"}]...
|
[{"post_id": 79026, "ts": "202 [{"post_id": 79026, "ts": "2026-10-12T12:29:50Z", "hours": 0.2525, "text": "I built a simple website about me. please take a look and rate me well, i know its very simple. Click me"}]...
|
Title: Siyam-Portfolio by @Siyam | Stardance
Devl Title: Siyam-Portfolio by @Siyam | Stardance
Devlogs:
I built a simple website about me. please take a look and rate me well, i know its very simple. Click me
Ships:
Simple HTML & CSS Webpage. I built this webpage using custom HTML and CSS included via a < style > tag in the main document. Features : Pure HTML & CSS: Built entirely from scratch using standard semantic elements (< h1 >, < h2 >, < p >). Full-Screen Background Image: Uses CSS styling to scale and stretch a web-hosted image to fill the entire screen. Styling & Effects: Features a subtle blur effect on the background image while keeping the white text clear and easy to read. Live-Preview : https://tanzil-alam.github.io/Web/...
|
1793062400.4170463
|
1793148800.4170463
|
|
3479
|
Unofficial Google Docs Client by @nolanqsp | Stard Unofficial Google Docs Client by @nolanqsp | Stardance...
|
nolanqsp
|
0
|
71.79
|
0
|
[]
|
[{"post_id": 79028, "ts": "202 [{"post_id": 79028, "ts": "2026-10-12T12:39:09Z", "hours": 10.2656, "text": "GitHub, Why? Last weekend GitHub decided to suspend my account for no apparent reason(No it wasn’t a DMCA from Google). I got an email saying for me to “reverify my academic status” for the student developer pack at the same time I got suspended. I tried to do that but… you can’t reverify without being logged in, and you can’t login when you are suspended. So I contacted support and they asked “how [I] plan to use GitHub” and that “[my] account was flagged by [their] abuse-detection systems for manual review, as it may conflict with [their] Terms of Service”. I responded but haven’t gotten any response since then(that was a week ago). I ended up moving at least temporarily to GitLab. While I had a copy of the git repository on my development machine, unfortunately this doesn’t include GitHub releases. I created a new one on GitLab but there aren’t any before the newest one. Anyhow, lets get to the new features: Fix crashing when exiting causing lingering threads Add support for the space key & several special characters including Enter for newlines Add support for different font sizes Add support for downloading and applying font families at runtime (Huge thanks to Jonathan Neal for Google Fonts catalog) Improve install script by supporting powershell 5(the one included in windows) and fixing several errors Fix bug where installer’s progress bar wouldn’t update until completed Cache parsed Savekeys to prevent additional wasted compute Update installers to use GitLab Anyhow, those are the recent updates! Hopefully GitHub reviews my reinstatement request soon. :)"}, {"post_id": 72171, "ts": "2026-09-22T11:10:12Z", "hours": 9.4697, "text": "Lots more marginal improvements + New Rendering Engine + Pain Recently I have been adding: Support for more keys(symbols, numbers, numpad numbers & arrow keys) Paste (CTRL + V) support More verbose logging New Rendering Engine Can include additional data(underline color, etc) for the future Seems more stable(the old one was kind of jank) But to be honest, most of the time was spent trying to fix some unliveable bugs, when typing to quickly, stuff appears after the cursor. In addition when typing, bold text after the cursor seems to offset. I learned something that can help with the latter bug, but I wasn’t able to fix either."}, {"post_id": 66698, "ts": "2026-09-12T16:02:24Z", "hours": 7.985, "text": "Building Up to Release I’ve been working on numerous small issues that I have been putting off. One of these is that all documents over ~1.5 pages were getting cut off, it turns out the contents of the document is split into multiple chunks, each around ~1.5 pages long. It was a relatively simple problem, just needed to fix it. Also binding(incoming changes) now runs on a separate thread so that the UI doesn’t freeze when somebody else types. Saving also now runs on a separate thread, it auto saves every ~1 second, which caused another problem, outgoing changes got relayed back as incoming changes by Google’s servers, meaning everything you typed got duplicated. Again, simple fix, just needed doing. The main thing however is the caret/cursor behavior, which was/is doing some funky stuff, jumping around whenever you changed lines. I added a binary search to help with this, which helped but didnt completely fix it. So there is still some work there. I also added some savekeys to minimize the log output, because before…… there were almost a MB of logs from each run. The main things that stand before release are to finish the cursor behaviour, bolds & italics shifting, and add a home screen with your documents."}, {"post_id": 62838, "ts": "2026-09-06T11:25:02Z", "hours": 5.5689, "text": "HUGE Progress The past few hours I have worked on this project have been extremely productive. I found a header that genuine Google Docs sends, “X-Same-Domain”, which I believe just indicates whether the request is being sent to the same domain as the sender. It turns out that Google actively blocks requests from other domains, but luckily we can just send “X-Same-Domain” with a value of 1, pretending to be coming from the “docs.google.com” domain. After this realization the “/save” endpoint returned 200 (OK) . This was huge progress, this has been a major blocker for months . The one problem was that while the status code stated that the request was successful, the actual request payload contained an error “XSRF” and a string of numbers and letters, which I thought was probably some kind of authentication/coordination token. After a quick Google search, I realized that this was a token to prevent other websites in the same browser from sending requests impersonating Google Docs as the browser auto attaches authentication cookies. To my surprise, when I added “&token=XXXXXX” (with XXXXXX being the string of numbers and letters) to the request url, we get a different error! This one was very ambiguous though, it just was a JSON payload containing nothing but the number “400” , as in 400 (Bad Request) which I had become to dread. After searching around the codebase for a while I found a problem with the url encoding logic, Url encoding is the proccess of replacing invalid character with %XX (XX being the ASCII code for the invalid character), it turns out “&“s are valid characters……. but I was replacing them. Ampersands are also the seperator for parameters. I think the problem was that within the Google Docs server code, it seperates the parameters then decodes each one. With this problem fixed, saving worked!!!! There were a few tiny bugs I wont get into, but largely it worked. I implemented merging changes(sending “hello” rather than “h” + “e” + “l”+ “l”+ “o”). With saving working, I decided to start working on seeing whether these solutions also worked on “/bind” (real-time incoming changes), they didn’t immediately, but after a few tweaks trying to replicate the URL parameters that Google Docs uses, we had incoming changes! I had to do some fancy async enumerable shenanigans to get them to come in asynchronously. The main thing left to do on incoming changes is to set up a seperate thread. Anyhow, Big Devlog, just felt that if I wrote a devlog, it would be outdated within the hour. See ya next time! ; )"}, {"post_id": 60276, "ts": "2026-09-02T15:29:13Z", "hours": 3.3589, "text": "Polish ™ Worked on polishing up the UI, now the title of the document along with your Google account name and profile picture are displayed in the open document screen. Also text wrapping behaves much better. I also have been expermenting alot on how to get saving and realtime collaboration, since the last piece of progress, not much, just alot of 400 (Bad Request)s"}, {"post_id": 59515, "ts": "2026-09-01T11:51:25Z", "hours": 1.7619, "text": "Progress on Collaboration and saving Made some substantial progress on realtime collaboration, now I can successfully authenticate by posting to /bind to get a SID to then eventually make requests to /bind and /save. This was made possible by scraping the main web endpoint."}, {"post_id": 51809, "ts": "2026-08-21T17:28:55Z", "hours": 3.5811, "text": "Linux Compatibility And Polish The past few hours have been spent on refining the installer and associated scripts to work better on Linux and give a more reliable experience. Along with cleaning up some unimplemented features. A clear permission prompt for browser-scraping has been added. The past few Devlogs were focused on Internal Mode(Logging in without an external Browser), I still have plans to work on this but it is no longer the most pressing for me right now. School is starting soon for me, and I will have less time to work on this. I Want to get this ready to ship before the start of school so I can get this shipped before the end of the challenge. I will be focusing more on polish, installers, and getting it into a shippable state, If I can get saving to work before then, that’s great. But if not, I want to be able to ship a polished product even if it is missing a crucial feature(saving). But there is no guarantee that I will get it working by sinking more time into it, because it needs more reverse-engineering, I could get it to work in 3 Hours or 500, its down to how quickly I can crack the code in Wireshark(if ever)."}, {"post_id": 42573, "ts": "2026-08-07T12:04:37Z", "hours": 0.36, "text": "Welp, so much for that 2 Devlogs Ago I said I would create a CEF based C# app to authenticate with google. I did not realize that google explicitly blocks this. You might think, just change the “User-Agent: xxxxxx”, but no, Google has an entire JS detection system to stop exactly that. So then I tried making a web wrapper around “accounts.google.com” but Google has a CORS policy around this. So back to Servo it is!"}, {"post_id": 36980, "ts": "2026-07-29T12:37:08Z", "hours": 0.25, "text": "Progress! See Previous devlog."}, {"post_id": 36348, "ts": "2026-07-28T12:21:12Z", "hours": 4.8356, "text": "Internal Mode Been working on a Servo based google login (Internal Mode )(based on the servo slint example) in rust. I got far enough to be able to login, but it would take a lot more work in order to get to actually being able to login to google docs. This is my first rust project that goes beyond “Hello World!” so I have been trial and erroring my way through this proccess. I have realised that: My rust is not even close enough to being able to complete this within a reasonable timeframe(or ever) Servo doesn’t have any C#(my first and most experienced language) bindings(or not that I can find) CEF(Chromium Embedded Framework) does have C# bindings (Unfortunately is ALOT more bloated compared to Servo), aand Avalonia integration (I use Avalonia for the rest of the Google Docs App) Servo based login: doopyelephant/ServoGoogleLogin I Have started work on a CEF based google login in C#. Hopefully it plays out :)"}, {"post_id": 27686, "ts": "2026-07-13T13:59:14Z", "hours": 3.8225, "text": "Chromium App-Based-Encryption I have been working on chromium based browser support. Chrome & other modern Chromium based browsers use App-Bound-Encryption to encrypt their cookies. This is the reason why this unofficial Google Docs Client is currently unable to fully decrypt cookies from modern chromium based browsers out of the box on Windows. Chromium encrypts its cookies using the Windows DDAPI(Figure 2). Chromium used to decrypt cookies using the methods implemented in this repository before Chromium 127, this repository should decrypt cookies from chromium versions 127 and below(Figure 1). Figure 1 (C4 Bomb: Blowing up Chrome’s Appbound Cookie Encryption, www.cyberark.com/resources/threat-research-blog/c4-bomb-blowing-up-chromes-appbound-cookie-encryption . Accessed 13 July 2026.) Figure 2 (C4 Bomb: Blowing up Chrome’s Appbound Cookie Encryption, www.cyberark.com/resources/threat-research-blog/c4-bomb-blowing-up-chromes-appbound-cookie-encryption . Accessed 13 July 2026. ) Path forward On Windows ABE is in full effect, we would need SYSTEM perms, and try to impersonate Chrome. I plan to integrate xaitax/Chrome-App-Bound-Encryption-Decryption but this likely will not work forever, it is an arms race with Google and xaitax. Currently it works but likely Google with shut it down eventually. On Linux ABE is only used on Windows, on Linux Chromium uses the system Keychain over DBUS. (Gnome or KWallet) If these are unavailable it uses a completely exposed key in a file(basic encyption). This is very surpassable, it just needs implementation."}, {"post_id": 20798, "ts": "2026-07-02T14:33:09Z", "hours": 1.9575, "text": "Dynamic Path Support! Dynamic Paths are now enabled by default! Currently only Firefox works reliably from my limited testing. Zen(Fork of Firefox) works like 1/2 the time, and chromium based browsers get found but don’t work properly. The UI is kind of broken but it works for now(Working on it). Beta 3 is now released on Github with builds from the new Package&Release Script mentioned in the previous devlog."}, {"post_id": 19195, "ts": "2026-06-30T13:43:50Z", "hours": 1.8528, "text": "Platforms Platforms Platforms! Today I worked on yet more build scripts , now .zip files can be generated for every supported platform and placed in a folder with a single command! I still need to update the installer to fetch the corresponding .zip for the OS and Arch automatically. I am planning on doing my first ship once the installer & associated scripts are in a finished state where you can just paste one command into the terminal (for Win/Linux) and it opens the installer application which walks through the installation. After the installation the application should be able to be launched from the Start Menu/App Launcher along with an icon. Also the Dynamic Browser Paths(automatically finding the cookie directory of the user’s installed browser) should be stable, or if not then Internal Mode(planned mode which packages a Servo based browser to login with google to get cookies for auth)."}, {"post_id": 15601, "ts": "2026-06-25T11:20:57Z", "hours": 5.0742, "text": "Beta 2: Unofficial Google Docs Client I have worked more on RE’ing in Wireshark to RE saving and binding to a document(receive realtime updates), Implemented the infrastructure in the application, but both currently return a 400 (Bad Request), I am still working on it. There is a new material 3 theme with some other subtle UI changes. Various little fixes aswell. Also, you used to have to unzip and run the installer manually, but now there is a curl install command on the repo that downloads it to AppData and runs it."}, {"post_id": 8050, "ts": "2026-06-13T13:03:13Z", "hours": 4.2731, "text": "Finished Installer Flow! The installer now successfully downloads & installs the Google Docs application. It downloads the icon and adds a shortcut to the start menu, and adds Registry entries to add the uninstall script to the Add & Remove Programs Page in the windows settings app."}, {"post_id": 6249, "ts": "2026-06-10T14:33:35Z", "hours": 1.5903, "text": "Installer flow complete! It doesnt do any installing yet but we have a framework that calls a powershell script with progress updates and a progress bar"}, {"post_id": 3752, "ts": "2026-06-06T20:01:31Z", "hours": 0.7344, "text": "Avalonia Animations keep overlapping the pages!?!?"}, {"post_id": 3456, "ts": "2026-06-06T12:20:44Z", "hours": 0.8483, "text": "Made some fancy installer UI (Avalonia wwhhhyyy does your styling have to be so finicky!!!!!!)"}, {"post_id": 2876, "ts": "2026-06-05T19:16:51Z", "hours": 1.9375, "text": "Made a Build script to automate building and compiling the application for people!"}, {"post_id": 2728, "ts": "2026-06-05T14:07:58Z", "hours": 2.2578, "text": "-Demo of Unofficial Google Docs Client This is the status of my Unofficial Google Docs Client(Most of what is demoed in this devlog is done before stardance, this is a recap before i get into new features) Can authenticate with google to fetch public & private documents(using browser cookies) Can view documents including text(including bolds and italics) and tables Can move a cursor around and type, but cannot save to google’s servers yet"}]...
|
Title: Unofficial Google Docs Client by @nolanqsp Title: Unofficial Google Docs Client by @nolanqsp | Stardance
Devlogs:
-Demo of Unofficial Google Docs Client This is the status of my Unofficial Google Docs Client(Most of what is demoed in this devlog is done before stardance, this is a recap before i get into new features) Can authenticate with google to fetch public & private documents(using browser cookies) Can view documents including text(including bolds and italics) and tables Can move a cursor around and type, but cannot save to google’s servers yet
Made a Build script to automate building and compiling the application for people!
Made some fancy installer UI (Avalonia wwhhhyyy does your styling have to be so finicky!!!!!!)
Avalonia Animations keep overlapping the pages!?!?
Installer flow complete! It doesnt do any installing yet but we have a framework that calls a powershell script with progress updates and a progress bar
Finished Installer Flow! The installer now successfully downloads & installs the Google Docs application. It downloads the icon and adds a shortcut to the start menu, and adds Registry entries to add the uninstall script to the Add & Remove Programs Page in the windows settings app.
Beta 2: Unofficial Google Docs Client I have worked more on RE’ing in Wireshark to RE saving and binding to a document(receive realtime updates), Implemented the infrastructure in the application, but both currently return a 400 (Bad Request), I am still working on it. There is a new material 3 theme with some other subtle UI changes. Various little fixes aswell. Also, you used to have to unzip and run the installer manually, but now there is a curl install command on the repo that downloads it to AppData and runs it.
Platforms Platforms Platforms! Today I worked on yet more build scripts , now .zip files can be generated for every supported platform and placed in a folder with a single command! I still need to update the installer to fetch the corresponding .zip for the OS and Arch automatically. I am planning on doing my first ship once the installer & associated scripts are in a finished state where you can just paste one command into the terminal (for Win/Linux) and it opens the installer application which walks through the installation. After the installation the application should be able to be launched from the Start Menu/App Launcher along with an icon. Also the Dynamic Browser Paths(automatically finding the cookie directory of the user’s installed browser) should be stable, or if not then Internal Mode(planned mode which packages a Servo based browser to login with google to get cookies for auth).
Dynamic Path Support! Dynamic Paths are now enabled by default! Currently only Firefox works reliably from my limited testing. Zen(Fork of Firefox) works like 1/2 the time, and chromium based browsers get found but don’t work properly. The UI is kind of broken but it works for now(Working on it). Beta 3 is now released on Github with builds from the new Package&Release Script mentioned in the previous devlog.
Chromium App-Based-Encryption I have been working on chromium based browser support. Chrome & other modern Chromium based browsers use App-Bound-Encryption to encrypt their cookies. This is the reason why this unofficial Google Docs Client is currently unable to fully decrypt cookies from modern chromium based browsers out of the box on Windows. Chromium encrypts its cookies using the Windows DDAPI(Figure 2). Chromium used to decrypt cookies using the methods implemented in this repository before Chromium 127, this repository should decrypt cookies from chromium versions 127 and below(Figure 1). Figure 1 (C4 Bomb: Blowing up Chrome’s Appbound Cookie Encryption, www.cyberark.com/resources/threat-research-blog/c4-bomb-blowing-up-chromes-appbound-cookie-encryption . Accessed 13 July 2026.) Figure 2 (C4 Bomb: Blowing up Chrome’s Appbound Cookie Encryption, www.cyberark.com/resources/threat-research-blog/c4-bomb-blowing-up-chromes-appbound-cookie-encryption . Accessed 13 July 2026. ) Path forward On Windows ABE is in full effect, we would need SYSTEM perms, and try to impersonate Chrome. I plan to integrate xaitax/Chrome-App-Bound-Encryption-Decryption but this likely will not work forever, it is an arms race with Google and xaitax. Currently it works but likely Google with shut it down eventually. On Linux ABE is only used on Windows, on Linux Chromium uses the system Keychain over DBUS. (Gnome or KWallet) If these are unavailable it uses a completely exposed key in a file(basic encyption). This is very surpassable, it just needs implementation.
Internal Mode Been working on a Servo based google login (Internal Mode )(based on the servo slint example) in rust. I got far enough to be able to login, but it would take a lot more work in order to get to actually being able to login to google docs. This is my first rust project that goes beyond “Hello World!” so I have been trial and erroring my way through this proccess. I have realised that: My rust is not even close enough to being able to complete this within a reasonable timeframe(or ever) Servo doesn’t have any C#(my first and most experienced language) bindings(or not that I can find) CEF(Chromium Embedded Framework) does have C# bindings (Unfortunately is ALOT more bloated compared to Servo), aand Avalonia integration (I use Avalonia for the rest of the Google Docs App) Servo based login: doopyelephant/ServoGoogleLogin I Have started work on a CEF based google login in C#. Hopefully it plays out :)
Progress! See Previous devlog.
Welp, so much for that 2 Devlogs Ago I said I would create a CEF based C# app to authenticate with google. I did not realize that google explicitly blocks this. You might think, just change the “User-Agent: xxxxxx”, but no, Google has an entire JS detection system to stop exactly that. So then I tried making a web wrapper around “accounts.google.com” but Google has a CORS policy around this. So back to Servo it is!
Linux Compatibility And Polish The past few hours have been spent on refining the installer and associated scripts to work better on Linux and give a more reliable experience. Along with cleaning up some unimplemented features. A clear permission prompt for browser-scraping has been added. The past few Devlogs were focused on Internal Mode(Logging in without an external Browser), I still have plans to work on this but it is no longer the most pressing for me right now. School is starting soon for me, and I will have less time to work on this. I Want to get this ready to ship before the start of school so I can get this shipped before the end of the challenge. I will be focusing more on polish, installers, and getting it into a shippable state, If I can get saving to work before then, that’s great. But if not, I want to be able to ship a polished product even if it is missing a crucial feature(saving). But there is no guarantee that I will get it working by sinking more time into it, because it needs more reverse-engineering, I could get it to work in 3 Hours or 500, its down to how quickly I can crack the code in Wireshark(if ever).
Progress on Collaboration and saving Made some substantial progress on realtime collaboration, now I can successfully authenticate by posting to /bind to get a SID to then eventually make requests to /bind and /save. This was made possible by scraping the main web endpoint.
Polish ™ Worked on polishing up the UI, now the title of the document along with your Google account name and profile picture are displayed in the open document screen. Also text wrapping behaves much better. I also have been expermenting alot on how to get saving and realtime collaboration, since the last piece of progress, not much, just alot of 400 (Bad Request)s
HUGE Progress The past few hours I have worked on this project have been extremely productive. I found a header that genuine Google Docs sends, “X-Same-Domain”, which I believe just indicates whether the request is being sent to the same domain as the sender. It turns out that Google actively blocks requests from other domains, but luckily we can just send “X-Same-Domain” with a value of 1, pretending to be coming from the “docs.google.com” domain. After this realization the “/save” endpoint returned 200 (OK) . This was huge progress, this has been a major blocker for months . The one problem was that while the status code stated that the request was successful, the actual request payload contained an error “XSRF” and a string of numbers and letters, which I thought was probably some kind of authentication/coordination token. After a quick Google search, I realized that this was a token to prevent other websites in the same browser from sending requests impersonating Google Docs as the browser auto attaches authentication cookies. To my surprise, when I added “&token=XXXXXX” (with XXXXXX being the string of numbers and letters) to the request url, we get a different error! This one was very ambiguous though, it just was a JSON payload containing nothing but the number “400” , as in 400 (Bad Request) which I had become to dread. After searching around the codebase for a while I found a problem with the url encoding logic, Url encoding is the proccess of replacing invalid character with %XX (XX being the ASCII code for the invalid character), it turns out “&“s are valid characters……. but I was replacing them. Ampersands are also the seperator for parameters. I think the problem was that within the Google Docs server code, it seperates the parameters then decodes each one. With this problem fixed, saving worked!!!! There were a few tiny bugs I wont get into, but largely it worked. I implemented merging changes(sending “hello” rather than “h” + “e” + “l”+ “l”+ “o”). With saving working, I decided to start working on seeing whether these solutions also worked on “/bind” (real-time incoming changes), they didn’t immediately, but after a few tweaks trying to replicate the URL parameters that Google Docs uses, we had incoming changes! I had to do some fancy async enumerable shenanigans to get them to come in asynchronously. The main thing left to do on incoming changes is to set up a seperate thread. Anyhow, Big Devlog, just felt that if I wrote a devlog, it would be outdated within the hour. See ya next time! ; )
Building Up to Release I’ve been working on numerous small issues that I have been putting off. One of these is that all documents over ~1.5 pages were getting cut off, it turns out the contents of the document is split into multiple chunks, each around ~1.5 pages long. It was a relatively simple problem, just needed to fix it. Also binding(incoming changes) now runs on a separate thread so that the UI doesn’t freeze when somebody else types. Saving also now runs on a separate thread, it auto saves every ~1 second, which caused another problem, outgoing changes got relayed back as incoming changes by Google’s servers, meaning everything you typed got duplicated. Again, simple fix, just needed doing. The main thing however is the caret/cursor behavior, which was/is doing some funky stuff, jumping around whenever you changed lines. I added a binary search to help with this, which helped but didnt completely fix it. So there is still some work there. I also added some savekeys to minimize the log output, because before…… there were almost a MB of logs from each run. The main things that stand before release are to finish the cursor behaviour, bolds & italics shifting, and add a home screen with your documents.
Lots more marginal improvements + New Rendering Engine + Pain Recently I have been adding: Support for more keys(symbols, numbers, numpad numbers & arrow keys) Paste (CTRL + V) support More verbose logging New Rendering Engine Can include additional data(underline color, etc) for the future Seems more stable(the old one was kind of jank) But to be honest, most of the time was spent trying to fix some unliveable bugs, when typing to quickly, stuff appears after the cursor. In addition when typing, bold text after the cursor seems to offset. I learned something that can help with the latter bug, but I wasn’t able to fix either.
GitHub, Why? Last weekend GitHub decided to suspend my account for no apparent reason(No it wasn’t a DMCA from Google). I got an email saying for me to “reverify my academic status” for the student developer pack at the same time I got suspended. I tried to do that but… you can’t reverify without being logged in, and you can’t login when you are suspended. So I contacted support and they asked “how [I] plan to use GitHub” and that “[my] account was flagged by [their] abuse-detection systems for manual review, as it may conflict with [their] Terms of Service”. I responded but haven’t gotten any response since then(that was a week ago). I ended up moving at least temporarily to GitLab. While I had a copy of the git repository on my development machine, unfortunately this doesn’t include GitHub releases. I created a new one on GitLab but there aren’t any before the newest one. Anyhow, lets get to the new features: Fix crashing when exiting causing lingering threads Add support for the space key & several special characters including Enter for newlines Add support for different font sizes Add support for downloading and applying font families at runtime (Huge thanks to Jonathan Neal for Google Fonts catalog) Improve install script by supporting powershell 5(the one included in windows) and fixing several errors Fix bug where installer’s progress bar wouldn’t update until completed Cache parsed Savekeys to prevent additional wasted compute Update installers to use GitLab Anyhow, those are the recent updates! Hopefully GitHub reviews my reinstatement request soon. :)...
|
1792774137.8595033
|
1793378937.8595033
|
|
32004
|
FW 190 - RC Airplane by @BAUMAU | Stardance
|
BAUMAU
|
0
|
147.44
|
0
|
[]
|
[{"post_id": 79030, "ts": "202 [{"post_id": 79030, "ts": "2026-10-12T12:48:11Z", "hours": 10.0228, "text": "Just like last devlog, I didn’t do too much exciting stuff. I changed the attachment of the nose and inner parts-tray, so the nose is screwed to the main body, while the tray is just tucked in place. I reprinted some parts and cleaned them up. I cut the carbon tube that goes trough the wings and bent the springsteel wires for the front and back gear. The picture just shows all the sketches I drew during the entire design process, which I just think looks cool. See you on the next (and probably last) devlog =D"}, {"post_id": 76385, "ts": "2026-10-03T11:33:38Z", "hours": 9.4903, "text": "Since last devlog, I didn’t do much exciting stuff. I spent hours trying to solder everything, only to find out that the soldering irons tip was the problem all along. I cleaned up, tested tolerances on the printed parts, made small changes to the model and reprinted some parts so they would fit. Not very interesting, but it brings the project forward."}, {"post_id": 73923, "ts": "2026-09-26T10:30:23Z", "hours": 9.7311, "text": "Finally, after so much time, all the parts are there. I still need to solder some things and make sure everything fits nicely, but after that, the final assembly may begin : D"}, {"post_id": 71147, "ts": "2026-09-20T11:00:20Z", "hours": 10.0317, "text": "Hey guys, I am finally printing all the planes parts now! I‘m printing with ASA Aero which was an absolute nightmare before having the right settings, with strings everywhere and many failed prints. But now the settings work and the prints look great for the filament. Probably only one more devlog before shipping this project XD. See you on the next one."}, {"post_id": 68842, "ts": "2026-09-15T20:56:57Z", "hours": 10.7514, "text": "Welcome to devlog number 8. Most I did, was to design some gears for the back steering-mechanism. It now consists of one twirly gear on a small motor I took out of a servo, which slowly turns a chain of gears. I also made some small additions, mainly to stabilise the structural integrity after putting the different printed parts together."}, {"post_id": 66898, "ts": "2026-09-12T21:01:34Z", "hours": 9.3947, "text": "Welcome to my 7th devlog. Since the last devlog, I have worked on fixations for the cockpit, the back wheel, some irl hardware stuff and the steering mechanisms in the back of the plane. As it turns out, there is so little room in the back of the plane, that I could not fit a servo in there to deliver the needed form of motion. Because of that, I had to deconstruct a servo irl, so I can measure and fit the single parts (potentiometer, motor and the pcb) where I want them to be, kinda like a custom servo-version. The cockpit now has little springs in the back and some kind of nose in the front for a quick montage and removal. I also replaced the voltage step-down converter of the little electronics complex for reading and sending the controllers data I use to control the plane, because the old one wasn’t working. Sadly, it seems like the esp32 I was using to read the data, now has a short-circuit and completely overheats after a short time. Next I will integrate the core servo parts of the servo I demolished into Fusion 360 and hopefully make it work. And buy a new esp32 :( See you on the next devlog :)"}, {"post_id": 65071, "ts": "2026-09-09T22:40:40Z", "hours": 9.4864, "text": "I’m finally back to working on my project! The last days, I mostly worked on the internal arrangement of all the necessary parts like pcb, battery, servos etc. The mechanism for controlling the aileron/flaps now consists of two gears on top of each other at a 90° angle, so the servos wouldn’t have to be in the middle of the plane, creating a space problem. I put the battery, pcb and ESC controller onto a removable tray, so taking the battery out is easier. The tray will be fixed with screws in the back, and be connected to the removable front part of the plane for a semi-easy removal while also holding in place while flying. I also fixed a real-world issue with the gear, where in CAD it would fit perfectly, while being out of place irl. Now the only ramaining thing to do is to design the mechanism to steer the rudder, which is quite tricky, because there is pretty much no space at all to attach anything in the very back of the plane. See you on the next devlog :)"}, {"post_id": 42555, "ts": "2026-08-07T11:38:38Z", "hours": 9.3664, "text": "Hello guys, I am finally finished with the pcb design. Now all that is left to do is to finish the steering mechanism in the plane, adding a mount for the pcb and then assembling everything. Sadly I wont be able to work on this project for about a month or so, since im on vacation. See you on the next one!"}, {"post_id": 40446, "ts": "2026-08-03T23:27:21Z", "hours": 9.6944, "text": "Hey guys, this devlog I just fixed some problems with the 3D model of the aircraft and added a screw mount for the cockpit, so it holds onto the main body and is detachable. I also started to do some research on electronics and pcb design for a simple main pcb in the plane. I even started with the schematic but still have quite a lot to learn and do."}, {"post_id": 38458, "ts": "2026-07-31T20:45:20Z", "hours": 46.2483, "text": "Hi guys, it has been quite some time since my last devlog in which I promised to show the plane model. Now I am almost finished with it. Because this was my first time modeling something as complex and dynamic, it took me much time to figure things out. I also did the first test 3D print which pointed out some important issues I will need to fix. Heres a quick overview of how I intend the aircraft to function: -The main body will consist of multiple parts which get put together with glue -The wings will further be stabilised by a carbon pipe -It will have retractable gear -The flaps will be controlled by spinning rods connected to gears inside the main body -Everything will be connected to a main pcb and controlled by an esp32 which receives the data via an antenna See you on the next devlog!"}, {"post_id": 27809, "ts": "2026-07-13T18:10:01Z", "hours": 8.4608, "text": "Hello guys, this is my second devlog on my RC airplane. I’m finally finished with programming both the receiving and transmitting ESP32 boards which I use for this project. Heres a list of all the things I did/added and fixed since the last devlog: -I got the antennas working -The radio connection works and transmits the data I want -The receiving ESP32 now hands the signals down to servos -Fixed a problem with the servo library where attaching the servos to any pin would overwrite other attached servos -Added an easy kind of failsafe -Built a container for the electronics that goes on the back of my controller on the transmitting end–> still working on it but almost finished I will update you guys, when I have a decent 3D model of the plane to show."}, {"post_id": 25337, "ts": "2026-07-09T15:50:52Z", "hours": 4.7606, "text": "This is my first ever devlog so don‘t expect too much. Heres what I already did: -I set up my coding workspace -I connected the ESP32 to my controller and can read the data -I set up the Antennas and tested them Now I just need the Antennas to work together with the rest. After that I will start to design the plane in CAD. Thats it for the devlog, I‘ll post the next one, when i‘m finished with the main coding part."}]...
|
Title: FW 190 - RC Airplane by @BAUMAU | Stardance Title: FW 190 - RC Airplane by @BAUMAU | Stardance
Devlogs:
This is my first ever devlog so don‘t expect too much. Heres what I already did: -I set up my coding workspace -I connected the ESP32 to my controller and can read the data -I set up the Antennas and tested them Now I just need the Antennas to work together with the rest. After that I will start to design the plane in CAD. Thats it for the devlog, I‘ll post the next one, when i‘m finished with the main coding part.
Hello guys, this is my second devlog on my RC airplane. I’m finally finished with programming both the receiving and transmitting ESP32 boards which I use for this project. Heres a list of all the things I did/added and fixed since the last devlog: -I got the antennas working -The radio connection works and transmits the data I want -The receiving ESP32 now hands the signals down to servos -Fixed a problem with the servo library where attaching the servos to any pin would overwrite other attached servos -Added an easy kind of failsafe -Built a container for the electronics that goes on the back of my controller on the transmitting end–> still working on it but almost finished I will update you guys, when I have a decent 3D model of the plane to show.
Hi guys, it has been quite some time since my last devlog in which I promised to show the plane model. Now I am almost finished with it. Because this was my first time modeling something as complex and dynamic, it took me much time to figure things out. I also did the first test 3D print which pointed out some important issues I will need to fix. Heres a quick overview of how I intend the aircraft to function: -The main body will consist of multiple parts which get put together with glue -The wings will further be stabilised by a carbon pipe -It will have retractable gear -The flaps will be controlled by spinning rods connected to gears inside the main body -Everything will be connected to a main pcb and controlled by an esp32 which receives the data via an antenna See you on the next devlog!
Hey guys, this devlog I just fixed some problems with the 3D model of the aircraft and added a screw mount for the cockpit, so it holds onto the main body and is detachable. I also started to do some research on electronics and pcb design for a simple main pcb in the plane. I even started with the schematic but still have quite a lot to learn and do.
Hello guys, I am finally finished with the pcb design. Now all that is left to do is to finish the steering mechanism in the plane, adding a mount for the pcb and then assembling everything. Sadly I wont be able to work on this project for about a month or so, since im on vacation. See you on the next one!
I’m finally back to working on my project! The last days, I mostly worked on the internal arrangement of all the necessary parts like pcb, battery, servos etc. The mechanism for controlling the aileron/flaps now consists of two gears on top of each other at a 90° angle, so the servos wouldn’t have to be in the middle of the plane, creating a space problem. I put the battery, pcb and ESC controller onto a removable tray, so taking the battery out is easier. The tray will be fixed with screws in the back, and be connected to the removable front part of the plane for a semi-easy removal while also holding in place while flying. I also fixed a real-world issue with the gear, where in CAD it would fit perfectly, while being out of place irl. Now the only ramaining thing to do is to design the mechanism to steer the rudder, which is quite tricky, because there is pretty much no space at all to attach anything in the very back of the plane. See you on the next devlog :)
Welcome to my 7th devlog. Since the last devlog, I have worked on fixations for the cockpit, the back wheel, some irl hardware stuff and the steering mechanisms in the back of the plane. As it turns out, there is so little room in the back of the plane, that I could not fit a servo in there to deliver the needed form of motion. Because of that, I had to deconstruct a servo irl, so I can measure and fit the single parts (potentiometer, motor and the pcb) where I want them to be, kinda like a custom servo-version. The cockpit now has little springs in the back and some kind of nose in the front for a quick montage and removal. I also replaced the voltage step-down converter of the little electronics complex for reading and sending the controllers data I use to control the plane, because the old one wasn’t working. Sadly, it seems like the esp32 I was using to read the data, now has a short-circuit and completely overheats after a short time. Next I will integrate the core servo parts of the servo I demolished into Fusion 360 and hopefully make it work. And buy a new esp32 :( See you on the next devlog :)
Welcome to devlog number 8. Most I did, was to design some gears for the back steering-mechanism. It now consists of one twirly gear on a small motor I took out of a servo, which slowly turns a chain of gears. I also made some small additions, mainly to stabilise the structural integrity after putting the different printed parts together.
Hey guys, I am finally printing all the planes parts now! I‘m printing with ASA Aero which was an absolute nightmare before having the right settings, with strings everywhere and many failed prints. But now the settings work and the prints look great for the filament. Probably only one more devlog before shipping this project XD. See you on the next one.
Finally, after so much time, all the parts are there. I still need to solder some things and make sure everything fits nicely, but after that, the final assembly may begin : D
Since last devlog, I didn’t do much exciting stuff. I spent hours trying to solder everything, only to find out that the soldering irons tip was the problem all along. I cleaned up, tested tolerances on the printed parts, made small changes to the model and reprinted some parts so they would fit. Not very interesting, but it brings the project forward.
Just like last devlog, I didn’t do too much exciting stuff. I changed the attachment of the nose and inner parts-tray, so the nose is screwed to the main body, while the tray is just tucked in place. I reprinted some parts and cleaned them up. I cut the carbon tube that goes trough the wings and bent the springsteel wires for the front and back gear. The picture just shows all the sketches I drew during the entire design process, which I just think looks cool. See you on the next (and probably last) devlog =D...
|
1792518897.5662298
|
1793123697.5662298
|